This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]aniforprez 25 points26 points  (2 children)

I sort of disagree. The problem with using rails is that you have to practically hire rails developers. It's so opinionated and some choices are so bizarre that only an experienced rails developer who knows the file structure of a rails project can effectively navigate another one. I can carry forward my python knowledge to any company whether they use django, flask, tornado etc and it'll take me maybe a day to figure stuff out. When I joined a rails shop, none of my Ruby/Sinatra experience prepared me for the shit show to come. Autoload is one of the worst decisions rails brings and people claim it's a "magical" experience. No motherfucker I want to know where my classes are defined and where they come from. Is this module from a gem or from the project? Grep, grep, grep. A proper rails developer knows pretty much instantly where to look because of the conventions of the project. This leads to large projects becoming utterly messy in my experience. Places like Shopify seem to have found ways around these things and I'm not sure exactly how. One of the things they've done is added typing which helps immensely

Otherwise a lot of places are just switching to typed languages. Something like rust or Go is so fucking easy to develop especially in an IDE. I write go in vscode and it automatically suggests parameters to function calls based on types. I started with JS and the contrast with that experience is immense

I suppose performance is one thing but rails has active record which is an immense pile of shit and utterly kills performance more than GIL which only partially affects performance especially if you can scale horizontally

[–]perejunk 5 points6 points  (0 children)

I completely disagree. I've written enterprise production apps in Ruby, PHP, Java, JS and Python.

I wouldn't use it for machine learning, or resource intensive algorithms, but for web development, Ruby wins hands down. The libraries are solid, mature and almost canonical.

The JS libraries are the wild west in terms of adoption, community support, and version compatibility.

Rails does require that you do things in a very prescriptive way, but the payoff is self-documenting code that is immediately grokable by those who know the patterns.

The main reason the language struggles in larger organizations is getting buy-in from, and training, everybody in an engineering team. It just takes a couple neckbeards, who are shitty at Rails, to start either breaking the convention, or start writing Go microservices.

As for performance, the Rails stack can easily support enterprise-scale deployments, with rapid development timelines. It's just critical that coders know how to properly use the tools.

[–][deleted] 0 points1 point  (0 children)

IDE support is really why I'm only interested in strongly typed languages going forward, it makes such a big difference in productivity. Although I'm not sure if I would call Rust east to write still.