Note that I've been a Ruby developer for over 12 years now. Worked in Ruby-shops almost exclusively. Yet the performance is often so bad that I have to do work in python. E.g. quite recently a scraper, wrote it in Ruby -obviously-, found out that we couldn't get performance acceptable, rewrote it in python. Our ETL using Kiba-ETL had to be ported over to a rust-based ETL set because the nightly process took longer than 24 hours, causing it to hit it's own mutex locks. The Rust-based system ran this same data-conversion in under two hours on the same server.
This is not hate on Ruby. It's a known fact it's one of the slower languages and runtimes out there. It's getting better and getting there fast. Yet the tradeoff of being extemely developer-friendly is that performance suffers. I'd gladly take that tradeoff every day (untill it becomes inpractical and we port that ruby tooling to something else).
How is Python gonna improve performance when writing a scraper, it's mostly about doing a bunch of network requests right? You could do threading in Ruby you know. Both Python and Ruby have a VM lock (GIL, have no idea what it's called in Python).
Python is good choice for scraping due to the many ready made libraries but I don't get how performance was a win over Ruby.
Node is a different story, V8 (and competing JS engines) had huge effort poured into them by Google/Microsoft so it's fast. Python never had that kind of investment afaik. We will see if Shopify can narrow the gap between Ruby and JS, I know it's a reach but they already improved Ruby performance around 25-30% since the project started (about a year?). I am optimstic the performance gap will narrow since what makes JS faster is a JIT. There is no magic here, only effort and investment which costs money.
GIL (Global Interpreter Lock) is the Python name. GVL (Global VM Lock) is the Ruby name.
Though with Ractors in Ruby 3 it's not actually global (unless one Ractor is a “globe” and a multiractor program is super global.)
Yep, Crystal is not as mature as Rust even these days, but it is cute and useful.
There's hardly any resources for Crystal: tutorials, courses, books etc.
And learning something new is an investment too. Learning Crystal (or even sorbet) may help to solve the immediate problem. But I then have a skill that is hardly relevant anywhere else. Contrary to Rust, which has a bright future and is in high demand.