Java is the Snubby-Nosed Scissors of Programming Languages

Here is an example from Arnold, Gosling, and Holmes that illustrates my point:

When you design a class, you can decide whether to trust its extended classes. The SortDouble class is designed not to trust them, and that is generally the best way to design classes for others to extend. A guarded design not only prevents malicious use, it also prevents bugs.

In other words, Java tries to make it safe so crappy programmers won't hurt themselves.

This, unfortunately, also prevents good programmers from doing good things.

Consider the "reflection" quality of the Ruby programming language. Ruby lets you define or redefine just about anything you want. Wish the String class did something different? Fine, you can rip it open and insert or replace any bits you want.

This, of course, is very dangerous. Nonetheless, it can be a powerful tool if used smartly and judiciously. Java doesn't even give you that option. It wants to keep you safe.

The problem with languages that try to keep the programmer safe is that bad programmers still generate crappy code, and the good programmers just get frustrated. I'm frustrated.

Comments

Comments have been closed for this entry.

re: Java is the Snubby-Nosed Scissors of Programming Languages

Forget this Java fad; real programmers use COBOL. (And forget GUI interfaces; give me an IBM 029 key punch and a pack of blank 5081 cards!) LOL