3 ms·
I’ll admit, despite having developed professionally on ruby for 6+ years I do not get this attitude of ruby being “beautiful”. Some things are easy to read and
by monadic2 6y ago
I’ll admit, despite having developed professionally on ruby for 6+ years I do not get this attitude of ruby being “beautiful”. Some things are easy to read and interpret in ruby (well-written DSLs come to mind) but it doesn’t strike me as anything special in terms of general purpose programming—closures are now common, macros are gaining ground in more formal languages, syntax is carried on in successive languages like Crystal (and is highly subjective anyway, I’d give my hand not to structure my programs with english keywords), and ruby is missing proven features that have hit other languages devs may or may not have noticed.
Ruby has a great liquid hiring pool and can be used to write functional software rapidly. That’s the beauty I see, and it comes at a cost like all languages. There’s nothing especially beautiful about the way that it expresses algorithms; most languages have great aesthetic by leaning into the features and idioms designed into the language. How can a language have aesthetic in a general sense if languages have expressive tradeoff?
- ProZsolt 6y agoWhere it really shines, when you have to manipulate, transform data. You can chain commands as you do with Unix pipes. You can read left to right, and know what is your data structure looks like at each step.
- monadic2 6y agoIs all programming not manipulating/transforming data? Regardless, i’m interested in how the syntax actually supports this. You can build monads in any language to support chaining! I’ve found the block syntax often makes this less readable if you can’t use a method identifier—ruby doesn’t have syntax for anonymous arguments that would allow expressions like `arr.map(someFunc(“arg”, @0))`, so the resulting block is more verbose and distracts. There’s also no currying.