4 ms·
All the Ruby tools are so bad. It's all crap. I started a new job where I have to use Ruby. The company has about 300 engineers, and it seems that no one has a
by chihuahua 3y ago
All the Ruby tools are so bad. It's all crap.
I started a new job where I have to use Ruby. The company has about 300 engineers, and it seems that no one has a good setup.
Some people use VSCode, but no one has a set of extensions that really works well. Debugging by attaching to a running process doesn't work.
Some people use RubyMine, but it's also somewhat broken - for example, it formats the code in a way that RuboCop doesn't like. The debugger works every other week.
A lot of people set debugger breakpoints by inserting "debugger" or "binding.pry" manually. That also sucks because you can't easily disable a breakpoint after you've reached it. And of course it's an idiotic way of inserting breakpoints, because you can't just detach the debugger - you have to delete every breakpoint if you want the the server to just run.
The language itself is also badly designed. A single-line block uses { }, but when it's multiple lines, it has to be changed to "do" and "end" - why? Do/end is dumb for the other constructs - VSCode can easily jump to a matching paren/bracket/brace, but not to the matching do/end. Who thought |x| was a good idea? Look at C# to see how this should be done. That's just scratching the surface, there are so many shitty features in this language.
Then on top of this, you have Sorbet - grafting type checking onto the code, but outside the language. It's about 100 times uglier than just having typing built into the language. Today I learned that you can't provide a Sorbet sig for a module_function - Rubocop doesn't understand it. Rubocop runs as part of "git commit", so you can't do anything that Rubocop doesn't like.
All of this is so shitty and amateur and primitive and backwards. Right now is not a good time for finding a new job as a software engineer, otherwise I'd be out of here looking for a job where I can use a real language with real tools that work and improve productivity rather than killing productivity like the Ruby circus.
Rails has some nice features, but for every bit of productivity gain that it gives you, there's about 10x as much negative impact on productivity.
- NegativeLatency 3y agoI find I’m very productive with rails and like so many things there’s plenty of room for personal taste.
- execat 3y ago> A single-line block uses { }, but when it's multiple lines, it has to be changed to "do" and "end" - why? It doesn't have to be changed. {} work fine on multi-line blocks also. It's probably your linter that's forcing you to change them to do... end blocks: https://try.ruby-lang.org/playground/#code=3.times+%7B%0A++print+'Welcome+'%0A%7D&engine=cruby-3.2.0 https://try.ruby-lang.org/playground/#code=3.times+%7B%0A++p...
- neonsunset 3y agoI'm very sorry to hear this. Switching from C# to most things is painful, because of an uncloseable rift with its tooling, features and standard library. In particular with Ruby, that HN insists on loving to its own detriment, which is by far one of the worst offenders - it is slow, brittle and stuck in the past, just like you described. Some developers will claim "it's a preference" or mistakenly assume it can be compared side by side with other back-end stack. This just stems from critical gap in required software engineering knowledge - Ruby does not and cannot compete with other stacks. I tend to be critical of Go, but I would pick it every time over Ruby if the circumstances would not let me use something better. (seriously, friends don't let friends deploy new projects in Ruby, use C# or Kotlin or any other compiled language that strikes your fancy)
- elevaet 3y agoI'd love it if you could elaborate! I just randomly started learning Ruby for shits and giggles over this last week, so I'd love to hear more of why not to go down this path (not that I necessarily would hit the brakes) I've also been dabbling in Go over the last year or so and really enjoyed playing around with it, but I do find it a bit verbose. On the other hand, its performance is really impressive.
- hbroadbent 3y agoHN has a pretty negative view of Ruby/Rails overall, but I wouldn't let that deter you. Every language/framework has its downsides; If you're enjoying Ruby/Rails then I'd say keep going! It's brilliant for side-projects and smaller teams; At 50+ devs working in the same Rails codebase, it can start to get pretty chaotic which is potentially where a lot of the HN-negativity comes from.
- salzig 3y ago50+ Devs working on a single project/codebase tend to get messy/chaotic. I don't think it's worth blaming this on Ruby/Rails. Over time I learned that Ruby and Rails are as told easy to learn, but sadly you'll need some time to master the Language/Framework. And the difference is quite big and easy to overlook once you do.
- vlz 3y agoI remember feeling similar a few years back when a scripting language was thrust upon me (python in this case) coming then from a few years in statically compiled languages. It felt clumsy and unproductive for an astonishingly long time. I complained endlessly about this and that. At some point though it somehow clicked and I felt at home in the language. Ruby is really not easy to get into with its n ways of doing things and supposed "magic" methods. I think it can be worth it. Rails (7) feels very productive right now. (Never had to deal with sorbet/rubocop though and guilty of just writing "debugger", Rubymine has normal breakpoints as well though.)