Universal Virtual Machine 
Author Message
 Universal Virtual Machine

One thing that has disappointed me about .NET and Java is that these VMs do
not appear to provide good support for Smalltalk.

[ re. .NET -- I have been a little confused by some of David Simmons' posts.
Although he has been quite helpful and informative, I am left with the
impression that .NET will support SmallScript, but not Smalltalk as most of
us in this group understand Smalltalk.]

Whether .NET supports Smalltalk or not is not relevant. It is proprietary
and closed (I wonder if Microsoft understands that .NET is supposed to be
the operating system, not something you package with Windows or Windows CE
or whatever they're calling it now).

Neither does the Java VM support Smalltalk the way we know it today (Bistro
is a nice idea, but I don't think it's Smalltalk).

In general, languages like Java, C#, and even Bistro and SmallScript (IMHO)
seem to be taking Smalltalk in the opposite direction it should be going.
And Smalltalk definitely needs to be going somewhere. For example, Self
seems like a step in the right direction to me. But Self was buried by Java
and it doesn't appear to have much energy right now.

Boris' recent posts regarding Lisp (here and in comp.lang.lisp) have me
intrigued about things like meta-object capabilities. In our own work on
Visual Knowledge, the modeling constructs provided by "vanilla" Smalltalk
have proved inadequate and we have tried to extend those in creative ways
(e.g. by developing a rather baroque, but useful prototyping system).

IBM was trumpeting a UVM as part of their VisualAge offerings a year or two
ago, but I haven't seen much reference to that of late.

What I am thinking of is an open source project to create a standard VM for
Smalltalk but that also supports other languages, such as Java and perl, and
more importantly, new language directions for Self-like and MOP extensions
to Smalltalk. Similar to the Transmeta architecture (except all in
software), one could define pluggable byte code dictionaries that the VM
could swap in as required.

This would allow one VM to work with several Smalltalk dialects, without
requiring vendors to agree on a standard set of byte codes. The issues with
the Garbage Collector seem more difficult to me, but if Microsoft can claim
that .NET is a multi-language VM that provides GC services to any language,
than it should be possible to do this for Smalltalk as well, shouldn't it?

I would like to attend Smalltalk Solutions this year, but it falls on my
son's birthday. Perhaps if I get some time in the next few weeks I will pick
up Squeak again and see if I can get my head around some of the VM issues.
E-mail is no substitute for face-to-face discussion, however :-(.

Maybe the issues of a standard Smalltalk VM and taking Smalltalk to a new
level by opening up the meta object model are old topics and maybe they are
independent of one another. I know that there are some people who are
(hopefully still) reading this who have a much better understanding of VMs
and Meta Object models than I do. Is this concept viable?

Steve



Mon, 04 Aug 2003 00:41:21 GMT  
 Universal Virtual Machine
Viable or not, you have raised some interesting points.  I haven't played
with squeak in forever, and I am by no means a VM wizzard, but this concept
does intrigue me.

It does seem that we will need some co-operation from the St vendors.
Perhaps some of them could respond in this thread???

John


Quote:
> One thing that has disappointed me about .NET and Java is that these VMs
do
> not appear to provide good support for Smalltalk.

> [ re. .NET -- I have been a little confused by some of David Simmons'
posts.
> Although he has been quite helpful and informative, I am left with the
> impression that .NET will support SmallScript, but not Smalltalk as most
of
> us in this group understand Smalltalk.]

> Whether .NET supports Smalltalk or not is not relevant. It is proprietary
> and closed (I wonder if Microsoft understands that .NET is supposed to be
> the operating system, not something you package with Windows or Windows CE
> or whatever they're calling it now).

> Neither does the Java VM support Smalltalk the way we know it today
(Bistro
> is a nice idea, but I don't think it's Smalltalk).

> In general, languages like Java, C#, and even Bistro and SmallScript
(IMHO)
> seem to be taking Smalltalk in the opposite direction it should be going.
> And Smalltalk definitely needs to be going somewhere. For example, Self
> seems like a step in the right direction to me. But Self was buried by
Java
> and it doesn't appear to have much energy right now.

> Boris' recent posts regarding Lisp (here and in comp.lang.lisp) have me
> intrigued about things like meta-object capabilities. In our own work on
> Visual Knowledge, the modeling constructs provided by "vanilla" Smalltalk
> have proved inadequate and we have tried to extend those in creative ways
> (e.g. by developing a rather baroque, but useful prototyping system).

> IBM was trumpeting a UVM as part of their VisualAge offerings a year or
two
> ago, but I haven't seen much reference to that of late.

> What I am thinking of is an open source project to create a standard VM
for
> Smalltalk but that also supports other languages, such as Java and perl,
and
> more importantly, new language directions for Self-like and MOP extensions
> to Smalltalk. Similar to the Transmeta architecture (except all in
> software), one could define pluggable byte code dictionaries that the VM
> could swap in as required.

> This would allow one VM to work with several Smalltalk dialects, without
> requiring vendors to agree on a standard set of byte codes. The issues
with
> the Garbage Collector seem more difficult to me, but if Microsoft can
claim
> that .NET is a multi-language VM that provides GC services to any
language,
> than it should be possible to do this for Smalltalk as well, shouldn't it?

> I would like to attend Smalltalk Solutions this year, but it falls on my
> son's birthday. Perhaps if I get some time in the next few weeks I will
pick
> up Squeak again and see if I can get my head around some of the VM issues.
> E-mail is no substitute for face-to-face discussion, however :-(.

> Maybe the issues of a standard Smalltalk VM and taking Smalltalk to a new
> level by opening up the meta object model are old topics and maybe they
are
> independent of one another. I know that there are some people who are
> (hopefully still) reading this who have a much better understanding of VMs
> and Meta Object models than I do. Is this concept viable?

> Steve



Mon, 04 Aug 2003 04:21:51 GMT  
 Universal Virtual Machine

[...]

Quote:
> Whether .NET supports Smalltalk or not is not relevant. It is proprietary
> and closed (I wonder if Microsoft understands that .NET is supposed to be
> the operating system, not something you package with Windows or Windows
> CE
> or whatever they're calling it now).
[...]
> What I am thinking of is an open source project to create a standard VM
> for
> Smalltalk but that also supports other languages, such as Java and perl,
> and
> more importantly, new language directions for Self-like and MOP
> extensions
> to Smalltalk. Similar to the Transmeta architecture (except all in
> software), one could define pluggable byte code dictionaries that the VM
> could swap in as required.

> This would allow one VM to work with several Smalltalk dialects, without
> requiring vendors to agree on a standard set of byte codes. The issues
> with
> the Garbage Collector seem more difficult to me, but if Microsoft can
> claim
> that .NET is a multi-language VM that provides GC services to any
> language,
> than it should be possible to do this for Smalltalk as well, shouldn't
> it?

[...]

I would like to see an open-source universal VM that runs on MacOS,
Windows, Linux, etc... that is why I want to take the first step in that
direction by porting a popular byte-code-compiled open-source language
(Python/Jython) into Squeak, an open-source Smalltalk.


 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Quote:

> On Sat, 03 Feb 2001 02:57:36 GMT, Keith Ray

> >Has anyone tried to write a python interpreter in Smalltalk?

> I tried this, although using Squeak Smalltalk not Dolphin Smalltalk.
> I never finished the project but there's a partially working parser
> which I could share.

> bye
> --
> Stefan Matthias Aust____Truth until Paradox!____________________


I have the desire to see Python running inside Squeak
<http://www.squeak.org/> + <http://www.python.org/>

I was planning to start porting from the Jython sources, since those are
already in an object oriented language (Java).  If you could, please
email your parser to me and it will help me learn how Squeak could host
a Python language.

C. Keith Ray
remove spaces to get my email address

--
       <http://homepage.mac.com/keithray/resume.html>

--
       <http://homepage.mac.com/keithray/resume.html>



Mon, 04 Aug 2003 11:23:42 GMT  
 Universal Virtual Machine
On Wed, 14 Feb 2001 16:41:21 GMT, "Steve Wart"

Quote:

> (I wonder if Microsoft understands that .NET is supposed to be
>the operating system, not something you package with Windows or Windows CE
>or whatever they're calling it now)

Well actually I am not sure that is an accurate characterization.
MS has cetainly not positioned .NET with any clarity to the larger
marketplace.  Some say that is because it doesn't exist, or there
really is no plan.  But clearly it exists and also clearly (to me)
there is a plan.  

In my mind the reason the general public and computer press doesn't
understand .NET is because .NET really is mostly targeted at
developers.  MS has to convince developers that this is the OO / VM
platform of choice.  Since that is not really something marketers can
trumpet, obviously .NET is the future is more or less what they tried
to announce.

 From what I have read of .NET what I really see is an OO / VM
architecture layered on top of Windows.

Obviously MS is also targeting their language tools and encouraging
others, to target .NET.

.NET offers lots of builtin services, and interoperability, for
programmers, that they hope, will make .NET a desireable development
platform.

Also MS hope to attract lots of 'marginal' language products to the
.NET platform by essentially putting them on equal footing right out
of the box with more established languages.  To many language tool
vendors this is an attractive proposition.  One which SUN can't offer
them.

.NET offers many services for web AND desktop windows development.

It doesn't replace Windows or the Win32 API.  It seems strictly to be
a layer on top of it.  Obviously there could be a 'native' .NET
platform that didn't support the Win32 API but that is another story.

So from MS point of view, .NET IS (at this time) something that will
be packaged with standard windows environment.  CE and / or other
platforms might morph into .NET only, but that will be MARKET driven.
Despite what DOJ thinks, MS is in NO position to dictate.

Obviously this glosses over alot<g>.  But I don't see MS positioning
.NET as an operating system at this time.  Just a layer on top of the
operating system which probably more closely reflects what the Windows
OS might look like if it had been designed in 1997 without legacy
considerations.

As for what their marketing department says, well ....



Mon, 04 Aug 2003 12:26:07 GMT  
 Universal Virtual Machine

Maybe repeating info here, but are you aware of C--?

http://www.cminusminus.org/index.html

Quote:

> I would like to see an open-source universal VM that runs on MacOS,
> Windows, Linux, etc... that is why I want to take the first step in that
> direction by porting a popular byte-code-compiled open-source language
> (Python/Jython) into Squeak, an open-source Smalltalk.



Mon, 04 Aug 2003 16:58:16 GMT  
 Universal Virtual Machine

Quote:
> Viable or not, you have raised some interesting points.  I haven't played
> with squeak in forever, and I am by no means a VM wizzard, but this concept
> does intrigue me.

One could port the Self VM... it ran Smalltalk and Java as far as I know.

Paolo

--
Posted from relay3.inwind.it [212.141.53.74]
via Mailgate.ORG Server - http://www.Mailgate.ORG



Mon, 04 Aug 2003 18:32:51 GMT  
 Universal Virtual Machine
Hi Steve!

Quote:
>[ re. .NET -- I have been a little confused by some of David Simmons' posts.
>Although he has been quite helpful and informative, I am left with the
>impression that .NET will support SmallScript, but not Smalltalk as most of
>us in this group understand Smalltalk.]

Hmm in his posts I thought he has been very clear.  Smallscript is a
*superset* of Smalltalk.  Smallscript compile standard Smalltalk, and is
fully backwards compatible with traditional Smalltalk.

Quote:
>Whether .NET supports Smalltalk or not is not relevant. It is proprietary
>and closed (I wonder if Microsoft understands that .NET is supposed to be
>the operating system, not something you package with Windows or Windows CE
>or whatever they're calling it now).

We had discussion about this in the past, its only time before a third-party
makes a VM that emulates the Microsoft .NET bytecode.  David Simmons even
went as far as saying that it might be a technology he himself may posess or
it may not be a difficult task to support this on any good VM.  However, he
also pointed out, that creating all the frameworks that Microsoft is going
to be shipping with Microsoft .NET is going to be a much more monumental
task..  But are they essential frameworks?  Time will tell.

Ian



Tue, 05 Aug 2003 01:26:55 GMT  
 Universal Virtual Machine

Quote:

> Maybe repeating info here, but are you aware of C--?

I had not heard of this before.  Its kind of funny because I knew Sun people
that would call Java C++--.
Quote:

> http://www.cminusminus.org/index.html


> > I would like to see an open-source universal VM that runs on MacOS,
> > Windows, Linux, etc... that is why I want to take the first step in that
> > direction by porting a popular byte-code-compiled open-source language
> > (Python/Jython) into Squeak, an open-source Smalltalk.



Tue, 05 Aug 2003 01:54:57 GMT  
 Universal Virtual Machine

Quote:

> Hmm in his posts I thought he has been very clear.  Smallscript is a
> *superset* of Smalltalk.  

Which Smalltalk it is a superset of?  The ANSI definition, or just what?

If you mean that it is a dynamic language which supports the same
dynamic dispatch rules that Smalltalk does, then yes, I agree.  You can
even add to that definition a modicum of Smalltalk syntax rules, such as
where the '.' character goes, and it's meaning, etc., and you would
still be right.  And, you could probably even add a few other Smalltalk
characteristics, and you would probably still be right.

But, if you are using the ANSI definition of Smalltalk, or even a close
fascimile of it, then no, it is not a superset.

Doesn't mean it couldn't be, though.

And yes, this topic has been discussed quite a bit already.  Just check
deja^h^h^h^h google.

Nevin Pratt



Tue, 05 Aug 2003 01:57:48 GMT  
 Universal Virtual Machine

Quote:

> ... We had discussion about this in the past, its only time before a third-party
> makes a VM that emulates the Microsoft .NET bytecode.  David Simmons even
> went as far as saying that it might be a technology he himself may posess or
> it may not be a difficult task to support this on any good VM.  However, he
> also pointed out, that creating all the frameworks that Microsoft is going
> to be shipping with Microsoft .NET is going to be a much more monumental
> task..

I don't get this. You are supposed to be able to use 'any' language
with  the .NET . If the frameworks are there, you should be able to call
them from Smalltalk, without having to write them yourself. Even  going
to another platform, you should be able to run the libraries already
created in a .NET language and port them.  ?  All you need is .NET  
Virtual Machine, right ?  Just like Java libraries are mostly written in
Java, and all you need is the VM.

-Panu



Tue, 05 Aug 2003 04:32:53 GMT  
 Universal Virtual Machine

Quote:

> > Viable or not, you have raised some interesting points.  I haven't played
> > with squeak in forever, and I am by no means a VM wizzard, but this concept
> > does intrigue me.

> One could port the Self VM... it ran Smalltalk and Java as far as I know.

IIRC self only needs six prototypes to support the smalltalk
class/metaclass structure.

I found the paper, here it is:
  http://www.sun.com/research/kanban/oopsla-vm-wkshp.pdf

It describes an experimental implementation of Smalltalk and Java on top
of Self.

Reinout
-------



Tue, 05 Aug 2003 04:19:57 GMT  
 Universal Virtual Machine

Quote:

> > ... We had discussion about this in the past, its only time before a
third-party
> > makes a VM that emulates the Microsoft .NET bytecode.  David Simmons
even
> > went as far as saying that it might be a technology he himself may
posess or
> > it may not be a difficult task to support this on any good VM.  However,
he
> > also pointed out, that creating all the frameworks that Microsoft is
going
> > to be shipping with Microsoft .NET is going to be a much more monumental
> > task..

> I don't get this. You are supposed to be able to use 'any' language
> with  the .NET . If the frameworks are there, you should be able to call
> them from Smalltalk, without having to write them yourself. Even  going
> to another platform, you should be able to run the libraries already
> created in a .NET language and port them.  ?  All you need is .NET
> Virtual Machine, right ?  Just like Java libraries are mostly written in
> Java, and all you need is the VM.

I think your confusion stems from the way the comment was worded. There are
actually two separate ideas entangled here.

First, is what it would take to build a non Microsoft version of .NET. Which
is what Ian's comment was basically referring to.

The Second, is the question of what is required to change Smalltalk such
that it can be implemented for (some version of) .NET to allow full access
to, and integration with, the frameworks and services of .NET.

-- Dave Simmons [www.qks.com / www.smallscript.com]
  "Effectively solving a problem begins with how you express it."

- Show quoted text -

Quote:

> -Panu



Tue, 05 Aug 2003 05:20:55 GMT  
 Universal Virtual Machine


Quote:
> One thing that has disappointed me about .NET and Java is that these VMs
do
> not appear to provide good support for Smalltalk.

> [ re. .NET -- I have been a little confused by some of David Simmons'
posts.
> Although he has been quite helpful and informative, I am left with the
> impression that .NET will support SmallScript, but not Smalltalk as most
of
> us in this group understand Smalltalk.]

> Whether .NET supports Smalltalk or not is not relevant. It is proprietary
> and closed (I wonder if Microsoft understands that .NET is supposed to be
> the operating system, not something you package with Windows or Windows CE
> or whatever they're calling it now).

From what I've read .NET is just a framework on top of the OS. I've also
heard it mentioned that the Framework is not strictly a VM (I don't know
what makes something a VM or not).  In any case, any language that wants to
be .NET compatible has to have a translator to turn it into the .NET
intermediate langauge (IL).  Eiffel will be one of the supported languages
as will COBOL. Eiffel had to give up multiple inheritance and something else
that I can remeber but largely remains the same.  Does anyone more
knowledgeable know what ST would have to sacrifice??


Tue, 05 Aug 2003 07:48:23 GMT  
 Universal Virtual Machine

Quote:
> One thing that has disappointed me about .NET and Java is that these VMs
do
> not appear to provide good support for Smalltalk.

> [ re. .NET -- I have been a little confused by some of David Simmons'
posts.
> Although he has been quite helpful and informative, I am left with the
> impression that .NET will support SmallScript, but not Smalltalk as most
of
> us in this group understand Smalltalk.]

Sorry for creating that confusion. Maybe this post will help?

Then again, it is really long and almost certainly controversial so it may
actually do the opposite :-(

Hopefully those who choose to comment upon it, will comment on selected
sections in separate posts rather than bundling it all together :) [which of
course I didn't do]

Quote:

> Whether .NET supports Smalltalk or not is not relevant.

Well, its relevant to me as the person who has developed Smalltalk for .NET
and has worked long and hard with Microsoft to continue to ensure that .NET
has the necessary elements to support Smalltalk.

Quote:
> It is proprietary
> and closed (I wonder if Microsoft understands that .NET is supposed to be
> the operating system, not something you package with Windows or Windows CE
> or whatever they're calling it now).

Your comments regarding "proprietary" and "closed" are not "strictly
speaking" correct. The .NET specification is open and becoming a standard
via the ECMA process. A standard which is likely to be ratified and adopted
before the end of this year; in a process which involves many companies
including (and perhaps most notably) Sun Microsystems.

http://www.*-*-*.com/

http://www.*-*-*.com/

The idea that Microsoft may not understand that .NET is "supposed to be an
operating system" is coming from left field.

I.e., Microsoft created and defined .NET, so de-facto they "defined" what it
is "supposed to be".

More to the point, I would contend that they intentionally designed it as a
technology to enable them to break their technology base free of both the
INTEL and Windows OS Family ties [and perhaps the Justice Department focus].
Which means they defined a "platform", which is not the same thing as an
"operating system".

Microsoft's .NET itself is very real and it really works. Microsoft has
barely begun marketing it. It will be at least as pervasive as COM, ActiveX,
Visual Basic, and IE/ASP/IIS Scripting. The heat in this area just has not
been turned up by Microsoft because they are, as usual, being
(instinctually) wily/smart about preparing all the adjunct software they own
or believe is key for the .NET. Once they reach that stage, they'll crank up
the heat and .NET will be de-facto reality.

In my judgment, one thing to understand about Microsoft is that their
*typical* "pragmatic" pattern, unlike companies such as Sun and Apple, is to
have solved a problem and implemented a solution that "to their
satisfaction" corresponds to what they think/believe they are promoting.
Their rationale is that by the time the world starts to care Microsoft has a
huge lead or {*filter*} position that everyone else has to try and
overcome/catch up to.

That's part of how COM/ActiveX/OLE was able to completely crush Apple's
OpenDoc (and IBM's SOM) component technology [which is/was competition to
CORBA]. And .NET is just the next evolution of the COM/ActiveX/OLE
components and systems interop scalability story.

I would suggest that .NET is about Microsoft's efforts to keep moving
towards a {*filter*} position regarding internet (and enterprise) deployment
and systems platform technology. I.e., .NET platform versus JVM platform
versus Apache/Linux collective, In my opinion, for Microsoft, it was never
about the language of Java -- that's why those who made or make noise about
C# are just missing the whole point.

Quote:

> Neither does the Java VM support Smalltalk the way we know it today
(Bistro
> is a nice idea, but I don't think it's Smalltalk).

> In general, languages like Java, C#, and even Bistro and SmallScript
(IMHO)
> seem to be taking Smalltalk in the opposite direction it should be going.

What does Java or C# have to do with where Smalltalk is or is *not* going?

Where is SmallScript taking Smalltalk, that it should not be going?

    Smaller?
    Faster?
    More portable?
    Applicable to more of today's software tasks?
    More interoperable with other languages and systems?
    More capable of supporting multiple dialects/libraries
         simultaneously (incl non-Smalltalk)?
    More expressive for explicit enforcement of contracts?
    More scalable and deployable via the namespace, module,
         and interface technology QKS defined?
    More approachable and mainstream via familiar constructs
         from languages such as python, jscript, and c++?
    Retaining Smalltalk syntax/source compatibility.

The wrong directions are backwards and status quo.

There is a lot of important pioneering/implementation work that has been
done in the non st-80 derived dialects; and still continues to be done to
keep Smalltalk growing, evolving and competitive as a technology and as a
marketplace.

For example, take Smalltalk MT which has pioneered important new techniques
for Smalltalk implementation with their static compilation and its ability
to make small components/modules. It has significantly opened the
possibilities for Smalltalk applicability.

Quote:
> And Smalltalk definitely needs to be going somewhere. For example, Self
> seems like a step in the right direction to me. But Self was buried by
Java
> and it doesn't appear to have much energy right now.

> Boris' recent posts regarding Lisp (here and in comp.lang.lisp) have me
> intrigued about things like meta-object capabilities. In our own work on
> Visual Knowledge, the modeling constructs provided by "vanilla" Smalltalk
> have proved inadequate and we have tried to extend those in creative ways
> (e.g. by developing a rather baroque, but useful prototyping system).

> IBM was trumpeting a UVM as part of their VisualAge offerings a year or
two
> ago, but I haven't seen much reference to that of late.

> What I am thinking of is an open source project to create a standard VM
for
> Smalltalk but that also supports other languages, such as Java and perl,
and
> more importantly, new language directions for Self-like and MOP extensions
> to Smalltalk. Similar to the Transmeta architecture (except all in
> software), one could define pluggable byte code dictionaries that the VM
> could swap in as required.

As far as pluggable byte code sets, both SmalltalkAgents(r) on QKS' Mac and
Win32 VM's had them. It is not the ideal model you want to use for a VM
design. It has importance only if you're building an interpreter and
interpreters should have CISC instruction sets to achieve best performance
and overall design characteristics. We demonstrated and explored this key
design area when we worked with Apple and IBM on our UVM system (AOS) in
the early 90's.

A jitter requires a different instruction set design that should be neither
CISC or RISC, but rather lend itself to supporting fast analysis and
optimization [of which, in my opinion, the JVM set is a poor example].

On today's technology (where memory is cheaper and processors and their
caches are the driver) a jitter approach has many more desirable
characteristics. It is just more complicated to build well enough to make it
better than a good interpreter (Dolphin ST is an example here). A jitter
also has the "potential" to be better and more desirable than a static
compiler -- but the competitive challenges and some of the basic tradeoffs
make it even harder to develop a jit that is better than a static system (a
hybrid approach may in fact be the best model).

Microsoft's .NET technology investment is a pragmatic foray/exploration into
this very space -- especially for implementing languages such as C++ (where
they have a good static compiler).

A VM with a pluggable jitter framework/architecture is the approach I've
used in the AOS design. With that architecture I can readily use a
cross-jitter to translate from one byte code set to another and then jit
that into native code. So there is no reason to have "pluggable" byte code
dictionaries.

The goal is not one of having "pluggable" byte code sets, but rather to have
a rich object model and efficient structured access to the metadata such as
type information and well structured information for analyzing data flow in
an instruction/opcode stream. The AOS current architecture of pluggable
jitters is similar to but not exactly the same as byte code dictionaries.
The AOS platform on which our native SmallScript runs has four jitters
within it. Only one of them actually generates native cpu code, the others
are cross-jitters of one form or another.
----------

Regarding UVM thoughts, let me make a few comments. I've been in the UVM
area for many years. I originally designed our VM in 1990-1991 to host a
variety of dynamic languages. In those days the term "platform" had not
become popularized and we called our Agents Object System (AOS) UVM platform
a "backplane" (stemming from my minicomputer and EE/VLSI background :).

We danced with Apple for three plus years and signed a system deal with them
in 1996 to make our VM the UVM for all the MacOS dynamic and scripting
languages other than Java -- A deal that Sun indirectly contributed to
screwing up, one day after signing, by assisting Apple's stock plummet to a
junk bond status which froze all Apple investment and technology funds. But
that is another of the sad Smalltalk history stories...

Today that is water (stained with my BST) under the bridge.

So, back to the present day:

SmallScript and its virtual machine (AOS) will be free.
However, the AOS will not be open sourced.

The VM is part of a separate technology known as the Agents Object
System(tm)[AOS(tm)]. The AOS
...

read more »



Tue, 05 Aug 2003 10:21:57 GMT  
 Universal Virtual Machine
 This post is a response to David's observations or concerns that I may have
made glib statements about .NET or SmallScript that are confusing or
inaccurate. It may be partly off-topic, but I want to ensure my
clarifications are in the original posted groups.

Please direct all followups to comp.lang.smalltalk.advocacy (also please do
not post complaints regarding availability of that newsgroup).


Quote:

> > One thing that has disappointed me about .NET and Java is that these VMs
do
> > not appear to provide good support for Smalltalk.

> > [ re. .NET -- I have been a little confused by some of David Simmons'
posts.
> > Although he has been quite helpful and informative, I am left with the
> > impression that .NET will support SmallScript, but not Smalltalk as most
of
> > us in this group understand Smalltalk.]

> Sorry for creating that confusion. Maybe this post will help?

> Then again, it is really long and almost certainly controversial so it may
> actually do the opposite :-(

> Hopefully those who choose to comment upon it, will comment on selected
> sections in separate posts rather than bundling it all together :) [which
of
> course I didn't do]

Thanks for doing this. I have seen some very long posts from you in the past
and it is probably my own impatience that has led to my confusion.

I would like to split up your post, but not necessarily to respond to every
point. There is some useful stuff here that should be put up in a Smalltalk
and .NET FAQ.

- Show quoted text -

Quote:
> > Whether .NET supports Smalltalk or not is not relevant.

> Well, its relevant to me as the person who has developed Smalltalk for
.NET
> and has worked long and hard with Microsoft to continue to ensure that
.NET
> has the necessary elements to support Smalltalk.

> > It is proprietary
> > and closed (I wonder if Microsoft understands that .NET is supposed to
be
> > the operating system, not something you package with Windows or Windows
CE
> > or whatever they're calling it now).

> Your comments regarding "proprietary" and "closed" are not "strictly
> speaking" correct. The .NET specification is open and becoming a standard
> via the ECMA process. A standard which is likely to be ratified and
adopted
> before the end of this year; in a process which involves many companies
> including (and perhaps most notably) Sun Microsystems.

> http://msdn.microsoft.com/net/ecma/

> http://www.gotdotnet.com

> The idea that Microsoft may not understand that .NET is "supposed to be an
> operating system" is coming from left field.

> I.e., Microsoft created and defined .NET, so de-facto they "defined" what
it
> is "supposed to be".

Fair points. I apologize for the FUD. My perception of .NET is that is a
technology platform to allow MS to extend their reach to hardware devices
beyond the PC as we know it, as you suggest below. But my assumption is that
they want to extend their OS entrenchment to these devices as well.

Therefore, it is not the .NET VM that is a problem for me, but rather my
belief that .NET will require the presence of MS operating system services
in order to be useful. When I first heard of .NET, I thought of products
like VB, Word and Excel (which I have heard are pCode-based), and of course
Perl and Smalltalk, that would be good candidates for a VM implementation.

My perception of MS and the CE market is that MS is "hurting" because of the
porting efforts required to get not only CE running on all these different
devices, but also each application that needs to be redeployed for each
hardware vendor. The solution provided by .NET will allow MS (and more
importantly application developers) to have their products run on all such
devices without a recompile (or worse, a porting effort). But my assumption
is that these devices will still require the presence of a commercial MS
operating system.

Also, my bias stems from discussions I have read on the MSDN web site
regarding C# and C++ and the "controversy" around the fact that C# does not
provide "synchronous or deterministic destructors" (see
http://msdn.microsoft.com/library/Welcome/dsmsdn/deepc10192000.htm) [Warning
to Smalltalkers: do not look at this link if you have just had lunch].

The C++ development community is important to MS, and they are the primary
market for C#. Based on what you have said it is not likely that MS will
break the language independence in .NET in order to satisfy these concerns.
I especially appreciate your lobbying efforts with MS to ensure that MS
supports dynamic languages like Smalltalk (and beyond!).

But in its desire to be all things to all programmers, the logical concern
is that .NET (like Windows) will be extraordinarily complex and consequently
take years to stabilize. Maybe this is a problem with all software. But is
especially difficult to deal with in commercal software (see David's
comments below regarding the balance of free tools and funding for tool
development).

Until recently, I have been quite positive about Microsoft operating systems
and applications. In fact, I still believe the level of quality and
usefulness of their products is unsurpassed. But in the software industry,
upgrade revenues are like the goose that laid the golden egg. Microsoft has
thousands of clever people whose sole job appears to be finding ways of
tricking their customers into upgrading software that works perfectly well
for them, wasting valuable time and eroding the value proposition that these
products allegedly provided in the first place.

Hence my comment that .NET "should be" the operating system. When you buy or
build computer hardware, you need an O/S. To use that hardware you must
license an O/S. If that O/S is commercial software, there is a conflict on
the part of the vendor between selling product upgrades and providing a
stable platform for development and deployment. I remember reading a quote
recently that the only purpose of an O/S is to provide such a platform. To
me, a standard VM should be an important part of such an O/S.

And also, my point regarding the irrelevance of Smalltalk on .NET was not
intended to be insulting to you or your efforts (I apologize for the
crassness of this remark, and also commend you for not flaming me into a
black patch of dirt). My point was really that .NET is not relevant to me
based on the assumption that it is tied to Microsoft's commercial O/S
endeavors.

If .NET will work on Unix and Macintosh platforms without requiring a
commercial software license from Microsoft, I will be impressed. But I have
seen no unequivocal statement from Microsoft that this will be the case. In
spite of their attempts to deflect criticism around their commercial
practices, I believe that MS is founded on a simple principle that he who
controls the O/S, controls everything else. To give that up would be
anathema.

Quote:
> More to the point, I would contend that they intentionally designed it as
a
> technology to enable them to break their technology base free of both the
> INTEL and Windows OS Family ties [and perhaps the Justice Department
focus].
> Which means they defined a "platform", which is not the same thing as an
> "operating system".

To me, a "platform" is more than just software.

[ other comments regarding .NET ]

- Show quoted text -

Quote:
> > Neither does the Java VM support Smalltalk the way we know it today
(Bistro
> > is a nice idea, but I don't think it's Smalltalk).

> > In general, languages like Java, C#, and even Bistro and SmallScript
(IMHO)
> > seem to be taking Smalltalk in the opposite direction it should be
going.

> What does Java or C# have to do with where Smalltalk is or is *not* going?

> Where is SmallScript taking Smalltalk, that it should not be going?

>     Smaller?
>     Faster?
>     More portable?
>     Applicable to more of today's software tasks?
>     More interoperable with other languages and systems?
>     More capable of supporting multiple dialects/libraries
>          simultaneously (incl non-Smalltalk)?
>     More expressive for explicit enforcement of contracts?
>     More scalable and deployable via the namespace, module,
>          and interface technology QKS defined?
>     More approachable and mainstream via familiar constructs
>          from languages such as python, jscript, and c++?
>     Retaining Smalltalk syntax/source compatibility.

> The wrong directions are backwards and status quo.

[ lots of good stuff about UVMs, jitters and the history AOS ]

These are all noble and useful objectives, however, there is one overriding
characteristic about Smalltalk that I value above everything else, and that
is its simplicity of expression.

<imho>
As with my concerns about .NET, extra "language" features (such as DBC,
Namespaces, etc.) inhibit learning and understanding, especially by people
who are learning to program. In fact, these features are often marginally
useful and serve as a mechanism for entrenchment of old ideas and may
unintentionally inhibit the growth of new ideas.

The *right* direction is greater simplicity and flexibility, while opening
up the object/class/method/inheritance mechanisms to be explored in
Smalltalk itself, rather than burying them in the depths of the VM.

Maybe the right direction *is* backwards. Maybe we should be looking more
closely at Smalltalk-72 instead of Smalltalk-80.
</imho>

- Show quoted text -

Quote:
> ------------
> Back to the question of what is "Smalltalk" and the idea of what a
standard
> Smalltalk library base could or should be...

> The various dialect specific class libraries are proprietary in one form
or
> another. (I consider "Open Source" to be as proprietary as any other
source
> license since it has restrictions on its use).

> If your goal is a good framework base to provide a standard set of
> additional services, then that standard base should be based on a true
> bsd-style source license. I.e.,a freely redistributable (without
limitation)
> set of core library

...

read more »



Wed, 06 Aug 2003 02:16:20 GMT  
 
 [ 20 post ]  Go to page: [1] [2]

 Relevant Pages 

1. Universal Virtual Machine

2. Universal Virtual Machine

3. IBM Universal Virtual Machine progress?

4. Universal Virtual Machine

5. A "Universal Virtual Machine"

6. Virtual 8086 Mode/Virtual Machine Monitor (VMM)

7. Virtual 8086 Mode/Virtual Machine Monitor (VMM)

8. SIMPEL Virtual Machine (a toy machine and assembler)

9. Universal Machine - Fact Or Fiction

10. Universal Machine ?

11. Universal LAN Modem Access On 386 Machines

12. Universal Turing Machine

 

 
Powered by phpBB® Forum Software