The everyday ramblings of an everyday geek.

Thursday, November 24, 2005

The Beast is here to stay

I've officially fallen for Debian in a big way. My initial issues with The Beast were cantered around not being able to complete the various web projects I had in mind, because I couldn't get JBoss to run. Pah! I've been doing more and more research into Enterprise Java, and really, EJBs aren't worth the resources they require. Instead I'm using Hibernate, PostgreSQL and Tomcat. I can do every thing I needed to do in EJBs without the container overheads. Sweet!

The other reasons are all packages. They are the most enabling technology I've seen for some time and I wish Mac OS X had it built in as standard. I was having trouble with LaTeX. I really wanted to use vector fonts rather than the default bitmap. I simply sshed into The Beast did a apt-cache search for times.sty and had the whole package installed and ready to go in under 5 minutes.

My only real issue with Debian from a server/developer point of view is Java. Now, I understand it's not everyone's cup of tea, but it fills a gap. I'm pretty fluent in Java and C++ and there is simply no arguing that it's easier to write safe, multithreaded programs in Java than C++. Sure, it has minor performance issues, and they really are minor nowadays, but in terms of an enabling technology it really is fantastic. I mean, if I wanted to teach somebody a new language, it would be Java. It's powerful enough to get what you need done, incredibly well supported and prevents you from doing any real damage to your development computer. It's also easier to pick up. I know people have issues with the having to write System.out.println instead of printf, or the hoops you have to jump through to get input from the CLI, but really, that's a minor penalty, especially when you consider that writing a GUI  in Java is probably easier than a CLI app and that impresses the bejesus out of noobs when they see the window they created spring up on the monitor - way more than HelloWorld.

So why then isn't Java installed by default on Linux systems, and more importantly why isn't it part of the standard deb packages? It appears entirely political / religious. Java isn't a free platform, in that the source code isn't freely distributed and that all the JVMs are either written by Sun or under licence from Sun. This great for Java developers, up to a point, because it means that you can guarantee that your code will run anywhere, at least anywhere that Sun supports - and really that's just Linux, SunOS, Windows and Mac OS X (under licence). But it's lousy for BSD, who have to run it through the Linux emulation layer (although there is an effort to port it to BSD natively) and it also means that Debian et al. refuse to distribute it with the OS because its not completely open. The process gets even more ridiculous when you think what Linux is: a server OS. You have a few options when writing server software: PHP/MySQL, Tomcat/Java, Mono/Apache. The only one of those which is easy to install on Debian is PHP/MySQL. This is a pretty good solution, but my experience with it has always been that it's a bit fast and dirty. I like Mono (or at least I like .Net) but it doesn't have the same support as Java - although it is getting better. If you want to write serious Web Apps for Linux the real money is still on Java.

So here is what I want. I can understand that Debian shouldn't be installed with Java as default. I can even understand that it shouldn't be installed pointing to a Java repository by default, but why isn't installing Java a case of un-commenting the package repository, then running apt-get update? Why can't I then install tomcat, hibernate, tiger et el, just by running apt-get? If anything this motivates me to join the Debian developers group and get this up and running, although I can't believe that I'm the first to suggest it.


Post a Comment

<< Home