[Python-ideas] Python 3000 TIOBE -3%

Masklinn masklinn at masklinn.net
Thu Feb 9 19:50:20 CET 2012


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).

> 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.

[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


More information about the Python-ideas mailing list