Log in

Thu, Nov. 2nd, 2006, 11:12 am I work in a factory, don't wanna be late

I've been doing a lot of Java recently. Once, long ago, I used to do Java as my day job and always found it oddly constrictive. In the intervening half decade plus my contamination^W exposure to scripting languages has only deepened so this time around the constrictiveness has been upgraded from "Like an overly tight pair of jeans" to "Like having my balls crushed in a vice".

Part of the reason is, I think, the strange and almost religious reverence of Factory classes. I often joke with my flatmate, a paid up member of the Cult of Java, that in most sane languages you can increment doing any of the following

Oh how we live the rock'n'roll lifestyle, sitting round the fire, swapping programming jokes.

I understand the point of factories, especially since, I'm lead to belive, you can build apps using Beans etc etc that will automagically scale from one machine to a massive, n-way failover clustered farm, but sometimes it may go a little far.

Yesterday I was attempting to get rid of all warnings from my Java app because the little yellow exclamation marks! in Eclipse have the same effect on me as an single upside down book in a bookcase does on an OCD sufferer. I put this down to my years working at the big Y! or possibly too much time playing Metal Gear Solid (most. overrated. game. ever[*]). I finally get down to my last set.

> Also, what's with "System.out.println(1900+date.getMonth());", you sure do > have a lot of months in your system ;-p

*cough*, err, slip of the Copy'n'Paste. Fixed now.

> rather than messing with that damn silly legacy "Date" object ...

Unfortunately it's not my choice - I'm being handed a Date object by another API.

> J2ME

I dealt with that abortion way back when in 2001 or so. I can't think of a worse language for doing games programming in than the MIDP configuration of Java. It's like they actually sat down and tried to come up with the most retarded language for churning out games and instea dof using that as something to avoid they used it as the spec for the project.

MIDP 1.0 is just plain poor, 2.0 is a little better, but the main problem is that most devices don't actually implement them well (read buggy as hell).

CLDC is a major gripe for me, CDC is very usable (but hardly anything supports it), CLDC has all the flaws of Java 1.0 when it could have been written to take advantage of improvements in the language ... *grrl*

There are times when I think that they need to seriously think about removing a large number of classes and just call any code that use them as 'legacy' (ie remove any Java 1 features that have been superceded by something better, see "Vector" as a classic example).