6 ms·
In short: money, money, and money. Ruby has what, a handful (if that?) of people at Heroku who work on Ruby some of the time? Not sure if Matz does full-time o
by Dirlewanger 12y ago
In short: money, money, and money.
Ruby has what, a handful (if that?) of people at Heroku who work on Ruby some of the time? Not sure if Matz does full-time or not.
- jiggy2011 12y agoIt does seem strange to me that so few people are paid to work full time on ruby etc (core tech) when you consider the massive total benefit from making ruby a few % faster or better. Why is the funding not there?
- adamnemecek 12y agoI'm guessing that people like Lars Bak are hard to come by. I remember reading somewhere that Google opened the Aarhus office mostly because he didn't want to move to Mountain View (I might be misremembering so don't quote me on that).
- munificent 12y agoThat's correct. Well, more precise would be he didn't want to move back to Silicon Valley.
- MBlume 12y agoTragedy of the Commons
- makmanalp 12y agoIt would be very cool to start a crowdfund-esque campaign that also encourages corporate sponsors to build a fund to hire fulltime developers and create an agenda devoted to performance.
- comex 12y agoIn theory this sounds like the kind of problem snowdrift.coop was created to address, if that ever gets off the ground.
- thinkbohemian 12y agoI think there are a few issues. The first is funding. If you are an engineering manager and trying to ship product, you don't want a 25% faster Ruby VM in 10 years, you want someone to benchmark and optimize existing code in existing products 25% today. I agree that it's a good pay off, cost versus benefit...however the benefit is spread around hundreds and thousands of companies. Google gains marketshare for chrome when V8 gets faster, there's very few companies that get significant advantage explicitly from making Ruby faster for everyone. If you're paying to make Ruby faster, it's also getting faster for your competitors too (if they use Ruby). There are a bunch of core contributors that are very active. Several of their companies allow them to spend time contributing (most of them are from Japan). Another example is Aaron, he is on Ruby core and his company allows him some time to contribute to open source, so this is sponsorship in a way. I while a company stands to benefit from sponsoring a full time developer, they benefit just as much if someone else sponsors a full time developer. Right now there's not enough companies with either a business incentive, altruism, or interest. Perhaps there are companies out there interested in sponsoring full time devs who just don't know how (and to your point cannot find them) but I think that would be the minority case.
- jbergens 12y agoOracle seems to spend some money on java and JRuby which is pretty fast and will get even faster the coming years. Not sure how much if any they are directly funding JRuby but they are funding the JVM which is used by JRuby.
- cheald 12y agoPer Chris Seaton's comment in this thread: > Oracle Labs pays two people full time (including me) [to work on JRuby] and a PhD student, and more soon.
- chrisseaton 12y agoRedHat also pays two people full time to work on JRuby, and Oracle Labs pays two people full time (including me) and a PhD student, and more soon.
- thinkbohemian 12y agoWe sponsor Matz, Nobu, and Koichi. Of them Koichi works pretty much full time on speed. He implemented partial generational GC in Ruby 2.1 and incremental GC in 2.2. He also implemented faster keyword arguments https://bugs.ruby-lang.org/issues/10440 https://bugs.ruby-lang.org/issues/10440. There's actually been a bunch of great performance increases in the past few years in addition to the GC. Optimized method cache invalidation by the late James Golick, frozen string pool for hash keys by tmm1, using vfork instead of fork, etc, copy on write GC. There's also new features, like Ruby's ability to GC symbols that let developers use symbols in more places and spend less time converting back and forth between strings. So yes, money is a factor. Having employees work on it full time helps. Despite only having 3 full time employees Ruby has made some pretty impressive improvements recently.
- aaronbrethorst 12y ago> late James Golick Holy shit, how did I miss this? edit: more details here: https://news.ycombinator.com/item?id=8804624 https://news.ycombinator.com/item?id=8804624 That's really sad...good guy
- MrBra 12y agoAlso I believe this will help a lot: http://rbkit.codemancers.com/ http://rbkit.codemancers.com/
- rurban 12y agoBut basic knowledge of fast VMs would also help. Maybe get an engineer from a good school? E.g. a decent GC would help ruby a lot, i.e. Cheney Copying Collector with thread support. Ruby is used on devices with lots of RAM and big cache lines. Or optimized data structures (nan-tagging, better tagging) and slimmed down ops. I need 32bit per op plus 2 args. Check out how much more ops fit into your cache line then. The ruby hash table implementation also sucks. Write a good one. Study the literature. It's basic engineering, you don't need to be a genius, really. And embrace types, either optional or inferenced. Optimize on type information.
- cheald 12y agoI'm not so sure it's all about money. Ruby and Python are significantly more complex languages than Javascript. By contrast, LuaJIT can absolutely wreck V8 performance-wise, but Lua is a substantially less complex language. v8 doesn't really do multithreading, for example, so it's able to take a lot of shortcuts that save a lot of time. v8 doesn't have built-in Bignum support, and doesn't support non-UTF-16 character encodings, so there is a lot of work that it doesn't have to do, where more full-featured languages have to make sanity checks and do conversions under the hood frequently. Ruby's metaprogramming constructs are extremely powerful, but their rulesets are fairly complex, so the VM has a lot of bookkeeping to do to ensure that everything works well. I don't know Python's internals that well, but I do know that Ruby spends a lot of time making sure that all those things play nicely together without the programmer having to exert much effort, and that does incur a performance penalty. v8 is an absolutely excellent piece of engineering, but it's a tool that occupies a slightly different problem space than the Ruby and Python VMs do. That's not to say that Ruby and Python don't have gains they can and should make, but that it's not as simple as pouring money in one end and watching performance come out.
- kchoudhu 12y agoIt's not unfair to say that python doesn't do multithreading either.
- cheald 12y agoIt supports it as a language construct, even though the GIL gets in the way of actual parallelism. As far as I'm aware, EMCAScript doesn't provide any concept of threading within the language itself. You can get it by spinning up multiple separate VMs in separate threads and passing messages back and forth (which is what web workers are), but that's a function of how the VM is presented in the context of a larger application, not a feature of the language itself. Jython and JRuby don't have GILs and are able to achieve full parallelism using the same language constructs that CPython and MRI use.
- kchoudhu 12y ago
- deleted 12y ago[deleted]