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 ...
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?
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.
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)?
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.
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!"typeHTML=TPMutableString.create();t ion(elem){typeHTML.concat('<tr><td>',' <input
type=button name="',elem,'" value="',elem,'" onClick="',elem,'.getMenu()">','</ td></tr>')});
typeHTML.concat('<form><table>');
TPObject.getTypeMethodNames().sort().perform(func
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.
Seastead this.
Not exactly first top notch factored design, I know.
Such is the fate of a first-time workspace doodle.
Seastead this.
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.
Ah yes, a newbie. I suggest you go read the FAQ.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
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.
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.
--
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."
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.
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?
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.
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.
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
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.
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.
Irritable, left-wing and possibly humorous bumper stickers and t-shirts
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?
cpeterso
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
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.
And it reminds me that I have an assignment due in about 4 hours. Waaaaaaa......
Casual Games/Downloads
Pioneered in the 1970s at Xerox Park. Inspired the first object-oriented language Simula from Norway.
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.
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)
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.
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.
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.
Seastead this.
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!"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.
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.
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
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>
the coolest club on
Smalltalk is sleeping. Please don't wake it up.
:wq
More like C++ and Smalltalk, IMHO... borrows syntax from C++, but the object model is pure Dynabook.
/Brian
Perl OO isn't dreck per se, it's just... uh... very... uh... it likes to, uh, solicit more user input than most.
/Brian
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
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.
Java is the direct decendent of (some would say bastard offspring ;-) of C and Smalltalk.
-WolfWithoutAClause
"Gravity is only a theory, not a fact!"