I ran across the Sierra Programming Language yesterday on Kickstarter. First, I thought it was odd seeing an open source programming language looking for funding. Most of these projects seemed to move forwards pet projects for some programmer or another. The inventor makes some pretty bold claims (5x-6x faster programming). Then looking at it, a couple of things struck me (roughly in order of realization):
- the inventor was initially trained in Pascal
- he also has never seen C-front
- why is it compiled on Google App Engine?
- it’s case-sensitive *and* in-sensitive — because that’s easier?
- it’s a mess — there are multiple semantic meanings to a given syntactic phrase.
- this throws encapsulation out the window and calls it a feature
- position matters [forehead smack], see Cobol for why this sucks
- thinks variable aliasing is such a good idea — it’s a first-class concept
So, I now know why this project needs funding. The inventor is not a compiler person, and no self-respecting PL person would do this unless it was a job. There is a more fundamental problem at work here — the inventor thinks that the difficulty with programming is syntax. But that couldn’t be further from the truth. Some small percentage of people probably hate the rigidity of programming languages (which Sierra does little to address), it’s that most hate the lack of intelligence on the part of the computer. People want to express themselves ambiguously, and have the computer make intelligent decisions about what they really mean. Sierra thinks people want to write:
loop from 1 thru 100
write currentloop
end loop
when really they want to say is:
show all the numbers from 1 to a hundred
The first example is syntactic sugar, the second requires a system to make at least one intelligent decision (“numbers” really means “integers”), and possibly more (ie. what does “show” mean?).
Truth be told, even with significant AI involved, some people would have trouble programming. It’s just doesn’t seem to be in their nature. But even for those who have the inclination to program, Sierra doesn’t make many improvements over other languages that are already available. It mostly seems to be a mish-mash of some OK features with some known bad ones, all in the name of making C (!?!) easier.
No amount of syntax change is going to make programming faster, easier, or better, especially when it throws out features that make accessing using existing code easier (lexical scoping, independent compilation, etc). Amusingly enough, this project is apparently being written in Python — a language that is significantly nicer than the one being proposed.
I love how the last line in his Kickstarter profile is “I am a genius.” This is one of the stupidest designs for a language I’ve ever seen, including languages designed in the 70s and 80s without the luxury of drawing on so much collective experience.
I love how the last line in his Kickstarter profile is “I am a genius.” This is one of the stupidest designs for a language I’ve ever seen, including languages designed in the 70s and 80s without the luxury of drawing on so much collective experience.