Wednesday, February 20, 2008

Who owns a language

There is an interesting question in Ted's blog posting:

Who owns a language and therefore influences its direction?
Is it Anders Hejlsberg who owns C#, is it James Gosling who owns Java and Matz for Ruby? Do they really move these languages forward or just try to copy features from language A to language B?

That's like Mrs Merkel deciding about adding new phrases to german language or Mr. Sarkozy deciding about new words in a french dictionary.

The question for Smalltalk is easily anwered: it is YOU. Everything is open and therefore easy to change. You have full control.

I tell you a little secret: Smalltalk is no a language by default, it's just a dynamic object system. Since anything in the world is an object you can easily bring it into this system. That's where its power comes from.

Smalltalk as a language is just mapped to this object system. The language is just composed of objects and methods and like any other part of the system changable and extendable.

Want to have an example: you need a repeat-until control structure (which is not there by default), just add a #repeatUntil: message to the block class. If others find it usefull this may take it's way to one of the standard images (predefined object worlds). But even if it gets not accepted by a broader community you can easily have it and manage it on your own...

You have a common nominator (called Smalltalk ANSI Standard), but if required you can speak your own dialect (Smalltalk with Namespaces, Smalltalk with Traits, ...) - if the dialect gets a wide interest it may survive.

Next question is who influences the ANSI Standard ;)

No comments: