3 ms·
Coming from operations perspective Ruby is only scalable because it is great for protyping. It as a deliverable can be challenging due to size and complexity in
by Sparkyte 6y ago
Coming from operations perspective Ruby is only scalable because it is great for protyping. It as a deliverable can be challenging due to size and complexity involved with compiling gems. I'm sure it has gotten easier to deliver with Kubernetes but Java and Go are much easier to ship and deploy.
- gls2ro 6y agoIn my case I managed to scale Rails (a Ruby web framework) both vertically (of course this is always simple with resource lakes like some cloud providers are offering) and horizontally. For example I can spin up as much pods on GCP or dynos on Heroku without doing almost any changes in my Rails app. Things are even more simpler if I would use Sinatra. Of course I am not asserting here that Ruby is a fit for all types of web apps. But what I disagree with your statement that sounds like a very general conclusion stating that Ruby is not scalable. So talking specifically about programming languages and not frameworks, how do you scale Java or Go without operational overhead?
- codeduck 6y agoSorry, this is false. I'm a Java developer who became a Ruby developer who became an SRE. Ruby is far easier to deploy and use than Java or (in my limited experience) Golang, specifically because it has a single, mature, sane packaging system i.e. bundler. Only Elixir + hex come close to the ease of packaging with bundler. The only time you need to compile gems is if you're shipping ones with native extensions - and there are enough alternatives available that you shouldn't need to use gems with native C extensions. If you're running ruby on a modern web server - like puma - it will scale far further than your architecture will likely permit without redesign.
- Sparkyte 6y agoI worked with both Java and Ruby. It's easier to ship Java than Ruby. I've even used puma and unicorn. But when you compare it to just getting a springboot build with Java it's kind of pointless. Puma doesn't even matter anymore especially in a K8S cluster unless the application is big and tall.