This year I graduated and landed a job at Logica. Besides that I have been traveling and relaxed (or at least tried to) in the days off between school and work. I have spent some time working now and during that time I obtained the Java programming certificates OCP JP and OCP WCD. I just read a blogpost that said ‘programming isn’t fun anymore’ and I agree with the arguments the authors provide.
One of the first things that I noticed while working with Java is that a lot of the programming is done using frameworks. Sometimes those frameworks are a little bit too high level in my opinion and take away some fun in programming. I just rolled out of college and have some experience with C++ and other languages. I always liked the possibilities C++ gave me, the language is flexible and problems can be solved in different ways. Some more optimal, some more elegant, some more verbose, some more difficult and some more unsafe. However, I like thinking about the problem at hand and be able to express myself in the way I want. Libraries often provide a set of features and you can use them on your way to solving your problem.
Now, after working a while with Java, it seems things are more the other way around. Lot’s of frameworks exist, each solving a problem. You then use these ‘higher level’ frameworks to do the job. This higher level aspect often makes it more difficult to alter details in the way the problem is solved. It’s not really about analytical thinking and devising a fun and good solution, but more about finding/using the right frameworks. Every time a better solution comes to somebody’s mind, they quite often introduce a new framework which replaces the previous one. This was easy to notice while studying for the OCP WCD exam. It tests for obsolete frameworks, which are replaced by other obsolete frameworks, which are replaced by other obsolete frameworks. It’s still useful to know these frameworks because there will always be projects out there that use them. Which kind of emphasizes the idea I am trying th sketch: new frameworks are introduced all the time and projects in the field are using a mix of them. This almost impossible to track. I would prefer having the core functionality in libraries and actual solutions developed by programmers working on the project.
This is just a personal opinion/observation, of which I got triggered to write about by the blog post of Eric Allman.