"Thomas Gagne" <tgagne / ameritech.net> wrote in message
news:3C024CC3.292DB96D / ameritech.net...
> David, your table seems to mix language features with library features.
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.
>
> Native Threads - isn't this an implementation issue? Doesn't Smalltalk MT
use
> native threads? I personally believe this is a ding against VW.
Keep in mind that I extended a chart I obtained from the Ruby comunity.
Second, and perhaps more importantly, the Smalltalk column is for
"Smalltalk-80" [you know, the way the language was 20 years ago when many of
these other languages did not exist or were mere shadows of their
capabilities today].
The chart does not [by intention] have a column for the ANSI Standard
"Smalltalk-98", which to my view, was less of a standard than one would have
liked in terms of unifying and strengthening the language. Which is another
way of saying that, like scheme and its many dialects, Smalltalk dialects
are individually very strong in some (but not all) key areas and they have
great [mature] facilities, but the language itself cannot claim many of
those elements as being "standard".
In the world of components, scripting, and server systems built on them, the
ability to run the entire execution architecture as plug-in component and
integrate with native threading models is very important. It is a challenge
that classic Smalltalk-80 does not adequately address; various dialects
including VW have made great strides in this area but we're still not on the
leading edge of this curve.
>
> Foreign Function Interface - ST/X does a nice job of this. Heck, you can
> write C code inside methods! Is it necessary for a language to define how
it
> interacts with the stacks of other languages and their runtime
environments?
> Is it C's responsibility to know how to interface with Fortran, or is the
fact
> that some vendor's implementations of both languages' runtime environments
> share common stack rules?
Don't confuse the Smalltalk-80 chart capabilities. Again, various dialects
do this to a lesser or greater degree. QKS Smalltalk had this feature from
day-1 when it went into the first users hands 1992. Smalltalk MT has pretty
transparent facilities for COM-ActiveX, Dolphin looks to have even better
facilities. The problem is that these things are dialect specific; which is
why I did not add a Smalltalk-98 column -- I could not say much about how it
is different from Smalltalk-80 so it is better to stick with leaving the
Smalltalk-80 column -- and let SmallScript (a dialect of Smalltalk-98)
stand-in as the placeholder promoting Smalltalk today since it can answer
almost every question with a solid/good response.
SmallScript's Smalltalk facilities provide inline C/C++/Assembly directly
with no special locking, dereferencing, etc. And it also allows direct cut
and paste of enums, #defines, and VB/JScript/C++ function/method
invocations; as well as direct access to all functions in a DLL merely for
dynamically declaring the dll name in a class/namespace. It doesn't really
get much better than that.
>
> Where is support for blocks? How many languages support that? It's
certainly
> a useful language feature.
Blocks are a form [the Smalltalk name for the general concepts] of "closures
and continuations".
>
> Should Value Types be a native language feature? ST/X creates structs
quite
> nicely using ByteArray with great accessors code. I've done a similar
thing
> in VW. Does it have to be a language feature? Must a language define
every
> stinking thing a programmer might do, or should that be the responsibility
of
> standard library features? C doesn't define a GUI interface, and neither
> should *any* language if you ask me. GUIs exist only in an environment
that
> includes them, and languages must exist without them. All they need is a
> compiler/interpreter. Access to GUIs, relational databases, HTTP, SMTP,
etc.
> are library problems, not language problems.
Again, don't confuse Smalltalk-80 with current dialects. I put SmallScript
in as the "stand-in" for modern Smalltalks because none of these things is
covered "standardly/uniformly" in Smalltalk today.
Dealing with structs is obviously important and it should be easy to do.
This area is essential for broad/general interop within a multi-language
platform like .NET. It is an area that most scripting languages (and dynamic
languages) handle quite poorly because they typically lack notions of
declarative (optional) typing.
>
> Certificate and Security mechanisms - I guess I need an explanation on
that.
> On my computer (at least) security is the responsibility of the operating
> system. It's responsbile for making sure people only have access to what
> they're supposed to regardless what language a program was written in. In
the
> database world my database keeps track of who's allowed to do what
regardless
> of what language is used. Why should this be a language feature? How
would
> such a language features be useful if not supported/implemented by other
other
> languages used on the same machine/environment?
I'm sorry to punt but there are plenty of resources on the web and elsewhere
to learn and read about the rationale for and intent behind
certificates/digital-signatures.
>
> Isn't RegEX supported in a VW parcel? Why would that be a language
feature?
> How big a book do you want to write to teach people how to use a language?
> Would a student need to read a chapter that includes discussion on
> startup/compile/execute/shutdown speed? How about a chapter on the
language's
> deployment footprint? Should .net languages include the entirety of
Windows
> as part of their footprint?
Hmm. Scripting languages (Perl, Python, Ruby, to name a few) have an
enormous user base [and each is individually much more successful and
growing than Smalltalk or say Scheme had been in recent years]. Those
languages have, perhaps, four or five major characteristics (almost all of
which classic Smalltalk lacks). One of those characteristics is their
specific capabilities for processing text and that is largely tied to their
integration of RegEx facilities into the language. I suggest you look at
some of these languages, how they are being used, and their level of success
and popularity. I think that you'll find answers to the kind of questions
you are raising here.
>
> I appreciate everything you've done for Smalltalk, but your table is more
> propaganda than anything. Maybe you'd rather build a chart comparing
> Smallscript to specific language environments from specific vendors. If
you
> want to include the features vendors choose to include/exclude then your
chart
> would make more sense.
>
I'm sorry you feel that way. I think you are focusing, on me, your
frustration with Smalltalk-80 and the negative legacy it has cast over
smalltalk implementations today. However, I can assure you that the
frustration and pain I've felt about that legacy is far, far greater than
yours -- it played significant role in hurting business opportunities for
QKS/SmalltalkAgents and has consistently guided my professional focus over
the last ten years -- ultimately it is what led me to start over and build
SmallScript from scratch. My chart is, honestly, a mere shadow of the weak
items said about Smalltalk-80 in almost every other chart I've seen on the
web, or published in books and magazines.
The problem here is that we cannot make a chart with the title
"Smalltalk-98" and put all this stuff down as "standard"; in that light we
are better off leaving a column on what we had 20 years ago [when most of
the other languages didn't exist or were mere shadows of where they are
today]; and then skirting the issue by hiliting what an implementation of
Smalltalk-2001 can do today [especially since, in comparison to other
scripting languages, it has excellent answers to the requisite feature
comparison items -- since addressing those items were a fundamental part of
its design goals]. This also makes more sense, because SmallScript is not
just a Smalltalk implementation; it is also a new language and includes an
execution architecture that was designed to support (compile/run) multiple
dynamic (incl scripting) languages.
Somehow you sound like your suggesting that I should load the chart up with
each of the Smalltalk dialects, or I should remove the Smalltalk-80 column.
Loading a chart with all the current dialects would be innapropriate since
that is not done for the other languages. Removing Smalltalk-80 would also
have negative ramifications since it would: (a) not stand to correct the
fairly grievous wrongs in other Smalltalk-80 charts; (b) it would
underscore/mislead readers into thinking that SmallScript represented the
entire category of "Smalltalk" when it is in fact, merely a dialect which
has numerous features not found in other dialects.
Before you beat SmallScript up and tout the capabilities of Smalltalk by
telling me that dialect-a has feature-1 and dialect-b has feature-2; take a
look at SmallScript which as a single dialect has each of those features
[which is really the point]. AND, I want to be very clear, the chart came
from the scripting language world where programmers were comparing features
relevant to the scripting and component based software development process.
There are many "development process" features, which are common to most
Smalltalk implementations, which SmallScript in its basic/core form
(currently) does not provide [by intention]. Which is another way of saying
that SmallScript is by no means the best full featured Smalltalk [actually
it is far from it -- and it is a work in progress]; I would have said the
strongest players in this space on a user-base, feature-set,
commercial-level were Cincom VW, IBM VA, Dolphin ST, etc.
OTOH, rather than criticizing my efforts to "correct" and "update" the world
on where Smalltalk (collectively) stands, you could create a chart comparing
all the Smalltalk dialects using my suggested rows [and add your own]. I
would be more than happy to either put the chart on my site or to make a
link to it.
If you want to criticize, I encourage it. But at least sign up to explore
the SmallScript seed so that the criticism will be focused and hit home in
places that are under my control [I am not responsible for the larger world
view of Smalltalk-80 (and the muddled view it casts over Smalltalk today)].
Alternatively, you could sit down and write a book on Smalltalk-98 or
Smalltalk-2001 which would finally result in the academics and other
language folks revising all their books and charts to get rid of the bloody
irritating smalltalk-80 comparisons. I've wanted to do that for a long time
now, but since I cannot write a good collective work about a Smalltalk
standard [other than ANSI-98 which as I've alluded to, would probably do
more harm than good since its been 18 years since the 80 standard and based
on the ANSI standard vis-a-vis what is relevant in these other modern net
enabled languages we could not say competively strong things], I'm settling
for the much harder process of creating a new language which is a superset
of Smalltalk, and then working to make it freely available and looking
forward to publishing a definitive book called SmallScript-2002.
-- Dave S.
>
> --
> .tom
>