Underpant Gnomes

Kent's suggestion to build your own compiler reminded me of my great idea.  A new programming language called D-Flat.  It would be C# without the stupid case sensitivity. 

  1. Build D-Flat and VS.NET integration.  Make D-Flat's intellisense work as well as VB's.
  2. ?
  3. Profit

I still can't figure out why a programming language benefits by being case sensitive.  I mean look at the guidelines on it.  Ritchie Hughes makes some pretty good arguments in my previous post about this subject (see the comments in C#ase Sensitive), and while he brings up some things I haven't thought about, I still stand by my statement.  I just don't see the benefit in being able to having a case sensetive langague.  I mean, I could go crazy with unicode in naming things, but it just makes it harder on everyone else.  Even just using ë would probably drive people nuts. 

My programming language would allow only a possible leading underscore, characters a-z (case insensitive), numbers at the end of the identifier.  And that's it.

3 Comments

  • Where do I send the check?

  • Then just VB. It can be that hard to imagine why compiler engineers want foo to be different from Foo or _foo vs _FOO.

  • You have described Visual Basic .Net's standard for its identifiers can start with a letter or an underscore, and may contain of course numeric digits. Their ability to start with an underscore is new as of .Net.





    You may well ask why digits cannot also start identifiers while we're at it. I think the problem is that the resulting lexical grammar would be ambiguous as regards floating point numbers: for example, would 1e2 be an identifier or the real number 100 or what?





    Although I have used C extensively I am to be brutal unimpressed on balance with the way in which a C "block" is created, by surrounding zero, one or more semicolon separated statements with curly braces.





    This is because the curly brace is, in many fonts and on many screens, harder to see as opposed to the implicit block structure provided by Visual Basic keywords.





    When you get to be my age you are somewhat less able to see these characters.





    Now, I am well aware that many VB practitioners do not know that If condition Then, and End If, surround in effect a block...which is, as of VB.Net, a unit of variable allocation in a way to do the restless ghost of Edsger Dijkstra good. At best many practitioners in MIS will refer to this vaguely as Structured Programming which they know is a Good Thing.





    Nonetheless, the semantics are provided in a more visible way than those funny little braces used in C and C#.





    I do not mean to push Visual Basic syntax as millenial or the greatest thing since sliced bread, only to point out that for a scientist as opposed to a craftsman, the reality of a language is something more than its glyphic appearance. It is instead the shared content of minds able to appreciate things like block structure.





    If this is elitism, it is an elitism of a strange sort, for it is an elitism accessible to understanding alone.

Comments have been disabled for this content.