Send to Printer

development

Drowning in the koolaid

May 22, 2005 15:37:37.575

Darren Oakey, commenting on David's post, has not only drunk the koolaid, he's swimming in it. To wit:

Static typing makes life easier because it SIMPLIFIES the decisions you have to make. Then it makes life orders of magnitude easier because it allows the IDE to provide useful and high quality information about what you want to do - there without changing context, without looking a different IDE. Final classes, checked exceptions make life EASIER because you don't make mistakes. The protect you from both misuse, and the far more common programmers affliction of stupidity - and that protection makes programming EASIER because your program works. First time and every time.

Yep, "final" makes things easier, IF the original designers thought of every possible contingency that I as a developer might ever run across, anytime, anywhere. Static typing makes it so easy that developer never, ever have to use casts. Not once - it simply never happens.

The last part of his comment is the telling part - he wants these things in order to protect the developer from his own stupidity. Just remember that the next time you use one of the mainstream languages - many of the "features" were designed with the idea in mind that you, the developer, are a moron.

As to his last comment, that these things ensure that your program works right the first time and every time? Pardon me while I go have a giggle fit...

Comments

yeah, sure

[Troy Brumley] May 22, 2005 23:53:52.999

Final is like having a door slammed in your face. It's there more for speed and optimization, but we've bought the spin that it somehow makes our job easier. It doesn't, it makes the compiler/VM writer's job easier.

Hmm...

[murphee ( http://www.jroller.com/page/murphee )] May 23, 2005 5:38:25.333

Why are Smalltalk programmers so fixated on the "final" keyword in Java? Java actually took a different road than C++ and C# (where methods default to non-virtual) and defines all methods as virtual, except the ones that are explicitely made final. This adds in an additional feature and allows better control over the behaviour and the contract of the class if you need to do so. OK, I know, I know... the Smalltalk way of doing is so much better and makes your teeth whiter and your breath smell of roses... while Java and other statically typed languags eat 5 kittens a day...

Why is final bad?

[ James Robertson] May 23, 2005 7:23:39.999

Comment by James Robertson

"Final" sets our teeth on edge for a simple reason: it assumes that the library designer is omniscient, and that the end develeper will never run across a circumstance where customization by subclassing would be valuable.

Easier and Simpler...

[Mel Riffe] May 23, 2005 16:33:53.996

You know why all the latest Java IDEs have all those short-cuts and quick-keys? They're trying to match the sheer speed of typing:

kittens = JavaKittenEater newKittenBatch.
kittens do: [ :kitten | kitten meow ].

Instead of:

List kittens = JavaKittenEater.createNewKittenBatch();
for (Iterator iter = kittens.iterator(); iter.hasNext()) {
Kitten kitten = (Kitten) iter.next();
kitten.meow();
}

Thanks Java for making it so SIMPLE and EASY I don't have to think. :-|

 Share Tweet This