<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
David Ungar wrote:
<p> 
<br> In the  site  <A HREF="http://www.squeak.org/oopsla99_vmworkshop/">http://www.squeak.org/oopsla99_vmworkshop/</A>   
there is a
<br> nice paper from Mario, Ole and Dave  entitled Towards a
universal
<br>implementation substrate for object-oriented languages. It is put forward
<br>clearly " even though the large number of Java systems currently in
use
<br>amply justifies the construction of a high-performance Java VM, Java
<br>programmers today must make do with relatively underpowered virtual
<br>machines. "
<br>   They concluded " We have described implementations of
Smalltalk and
<br>Java which have respectable performance and yet were relatively easy
to
<br>construct in Self compared to traditional virtual machine implementations
<br>in C and/ or C++. ....However, the connections between Java and Self
are
<br>much more tenuous, and yet the Java implementation was still easier
to
<br>build at least an order or magnitude compared to conventional approaches.
<br>We encourage language designers and experimenters to use the Self
<br>system in this way for their experiments."
<p>Earlier in the paper they wrote "It would be interesting to broaden
our
<br>experience by implementing other object-oriented languages such
<br>as Beta and Eiffel in this manner. This will undoubtedly expose further
<br>deficiencies in the Self VM....Even so, we feel confident that many
of the
<br>constructs in other languages will map to Self ina clean and natural
<br>way and that overall, implementing a language on top of the Self system
<br>will be significantly easier than implementing it directly from scratch."
<br> 
<br> 
<blockquote TYPE=CITE> 
<p>>>  >
<br>>>  > > In my opinion, a minoritary language like Self should
be developed
<br>>>  > > in a platform like Java VM. I am not a Java fan, but it
provides a
<br>>>  virtual
<br>>>  > > machine in a variety of platforms, and also a "standard"
graphical
<br>>>  > > environment. This would allow to get Self expansioned,
I think.
<br>>>  > > Maybe, this is a bad idea because it would run too slowly,
and
<br>>>  > > would become unusable (UI is now pretty slow, even in
a UltraSparc).
<br>>>  >
<br>>>  > BTW, we once conducted a poll about what platform is the
most
<br>>>  important
<br>>>  > to have Self running on. I can't recall the results right
now, I
<br>>>  > think Windows and Linux have been rated most important,
and Java
<br>>>  > was third place. (Please correct me if I'm wrong).
<br>>></blockquote>
Obviously the reasoning above shows clearly the opposite direction. In
a
<br>workshop from ECOOP'97 in Finland about prototype-based languages
<br>Luca Cardelli argued firmly about the superiority of the prototype
based
<br>languages and the difficulty of their taking off.  So I feel the
hurdle consists
<br>in persusading the computer scientists to direct their efforts towards
this
<br>goal. When I started implementing my Knowledge based systems
<br>to design and plan sustainable cities in 1988, I did not make a compromise
<br>with Pascal and C. I simply rejected them to discover that the object
oriented
<br>paradigm was created by Krysten Nygaard before the construction of
the
<br>first computer!!!!   I studied each object oriented language
such as C++,
<br>Eiffel, Sather, Beta and any interesting object oriented methodoloy
and
<br>also techniques from artificial intelligence such as Blackboard and
multi
<br>agents till I found Self.
<p>So I think you should be courageous and choose the best, not to try
to
<br>limit the best to what is available or successful today.
<p>And you should also remember that computer scientists do not have a
<br>broader audience, because very few languages and methodologies do
<br>mimic the sophisticated human cognitive processes. Until now I believe
<br>Self is one of the best and yet a lot of must still be added to accompany
<br>creative processes.
<p>Best wishes
<p>Albertina
<br> 
<br> 
<br> 
<blockquote TYPE=CITE> 
<br>>>  Has anyone suggested anything similar to the Slim Binaries
used in
<br>>>  Oberon? These are, essentially, an intermediate parse tree,
which can
<br>>>  be passed between platforms until actually used, at which
point a code
<br>>>  generator builds the actual application in native code (much
like the
<br>>>  JIT, but without the bytecode layer; it would cache this generated
code
<br>>>  for future use). This has a number of advantages:
<br>>>
<br>>>  1) The parse tree is usually more compact than the bytecode
equivalent.
<br>>>  2) It is language independent (sort of).
<br>>>  3) It allows greater optimization, as all of the high-level
structure
<br>>>  is
<br>>>  accessible to the code generator.
<br>>>  4) All validation can be performed during the initial compilation,
<br>>>  making the Just-In-Time part faster.
<br>>>  5) It would still leave the possibility of a JVM implementation;
in
<br>>>  fact, it would be considerably easier, as much of the work
of compiling
<br>>>  is aleady done.
<br>>>  6) It would make rewriting the entire Self environment in
Self a
<br>>>  practical option, provided there was an existing code generator
on the
<br>>>  initial development platform.
<br>>>
<br>>>  OTOH, SB itself is not an 'open' technology, so we would probably
have
<br>>>  to create our own equivalent (its copyrighted, but I don't
think it is
<br>>>  patented, I'd have to check). Also, the claim that it is language
<br>>>  independent is rather questionable, at least in the existing
system;
<br>>>  like the JVM, it is definitely targetted towards imperative/OO
hybrid
<br>>>  languages, AFAICT.
<br>>>
<br>>>  Any comments?
<br>>
<br>>
<br>>
<br>>------------------------------------------------------------------------
<br>>Need a cure for the used car blues? iMotors pre-owned cars
<br>>are: priced below Blue Book; fully tested & certified; &
<br>>carry a 7 day/700 mile money back guarantee. Look no further
<br>>iMotors.com is here! <a href="http://clickhere.egroups.com/click/1535">http://clickhere.egroups.com/click/1535</a>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>
<br>>-- Easily schedule meetings and events using the group calendar!
<br>>-- <a href="http://www.egroups.com/cal?listname">http://www.egroups.com/cal?listname</a>
<p>     David Ungar
<br>     Sun Microsystems Laboratories
<br>     (650) 336-2618
<p>------------------------------------------------------------------------
<br>Need a cure for the used car blues? iMotors pre-owned cars
<br>are: priced below Blue Book; fully tested & certified; &
<br>carry a 7 day/700 mile money back guarantee. Look no further
<br>iMotors.com is here! <a href="http://clickhere.egroups.com/click/1535">http://clickhere.egroups.com/click/1535</a>
<p>eGroups.com Home: <a href="http://www.egroups.com/group/self-interest/">http://www.egroups.com/group/self-interest/</a>
<br><a href="http://www.egroups.com">http://www.egroups.com</a> - Simplifying
group communications</blockquote>

<pre>-- 
.----------------------------------------------------------.
| Albertina Lourenci                                       |
| PhD  in Architecture and Urbanism                        |
| post-doctorate researcher                                |
| Laboratory of Integrated Systems University of Sao Paulo |
| Avenida Professor Luciano Gualberto, 158 Travessa 3      |
| CEP: 05508-900                                           |
| Sao Paulo Sao Paulo State Brazil                         |
| Voice: +55 011 818 5254                                  |
| Fax: +55 11 211 4574                                     |
.----------------------------------------------------------.</pre>
 

</body></html>