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.