Sorry I haven’t had any recent posts lately with all the holiday festivities, I simply didn’t have the time. One thing I did take time to think about is the current state of programming. I must say that I am rather disappointed that a lot of the people graduating college these days have not experienced the joys and sorrows of compiling and linking program.
Modern programming has changed a lot through the years. I think a great deal of changes were brought about through the creation of Java. I have to give it props, it was the first widely popular and accepted interpreted languages. I know some people might say Perl or Lisp (I myself used to be a Perl Monger) came sooner and have a large fan base. Sun’s Java paved the way for the modern programming languages.
Microsoft was quick to follow Sun with their product Dot Net. This is where I spend most of my days anymore for work. They did come up with a slightly different product, an interpretive framework on which C#, Visual Basic, and now F# are a part. Visual Basic is now the most popular language from Microsoft and C# is now a distant second.
These interpreted languages are fast to develop in but still rely on a middle layer to interpret the code you wrote into something the CPU will understand. To this end it is both a strength and a weakness. With this you can adapt your code to change at runtime, which in reality maybe five percent of developers/programmers use this on a regular basis. Another strength is that it is heavily abstracted and which makes coding faster for experienced programmers and allows the novice to do something that they otherwise wouldn’t be able to do.
Not much has changed in compiled languages recently, I think part of this could be due to the fact that Dot Net and Java are so popular. C++ is still popular and in use today. Although its market share is really dwindling. C++ is great for being able to tell the computer exactly what you want. In C++ you are some much closer to the machine code, you can practically see the registers getting loaded and the flags being set on the processor.
Of course, once a compiled program is running, nothing comes between it and the CPU (except for the OS). Lots of control comes with the compiled language as does responsibility and tedium.
A lot of really good practices, patterns, and algorithms are heading to the scrap heap if compiled languages fade into obscurity. I know people will say they will never go away and you are right, they won’t; but they just will not be used by Joe Programmer, who is just trying to pay the mortgage.
These kids today don’t know how good they have it. I still hear the tales of yore; where one man would wire the circuits to just get program to work. I fortunately am not one of them. I am sure I would have learned a lot from experience like that; perhaps the newbies coming into field would benefit from the things I have learned in my personal tales of yore.