Language Bigotry
By Adrian Sutton
I’m getting really tired of the amount of bigotry in regards to programming languages. First let me admit that I’m certainly guilty of technology bigotry – I’m definitely biased towards Mac OS and Java to name a couple of things, but I’m at least aware of it and willing to admit it. Furthermore I can provide reasonable explanations as to why I like them if not actually explain in every situation why I favor them (read: at times I’m just being bigoted about it). When it comes to programming languages and in fact most things in technology, there are few things that are not the best choice in at least some situation – even if it is only one incredibly specific situation. This is even more true when you only take into account the things that are widely used. Lately Java has been coping it (more than usual) with people actually booing at demonstrations that used Java and a lot of fairly immature comments being made. Lets take the view point that Java is a pathetically hopeless, good for nothing language. Everything about it sucks, the people who use it are obviously idiots and it’s too slow to do anything useful with. Obviously the company I work for made a massive mistake implementing their product in Java and at long last we’ve realized it and want to reimplement it in a good language (we’ll probably have to fire all those stupid java developers too but one step at a time). Lets look at the (highly informal) requirements for these products:
- Must provide HTML editing capabilities to users.
- Must provide XML editing capabilities to users including XSLT, W3C Schemas, namespaces, validation etc.
- Must be able to be deployed in-browser.
- Must be able to be embedded into other applications.
- Must be able to be used on as many platforms as possible with a minimum of the following:
- Windows 95 and above.
- Mac OS X and above.
- Linux
- Solaris
- Must work in as many browsers as possible with a minimum of:
- Internet Explorer 4 and above
- Netscape 4.7 and above
- Opera
- Safari
- Must do all of the above from a single codebase with minimal effort.
- Must be able to load and save arbitrary files from the users hard drive and network connections (at the users or integrators request of course). If you know of a way to meet these requirements without using at least the Java runtime, please let me know because I’ve certainly never heard of it. The closest I know of is JavaScript and DHTML but it doesn’t meet the final requirement due to the security restrictions placed upon it. Embedding JavaScript and DHTML modules into other applications isn’t exactly seamless or ideal either. Is the point of this to prove the superiority of Java? Heck no. Java’s crap at a lot of things. For instance, I’d never rewrite ls in Java (unless the OS itself was written in Java or similarly theoretical changes to reality were made). I also probably wouldn’t write a desktop OS in Java, though Java does seem popular for mobile devices so a Java OS there might make sense. For most any language out there, you can find a set of requirements that play directly into that languages benefits. Lets take a really difficult example,
Brainf*ck. If I wanted to show off my skills as a great hacker