4 ms·
Everyone who has used Ruby for some time (at least one full project) will have different bad memories, as well as probably some very happy memories. Few would
by blunte 9y ago
Everyone who has used Ruby for some time (at least one full project) will have different bad memories, as well as probably some very happy memories.
Few would dispute that Ruby is a great language for getting things done with small, expressive code. And Rails, which is what probably brought most of us to Ruby, was at its time the ideal web framework. It was able to be generations ahead of most other frameworks because of the capabilities Ruby afforded it.
However, time moves on, versions of the language, framework, and gems change. Projects grow and evolve. These are where the pains really begin. But this is not really so much about the language but about real world project lifecycles.
For me, the first real pain was performance. At some point, you cross a threshold where the performance goes from reasonably ok to WTF is happening?. Then you start profiling and discover that the wonderful collection and ORM operations you've been doing are extremely expensive. That's when it stops being fun.
Then, if you explore other languages, you may discover the absolute joy of Clojure (once you devote the time to think functional and appreciate Lispy syntax). Plus you get a big performance boost (as well as access to tons of Java libraries that are usually very performant). But alas, then you discover that there's no real Rails equivalent for Clojure. (I now understand that there are great options if you're willing to cobble your own together.)
Finally, you might hear of Elixir + Phoenix. Suddenly (again, if you're willing to learn and think functionally), you find joy. Performance is much better than Ruby, the Phoenix framework feels Railsy, and you get the benefit of the industrial Erlang VM underneath it. The downside, however, is that Elixir and Phoenix are young. Fortunately the community is friendly and helpful.
For me, it's not that Ruby is bad; it's just that I now realize how much better functional programming is for me personally. And when I just need something quick and dirty, Python is already installed. Ruby is like an ex-girl(or boy)friend that you still like, but who no longer fits into your life.
- bjz_ 9y agoStill no types in Elixir land, nor control over effects. Dialyzer was a real disappointment with its performance, poor error messages, lack of ecosystem support, lack of parametric polymorphism, and it not reporting obvious type errors. Really hoping for more advances in distributed type systems in the coming years, but most folks don't really need the very specialised performance envelope that the BEAM gives, and would be better off elsewhere with a type system that caught more mistakes up-front, and provided better domain modelling tools.
- nautilus12 9y agoThis is the main reason I chose Scala as my next poison as opposed to Elixir. Do not regret one bit
- emodendroket 9y ago> Everyone who has used Ruby for some time (at least one full project) will have different bad memories, as well as probably some very happy memories. I feel like the happy memories are more for greenfield development than maintenance. I don't have any particularly happy memories of Ruby anyway.
- blunte 9y agoThis pretty much sums it up. It's fun to write things in Ruby. It's not fun when those things grow up and need care and support.
- emodendroket 9y agoYeah, I feel like everyone I worked with on that project (the original guys were long gone) who wasn't a dyed-in-the-wool Rubyist just really came to hate Ruby.