So, you've decide to write a comment about how bad either VB and/or MS Access is in a programming forum!
Well, you've come to the right place, I'm here to help. First off, rest assured that you made a great decision: It is very important to mention, as often as you can, how crappy both VB and/or MS Access is in any programming discussion. If this point is not mentioned at least once by each person contributing, then that person runs the risk of being labelled a "newbie". Don't let this happen to you! Let's get to work.
Bashing VB and/or Access is really an art, something that requires intelligence and analytical brain power, and like any art, it takes time to master. Let's go through some of the basic points that you will need to know:
- VB6, VBScript, VBA, and VB.NET are all the *same*. This is important. They must all be lumped together -- after all, we are discussing "VB", and all of these "programming languages" (note the quotes -- a nice touch that you can use in your posts) start with those same two letters. Heck, even though "QBasic" starts with "QB", let's go ahead and include that one as well. Be sure to understand the short-comings of all of these languages and intermix them freely. For example, I often write things like "any language that makes you write GOSUB 1034 to call a function sucks!" and that pretty much ends the debate right there.
- MS Access is meant to be a multi-user, robust, enterprise-level database server -- and don't you forget it! Don't let anyone else tell you otherwise -- when Microsoft wrote that crappy application, that was their goal -- bring down Oracle! It did not work, of course, and they had to follow it up with SQL Server ... yet, for some reason M$ keeps making new versions of Access, year after year. Why? More money, that's why! It's Micro$oft !! (Important: practice typing the $ in the Micro$oft; if you omit it, you risk looking like a "newbie" -- remember, our goal is to avoid that!)
- It is impossible to know, use, or understand either VB and/or Access and also have any kind of formal programming education. That pesky "intellisense" (oops -- "intelli$en$e" -- somehow they are making money off this, right?) is like an addictive drug, and using it will quickly drag you into a dark world of newbie programming where theory, discipline, and knowledge no longer exist. And there is no turning back. Be sure not to forget this -- occasionally a programmer will mention that he or she knows a real programming language like C++ in addition to VB, but that is an attempt at a technique called "misdirection". Don't fall for it. The same goes for T-SQL. If you use or like VB or Access, you simply cannot be a real programmer, it is that simple.
- C# and VB.NET do *not* end up generating the same code! I have fought this argument over and over, and you will too, so be ready for it. Have you ever seen VB.NET code compared to C#? They don't look the same to me! VB.NET uses plain old english words that any moron can understand, while C# uses symbols that require concentration, discipline, memorization, and caffeine. A real programmer possesses all of those traits, yet "programming" in VB requires none of them. I mean, how hardcore can a language that uses the word "friend" in its syntax really be? Note that even though C# is a Micro$oft product, it is currently legit and "cool". However -- be sure to monitor this situation closely! At some point, like all M$ products, it will become a "newbie tool" if they continue to make it user friendly or add features that let those of average intelligence use it. I recommend avoiding C# completely and using LISP. Remember, you read it here first.
- MS Access is not a real relational database -- do not forget this. Supposedly it has some half-baked implementation of primary keys and relations, but I've seen anyone even try to use this feature. I mean, can an "Access programmer" even grasp these concepts? I didn't think so -- that's why they are using Access! In addition, there is no support for XML or cursors, and even a database that will just store your CD collection needs these features! Therefore, you should never use it to store any data, ever. If these arguments fail, mention that JET SQL has no support for FULL OUTER JOINS -- that will shut them up quickly and show them that you are a "JOIN master" to be reckoned with! Data entered in an Access database immediately becomes corrupted and disappears, and the only way to get it out is to buy the next version. That is my theory, anyway, I would never use MS Access and let it corrupt my PC! Avoid the forms and reports at all costs as well -- it is much better to use a true programming environment like C++ to write your reports and data entry forms. Only a newbie takes the easy way out -- remember this one! Occasionally a wise guy will talk about using MS Access as a "front-end" or "UI" to an alternate database like SQL Server. This is jargon and marketing talk. Ignore it. That bastard trying to run a 300-concurrent user website off of an MDB back end and he knows it!
OK, that's enough to get started. Let's start things off with a sample post from someone that you might read on a programming forum:
Poster: "Hi! I need some help in ASP.NET. Whenever my page posts back, my datagrid disappears! I am using VB.NET. Can anyone help me?"
OK, that was a close one -- you saw ASP.NET (still cool for now -- check back on that one) and maybe started to help, you almost missed it, but there it is -- "VB.NET" !! They almost got us! If we had answered the question but missed the VB reference, our reputation as a real programmer is done ... the best thing to do is immediately close your account and start up a new one -- you can never show your face back there again! Also, update your resume -- you never know who is looking!
Back to the post ... The person is asking about the basics of ASP.NET (ViewState) so clearly they are a newbie. We must be sure that *they* know this, and that everyone else knows that we know that they are. Got it?
Here is one possible reply that we could write:
Reply: "U R a n00b! Anyone using VB should be shot! Hello? ON ERROR RESUME NEXT????"
Take minute to dissect that before reading on; you will want to closely study the style of this post to emulate it in your own. Notice a couple of things here:
- The spelling of "newbie" as "n00b" and writing "you are" as "u r". Immediately, we are established as a hacker, someone not to be messed with. Disagree with my post? Ha! Better check your bank account tomorrow -- it's all gone.
- Generalizations and exaggerations are used to perfection here. "Anyone using VB" is a great line to repeat, and it is worded perfectly -- we are not just directing our comments to those who only know VB, but to anyone who ever uses it for any reason. Very important distinction. Stating intelligent and thoughtful conclusions like "[these people] should be shot!" really show how passionate and knowledgeable you are on the topic.
- "ON ERROR RESUME NEXT" ... A classic! This baby will never let you down. Mention this at least once per thread and remember -- if that person programs in VB, they must use ON ERROR RESUME NEXT. No exceptions (literally!). In fact, sometimes, to be witty and if I am in a hurry, simply typing "ON ERROR RESUME NEXT" alone will pretty much establish your hacker cred, humiliate the poster, and end the debate.
So, there's a classic one for you. Feel free to copy that one to your clipboard and CTRL-V that puppy at will.
Let's try one more:
Poster: "Hi! I am having trouble deciding between using inheritance or an interface in VB.NET for a particular set of classes I am creating ... blah blah blah blah ..."
Hmmm ... clearly a n00b, not worth our time. Let's try another:
Poster: "Hi all! I am writing a small database application for my company. It will only have 2 users and I am thinking of using an MS Access database on a network share. I need only a few tables, but we have lots of reports to write and a few interface forms that I'd like to design for data entry. Will Access 2003 work for me, or do I need something else?"
Ah ... MS Access! Remember -- no one should ever use Access. Ever! (Well, except for newbies!) And -- it includes VB ! Access is a great target, you can attack it from so many angles. Where to begin on this one? It's kind of an open-ended question. Let's try this:
Reply: "Access??? Have fun when your web server goes down! No cursors or XML support -- how will you maintain data integrity! Also, Access tables can only hold 5,000 records before you will get errors. I wrote my own database in C++ that has 1,000,000,000 rows stored in a CSV file and that is better than MS Access! n00b!! My grandmother uses Access!"
Now, I know what you are thinking: "Jeff, how can I ever write poetry like this that will command the respect, admiration and fear of my colleagues? I am just learning how to bash VB and/or Access! This is a little intimidating!" Just relax, you're learning from the master, and let's break it down:
- It is helpful to point out that even installing Access anywhere on the network will cause problems. The poster did not mention a web server, but you know that all databases will eventually host traffic like google. Only a bad programmer doesn't think ahead. Let them know this! If they aren't hosting a site like Google, well then, they are a newbie! You see, either way, we have a valid point to question their manhood. (or womanhood .. sorry ladies!)
- The lack of any feature that you can think of (XML is a good one) is something that you can work into the conversation. Again, you are displaying your knowledge here, thinking "outside the box" and clearly stating that you would never be caught dead in any situation without these features.
- Liberally mention limitations and warnings, even if they are not accurate -- when the poster comes back with more problems after those issues occur, you will impress everyone with your foresight. If they don't come back, who will remember? As I mentioned earlier, I cannot confirm that 5,000 records is all that Access can handle since I refuse to use it (or even allow an installion CD within 500 yards of my workstation), but I bet it is not much more than that. Access data *will* get corrupt and you will get into heated arguments with Clippy when this happens -- arguments that you cannot win, I am afraid. I think it is one of Newton's laws, you can check it on wikipedia I bet.
- Show that you are a true programmer by mentioning your past successes (avoiding Access by creating a CSV text file database is definitely hard-core programming!) and make it clear that you would never go near a toy like Access.
- The grandmother line? classic. Baby sister works too. (or grandfather/baby brother -- sorry again!)
OK, that's a lot to write and to think about. Maybe that is too much for you to start with, let's scale it back a little. Keeping in mind that Access also allows you to write code in VB, let's clearly state our position with eloquence and efficiency:
Reply: "Access?? ON ERROR RESUME NEXT??!! n00b!"
Perfect. Go get 'em, tiger. The internet is a great place because of people like you!