I look forward to Ruby 3 type annotations, and to the continuation of a long history of Rails setting the developer-experience standard for projects in other ecosystems.
- processing images
- providing API for warehouse fulfilment for online retailers (peak load is 100x of base load, latency goes out of the roof before Rails just crashes with OOM)
- real estate indexing with huge amount of data (we could not make the full text search work reliably with Rails)
These were pre 6.0 and I am pretty sure many things changed since, I am just saying it is easy to run into these situations. The bigger your framework the more assumptions are built in that are hard to come by. It is good for Basecamp startups not good for non-Basecamp startups.
Providing API for warehouse fulfilment with peak load 100x greater than base: Run your Rails APP in any number of possible auto-scaling configurations.
Real Estate Full Text Indexing: Use ElasticSearch alongside Rails to provide highly performant full text indexing/searching
- https://blog.codinghorror.com/performance-is-a-feature/
- http://www.nicolas-hahn.com/python/go/rust/programming/2019/...
But I really think there is a difference between framework/programming language performance and acceptance-level app performance.
It is possible to have a good performance app (Github, Shopify ) even if you don't believe that Ruby is good enough in this category.
I agree with your point about a sparser number of libraries, and sometimes that slows me down. That said, Elixir's ergonomics and documentation is fantastic.
I'd say part of the reason is expressiveness of the language (since it's very easy to make DSLs with Ruby and Rails benefits greatly from them), but another part is cultural. Python, .Net and especially Java communities tend to suffer (and benefit!) from a strong emphasis on correctness and purity over speed and developer experience.
If so, how much work is involved?
Python doesn't have an idiomatic equivalent to block arguments, but you could probably write an equally usable routing API. It just wouldn't look as cute because there would still be parentheses.
What you end up doing in e.g. Flask is decorating your controlle method with the path that routes to it. Turbogears controllers serve routes based on class and method names without the extra wiring that Rails has. Django has a Rails-style "URLconf" (https://docs.djangoproject.com/en/2.2/topics/http/urls/) that actually seems a lot more intuitive and explicit to me.
These provide like a tenth of the functionality of a bog-standard Rails app, and have a hundredth of the ecosystem built up around them.
Unless you’re at serious scale the answer is going to be not enough.
Or how many metric tons of CO2 do you want to produce before switch to any of these. You see performance is an interesting problem.
As somebody pointed out there are millions of applications that can use Rails because scale is not a problem for them. If all those millions of applications do 1 req/s then you have 1M req/s served with Rails instead of something that is more reasonable. The CO2 production of these low scale Rails web app quickly add up.
Does anyone have experience with both?
I’m especially interested in how .Net Core works with Postgres on Linux.
Most of then tutorials focus on using the entire MS stack.
I find Rails gems and ecosystem to be more mature also ORM is friendlier since I felt more comfortable using active model than EF
All of the above could be a personal preference since I worked on rails for a longer time. At the end of the day I got to an end product with both
However I use .net core with MSSQL and on a Windows machine.
There's always a bunch of pros and cons to comparing languages and frameworks, I'll just say neither are really going to hold you back from doing anything.
Programming with Ruby and Rails is like a breath of fresh air compared to Django. Working with Django was just so painful and awkward (especially if you are trying to write tests for things). I used to have a laundry list of a couple of pages worth of things that I hated about Python and Django when compared to Ruby and Rails, but I can't seem to find it right now.
Going to have to disagree with you there.
[citation needed]