- I Want To Hate C++. Really!
- "Good" Points of VB and Java
- Let's Blame Somebody. How About Sun and Microsoft?
- Summing Up
"Good" Points of VB and Java
So why, oh why do we code in VB or Java? These languages certainly have their positive points: For instance, in either language, you can set the interpreter to "visual debug mode," which means that the resulting code will run so slowly that you will literally be able to see the underlying operations. Useful, eh?
Of course, you can't turn off this option.
Luckily for all involved, people are working on this problem, but don't hold your breaththey're working in VB and Java, so it might take a while.
There's also the fact that you don't have to deal with nasty things like pointers, references, or memory, which are things generally left to the end of (or left entirely out of) such educational tomes as Learn Both VB and Java in the Time It Takes To Fly to Missouri or Why Your Code Doesn't Need To Be Fast. Oh, there are some people who say that pointers, references, and memory management are badprogrammers shouldn't need to know what their code is doing, should they? I mean, if a programmer can use complicated features without knowing that they're there, what harm is done?
The answer to this excellent question is that you end up with a bunch of people that think code is about paradigms and object models, rather than what's really important: how slick and cool the code is under the hood. Sure, thinking in those big abstract terms is useful if you want to get a job as a software developer (think marketing plus liberal arts degree), but if you want a real jobbeing a down-and-dirty, slightly underpaid, and unappreciated programmeryou need to know how things work. And you won't get that from Java or VB.
For example, just yesterday I wrote a VB form that allowed me access to a Microsoft database. It took me five minutes, and everything worked flawlessly. There weren't any runtime errors, I didn't get bizarre messages from various memory addresses, and it looked pretty nice. Realizing that writing the same thing in C++or, gag me, MFCwould have taken at least a day, and probably would have been riddled with issues and crashes, I couldn't help but wonder: "How is it that people incapable of learning C have gotten the upper hand here?"
Before you start writing your inflammatory hate lettershonestly, I have never met a dedicated VB programmer who knew very much about C. (Why should they?) While I would assume that most Java programmers at one time knew both C and C++, every one that I've met seems to have slowly lost the ability to think in the grainy, caffeinated way that C/C++ foists on you when you first hear its siren song. In fact, most Java programmers seem to wander through the peat bog of their sad cookie-cutter language, singing laments about how it used to be before they developed something referred to, medically, as "system functionality amnesia," which is the loss of all memories about how computers actually work.
That said, we go back to our question: How is it that people who have abandoned (or never bothered to learn) the mother language have all of this cool stuff to play with?
Here's the reason why: When you first start coding in C/C++, you come across areas where there is no preexisting functionality for you to use. You have to write the code yourself, from the bottom up. You become intimately involved in the inner workings of what you're doing. The next time you need something like it, you can easily re-create (or reuse) that code. If you were suddenly transported to a desert island, with only your laptop and no prefabricated libraries to allow you to survive, you'd be able to write a hash table, no problem. A guy who uses Java would be baking in the sun, unable to find food due to his lack of data structures. And the VB programmer would still be trying to decide whether to burn the laptop or eat it.
Desert island analogy aside, it's generally accepted (by me) that knowing how everything works is actually a plus, especially if you need things to work exactly your way. Don't like those Java data structures when they don't work exactly the way you want? Oops, you might need to know how to code those. Need to write a linked list in VB? Here's your paddle.