Slashdot Mirror


Smalltalk Solutions 2001 Trip Report

John Squeaker writes: "Last week while the rest of the world was worrying about corporations warning, and dot coms failing, 300 smalltalkers got together in Chicago to plan for the future. Given the fact corporations like Dell have canceled their user conference this year we were very pleased with the attendence figures. The conference hosted a key note by Alan Kay, a *must* read, and the mood and general feeling of the show was captured in this excellent trip report. More information on the conference plus links to the papers/tutorials presented there can be found at the conference site. Do you want to know where OO languages like Java, Ruby, Squeak, and SmallScript come from? Then come visit us for the real story, and see what you can expect to hear in the next five years." The whole thing is interesting, but I particularly liked Tuesday. Smalltalkers seem to have a secret from everyone else sometimes ...

52 of 99 comments (clear)

  1. Re:Dead wrong! by jovlinger · · Score: 2

    A couple of Qs:

    1) the oopsla 99 BOF on Squeak had a fun presentation on the new Jitter for squeak -- written in a weird self interpreting style, IIRC. It seemed pretty cool. (also one of the best stories on what to use C++ for. "C++ is a great language for implementing langauges to solve your problem". Interestingly, this is the same story many of the functional programming people sing, only they use bigger words like monads and combinators) How is this jitter coming along?

    2) I also seem to remember a product that compiled smalltalk to JVM bytecode. They were very cagey about how they would get around the dispatch issues without resorting to reflection. Any word on this?

  2. Re:How about some Bigtalk by Spiritwalker · · Score: 3

    Indeed, VisualAge Smalltalk and VisualAge for Java are both written in Smalltalk. The portability of the OTI implementation allowed VA/Smalltalk and VA/Java to be shipped on Win32, OS/2 (oohhh), and Unix's. The VM was also responsible for running a Tectronic oscilloscope. Just some of the examples of successful ST products.

  3. Re:After 14 years of working with it ... by jovlinger · · Score: 2

    back pointers? I suppose you mean a collection of weak references.

    which languages implement this, outside of the DB world (where you could argue it is explict as well, being stored in a table) or UML (which so far has resisted all attempts at being executable)?

  4. Smalltalk is on the cutting edge in several areas by dway · · Score: 4
    Yes, Smalltalk has been around for awhile, but it is still the source of new ideas and trends in certain areas. For example:

    Extreme Programming. The extreme programming (XP) methodology grew out of a Smalltalk project 3-4 years ago. The founder of extreme programming, Kent Beck, advocates Smalltalk as the most productive language for XP, as does Ron Jeffries, the author of the Extreme Programming Installed book.

    Refactoring. The term "refactoring" has become popular in the last few years, due in large part to the work done on the Refactoring Browser for Smalltalk by John Brant and Don Roberts. (Martin Fowler's book on Refactoring includes a section on the Refactoring Browser.) The Refactoring Browser lets you perform automated behavior-preserving code refactorings, such as abstracting references to an instance variable, pushing a method up into its superclass, etc. (There have also been some refactoring tools written for Java, but the nature of the Java language will make it difficult to create a tool as powerful as the Refactoring Browser for Smalltalk.)

    IDE's (Integrated Development Environments). Smalltalk has generally been considered a leader in this area, with its integrated code browsers, the ability to reliably look up all senders or implementors of a method, etc. (There is the occasional effort in other languages to catch up in this area, such as VisualAge Java with its integrated browsers, but VA/Java was also written in Smalltalk.) Also, to shamelessy toot my own horn for a minute, I've created an object-oriented "stacking" code browser for Squeak/Smalltalk called Whisker. I used Smalltalk to create this because the IDE supports this sort of experimentation well.

    So, to claim that Smalltalk is somehow dead or obsolete is obviously false. True, it doesn't have the marketing hype (and market penetration) that Java does, but then, what else does? :-)

    (Also, I still consider the language features of Smalltalk to be more technically "advanced" than those of Java. My personal hunch is that if you conducted a random poll of developers with *significant* experience with both languages (say, a minimum of 1 year full-time experience with each), probably 90-98% would agree with this. Of course, the same is probably true of Scheme vs. Java, or CLOS vs. Java, etc.)

    Anyway, Smalltalk is obviously not the answer to all programming problems. (I wouldn't use it to write a device driver, for example.) But it is still one of the best (if not *the* best) options for many larger programming problems.

  5. Re:After 14 years of working with it ... by WolfWithoutAClause · · Score: 2

    6) "just catch messageNotUnderstood"... If it's that easy why isn't it built into the language? (Of course it isn't, quite that easy.) But we're talking about mistakes in the language, not hacks to get around the mistakes in the language...

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  6. Re:TIBET example code or docs? by Baldrson · · Score: 2
    Not that this is a very good example, but I did get to play with the TIBET workspace (itself in a web browser window) at a recent demo of a preliminary version of the system. After a bit of instruction, I entered some code to explicitly generate HTML in an ad hoc fashion into the workspace text area. I wanted to create a primitive class browser (the TIBET "classes" are called "types"). It didn't use any of the TIBET widgetry so the HTML construction is rather escapish, but it does show some of the Smalltalk flavor. It went something like this:

    typeHTML=TPMutableString.create();
    typeHTML.concat('<form><table>');
    TPObject.getTypeMethodNames().sort().perform(funct ion(elem){typeHTML.concat('<tr><td>',' <input type=button name="',elem,'" value="',elem,'" onClick="',elem,'.getMenu()">','</ td></tr>')});
    typeHTML.concat('</table></form>');
    newwin=window.open();
    newwin.document.open();
    newwin.document.write(typeHTML);
    newwin.document.close();

    Then I clicked the EXECUTE button on the workspace and, as expected, a browser window opened up with a column of buttons named for the various TIBET types. I didn't define the "getMenu" method so it didn't actually work, but it wasn't bad for just sitting down and messing around for 10-15 minutes.

  7. Correction by Baldrson · · Score: 2
    Correction, that was creating a method browser -- not a class browser because the "getTypeMethodNames" method returns the names of all methods that have been defined. If I had wanted it to work, the getMenu method would probably have to have been defined as an instance method on the TPMutableString type which would generate HTML for a menu of all types that implemented the named method.

    Not exactly first top notch factored design, I know.

    Such is the fate of a first-time workspace doodle.

  8. Re:After 14 years of working with it ... by Ian+Bicking · · Score: 2
    When I say Smalltalk is too insular, I mean in the really simple ways. Like, developing Smalltalk code when you can only access the server with shell and FTP access. It's hard to partition -- you can't easily split the Smalltalk application from the giant environment that comes with it. How do you ship an application based on that?

    Yes, these things can be done (well, I still don't know about developing Smalltalk code and uploading it), but they can't be done easily. This is the sort of thing that comes almost for free when you use C or Python. But just getting started can be a royal pain in the butt with something like Smalltalk, or heck, even Java.

    I spend an inordinate amount of time dealing with the environment already. (inordinate being anything more than zero -- but in practical terms it can be quite high)

    I can learn new things -- any decent programmer should enjoy learning all sorts of new things -- and when I learn them I know them. I'm always moving forward (even though expectations always increase). But with the environment stuff I always feel like I'm wasting time, and that the time I spend I'll just have to spend again when I move, or set up something new. I guess it's time spent that would be considered accidental, rather than essential -- and it's totally unsatisfying.

    It's petty, I know, which is probably why I sound really annoyed in this post. It annoys me that petty things create serious blocks to being able to use something cool. I wish it weren't so.

  9. Re:why the hell by Imperial+Tacohead · · Score: 2

    Ah yes, a newbie. I suggest you go read the FAQ.

  10. How about some Bigtalk by smittyoneeach · · Score: 2
    Can anyone provide a URL to any real world work done in Smalltalk? Or is it just an abstract base language for the other OO tools named in the posts?

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:How about some Bigtalk by werdna · · Score: 2

      here and here

    2. Re:How about some Bigtalk by Ian+Bicking · · Score: 2

      My impression is that a lot of the real-world use of Smalltalk is for in-house development. I feel I've heard it's particularly popular in financial institutions. Lots of places that are otherwise very boring.

    3. Re:How about some Bigtalk by RevAaron · · Score: 2

      Particular instances where I know personally Smalltalk is used:

      Progressive Insurance: Smalltalk is behind a *huge* amount of their operation. I interned there. VisualAge for Smalltalk as client as well as GemStone/Smalltalk (OODBMS in Smalltalk) and IBM DB2 on the backend. Mission critical, enterprise wide, blah blah blah.
      Medtronic: You ever heard of Pacemakers? Smalltalk is used to prototype the GUI for the "programmers" (devices which speak with the Pacemakers and other in-your-chest devices to, well, prorgam them). Prototyping in a very complex way- there are medical doctors, psychologists, and human-computer interface experts all over it. The department decided that Smalltalk was the best tool, being dynamic and fluid enough (where as most languages and IDEs are not).

      And I get to use it for "real world" (?) plant population and hydrological data analysis and visualization at the NRRI this summer. :)

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  11. Some of us use it by hding · · Score: 5

    I have to do some of my development in Windows, and boy was finding Dolphin Smalltalk a nice thing for me. And no, I'm not some holdover from the 80s - when I started to do programming in the past couple of years (my training is really in mathematics; I wound up here via a winding path), I looked into various languages, tried them out for some of the things that I need to do, and found that two "old-timers" languages (Common Lisp and Smalltalk) fit many of my needs (which, incidentally, are not at all exotic - I do programming for a small trading firm).

    It's a shame that so many people have preconceptions about various languages (often formed on the basis of where they were twenty years ago rather than where they've advanced to today) and therefore avoid checking them out to see what good things they can do.

  12. Where Java came from. by Carnage4Life · · Score: 4

    The story submitter states:
    Do you want to know where OO languages like Java, Ruby, Squeak, and SmallScript come from?

    Although it is true that Java is heavily influenced by Smalltalk, there are also distinctive parts of Java that are based on Modula. Most prominent of which are the Exception handling mechanism and threading model based on Monitors.

    --

    1. Re:Where Java came from. by hsquared · · Score: 2

      But of course, Modula was influenced by Pascal which has designed by Niclaus Wirth. He is said to have worked on the same floor as the Smalltalk people at PARC at one time. It's a small world.

    2. Re:Where Java came from. by Ian+Bicking · · Score: 2

      Ironically, Wirth's B&D style of language design is complete the opposite of Smalltalk's philosophy, which generally trusts the programmer to do the right thing (while allowing them to do the wrong thing), and encourages transparency rather than firm borders. Oberon, Wirth's latest (most minimalistic) language completely annoys me with its utter lack of any sort of coolness. (I kind of liked the Oberon OS's UI, though)

  13. Not so, Joe! by werdna · · Score: 3

    Language bigotry has no place in this forum, particularly when propounded in a naive and uninformed fashion. The author of the comment has apparently not built too many enterprise back-office systems, a venue in which Smalltalk has yet to be surpassed, or been following the extraordinary work at Disney R&D with Squeak.

    Smalltalk has its place in the cannon, just as does Perl and other languages. It has aged quite well, in fact, among those who have taken the time to learn something about it.

    The bigots are free to their own views. I commend to the rest of us, however, a second look. Consider Squeak, an excellent, modern and free Smalltalk implementation. Play with it a bit, and see if you don't begin, at least, to "get it."

  14. After 14 years of working with it ... by crovira · · Score: 4

    I can report that Smalltalk it the best computer language out there despite its only flaw (contained objects don't know about their containers unless you create an explicit link back to the container. That makes instantiation in context more complicated.)

    It consists of a few fundamental rules, ruthlessly applied and a huge library of functional objects.

    I have done things in Smalltalk that are years ahead of what I accomplished in previous languages (C, COBOL, PL/I, APL, BASIC etc.) because the environment is reflexive and additions are interactive.

    Its not that I couldn't have done all this, even in assembler, but that I'd still be scratching out code and waiting on compile-links. With the Smalltalk IDE it was there waiting for me to use it and to build on it.

    The closer other languages and IDEs get to where Smalltalk was (because its a moving target,) the better Smalltalk looks.

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    1. Re:After 14 years of working with it ... by WolfWithoutAClause · · Score: 2

      I've used Smalltalk as well. I've found it had other flaws:

      1) performance is usually a lot less than C (and subject to garbage collection slowdowns; although modern GCs are better); [however Self showed that slowdowns of only 50% over optimised C are possible.]
      2) one image fits all (and the image tends to be big, that's one thing that Java has cleaned up some; although Java admittedly has done some other things less well)
      3) 4 metalevels? What were the designers smoking? Self had this right. Smalltalk should have had 1 or 2 at the most.
      4) proprietary... (has been and remains to some extent)
      5) typing IS useful sometimes (although its not as necessary as you'd expect from using C)
      6) multiple inheritance is useful sometimes and most Smalltalk... doesn't (actually MI is not as necessary in run time typed languages but it's still handy sometimes)

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    2. Re:After 14 years of working with it ... by Ian+Bicking · · Score: 2
      only flaw (contained objects don't know about their containers unless you create an explicit link back to the container...
      That's its only flaw? I think Smalltalk has other flaws, but not knowing about containers only makes sense. What if you are contained by several containers? What if you really don't care about your container (and want to save memory)? What if your real container is far away (linked lists)?

      No, that's not a feature, or if it is it isn't a feature that fits with Smalltalk.

      I think Smalltalk's biggest problem by far is that it's too insular. It's hard to talk with the rest of the world, or interact with what other programs are doing in other environments. That's the price of elegance, I suppose -- purity only comes when you won't sully yourself. But it's hard to work with. The image is a big part of the problem (as much as I think the orthogonal persistence that it implies is cool).

      I really love Smalltalk, but I don't actually use it for anything real (even though I often have my choice of languages). The runtime environment is just too limiting (Smalltalk over FTP?)

  15. In what ways? by werdna · · Score: 2

    How about a single substantive argument to that end? Perl is useless for Object-oriented design. Python is better than Perl in this regard, but different, in many ways.

    Have you anything to offer us but a conclusion?

  16. Re:Useful things in Squeak? by mops · · Score: 2
    Squeak does have some rough edges since it is mostly a research platform (although companies (other than Disney) are starting to use it for real world projects). However, to prevent your comments on Squeak from being generalized, I have some objections to your rant:

    And don't ask them to try and learn the language either, because there's no documented API, and the purportedly self-commented code really isn't.

    Learning Smalltalk is probably the easiest thing in the world, if you know the conceptual OO stuff, which is the same as for Java,C++,CLOS,... There are only 5 reserved words (true, false,nil,self,super). It literally takes you half an hour to learn Smalltalk syntax.

    Since Squeak is mostly a research platform, the code might not be documented so well in some places. However, you have superior code browsing in every Smalltalk IDE and the entire code of your library is open source. So you do not only have the comments to the code, but also the code itself, if you care. BTW, the Smalltalk frameworks have been refined for over twenty years now. Talk about clean frameworks.

    Also (and yes, I realize I'm reaching here), but the syntax is all backwards. It's not sufficiently like natural laugnage to be easy for beginners to use, and it just frustrates experienced programmers used to nearly every other language (i.e., based on C).

    I came from C++ to Smalltalk and I cringe whenever I have to go back. Smalltalk code is readable as almost normal text, whereas you often do not see the forest for all the parenthesis in C++ or Java. For example:

    In Java:

    ...
    synchronized (this) {
    while (aNumber > 0) {
    try() {
    wait();
    } catch (InterruptedException) { ... }
    }
    TheCriticalCode
    }
    ...

    The equivalent in Smalltalk:

    ...
    self synchronized:
    [ self waitWhile: [aNumber > 0].
    TheCriticalCode ]
    ...

    Squeak might not be what you want for normal product development (checkout VisualWorks or one of the other 8 commercial Smalltalk implementations), but within the Squeak world, certainly the most exciting stuff is happening.

  17. Re:Smalltalk is on the cutting edge in several are by janpod66 · · Score: 2
    The extreme programming (XP) methodology grew out of a Smalltalk project 3-4 years ago. The founder of extreme programming, Kent Beck, advocates Smalltalk as the most productive language for XP, as does Ron Jeffries, the author of the Extreme Programming Installed book.

    Like so many things that recently have made a splash (extreme programming, refactoring, patterns, etc.), this is really just giving a name to programming practices and ideas that have been around for two decades. Smalltalk was one of the languages where such ideas originated (Lisp was another major one), they just didn't originate recently.

    (There have also been some refactoring tools written for Java, but the nature of the Java language will make it difficult to create a tool as powerful as the Refactoring Browser for Smalltalk.)

    Quite to the contrary. While Java isn't as convenient to program in as Smalltalk, the additional type information that Java source code contains lets you do more kinds of refactoring safely. In fact, one of the reasons refactoring has not been such a big deal in the C++/Java world is because static type checking in those languages already helps you with a lot of refactorings. For example, in Java, if you change an interface or move instance variables around, the type checker will point out every single place that you need to change. If you use a good IDE, you can breeze through those places and a refactoring only takes a single edit, compile, edit cycle. You still need to make the changes by hand, but that's pretty quick, actually faster than any of the refactoring browsers I have used in many cases.

  18. Re:Smalltalk trip report. by RevAaron · · Score: 2

    I didn't think it had any specific reference. It was a joke based on what a trip report usually is for people with experience with psychedlics. Examples of "trip reports" can be found at Erowid and at the Lycaeum.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  19. Job web site not everything! by alienmole · · Score: 2
    If you think that all available developer jobs are listed on job web sites, well, there's a bigger world out there. The job web sites are good for "coding grunt" jobs, but if you're looking to play in the $150K-250K/year league, you're not going to find many of those jobs there, because that kind of developer doesn't typically get hired off the street - it usually involves more networking, word of mouth, or specialist agencies.

    I do architecture & design work, and some of the projects I've worked on have been implemented in Smalltalk. It's used especially in situations where the requirements are very complex. Most business programming is brain dead - some basic accounting, workflow/groupware/document management, and the rest is just tailoring to individual requirements.

    But in some areas of things like financial services, where the requirements can get truly complex and require math PhD's to develop the specs, languages like Smalltalk (and Scheme et al) can come into their own. In these systems, the problem domain is such that the last thing you want to have to worry about is the sort of infrastructure detail that lower-level languages like C++, Java, or PERL force you to deal with in developing large, complex systems.

    Anyway, the real reason to learn Smalltalk is to learn what object-oriented programming is supposed to be like. C++ and Java, which I'm intimately familiar with, are pale imitations that make significant compromises which dilute OO in a pervasive way, limiting the degree to which pure OO concepts can be applied. Perl isn't worth a mention when it comes to OO - sure it can do it, but not in a way that you'd want to use in large, complex systems. Python is a bit better, and Ruby seems even better, but they still don't quite achieve the level that Smalltalk does.

    Even though I don't develop in Smalltalk day-to-day, it's an important language to have gotten your head around, if you're interested in expanding your skill as a developer.

  20. As a NeXT/OSX developer: Why should i use this? by mcc · · Score: 2
    REPLY WHORING / REQUEST FOR INFORMED FLAMEWAR

    Seriously. I don't know why i should use this language. Convince me.

    I recently started developing with Objective C and the Cocoa/Yellow Box/NextStep API in Mac OS X. I think Objective C is fantastic, and have no terrible problem with living without exceptions or garbage collection. How would you argue that Smalltalk is better?

    What is significantly better about one language as compared to the other? Has one features or elegance the other does not? Has anyone used both? How does smalltalk provide the things that protocols and categories give you in ObjC and multiple inherhitance gives you in C++? Is there way to do the nifty things that you can do with the ObjC forwardInvocation method?

    Also: is there any reason that the smalltalk language could not interface with the Cocoa/Yellow Box/NextStep APIs? Would doing so be clumsy, or in some way degrade the concepts of the language? If you messed with the compiler, could Smalltalk objects and ObjC objects communicate transparently with each other through the objective c messaging system?

    P.S. If i could somehow touch off a flamewar here that involved in ANY way the subjects of CLOS and Objective CAML, i would be completely overjoyed.

    1. Re:As a NeXT/OSX developer: Why should i use this? by RevAaron · · Score: 2

      Smalltalk could probably interface to Obj-C pretty transparently if someone wrote a bridge. (I don't know how hard it would be; ask the TipTop guys.)

      I know that Marcel Weither (sp?) wrote a simple hack for a Squeak -> Objective-C bridge for the Mac OS X (+ Server) version of Squeak. I think it was only one way, as a proof of concept.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  21. TIBET example code or docs? by cpeterso · · Score: 2

    The Technical Pursuit web site does not have any example code or docs. Do you have any more information you can share about what a TIBET program looks like?

  22. If it were more public by HerrGlock · · Score: 2

    It wouldn't be "smalltalk" now would it?

    DanH
    Cav Pilot's Reference Page

    --
    Cav Pilot's Reference Page
    UNIX - Not just for Vestal Virgins anymore
  23. Smalltalk trip report. by pallex · · Score: 5

    Its now been 3 hours. Attempted to virtualize base methods into my new class, but got distracted by hairs on my right thumb. Also, humming from PC now becoming unbearable. Will go for a walk outside, its sunny and i can hear the birds sing. Mellow/not confusing at all, but nice visuals, especially the traces, which persist for several seconds.

    1. Re:Smalltalk trip report. by RevAaron · · Score: 2

      Heh. How can I be the only one who thinks that was hillarious? A darn shame I've no mod points. Maybe it's just the poppy tea talking...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  24. Re:Smalltalk is obsolete by strictnein · · Score: 2
    Ahhhhhh!!!!!! Do not mention Scheme! It is the bane of my past semester at college.

    And it reminds me that I have an assignment due in about 4 hours. Waaaaaaa......

  25. 2nd OOP language? by peter303 · · Score: 2

    Pioneered in the 1970s at Xerox Park. Inspired the first object-oriented language Simula from Norway.

    1. Re:2nd OOP language? by Ian+Bicking · · Score: 2
      I think you meant to say inspired by the first OO language, Simula. In one speach, Alan Kay said he felt the first case of OO programming he has found was an unnamed sargent in the army, who make a tape-based file system where the first few records of the tape contained procedures on how to access the rest of the records on the tape.

      This was something akin to the tape as an object, where you could ask it to do something (by running the programs at the known locations), but it was free to perform your queries as it saw fit.

  26. Smalltalk dead? by chris.bitmead · · Score: 2

    I only used Smalltalk a few times. Boy it was a good language, (although I didn't go any further with it myself, prefering Scheme). But it's dying because nobody bothered to solve the interesting problems that Java addressed - perfect portability of source and byte codes, a single standard and just-in-time compilation. If Smalltalk wants to survive it needs to deal with this. At least Scheme has Kawa. I'm a bit concerned about the future of programming languages what with the overly dominant Java. Java's mediocre but is good enough and ubiquitous enough that it's gaining an inordinate share over better alternatives.

  27. Various links for Smalltalk by merigold77 · · Score: 5
    Smalltalk Links

    I believe EZBoard is written in Smalltalk

    Volkswagen Beetles with code in Smalltalk

    Extreme Programming was invented while Kent Beck was consulting on Smalltalk projects

    I think that's enough for a start :)

    --
    Writing is the only socially acceptable form of schizophrenia. (E. L. Doctorow)
    1. Re:Various links for Smalltalk by RevAaron · · Score: 2

      Yup, EZBoard is in VisualWorks Smalltalk, using a modified VisualWave.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  28. Dead wrong! by werdna · · Score: 5

    nobody bothered to solve the interesting problems that Java addressed - perfect portability of source and byte codes, a single standard and just-in-time compilation

    No, that isn't the case. The free Disney R&D implementation of Smalltalk, Squeak addresses these issues, in some cases profoundly better than does Java.

    Indeed, Java hardly offers "perfect portability," the "write-once, run anywhere" claim is marketing hype at its best. It is, in practice, quite difficult to get identical results from any but the most trivial Java programs.

    In comparison, a multimedia GUI-based application in Squeak runs pixel-for-pixel IDENTICALLY across a vast array of platforms. I wrote a video game for my wife's birthday in Squeak, complete with animation sound and graphics, from the machine at my Office, a Dell PC Laptop. I sent the image by e-mail to my home, flipped it on her iMac while she slept, fired it up, and it just worked. Identically.

    On the other counts, Squeak has a JIT (plus many other nice internal features including object send caching, a sweet and super-fast generational garbage collector), and there is, in fact, an ANSI standard.

    Indeed, Smalltalk's source code is virtually identical across implementations. (The syntax, which --in this sense only-- is super-elegant, can be trivially described in a handful of rules). Except for one religious issue (closures for code blocks). Differences in and interoperability problems between implementations derive primarily from the underlying framework libraries provided with those codes -- a problem hardly unique to Smalltalk.

  29. Viva SmallTalk by a!b!c! · · Score: 2

    First off Kawa exists for java. (I'm too lazy to track down the link.)

    Secondly, Smalltalk has the portability of java explained in the following post. Moderate it up!

    Go to computerjobs.com or whatever and do a search for smalltalk you will see that smalltalk is still used as a programming language.

    Refactoring is a large part of the (deservedly) hyped Extreme Programming. Squeak(smalltalk) comes in with a built in refactoring browser. It can *automatically* refactor code. I believe it finds dupblicated code, and makes large methods smaller. Incredible.
    Go to www.squeak.org and download smalltalk today.

    Now to go offtopic a bit...
    Finally, I'm a bit sick of the omnipresence of Java. ( flamearmor.setON() ) I know and have enjoyed the benefits of java. But I'm a little bit tired of people convincing me how great jsp pages are, javabeans, ejb etc... without knowing much about any of the alternatives. It seems like there are some great platforms out there zope/php, open-acs/tcl which allow people to build powerful flexible websites much cheaper then the java solution. Unfortunately those other ones get no coverage as Java's marketing is incredible.

  30. Smalltalk In JavaScript by Baldrson · · Score: 3
    A couple of Smalltalkers have teamed up to write a very Smalltalk-like system written in Javascript. There was a technical presentation at the most recent Hackers in Santa Rosa and people in attendance said it looked like the entire system including base classes (collections, widgets, MVCesque stuff, formatter/validators etc.) fit into a cached page with less bytes than that required to load one Hotmail inbox index page.

    Apparently, page 144 of Flanagan's otherwise Definitive Guide to JavaScript concerning inheritance in that language misled many to believe that multi-level inheritance would not be possible in JavaScript. As it turns out, not only is multi-level inheritance possible, but so are class methods/attributes, meta-classes and even multiple inheritance and fun stuff like instance level programming ala Self. Apparently JavaScript is a lot more capable than most people, even some of the better experts in it, give it credit for being.

    It would be great if TIBET got released at the WWW10 conference, but I think registration deadlines for vendors has passed.

  31. Re:Smalltalk is obsolete by WolfWithoutAClause · · Score: 2

    No. C.

    Java lacks:

    - templates
    - operator overloading
    - multiple inheritance
    - anal worrying about performance...
    - performance (historically, although it's getting better)

    ;-)

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  32. Re:Useful things in Squeak? (Re:Dead wrong!) by werdna · · Score: 2

    It most certainly does not. I've just spent a semester here at Georgia Tech taking a course on OO-design and -programming, with Squeak being the language of (instructor, definitely not student) choice. Our ongoing semester project was to build an MP3 player (seems cool, right?). However, nobody seemed to notice that people who ran Squeak under Windows (a majority of the class, I believe) had no MP3 support. Oops. They were delayed at least two weeks while someone scrambled to find (or write, I dunno) the appropriate library. Even then, the Windows users had to use a specially-modified Squeak binary.

    Squeak itself didn't have an MP3 driver (we call them plugins) until just a few months ago, and it did take some time to sort it out cross-platform (there were also some licensing issues). I thought that they had this sorted by now, but I'm not sure one way or the other to where John Macintosh's excellent work has been ported.

    It is most certainly true that C-language plugin code is not automatically cross-platform portable, even when plugged into Squeak.

    God, someone just had to bring up Squeak. Ugh.

    Wow, someone who uses Squeak in the real world! I hope you're getting paid a very large sum of money to do so, since I can't imagine anyone doing it out of personal preference.
    As stated above I'm currently in a OOP class using Squeak, and maybe 75% of the people I know in there would agree with me when I say Squeak has been the worst programming language I've ever had to deal with (out of the seven or eight I've learned).

    Interesting, my personal preferences were exactly the reverse, but I suspect this may be the difference between "learning seven or eight programming languages" and building real commercial code in one. Smalltalk is an excellent tool for prototyping and building OO systems, and then for extending the prototype to a solid commercial result, at least in my experience. Perhaps this may not be apparent when writing toy programs for a class in school, but in time, you may come to understand the virtues of a programming language that makes programming easier and more efficient.


    The Squeak IDE is one of the most frustrating pieces of software I've ever had to use. Slow, ugly as sin (both the original MVC and the newer Morphic GUI), and bloated as all hell. You must have superhuman patience to be able to create a game for your wife using it.


    De gustibus non disputandum est. My experience is much to the contrary. While I am regarded by some as an excellent hacker, capable of generating high quality code with breakneck speed. I have never been as efficient as I was since I started hacking in Squeak, or as happy while coding and debugging.

    I met Squeak in early November a year or so ago after it was demonstrated by Ted Kaehler at Hackers. I went home, downloaded it, spent a little time with the old Smalltalk books, and had the product running in production form in time for her December 26 birthday, and still attend all the holiday parties.

    Since that experience, in which I was a rank newbie to Smalltalk (and now, I realize to OOP -- though I had been writing in OOPLs for years), it has only gotten better.

    I suppose we will have to take our respective positions as reasonable people, and agree to disagree.

    It's *really* hard to believe that Squeak was supposed to become the language used on the Dynabook, If a bunch of college students can't get the hang of it, I don't see how elementary-school kids could either.

    I'm trying to be polite here. MMy experience is to the contrary. For example, my 9-year old son codes in Squeak, having picked it up, indeed with some decent coaching, in just a week or so. His code is awkward at times and unpolished, but hey, he's actually writing code and thinking its fun.

  33. Odd that we can see it so differently . . . by werdna · · Score: 3

    It most certainly does not. I've just spent a semester here at Georgia Tech taking a course on OO-design and -programming, with Squeak being the language of (instructor, definitely not student) choice. Our ongoing semester project was to build an MP3 player (seems cool, right?). However, nobody seemed to notice that people who ran Squeak under Windows (a majority of the class, I believe) had no MP3 support. Oops. They were delayed at least two weeks while someone scrambled to find (or write, I dunno) the appropriate library. Even then, the Windows users had to use a specially-modified Squeak binary.

    Squeak itself didn't have an MP3 driver (we call them plugins) until just a few months ago, and it did take some time to sort it out cross-platform (there were also some licensing issues). I thought that they had this sorted by now, but I'm not sure one way or the other to where John Macintosh's excellent work has been ported.

    It is most certainly true that C-language plugin code is not automatically cross-platform portable, even when plugged into Squeak.

    God, someone just had to bring up Squeak. Ugh.

    Wow, someone who uses Squeak in the real world! I hope you're getting paid a very large sum of money to do so, since I can't imagine anyone doing it out of personal preference.
    As stated above I'm currently in a OOP class using Squeak, and maybe 75% of the people I know in there would agree with me when I say Squeak has been the worst programming language I've ever had to deal with (out of the seven or eight I've learned).


    Interesting, my personal preferences were exactly the reverse, but I suspect this may be the difference between "learning seven or eight programming languages" and building real commercial code in one. Smalltalk is an excellent tool for prototyping and building OO systems, and then for extending the prototype to a solid commercial result, at least in my experience. Perhaps this may not be apparent when writing toy programs for a class in school, but in time, you may come to understand the virtues of a programming language that makes programming easier and more efficient.


    The Squeak IDE is one of the most frustrating pieces of software I've ever had to use. Slow, ugly as sin (both the original MVC and the newer Morphic GUI), and bloated as all hell. You must have superhuman patience to be able to create a game for your wife using it.


    De gustibus non disputandum est. My experience is much to the contrary. While I am regarded by some as an excellent hacker, capable of generating high quality code with breakneck speed. I have never been as efficient as I was since I started hacking in Squeak, or as happy while coding and debugging.

    I met Squeak in early November a year or so ago after it was demonstrated by Ted Kaehler at Hackers. I went home, downloaded it, spent a little time with the old Smalltalk books, and had the product running in production form in time for her December 26 birthday, and still attend all the holiday parties.

    Since that experience, in which I was a rank newbie to Smalltalk (and now, I realize to OOP -- though I had been writing in OOPLs for years), it has only gotten better.

    I suppose we will have to take our respective positions as reasonable people, and agree to disagree.

    It's *really* hard to believe that Squeak was supposed to become the language used on the Dynabook, If a bunch of college students can't get the hang of it, I don't see how elementary-school kids could either.

    I'm trying to be polite here. MMy experience is to the contrary. For example, my 9-year old son codes in Squeak, having picked it up, indeed with some decent coaching, in just a week or so. His code is awkward at times and unpolished, but hey, he's actually writing code and thinking its fun.

  34. Now wait for the language Nazis... by WhyteRabbyt · · Score: 3
    Yesterday : Ruby is crap because its too new and we have other languages that do the same thing...

    Today : Smalltalk is crap because its too old, and we have other languages that do the same...


    Morale of this? : 90% of Slashdot has the mindset "The way I do it is best. Anyone else doing it a different way is an ignorant asshole."


    Pax,

    White Rabbit +++ Divide by Cucumber Error ++

    --
    free experimental electronic music netlabel at www.viablehybrid.com
  35. Useful things in Squeak? (Re:Dead wrong!) by X_Bones · · Score: 3
    a multimedia GUI-based application in Squeak runs pixel-for-pixel IDENTICALLY across a vast array of platforms.
    It most certainly does not. I've just spent a semester here at Georgia Tech taking a course on OO-design and -programming, with Squeak being the language of (instructor, definitely not student) choice. Our ongoing semester project was to build an MP3 player (seems cool, right?). However, nobody seemed to notice that people who ran Squeak under Windows (a majority of the class, I believe) had no MP3 support. Oops. They were delayed at least two weeks while someone scrambled to find (or write, I dunno) the appropriate library. Even then, the Windows users had to use a specially-modified Squeak binary.

    God, someone just had to bring up Squeak. Ugh.
    <rant>
    Wow, someone who uses Squeak in the real world! I hope you're getting paid a very large sum of money to do so, since I can't imagine anyone doing it out of personal preference.
    As stated above I'm currently in a OOP class using Squeak, and maybe 75% of the people I know in there would agree with me when I say Squeak has been the worst programming language I've ever had to deal with (out of the seven or eight I've learned).
    The Squeak IDE is one of the most frustrating pieces of software I've ever had to use. Slow, ugly as sin (both the original MVC and the newer Morphic GUI), and bloated as all hell. You must have superhuman patience to be able to create a game for your wife using it.
    But good luck trying to turn it into a binary to distribute to your friends, because you can't! And don't ask them to try and learn the language either, because there's no documented API, and the purportedly self-commented code really isn't. Did I mention that that same code sometimes breaks on you, fresh from an install? Yep, believe it.
    Also (and yes, I realize I'm reaching here), but the syntax is all backwards. It's not sufficiently like natural laugnage to be easy for beginners to use, and it just frustrates experienced programmers used to nearly every other language (i.e., based on C). It's going the way of Hypercard, Apple's old natural language-based multimedia programming environment.
    It's *really* hard to believe that Squeak was supposed to become the language used on the Dynabook, If a bunch of college students can't get the hang of it, I don't see how elementary-school kids could either.
    </rant>



  36. Sssshhh by nihilogos · · Score: 2

    Smalltalk is sleeping. Please don't wake it up.

    --
    :wq
  37. Re:Smalltalk is obsolete by connorbd · · Score: 2

    More like C++ and Smalltalk, IMHO... borrows syntax from C++, but the object model is pure Dynabook.

    /Brian

  38. Re:Obsolete by connorbd · · Score: 2

    Perl OO isn't dreck per se, it's just... uh... very... uh... it likes to, uh, solicit more user input than most.

    /Brian

  39. Re:A Few Problems With Squeak by RevAaron · · Score: 2

    If ST is such a great system for throwing up code in a day or less, why doesn't anything like that ever come out?

    There is a company working on windows GUI bindings. Lesser Software. The Squeak list is a valuable resource . (whodda thunk?) Otherwise, people who want it should do it. Isn't that what this whole open source thing is about? Not bitching about the lack of features or bugs, but doing ir yourself, or convincing someone else to do it for you?

    BTW IBM did write much of their Java in ST, but they have replaced it with something else since.

    Last I heard, VA/Java was still written largely in Smalltalk. They started replacing it with Java, as Java has matured a little since the last release. VA/J still has a fair amount of Smalltalk in it, AFAIK.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  40. Re:A Few Problems With Squeak by werdna · · Score: 2

    The UI that it comes with is so oddball that it turns off about 90% of the people who try to get started with it.

    I'm sure you took a poll.

    Alt-Spacebar, the standard Windows way to move a Window? No, this is a cross-platform tool, doesn't do Windows stuff. Five mouse clicks on the demo they pop up to show off, and my computer is hostage to a Window that won't go away. Great modern UI.

    Here, Squeak is critcized for failing to emulate Windows. To me, this is blessing with faint criticism. True, Squeak is not a Windows or MacOS emulator. So what?

    I note, with interest, that the specific "features" you request could be added with a few lines of code. Unlike NT, however, this can be added in Squeak by ANY user, since 100% of the system's source code is persistently available and immediately modifiable in seconds.

    Squeak's GUI is quite modern. Unlike Windows, which has not embodied any significant new ideas or developments since the 80's (when it was ripped off from Apple and Xerox), Squeak's Morphic (which was designed by a team comprising many of the Xerox PARC research scientists) interface is a novel, interesting and exciting new GUI framework that is well worth studying. Sure, its a research tool -- that's why its fun.

    Competent Squeak users routinely modify the appearance to taste. True, Squeak isn't market driven to suit people such as the poster who would prefer it was Windows NT. So what?

    About every 6 months someone points out that Squeak would be ten times more popular if it came with a user interface that didn't look like the 1937 version of Klingon to a Windows user.

    And, indeed, every year or so someone posts a Windows look-and-operate-alike skin to appease them. These skins and corresponding codes are not generally adopted or used by the community, and routinely fall into the bit-bucket of neglected and unsupported code.

    BTW, I do like ST, but the trap is that you've got to commit really big bucks to get the professional versions that can really deliver. Maybe $20k per seat and up, since you have to buy lots of training because the docs are bad and its a culture that you can't catch from a book.

    People who say things like this tend not to be the same people who "really deliver" things for a living. I have delivered ST-based product using software costing far less than $20K a seat, and in fact costing exactly $20K a seat less than that. I never spent a dime on Smalltalk, and found the printed books more than adequate to give me all I needed.

    Maybe $20k per seat and up, since you have to buy lots of training because the docs are bad and its a culture that you can't catch from a book. And then your user gets an app that runs a little slower and takes a little more hardware, and you've got some run-time issues, etc.

    BTW, the biggest multimedia gizmo, the Times Square Jumbotron, is programmed in Ada. Let us know when Squeak gets that one.

    Non sequitur. I admit that Squeak doesn't implement the Jumbotron. So what?

    I note that the Jumbotron doesn't support Alt-spacebar either. This much is certain, Jumbotron is not portable at all, let alone pixel-for-pixel identical across virtually every modern software platform. On the other hand, Disney is presently using Squeak and other non-Ada software to run its attractions and demonstrations.

  41. Re:Smalltalk is obsolete by WolfWithoutAClause · · Score: 3

    Java is the direct decendent of (some would say bastard offspring ;-) of C and Smalltalk.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"