Current Softwares have Infinite Features
Few days back I took a decision to stop learning new programming languages. This quiet contrary to what I have done for last 33 years. Since I was first introduced to programming in the third year in the college in has always been my passion. The first language I used was Fortran. Since then I had dabbled with many different types of machine which included:
- PDP-1 which filled a whole room, was make of discrete transistors, had 4 kilo bytes of memory and you programmed directly in machine language
- ICL unit record machine where you did not write program but wired a large panel
- ICIM 101 (ICL System 25) which did not have an operating system and did arithmetic in BCD
All these years I have tried to keep up with the evolution of programming language by learning the state of the art, latest in the line being Ruby.
Then why this drastic decision? Am I getting too old? Not really!
I was scanning through the list of controls available in VB.Net and just realized that it is almost 3 times the number available is VB6. Also, the number of properties and methods for each control is substantially more than what was available in VB6. That makes VB.Net much more powerful than VB6 but it also makes it much more (may be about 10 times more) complex than VB6.Therefore, if a person could master VB6 in 3 months, then a person with same ability will take about 30 months or two and a half year to master VB.Net. By that time it would be obsolete!
The implication is very simple but startling. It is impossible for a ordinary mortal to master a state of the art language. By the time the language is mastered it would be superceded by something different. To this you can add the complication of the availability of third party and open source libraries. We have reached a situation where it is impossible to master a language.
Therefore, for all practical purpose, languages of today have infinite features.
I do not know how long this will continue. If we look back we find that there was an increase in complexity in language syntax from COBOL to PL/1 to ADA. This suddenly “C” happened which had a very simple language syntax and all the complexity was hidden inside the function library. This was a paradigm shift. It was a major change in how we programmed.
The question that we have to ask today is:
In the near future, will be witness a sudden change in how we program?
For a while, it appeared that model driven development and domain specific languages will be the next wave but it increasingly looks unlikely. Anyway, I am going to wait for the next paradigm shift.