The rantings of a beautiful mind

On life, society, and computer technology.

My Photo
Location: Toronto, Ontario, Canada

I live in the Fortress of Solitude. I drive the Silver Beast. My obsession is justice. I used to be a Windows software developer. I retired in 2000 when my stock options helped me achieve financial security.

Tuesday, November 21, 2006

Creeping Featuritis

From my perspective, Java, C#, and C++ all belong in one category: statically typed, feature-rich, straightjacket programming languages. The static typing imposes a complexity and messiness that outweigh any safety benefits. The innumerable features also needlessly add complexity to the language, making them a poor substitute for “metaprogramming,” which is a powerful facility found in Smalltalk, Lisp, and other dynamic languages. The end result is a basic lack of flexibility and versatility which leads to my term “straightjacket.”

In other words, Java, C#, and C++ are, in my opinion, mere variations of a basic language paradigm. To compare the languages among themselves and say that one is “better” than the other because of this feature or that is a silly exercise in semantics...they share the same essential drawbacks, after all.

We need to get away from static typing. We need a minimalist language, one not encumbered by numerous features of convenience. Language designers just can't help "evolving" their languages by continually adding more and more features. For example, look at C# and Ruby. Beware of Creeping Featuritis.


Post a Comment

<< Home