From: David Simmons Date: 2001-11-27T04:26:23+09:00 Subject: [ruby-talk:26542] Re: Table: Ruby versus Smalltalk, Objective-C, C++, Java; "Ned Konz" wrote in message news:20011126162516.809A31B43B@helium.ruby-lang.org... > On Monday 26 November 2001 06:46 am, Thomas Gagne wrote: > > David, your table seems to mix language features with library features. > > > > Native Threads - isn't this an implementation issue? Doesn't Smalltalk MT > > use native threads? I personally believe this is a ding against VW. > > MT uses native threads, but only works on Win32 systems, which have their own > threading model. And, significantly predating Smalltalk MT, QKS Smalltalk [aka SmalltalkAgents] (1991-1998) had portable pre-emptive multi-threading across both its Mac [green-threads (native threads appeared later on the Mac)] and Win32 [native-threads] platforms. The column's question(s) are ("standard" implementations language [not just one dialect]): first, there is "portable" threading model; second, do the portable facilities integrate-with/layer-on-top-of "native" threads? ==== As to library features, as I have been so recently told (of late) in SmallScript feedback, quite a number of people take the strong [and, in my opinion, partially correct] view that libraries and tools are a key part of the collective elements that form a (dynamic) language. I.e., historically in most dynamic language systems the frameworks and IDE were an integral element and play a key role in the development process and thereby define the language and its capabilities/productivity for its users. > > Cross-platform systems (like Ruby) do better when they provide their own > threading (since the target system may not provide a threading model at all, > or it may be substantially different than what is needed). Classic Smalltalk-80 has had cross-platform fully portable threading for some 20 years. Unfortunately, as a pioneering language in many areas, one often finds that it created terminology and syntax forms before the rest of the world did [as such, Smalltalk's terminology is often different from what are now popularly accepted terms for the same concepts] which frequently adds to the confusion/errors-made in comparing it with other languages. In Smalltalk-80, what we call "green-threads" today, are what it has always called "processes". Over the years, various implementations over the years have made them "safely-pre-emptive" although most have not because it results in the class-library (frameworks) being non-thread-safe [noting that the language does not intrinsically support notions of pre-emptive multi-threading and so its libraries are not designed accordingly -- although at least one dialect was -- QKS Smalltalk from which SmallScript draws its heritage]. -- Dave S. [www.smallscript.org] > > -- > Ned Konz > currently: Stanwood, WA > email: ned@bike-nomad.com > homepage: http://bike-nomad.com >