4 ms·
agreed, add a good linter and problem solved. Ruby has been this flexible since its inception and you don't see people complaining about ambiguity because they
by krisdol 11y ago
agreed, add a good linter and problem solved. Ruby has been this flexible since its inception and you don't see people complaining about ambiguity because they learn how the language works. When there's ambiguity, be explicit.
- seiji 11y agoWhen there's ambiguity, be explicit. Many (too many) programers seem to take a viewpoint of "only type the minimum numbers of characters necessary to get something to work." Then they make their programming goal to be the least characters possible as long as the compiler accepts their input. complaining about ambiguity because they learn how the language works. Some programmers also enjoy learning all the ambiguous edge cases then making sure their code fits them exactly in the way they intend, but not necessarily the way others will read the code. That's why we end up with awful things like "if (abc) def; else hij;" or worse "if (abc) { def; } else hij;", etc. Plus, if your language isn't line-sensitive, using weak syntax but pretty alignment is just a recipe for future failures a few steps removed from when you originally introduced the future inconsistencies.
- vlunkr 11y agoUgh, I used to write coffeescript and I was that way for a while. I left off parens, brackets, commas, etc. wherever possible. I thought it was great at the time, but when I came back to the code after writing in other languages it looked awful, and I wasn't always sure how to read it. Being a little more verbose will save you a lot of time in the future.
- cma 11y agoRuby had to make changes for almost this exact syntax case after it bit people by the thousands, they added: foo () (irb) :2: warning: don't put space before argument parentheses .
- ninjin 11y agoJulia, as of v0.4, has deprecated this syntax [1]. I am not sure where it originally stems from, C? It makes sense from a compiler stand-point since the argument call semantics would most likely be inferred after tokenisation. [1]: https://github.com/JuliaLang/julia/commit/28e7bd4536d06a9e139ea3e3f8e8c868543fa861 https://github.com/JuliaLang/julia/commit/28e7bd4536d06a9e13...
- Daishiman 11y agoAs a person who uses Python to a great degree because of its explicitness, I complain about this in Ruby all the time.