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

Am I the only one who thinks this is horribly difficult to visually scan?

    item = new Item title: "Awesome", id: 2
Less isn't always better. I like the parens, at least if there's more than one argument.

    item = new Item(title: "Awesome", id: 2)
It's much easier for me to glance at this and know what's going on.



Love CoffeeScript, but yeah omitting parens makes it hard to read in this case. I follow Visual Basic convention. Use parentheses when using the return value. In this case, the constructor function returns an object. Omit parentheses otherwise, i.e. using a function as a method (no return value).


All I can say is you get used to it, and it encourages you to write in shorter sentences, which results in more readable code overall.


What else would it mean?


I can understand what it means, it just takes slightly longer to comprehend without the parens providing a visual cue that it's a function call.

It only gets worse with nested function calls:

    item = new Item title: new Title "Awesome", id: 2
The syntax isn't ambiguous, but that doesn't mean it's easy for humans to parse.


In a language where there are two drastically differing ways to express the same idea, it could mean anything.


How are we having this conversation in English, then?


Well, it took about 8-12 years of practice for me to be able to do it correctly, and at least twice that to achieve my current proficiency. So when I have my choice of designed languages, I'd like one that tries to learn from the failings of the organic ones.


It could easily mean that item is a 2-tuple.

item = (new Item title: "Awesome", id: 2)




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: