4 ms·
There is no such thing as: 1. Replace Ruby implementation 2. ??? 3. Everything is 3x faster Whatever an implementation or product claims, it's just not poss
by YorickPeterse 10y ago
There is no such thing as:
1. Replace Ruby implementation
2. ???
3. Everything is 3x faster
Whatever an implementation or product claims, it's just not possible. While we could benefit from not having a GIL (something Truffle has if I'm not mistaken), it's not a free trade-off. For example:
* JRuby typically requires quite a bit more memory compared to CRuby, the same probably applies to Truffle
* Dependencies might have to be replaced if they're written in C. I personally don't buy Truffle being able to support all extensions. It's super fucking hard. I spent a few years working on Rubinius and had the unfortunate experience of having to deal with C extensions a lot. Supporting these properly is really, really difficult.
* JRuby might not work on all platforms we support. For example, we support Raspberry Pi's and the likes and it's not clear if JRuby would work there
Most importantly of all: a large portion of our slowness is due to badly written SQL queries, code that hammers the database way too often, and our Git operations. None of this would be solved by switching to a different Ruby implementation. The only way to solve this is to:
1. Solve the code
2. Educate developers so they don't make the same mistakes
3. Add linting rules and the likes so our CI environment catches any mistakes (where possible)