6 ms·
> So we got Java as the main platform for GC research Perhaps we did, but it's not because it was the only option. Python has the same need, has always been o
by notacoward 10y ago
> So we got Java as the main platform for GC research
Perhaps we did, but it's not because it was the only option. Python has the same need, has always been open source, and has been very popular for as long as Java. Ruby was even more popular than Python for a while, JavaScript might be now. Why didn't much GC research happen in those environments? Is it because people who do GC research looked down their nose at mere scripting languages, even though out in the field all of these have been used for more serious kinds of development? Or is it something else?
- geodel 10y agoIt is more likely Oracle/IBM etc put more dollars where their GC is.
- pjmlp 10y agoProbably because those communities aren't welcoming much that type of research and rather use C than an improved VM stack. There are better options to run Python and Ruby than CPython and MRI in terms of performance, yet they lack mainstream adoption.
- mike_hearn 10y agoJava has a think called Jikes, which is a JVM implemented in Java, garbage collectors included. Being implemented in a higher level language makes it much easier to hack on, and in a time-pressured academic environment that makes it a more attractive platform for research than VMs written in C++ (or worse, C). Hundreds of papers have been published on Jikes-based research over the years.
- pjmlp 10y agoEven Cliff Click, one of the HotSpot Server Compiler authors, is nowadays pushing for doing exactly that, instead of C++ or C. Also something that many aren't aware regarding Oracle's JVM development, is the decrease of C++ code, being replaced by intrinsics and better optimizations across releases.
- CJefferson 10y agoMost python users aren't interested if you break C extensions, and the C extension interface strongly constrains how many parts of a Python VM can look -- have to maintain reference counts, can't change memory layout significantly, can't change how objects are represented.
- weberc2 10y agoMy guess? The Python and Ruby developers have never shown any great interest in performance. Javascript performance only become recently popular. EDIT: I should clarify that "Python and Ruby developers" is meant to mean the language implementers, not ordinary users. And this isn't intended to be a dig at those languages--only that they clearly have different goals for their languages than implementors of Java, Go, C++, etc.
- deleted 10y ago[deleted]
- ScottBurson 10y agoI think the short answer is that it's just a massive amount of difficult work to get one of these high-performance GC algorithms implemented, and it has to be highly customized to the language implementation. Also, the original implementations of Python and Ruby are so slow in general that it's not clear that improving the GC is the best use of one's time. In the open-source Common Lisp world, CMUCL and SBCL have for years used Douglas Crosher's multigenerational collector. Guido and Matz would have done well to use it too -- it's much better, probably, than either of theirs. It's still far behind the JVM, but the point is, Python and Ruby didn't necessarily need the very latest research; they just needed 1995 technology instead of 1975 technology.
- user5994461 10y agoPython is using reference counting.