Cool language tricks are just that.

Carl Sassenrath, CTO
REBOL Technologies
2-May-2006 20:28 GMT

Article #0018
Main page || Index || Prior Article [0017] || Next Article [0019] || 7 Comments || Send feedback

REBOL is a creative person's language. Because of that, there's an endless variety of cool language tricks and features that one can invent -- especially in an agile flexible language like REBOL. Some of these are useful, but many are not.

Unfortunately, after inventing a new cool language feature, the first thing many programmers want to do is add it to the language. But is this really wise? Is a language just a stew of little features?

Not really. A language must be bigger than that. It is a way of thinking - a means of matching actions and patterns, not a collection of little fragments glued together.

Now there are a good number of very common patterns, such as a while loop, and there are many times more uncommon patterns. I'm sure you have your favorites. At issue is when do we decide that a pattern, action, or function, should be an official part of the language? That process should be taken seriously. There are dozens of bloated languages that have thousands of functions and features, of which very few are used.

This is a practical matter, not an academic or design matter. It's not can a feature be added, it's should a feature be added. If the feature is used by one programmer once a year is it worth adding? If a feature is obscure to understand or hard to use, should it be part of the standard?

I'd say no. Leave it out or make it part of a special features package or extra component module. I'd much prefer REBOL remain compact and lightweight. (And, I will be the first to admit that RT is often guilty of making this mistake... some of which we will purge in REBOL 3.0.)

Of course, nothing stops you from using your own special language features or packages. And, if you find that dozens of programmers are using your feature, then it's probably time to consider adding it. A good example is Ladislav's Include package. A lot of people use it, and a lot more would use it if it were included (so, yes, it will be).

Please, do not get me wrong. I'm not saying stop inventing cool language features, and I'm not saying stop suggesting adding them to REBOL. What I am saying is weigh the merits of each feature. Filter out less used patterns by publishing them within the REBOL community and see how popular they become. Then, if you've got a crowd using it, please be sure to knock down my door and make me aware of it. I guarantee I'll be interested in hearing about it.


Updated 28-Mar-2017 - Edit - Copyright REBOL Technologies -