Apple hyping java...

Bijan Parsia bparsia at email.unc.edu
Sun Mar 31 23:40:13 UTC 2002


On Sun, 31 Mar 2002, David Chase wrote:

[snip]
> The learning curve here is really unpleasant.

And it varies. Clearly Squeak's not fitting well for you. Thanks for the
details.

>  I can compare
> this with a couple of different things I've picked up in recent
> months.  One was DrScheme, from Rice.  I already knew Scheme, sure,
> but I didn't know the IDE (and I have the red, blue, and green
> Smalltalk 80 books to browse for Smalltalk examples, so I'm
> not completely without documentation).  DrScheme had an
> example graphics thing I could cut from the doc, paste, play
> with.  It was even a little bit buggy, so they could illustrate
> how to do something better (also in the doc).  There's a
> "scripting" window in Squeak, but it doesn't appear to be
> what I wanted, since I cannot type in it, move it, close it,
> or change its size.

FWIW, I've also used DrScheme and found it much harder to use and figure
out than Squeak. <shrug/> Neither of us are prolly good test cases.

[snip]
> I have similar gripes about it.  At one point, after
> using it for some days, it still took me *minutes* to
> find the proper button to push to get what I wanted.

Actually, I find that to be the case for a lot of UIs. So, I do agree, to
a certain extent.

> Please understand (and I can see how it would fit your model of
> the world not to believe this)

I don't know how you can.

> I am actually trying to figure
> this out, 

I never hinted otherwise.

> and I am actually quite good at figuring things out.

I never hinted otherwise. However, you are not the only person having
tried to figure it out who is also good at figuring things out. Some of
those have had different experiences. I'm glad to have yours written up.

> I've fixed Other People's Bugs in everything from Gosling Emacs,
> to device drivers in the LSI-11 FuzzBall OS, to a DVI-to-PDF
> converter in MikTeX, to David Gay's floating point-to-string
> conversion code.  If it's not easy for me, you've got a problem.

Not necessarily. You *aren't* a novice user, you're an expert in a
different gamult of UI cues.

Or rather, it's not yet clear to me that it's the problem you think it
is. I would *like* Squeak to be friendly for one of your background and
skills, but, frankly, I don't go out of my way to do anything about it. I
spend my time making it friendlier for me, mostly, and for people I have
to use it with.

> This feels like an Adventure Game, not a user interface.

Sorry. Still works well for me and I suck at Adventure :)

> >I know, but I don't see why not. Squeak is great for writing a wide
> >variety of compliers. You've not done it, I take it.
> 
> I've written a number of compilers, looked at many more.

"You've not done it [that is, written a compiler *in Squeak*], I take it."

>  I've
> written a fair amount of code in Lisp and BCPL, and had quite
> good luck with some untyped C code that I wrote long ago (all
> roads lead to void *).  I spent a good long time playing with
> functional languages (wrote an FP84 interpreter in BCPL, even).
> I'm not stupid, I'm not inexperienced.

I really meant that you were inexperience with using Smalltalk to write
compilers. I still hold your rationale for why Java "works" for
"compilers" where Squeak "doesn't" are trollish.

Actually, given your experiences, I don't see why you would recommend
Squeak (or Smalltalk) for *anything*.

> The compilers I was thinking of, and I should have made myself
> clear, seem to take at least 8 person-years to complete, and are
> commensurately large.  

Yes, that would have helped, but I'd still dispute it. (Again, to be
clear, I think Squeak is *great* for smallish compilers for dynamic
scripting langauges. I think it can work well for other sorts, but I take
it we don't dispute the scripting lang category.)

But we really have to just disagree, or launch the experiement. I will
point to the fact that Smalltalk has been used for *very* large systems
(easily the size you describe), including every Smalltalk system. Self's
dynamic profiler/optimizer was written in Self.

I *also* think that there are languages that might well do much better, on
a number of fronts (especially statically typed functional langauges), but
there's a lotta 'if's in there.

Oh, another super-static neat langauge you might check out is Mecury, a
Prolog descendant.

> It would be a tremendous win to write one
> of these in less time, but it would also be an expensive experiment.
> I don't know if they are large because they must be large, or if
> they are large because the use of a stupid language makes them
> large, or if static checking makes it possible for them to become
> large.  Again, an expensive experiment to determine what's really
> going on, and I'm not really interested in ridiculous dogmatic
> answers from people who haven't even done it in the "wrong" language.

Er...You don't mean *me*, do you? :) I guess you missed the jokey bits.

But really, I know well that Java has been used to do all sorts of
language experiments and implementations. It's acquired a wide range of
quite amazing tools (parsing frameworks alone). Some of these have fought
hard with the JVM (e.g., Kawa) and done neat stuff.

But lets separate two bits. One, I don't think saying "Java sucks" on a
Squeak list is a Crime Against Squeakanity. Second, I don't think that
Smalltalk has any inherent barriers to writing good compilers. Third, I
think that Java -- aside from frameworks -- has relatively few advantages,
especially in theory, for langauge implementation (as opposed to langauges
like Mercury, Haskell, ML, or Common Lisp).

> You probably think I'm a neanderthal for using sucky Java,

Not at all. Really. I have *sympathy* :)

I think you're a neanderthal because of that sloping brow! :)

> but
> most places I know of that are writing compilers, are using C
> or C++ -- they're not even using language with garbage
> collection.  (Gcc, astoundingly, is written in K&R C.)  They
> are not even willing to risk that minimal a change.

Sure. I'm not sure 1) why you think I didn't know this and 2) what
relevance it has. I certainly wouldn't suggest porting Gcc to Squeak :)

> What I don't see is what your purpose in arguing with me like this
> is.

Well, I'm a bijany-come-latey to this discussion. I, however, really
dispute two things: 1) that, on a Squeak list, people should get bent out
of shape and chide folks for saying "Java sucks" 2) that "Squeak isn't
good for compilers". If the "Java sucks" stuff *really* personally bothers
you so much, then I'm sorry about that fact, but really think the solution
is to grow a thicker skin. That Squeak, as it stands, isn't a good choice
of porting target for gcc I can totally agree :)

>  My suggestion/request, if you wish to do something about
> the adoption of Java where you think Squeak would do better,
> is to show off Squeak where it works well, and is clearly better
> than Java.  

Hmm. Ok, I'm prolly in the wrong converstation. I don't generally try to
displace other people's choices except when *I'm* affected by them, or
they really are having difficulty that I can help with by my advice.

> If you wish to argue that Squeak is truly better
> even for writing compilers, 

I don't want to argue that. I just don't think that there's enough of a
difference *even* given the frameworks for me to switch. Haskell and
Mercury are a bit more compelling for me, on that front.

> you can say that, but as a
> compiler-and-other-things writer, I see Java's limits most
> clearly when working on things that are not compilers.

Heh. I can believe that. Hmm. Here's an interesting case: take Appel's
Modern compiler techniqeus in Java (there are C and ML versions) or that
Java Parser book (which implements a couple of logic and query
languages). Would they be *better* if the code were in Smalltalk? I don't
know. *I* would do better if they were, and I think the books might be
clearer. But I don't know if the difference is great enough to warrent a
switch. If *I* were going to write such a book, I might well use Squeak,
but I'd prolly have to put in a bunch of extra effort to make it worth
using to a large number of people. Expertise and experience tends to trump
language features, I'm afraid.

>   I think
> you are making the job of promoting Squeak (to, for instance,
> Apple) unnecessarily hard if you insist on trying to show it off
> where Java does not most clearly suck.

Heh. We agree there.

I'd go further. If I were trying to sell Squeak to Apple (again), I'd play
on the Objective C possibilitys, and maybe a Hypercardish/AppleScriptical
angle. But that's just me ;)

>  Swing's a pig -- it ought
> to be easy to make it look bad.

Indeed.

> Furthermore, nobody has ever said "wow!" about a compiler demo.

Actually, I believe folks have said "wow!" about Self/Hotspot.

Are we past animosity twixt us? I think I barrelled in a bit, but I also
think you missed some of the lightness in my tone (and were a bit
overstating in the compiler case). I hope squeak *does* become easier for
you, because I find it really works well for me and find myself experience
a lot of frustration in other systems.

Cheers,
Bijan Parsia.




More information about the Squeak-dev mailing list