This morning, I read Tim Anderson‘s “Why Microsoft abandoned Visual Basic 6.0 in favour of Visual Basic .NET“. While reading his article, I only had one idea in mind: this is another example of the importance of free and open source software. If you are not a programmer, you don’t need to read the remainder of this post; software users have many other reasons to prefer free software over closed-source software (but it’s not the subject of this post).
Basically, Visual Basic was abandoned because it was based on an old library, it lacked object-orientation and it was limiting programmers creativity compared to other languages available at that time (C++, Delphi, etc.). Per se, shortcomings in programming languages are not unusual and, considering the origin and goal of (Visual) Basic, people could have forecast this giving up. What is interesting to see is that Microsoft took the somehow brave decision to break the compatibility with previous Visual Basic. This left recreational as well as professional programmers as well as companies in a strange zone where they need the old Visual Basic for sometimes critical software but without any support anymore for the language and its extensions. Of course, Tim Anderson added that you can still write these extensions (the infamous .DLLs) in other languages and link them with Visual Basic code. And there is informal support from The Community …
Things could have been better if the language was standardized and, even better, if the language specifications and evolution were open to the community.
But standardization isn’t the only keyword. C# and a part of .Net are also standardized but there is a “grey zone” where you don’t know what is patented (yes, another bad thing about software patents) and by whom. This uncertainty may hamper the development of alternatives to the “official” compiler/IDE/… (see discussions about the Mono project on the internet).
These problems about patents and who owns what leads to another important aspect of a programming language: how it is developed. If one company holds everything (like Visual Basic, C# and Java), it is very difficult to suggest improvements, submit them or submit bug reports, etc. And once the company decides it has no more interests in this language, all efforts and developments are slowly becoming useless, as we see with Visual Basic now. Languages like Perl and Python are openly developed by the community. Usually efforts are catalysed by a steering committee (or a structure like that). But in case this committee unilaterally decide to halt the development of a language, source code and other discussion can still be used by other people.
So, if you can choose and even if some languages are are in the hype for the moment, choose a free/open language and your efforts to study it, to find tricks and details will never be nullified by a third party decision.