I'm back on the old java trail now, although it regularly feels more like a trial. Now, why is this? I used to really like this language. It was my weapon of choice!
Java is C on acid. C was ok, in it's day. It needed the Java treatment (although I understand that Objective C was already there long before). So there's that funny C-syntax. I'm not sure what might be better as a syntax, but I'm not alone thinking that Java often feels laboured.
Java has grown HUGE. Good god, has it grown!? Oak was it's original name, perhaps Ivy has become a more apt name? It's large and twisty with big hard API's born out of committies and focus groups. All pushed about by entities with hidden agendas (but we'll come to that).
Java is ill defined. Partly because of it's size, but also a couple of omissions and mistakes. Inner classes and anonymous classes are generally bad news. Threading became a nightmare (when half the API got depricated). Dates.. oh lord, don't get me started. There are all kinds of holes in J2EE, and then we get onto 3rd party libs.
Java is clearly a corporate technology. A large corporate owns it (whatever their protestations). Large corporates have the largest voices inside the JCP. The JCP itself seems to have the image of design-by-committie.
Java has a lot of 'frameworks'. J2EE is an easy target because it is a big network of frameworks. But also look at the 3rd party offerings. Mostly they're frameworks, often big, complex ones!
Java seems to breed spaghetti. I have no clue why this might be. I was recently on the sidelines of a large project that was a huge tight network of about a Gig of source. The current one is at risk of going the same way (evolution without strong refactoring exercises).
Don't get me wrong. Java is a useful tool that earns me my daily crust. It's not the worst and certainly better than most. It's relatively productive and generally easy to be expressive whilst using it. I guess I'm interested in how it might be improved upon. Thoughts?
Tuesday, April 17, 2007
Subscribe to:
Posts (Atom)