5 ms·
For what it's worth, I don't think ruby achieves this goal either. I've been programming full time in Ruby for nearly three years and things like this [1] still
by edbrown23 6y ago
For what it's worth, I don't think ruby achieves this goal either. I've been programming full time in Ruby for nearly three years and things like this [1] still surprise me. Ruby feels less surprising than C++, sure, but that's a pretty low bar to clear.
[1] https://makandracards.com/makandra/46939-ruby-a-small-summary-of-what-return-break-and-next-means-for-blocks https://makandracards.com/makandra/46939-ruby-a-small-summar...
- loopz 6y agoPrinciples of least surprise (or astonishment), is one of cornerstones of Ruby. However, the language itself is dynamic, so take the end result with a pinch of salt: The language's OO syntax is beautifully simple, incredibly easy to structure into classes/mixins and have tons of useful libraries, to write code with. Not always so much for reading code, refactoring or discerning what REALLY goes on in a Rails application..
- gregkerzhner 6y agoI think there is a great middle line for a language that is easy to work with, and provides enough safety to be maintainable for a long time. Environments like C++ and enterprise Java miss this middle line by being too cumbersome. However, Ruby equally misses this middle line, just in the other direction - it's too simple and dynamic leading to lack of maintainability in the long run. The best solution will be somewhere in between.
- skrebbel 6y agoIn my opinion, Kotlin, C#, and TypeScript all come pretty close.
- jolmg 6y agoMy pet-peeve in ruby: '//'.split('/') # => [] instead of ['', '', ''] '/'.split('/') # => [] instead of ['', ''] ''.split('/') # => [] instead of [''] '//'.split('/', -1) # => ['', '', ''] '/'.split('/', -1) # => ['', ''] ''.split('/', -1) # => [] instead of [''] In comparison: "".split("/") # => [""] in javascript "".split("/") # => [""] in python
- simplify 6y agoTo be fair, blocks, procs, and methods are fairly fundamental to Ruby. After a bit of study, they stop being surprising. I'm sure there are other examples, though.