Evolution is good

Java Evolution

Elliotte writes that Java doesn’t need properties. I sort of agree, there’s nothing inherently wrong with get/set methods, specially if you have a good IDE to automate that task for you. On the other hand, I don’t see how adding support for this feature, probably inspired as a reaction to C#, really hurts the language.

Nobody can disagree that new features need to be added only if they are necessary, but we shouldn’t resist the evolution of the language. It’s OK to come up with new languages that implement all the greatest and latest features, but there’s no need for existing languages to remain static.

Elliote mentions closures, saying they are not needed because we have anonymous classes. Well we do, but the anonymous class syntax is awkward for a lot of developers. Maybe it’s because I do a lot of GUI development, but I’ve gotten used to them. However, you realize there’s a problem when you see lots of developers staring at the syntax and just wondering what the heck is going on. Closures seem like a very good way to simplify this use case.

In the end, there will always be features added that we don’t like (for me, static imports). But I welcome changes like generics, annotations, and eventually closures. They are things that affect the language, but in many ways, similar to big but often necessary shifts in APIs like moving from AWT to Swing.

Evolution is good.

Leave a Reply