Hacker News new | past | comments | ask | show | jobs | submit login

"But don't we do this in every language, at least if we're doing a good job?"

There is a difference between expressing higher level abstractions using a language and actually morphing your language in way that you can directly express those abstractions in it.

The latter is often impossible, if not because of technical limitations, but rather due to cultural barriers. If it was only once or twice when I worked in a team where stepping off the official language syntax dogma was considered a punishable crime. I've seen things as innocent as "from x import y" (in Python) being discouraged, and even using the dict function instead of {}.

People don't generally feel happy about seeing unfamiliar things in what they consider their comfort zone. I don't know what to do about it.

Boy is that ever the case! The lengths people will discuss spacing after method declarations, while being completely ignorant of the architectural issues that are rotting their code-base.

> comfort zone

Tentative essay title: Can Programmers be Liberated from the Gentle Tyranny of Call/Return?

> actually morphing your language

Yes. And no. First let's have a look at what "morphing the language" means, by way of natural language. When we use natural languages, we can mostly adequately describe anything we want to using the mechanisms available. Sometimes, we need a new vocabulary, sometimes a set of interlocking vocabulary, i.e. jargon. I haven't really seen a case where we need to tinker with the structure of the language, with the grammar.

When we add a function, set of functions, interlocking objects/methods etc. I would say that we are also adding vocabulary. And that should be sufficient. The fact that it is not sufficient to me suggests that our fundamental "grammar" (not grammar of the surface syntax) is insufficient, not that we need to be able to make up grammar on the spot every time.

Of course making up grammar on the spot also solves the original problem, but it does lead to all these follow-on problems. One being that making up grammar on-the-spot is much more complex than just adding vocabulary, and so you are likely to get it horribly wrong. The other being comprehensibility.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact