Evolution: A gradual process in which something changes into a different and usually more complex or better form.
There's no escaping that the evolution of programming languages has its advantages and disadvantages. The addition of the java.util.regex package to the JDK1.4 API is a perfect example of Java's development since 1995. However, there's a group of programmers who know only Java and no other language, so it's difficult for them to see why things like regular expressions are included. It all boils down to how your own career evolved.
My own personal evolution is a strangled route through a number of languages: Perl, Unix shell scripting, C, and PHP. I added Java to my skillset halfway through, and I was constantly trying to adapt my thought patterns from Perl to Java code. After many late nights trying to get things to work in Java, it all paid off in the end. However, I always wondered why the Java API didn't have any regular expressions. Until I found third-party packages, such as gnu.regexp and OROMatcher classes, I always went back to Perl and completed the job that way.
I believe that it's time for us to ask ourselves honestly how our own evolution is progressing. Are we constantly learning or are we stuck in a loop?
Musicians spend hours perfecting their skills by practicing scales and arpeggios and familiarizing themselves with their instruments. Before any musician joins an orchestra (or a garage band for that matter), he or she needs to achieve a certain skill level.
Musicians also have access to history, and as seasons come and go you'll notice that certain artists are being influenced by other artists. You'll always have pioneers, however. The Beatles were musical pioneers and a multitude of bands have since been influenced by them.
There are parallels we can draw on as Java programmers. We study the APIs and try numerous examples and routines to satisfy ourselves that we have grasped the concept so when the time arises, we can transfer our knowledge to the situation at hand. The success of any musical performance is based on the ability of the performers to interpret a piece of music; the success of any Java project is based the ability of the programmers to interpret the requirements of a project plan.
Where does our programming history come from? Well, there's plenty of information available on the Internet, mailing lists, books, CDs, as well as from your colleagues.
Have you ever searched Google, for example, in an attempt to solve that illusive problem, and then been presented with seven different ways of dealing with it? We need to easily pick out the diamonds from the dust, the documents that will encourage and educate people who need it the most. What are we doing to lay this foundation down for future programmers?
Jason Bell is a programmer based in York, England. He has been involved in numerous Web projects over the past five years, the last two of which have been servlet-based.