[FYI] Java vs Squeak/Smalltalk

Bijan Parsia bparsia at email.unc.edu
Wed Jan 16 13:57:42 UTC 2002


On Tue, 15 Jan 2002, Eric Arseneau wrote:

> I love Smalltalk and still wish to build applications using it, but I think
> we need to find ways to work with the huge amount of effort the Java
> community is putting into what they are doing.

What, losing out to C#? :)

There are a bazillion and five java programmers, somewhat less of us. Why
don't they just port Squeak? Make it so cool and amazing that even I pry
the carpet tacks out of my gums and start using it?

There's even several tools to aid migration (e.g., Bistro).

I'm serious. Why force this. Interop is easier than ever (with things like
SOAP), if you really really need it, well, there are ways to fill in the
gaps and that's best driven by folks who have the concrete needs.

One think I *really like* about Squeak is that it provides yet another
shot in the arm for Smalltalk. Java doesn't need the shot.

>  I happen to be stuck earning
> a living with Java and try to combine my Smalltalk experience with Java as
> much as I can.  This has created some really cool results with the people I
> work with when I can explain to them what the real power of objects all the
> time really works !!!  Things like Talks2 are really cool ideas and allow us
> to have the power of what we all know works without having to reinvent the
> wheels others can provide :-)

Y'know, it's interesting that I was just fretting over that
phrase. There's a vast difference between re*inventing* and
re*implementing*. I try to reinvent only for pleasure, learning, or
avoiding patents. I will reimplement to avoid working with Java! (For
other reasons too.)

Plus, there's a lot of momentum behind Squeak in the people using
it. "Switching" to java would require disrupting a hell of a lot to, I
suspect, marginal gain.

Again, if some folks want to work on frost, and some folks want to work on
talks like systems, or some want to make a JavaSlang, I'm all for *their*
doing it.

> Three points that have been brought up on this discussion that I wanted to
> correct:
> 
> 1- Can't do replace code on the fly while debugging in Java
> This is no longer the case, sun has added a HotSwap that allows a class to
> be replaced on the fly while a debugger is running.  This is used by a new
> IDE called Eclipse with the JDT installed.

There are some other projects that enable this in a variety of ways,
Jython and Kawa are my suspects.

Can we elide this to "To get the kind of system we already have, it's
going to be somewhat painful and kludge to make it *Java* (as opposed to
*implementing* it in Java)."

It's easy, I think, to imagine the horrors of SyntaxMorph or Tiles bases
programming built on top of Java Syntax :)

It's certainly *much* more work to get *everything* from the Java syntax
into those forms. I.e., have a nice clean 1-1 correspondence between
syntactic feature in each dialect.

This is a currently solved problem in Squeak, for Smalltalk. The solution
would probably be reasonable for various Lisp Dialects. I want a proof of
concept that it's reasonable for raw Java.

[snip]
> 2- Squeak/Smalltalk has the best IDE
> Well, the Smalltalk IDE has some really cool features and works really well
> when you are used to it.  But the folks at OTI have managed to do some
> impressive work on an IDE framework called Eclipse (info at
> http://www.eclipse.org).  This tool provides the most awesom IDE I have ever
> seen for any language outside of Smalltalk.  Now Squeak still has some
> things over this IDE, but not as many as you would all like.

How many would *I* like? Eric Clayberg (bias, but...) on comp.lang.st said
that it was "far" inferior. I don't know.

>  It manages to
> allow people to work with files, which 90% of the world deal with, 

*has* to deal with. Poor them :)

>but yet
> provide a way of working with files that can make you forget.  The IDE keeps
> track of editions of semantic elements within a file, like methods, fields
> and classes.  Where you can replace any one element with a previous edition.

Great.

> The debugger supports the HotSwap technology such that I can modify code in
> the IDE or the debugger and the new code is executed 

Great.

> (got a few bugs do to
> JDK 1.4 beta status :-).

Er...not so great! (Let me note that Squeak's compiler and VM tech are
*much easier* to understand and experiment with. And that's a design
principle. I mean, why don't we just move to VisualWorks? There's *lots*
of advantages to being ontop of VisualWorks. But, eh, the VisualWorks VM,
why speedy and cool, is tricky. I *like* being able to, with a bit of
effort, poke down into the guts and not feel overwhelmed. We've
deliberately sacraficed some speed for clarity. Show me a java system that
*ever* can host itself.

Practical end value of these things for end-to-end, B2B secure
transactions? Nil. Let Java do that, I'm pleased for it if it can make
it. But these are not nil values *simpliciter*. Some of these things are
*still* a bit too hard in squeak (e.g., I've never gotten the simulator to
work, but I've not tried too hard).)

> 3- Squeak can do more
> I disagree very strongly, there are so many more tools and support for many
> different things that people need in order to build applications that they
> cannot be listed.  

Here. Of course they can be listed :)

> Agreed a lot of them are complete crap, but many of them
> are incredible.  

Sure. And I feel free to learn from them.

And from Common Lisp, for example. Many incredible things there.

> Take Standard Window Toolkit upon which Eclipse is built
> on.  SWT is a window toolkit that replaces the Ackward Window Toolkit (AWT)
> and Swing with a GUI layer that uses as many host widgets as possible.  It
> manages to look and feel like a real host application, without the awefull
> feel of AWT and the ugliness of SWING !!!  

I am completely underwhelmed by this. Clearly, it's handy for applications
developers, but I don't *particularly* care. If I were a cincom person I
might be worried, or maybe just intrigued. I would strive to get at least
as good but with that Smalltalk edge.

> A good number of the
> standards/API that are being defined by the Java community are really
> useful.  You can't overlook what the momentum behind Java just because its
> not an exact fit.

Why not?

Exactly, why not?

Having diversity is a *good* thing.

Really, the choice has been made. None of these are compelling *technical*
reasons to switch. "Look, java is closer to having what you already have,
you still have a bunch of things that would be a pain in the rear to redo
for Java, and Java has a bunch of things not clearly of interest or use to
you that you don't have, too many to be listed."

If there were *compelling* technical/social reasons to switch, we might
well. These would likely have to be *failure* driven, somewhat. I.e.,
there'd have to be a clear failure of Smalltalk. But I don't see
it. Smalltalk overall is stronger than ever.

"But you're losing all those Java PROGRAMMERS!!!" So? Just because there
are more of them doesn't me they'll work on things I like and want.

This also sounds like "Squeakers! Come through your weight behind the huge
Java momentum! Lend your efforts to Java! Help us make Java better!" And I
want to help java...why?

If it's got such great momentum, it doesn't need my help.

Many kinds of software generate a delicate ecology. Not in every
way. Squeak generates a robust ecology against such natural disasters as
Apple going out of business. But I've seen many exciting projects switch
to Java then becoming rather dull and lifeless. StarLogo is
one. StageCraft is another. Java almost killed VisualWorks. Etc.

So, Java folks, you have to persuade us not merely that the
technical/social rewards are compelling, but that we can survive the
switch.

I say this recognizing that some folks can't live in/with Squeak but
think, at least, they can live with a Squeak/Java thingy. I'm sorry for
you, but it's hard to see how the Huge Momentum of Java leaves you
starved. If it does, then that HugeMO isn't so great. In any case, *I*
thrive in Squeak. I'd like to keep thriving. There are other
such. Personally, I shall resist efforts to get me to work toward or
support my own computing unhappiness ;)

And all this with the recognition that Squeak is warty as hell. But I can
live with them. And I *like* working to remove those warts.

Cheers,
Bijan Parsia.




More information about the Squeak-dev mailing list