On Thu, Feb 9, 2012 at 10:50 AM, Masklinn <masklinn@masklinn.net> wrote:
On 2012-02-09, at 19:34 , Guido van Rossum wrote:
They all agree multi-core is the future and whichever language can deal with them better is the future too.
Surely not JavaScript (which is single-threaded and AFAIK also uses refcounting :-).
I don't think I've seen a serious refcounted JS implementation in the last decade. , although it is possible that JS runtimes have localized usage of references and reference-counted resources. AFAIK all modern JS runtimes are JITed which probably does not mesh well with refcounting.
In any case, V8 (Chrome's runtime) uses a stop-the-world generational GC for sure[0], Mozilla's SpiderMonkey uses a GC as well[1] although I'm not sure which type (the reference to JS_MarkGCThing indicates it could be or at least use a mark-and-sweep amongst its strategies), Webkit/Safari's JavaScriptCore uses a GC as well[2] and MSIE's JScript used a mark-and-sweep GC back in 2003[3] (although the DOM itself was in COM, and reference-counted).
I stand corrected (but I am right about the single-threadedness :-).
And note that a single-threaded event-driven process can serve 100,000 open sockets -- while no JVM can create 100,000 threads.
Only because it's OS threads of course, Erlang is not evented and has no
problem spawning half a million (preempted) processes if there's RAM enough to store them.
Sure. But the people complaining about the GIL come from Java, not from Erlang. (Erlang users typically envy Python because of its superior standard library. :-)
[0] http://code.google.com/apis/v8/design.html#garb_coll [1] https://developer.mozilla.org/en/SpiderMonkey/1.8.5#Garbage_collection [2] Since ~2009 http://www.masonchang.com/blog/2009/3/26/nitros-garbage-collector.html [3] http://blogs.msdn.com/b/ericlippert/archive/2003/09/17/53038.aspx
-- --Guido van Rossum (python.org/~guido)