For some people, syntax & grammar are literally second nature, so resolving such issues are entirely subtext to the problem at hand. They THINK in a certain syntax, so using that syntax is just a framework for solving the problem. For others the problems themselves are what is core, and the language used is just another abstraction for them to resolve. Other people fall between those two polar extremes; or in many cases, outside of their scope entirely.
Syntax is rarely an insumountable problem; it is a mere convenience/inconvenience. Hence
- I dislike "syntatic sugar" features in a language
- C# and Java are the same, Delphi and Pascal and C are the same - except for minor variations
and there the spaces/tabs vs braces is a mere (unnecessary) inconvenience.
Semantics, OTOH, is much more difficult for some people to get into their head. Hence
- you can write Fortran in any language
- don't use C when implementing backward-chaining rulesets, don't use Prolog when implementing FSMs, don't use FSM languages when implementing RDBMS relationships, etc
and yes, I have seen some mind-bogglingly bad choices of implementation language.
You guys arguing over "proper indentation" vs stacking parens are arguing as much about grammar as syntax.
Syntax sets the context of what you are trying to communicate. As with anything important, context is everything; syntax is the agreed-upon construct that makes words into language and therefore a usable tool.
Otherwise, you just have a collection of words that don't necessarily mean what you want them to; just ask any non-Mexican-Spanish-speaking American who's tried to get around Mexico using only a Spanish-English dictionary.
Better yet, ask the people whom they've tried to speak with.
Your arguments fall more into the latter "it's all abstraction" camp; sure, if you sufficiently grok the underlying machine instruction set you can use any language you choose (and the similarities between popular languages become very visible; in fact, annoyingly so), or write your own interpreter and program in THAT. It's not like THAT hasn't been done before a time or three.
This is great until you want to actually get something done working with other people. THEN the agreed-upon construct becomes VERY important; you can either take the time to become conversant in one of the popular programming constructs, or be ready to teach everybody you work with how to program in YOURS.
Cheers,
mnem
Time to feed the children; I'm just not sure whom to feed them to...