- tools and culture that's optimized for programmer happiness and productivity.
- Promoting obviousness via the path of least surprise.
- Consistency through well-considered conventions.
- Carefully-designed value-based test suites.
- Building long-term maintainable apps
I have to ask because I am being exposed to Ruby at work right now and I find it, to be quite honest, a terrible language. I'm not trying to start a flame war, I am writing this cause I want to be open minded and have some hard-core rubyists point me in the direction of where I can learn what is good about this language. Specifically:
1) What tools / culture are optimized for programmer happiness & productivity in ruby? - I don't find anything special about ruby at all. Let me know what improves happiness / productivity. I would like to dl whatever tools / ide / plugins / gems or whatever and take a look into it.
2) Does ruby truly promote the path of least surprise? I am often surprised when looking at ruby code because I find traceability difficult in Ruby. Where does the function come from when looking at a ruby codebase? Is it from a gem? Is it from some parent class that this class has extended? I have no idea. How do people make Ruby 'less surprising'?
3) I have no idea what is consistent well considered conventions. How do I know something is a well-considered convention? Just use a rubocop linter?
4) Carefully-designed value-based test suites: Please explain this. What makes testing in Ruby so much better than in other languages?
5) Building long-term maintainable apps: What makes Ruby apps more maintainable?