O'Reilly is well-known for publishing high-quality books about challenging technical topics, like Java or the X Window System. Now, though, O'Reilly is publishing books on Visual Basic, a toy language. I don't get it. What's coming next? A series on playing Windows Solitaire successfully?
Hi Sandra,
Like Rodney Dangerfield, Visual Basic programmers just don't get no respect. C and C++ programmers have looked down their noses at Visual Basic programmers since Visual Basic's inception (and, in fact, since even earlier than that -- from the very origin of BASIC itself).
I still remember the first version of Visual Basic. I kept thinking of some neat utilities that I wanted to develop, tried writing them, and very quickly came up against one limitation or another that the Visual Basic environment imposed. A "toy language" or a "toy software development product" is an excellent way to characterize that first release of Visual Basic.
But that was five versions ago. Since then, Visual Basic has matured into a development environment of considerable maturity and sophistication. It was once the case that VB could be used for Windows applications, while creating dynamic link libraries, custom controls (.OCXs), and assorted COM objects was the exclusive province of C and C++. Those days, though, are gone. In virtually every case, the same kinds of components and applications can be created with VB as with C and C++. There can be little doubt that VB is a serious development environment that can be used to produce real, professional components and real, professional applications.
There is, of course, a trade-off. Visual Basic shields the developer from many of the intricacies of the Windows environment and, because it imposes an extra layer between the developer and the underlying operating system, also offers inferior performance. As a result, Visual Basic succeeds in delivering on its promise of offering a simple, easy-to-use software development tool.
In many respects, it strikes me, though, that the problem here is this "shielding" that Visual Basic does, and the way in which C/C++ programmers tend to look at developers whose basic development tool shields them from complexity. To program in C or C++, for instance, you need to know a good deal about how Windows works as an operating system. For instance, if you're curious, you can examine a very simple "Hello World" program written in C that takes up about two-and-a-half pages. In contrast, the equivalent Visual Basic "Hello World" program requires only three lines, and two of these are provided by Visual Basic itself.
So there's no question that Visual Basic is easier to learn and use than C/C++, that it allows you to develop faster applications, and even that many Visual Basic programmers are not as skilled as their C/C++ counterparts. (Some VB programmers, though, are every bit as capable programmers as their C/C++ programmers.)
What this really means, in many ways, is that Visual Basic has succeeded in lowering the entry barrier to new programmers. It offers a development environment in which a novice can learn a little bit, put it to good use, and expand his or her skill set as required. In short, it's easy to begin programming in VB. And also because of this, Visual Basic has inspired an entire community of people who don't just use VB, but are committed to it and are passionate about it. Though I'm sure many will disagree, C/C++ is just not like this. From time to time, for instance, I've thought that it might be worthwhile doing an introduction to C/C++ Windows programming. In looking at books, though, there are entry-level books for C or C++ programmers wanting to learn Windows, and there are entry-level books for novices wanting to learn C/C++. There are no good books that try to do both, not because no one has tried to write such a book, but because the topic is so daunting.
In short, Visual Basic offers ease of use, frees the developer from the need to focus on the peculiarities of the operating environment and allows him or her to concentrate on the requirements of the application or component being developed, and, as a result, significantly speeds the application development process. Those things, it seems to me, are the goals of an effective software development environment. By that criteria, VB is without question an outstanding tool for developing professional applications.
I hope that that answers your first question. To respond somewhat more briefly to your second, although we aren't considering a series on Solitaire, it strikes me that FreeCell offers some interesting publishing opportunities.
--Ron
Return to: Ron's VB Forum
Copyright © 2009 O'Reilly Media, Inc.