Why Java Isnt Smalltalk

An Aesthetic Observation.

http://www.smalltalkchronicles.net/edition3-1/whyjava.html


There are so many subtle differences between the SmalltalkLanguage and the JavaLanguage that it almost isn't fair to compare the two. Most folks have no idea what they're missing by using Java. Words almost cannot describe the heuristic differences between the two without using Smalltalk (VisualWorks, MT, DolphinSmalltalk, SqueakSmalltalk, etc.) first.

Sadly, most Java programmers treat the language as a modern-day COBOL -- a mold it sorely fails to fit into. Let's face it: If you want to define a record structure and MOVE data between fields and do a few COMPUTEs and then do a WRITE, COBOL wins the race. This, in part, I think is why many Java programmers fail to "see" the Smalltalk worldview: It's completely object-oriented right down to the environment. Most Java programmers simply aren't to that point in their thinking yet. One wonders if this will ever happen. -- JeffPanici
[clap of thunder]

--CostinCozianu

Well, if it has done to death, just for my intellectual curiosity, I'd like to know whether there is a method to achieve formal proof that once a fairly complex Smalltalk system deployed, it will not generate any MethodNotFound?/DoNotUnderstand? type of strong dynamic typing ?? Give me a reference, or a link.

[Will you also contribute an analogous reference or link showing that "fairly complex" Java code will not generate a ClassCastException or segmentation fault at runtime? More importantly, would please sketch, in pseudocode, how (without restartable exceptions) you'd recover from such a situation in Java? The Smalltalk analog is straightforward and has been done multiple times. -- TomStambaugh]

UnitTests. Formal proofs don't matter in computer science. It's difficult to prove the correctness of any program more than a few hundred lines long, and even that would take you a few weeks to months.
Are you confident that you can write enough UnitTests as to make absolutely sure, that your UnitTests catch all the programming errors that a statically typed language would catch at run-time? I believe not. If I am correct, do you have a model for calculating some probability on that ?

-- SunirShah

This reminds me so much of WorseIsBetter. -- CharlesMiller

When making technical decisions over which solution is better, being aware of the technicalities does indeed matter. I hope you won't get a decision position in developping avionics software, and decide to replace Ada with Smalltalk because you prefer to be efficient. Or if you do, please let us know here on Wiki, so we can avoid catastrophes.

http://www.don-lindsay-archive.org/skeptic/arguments.html#straw

who suggested doing that? Well, don't a lot of people think that Smalltalk is the greatest of 'em all ?

http://www.don-lindsay-archive.org/skeptic/arguments.html#digression

You're suggesting that one couldn't write safe avionics software in Smalltalk? I don't believe that for a second. Remember that a big chunk of our financial industry is based on Smalltalk-based software. Also note that some major pieces of avionics software, as used in comercial passenger jets, runs on Microsoft's Embedded NT product. -- RobertChurch

So Smalltalk IS the greatest of 'em all, after all... For one second I belived somebody had some hesitations about that.

http://www.don-lindsay-archive.org/skeptic/arguments.html#sequitur

Hey, how does the statement "I believe that you could write safe avionics software in Smalltalk" equate to "Smalltalk is the greatest of 'em all"?

Do you believe, or are you sure ? Has Smalltalk ever been used in a safety critical environment? Would you care to share with me what exactly are the real time facilities of Smalltalk? "EmbeddedSmalltalk?" has been used inside every oscilloscope produced by TektronixInc for an eternity; it is the way Tek manages to deliver such a variety of special-purpose scopes. There is a wealth of literature describing the hard- and soft-realtime aspects of that technology. WardCunningham and KentBeck, among others, can speak from first-hand experience. DaveThomas and OTI produced the embedded virtual machine technology, and derivatives of that technology, acquired from OTI, now power VisualAgeSmalltalk and VisualAgeJava from IBM. -- TomStambaugh

[Tek isn't using Smalltalk any more, and hasn't for years. See TektronixElevenKayScope]

http://www.don-lindsay-archive.org/skeptic/arguments.html#digression

I would also really like to know about that dynamic strong typing. I have absolutely no prejudices on Smalltalk, and even I'm willing to admit that 'good for everything' language theoretically can exist. Please help me find out if that phylosophic stone is not exactly Smalltalk.

http://www.don-lindsay-archive.org/skeptic/arguments.html#laziness


I posted the links to the logical fallacies. I did this to show you that you are arguing from desperation. It's cheaper to retract your comments and then weaken them to questions then to argue hopelessly backed into a corner. -- SunirShah

The biggest logical fallacy in here is you making the connection between financial software and avionics. Cut the whole crap out. It doesn't matter to me.--CostinCozianu

I didn't make the connection between avionics and financial software. Someone else did. -- SunirShah

So, either I was sleepy , or RobertChurch really didn't signed the paragraph at first time. Anyway I kindly invite him to pay a visit to comp.lang.ada newsgroup and express his opinon on the subject at hand (financial and avionics). I'm sorry for taking on you SunirShah. My point is that we have different languages, supporting different concerns and its pointless to make language comparisons.

As a matter of fact even for OO I believe we have several equally valid OO models. Thus I find it nonsense when good Smalltalk folks behave like they have some kind of a monopoly on everything that has OO in the description. -- CostinCozianu

But that doesn't change the question. Why isn't Java better designed?

That's a good question. I'm affraid it's too late to ask for a change, so the question remains rhetorical, thus useless. With all its bad things (and some more are on the way), it kind of works for me. A good programmer can pretty easily slalom around java limitations. -CostinCozianu

Of course, my bet is that Sun just doesn't have the expertise to do it, especially JamesGosling. A good opinion from RichardStallman lies on "JamesGosling". TomStambaugh has had many first-hand words about the Sun troup as well. -- SunirShah
CategorySmalltalk

EditText of this page (last edited February 13, 2005) or FindPage with title or text search