3 ms·
How big is big enough for you to think that Ruby is scalable: Gitlab size? GitHub size? AirBnB size? Shopify size? I think this is a kind of fallacy to take i
by gls2ro 6y ago
How big is big enough for you to think that Ruby is scalable:
Gitlab size? GitHub size? AirBnB size? Shopify size?
I think this is a kind of fallacy to take into consideration scalability as the main metric when choosing the programming language unless you are truly doing a project which has as main selling point scalability.
I would also say that that 90% (it is just a guess based) of projects started with any of these languages including Python, Java, Ruby, Go, Elixir, Javascript will not reach a level where scalability is truly a problem.
There are some things to think about when choosing a programming language like:
1. It is a language which has by default solutions to problems I would encounter. See for example choosing Python over Ruby as there are more AI libraries in Python than Ruby, or choosing Elixir over Ruby if serving multiple concurent connections will be at the core)
2. How quick do you want to iterate the product? How many libraries in your specific domain are available? ...
3. Availability of developers in your area or with a specific domain knowledge if needed
4. How much the infrastructure cost to serve some users per month
Also I agree with you - even if you presented it as a negative trait - that if I want to just spin up a quick prototype, I will almost always choose Rails. I have by default a lot of gems providing a lot of functionalities out of the box: user management, payments, activity feeds, image/video/audio upload and processing, .... Add there some TailwindUI/Bootstrap/Bulma screens and already I can have a good looking prototype to test an idea without too much work.
- Sparkyte 6y agoComing 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.
- codeduck 6y agoThe biggest issue with Rails is remembering how to DISABLE everything you don't want. API-based Rails is really nice.