Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> 2. People will write it the "bad" way anyway.

People will write bad code in every programming language you give them. I don't see that as a justification for limiting the expressiveness of a language. If you take that line of reasoning too far you end up with Java.



> I don't see that as a justification for limiting the expressiveness of a language.

That's a straw man. I never said that the expressiveness of the language should be limited. There are plenty of languages that are just as (more?) expressive than CoffeScript without the syntactical ambiguity.

> If you take that line of reasoning too far you end up with Java.

That's the slippery slope fallacy. I am in no way suggesting that CoffeScript should have completely rigid syntax. Surely there is a happy medium between CofeeScript and Java. There are plenty of languages that live there.


Or python, which is where the author is coming from. In python there are fewer syntactic ways to write the same thing (semicolons aren't optional, they're just not permitted. The only ways to write and and or are 'and' and 'or', '&&' and '||' simply don't exist. Map literals always look like {key1: value1, key2: value2}, the braces are non-optional ).

Even python's critics would admit it's a very readable language, and it would be unusual to claim it's not expressive.


A nitpick: you can use semicolons in Python.

    x = 3;


The slope slips both ways. If you don't take that line of reasoning far enough you end up with Perl.


> as a justification for limiting the expressiveness of a language

Is it really more expressive just because there are N ways to do it?


Exactly. Expressiveness refers to the realm of problems a language can idiomatically address, not the number of ways a particular unit of logic can be equivalently written. If that were true, you could simply add any synonym for "if" ("when", "whenever", "assuming", "given" etc) to a language and claim the most "expressive" language.




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

Search: