Sunday, July 01, 2007

The missing language element

Yes, I confess I was caught up in Stevey's latest blog rant, and that lead to this, which got me thinking about my ideal programming language. I personally need aspects, but also the cleanup of C++ that is D. And then I realized there was one more missing element.

Why wasn't YACC built into the language, instead of being a separate tool?

Sure, I can see in the old Unix days "one tool should do one function and it should do it well," and I like that philosophy a lot. Having said that, I think that in hindsight using a language and extending a language are not separable concepts: they are part of the same function.

So now I'm busy following Stevey's guidance (mad though it is), and I'm noodling around with what my ideal language might be. To start things off right, I'm adding a new keyword to the language ("pattern") that allows the engineer to express a new grammatical rule directly in the language. Funny, the minute you add that, most everything will need to be expressed first as a pattern, then add in its uses.

And off we go...