View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Summer 2001 SqWhining

Okay, I'd like to whine about the fact that I'm learning another language that I'll probably never use again! (like Matlab when I took DSP). Why can't we use Java or C++? I build database-backed web sites as a career. At least with Java I could develop some nifty applet, or with C++ I could develop a super-efficient CGI script. What can I get Squeak to do on a browser or a web server? Maybe I'll drop this class and try to wait for the curriculum to change dramatically.

Mike C. (gte964e)

refering to your career, why are you in this class and not working and whining about it ? hhehe, don't hold your breath for a huge curriculum change:)

Smalltalk is actually excellent for database-backed web servers, if that's what you want to spend your time doing. Writing bridges between databases and users is probably the most common thing Smalltalk is used for. The commercial Smalltalks have excellent database connectivity, they do CORBA, they support fast user-interface development (and fast development in general). Furthermore, the big Smalltalk vendors have been doing this stuff for around twice as long as Java vendors, and so the tools tend to be more stable and well thought-out.

But we digress. Here are some specific benefits Smalltalk has over most of the other languages you see at GT:
  1. In-your-face object-oriented programming. You can't cheat and use primitive types like in Java, because they aren't available. You don't wrangle over whether to make things into "real" objects or not–everything including the number 3 is an object. You can't get distracted by fiddling with syntax issues, because the syntax is so simple. Thus, if you really want to learn objects, playing around in Smalltalk is a great way to do it.
  2. A development environment smoother than any you'll likely see elsewhere. You develop in the debugger, and compile times are usually too short to notice. You can develop a system of objects one bit at a time, ignoring progam bootup issues until you are ready to deploy. You browse the system by inherent connections such as who-sends-this and who-stores-into-this, instead of grepping on text strings.
  3. A very concise lambda expression: the Smalltalk "block".
  4. A general collection library based on blocks, which supports a style of programming you can't perform without both the library and a reasonably concise lambda expression.
  5. No static type checking. If you haven't tried this, it's hard to understand how it works in practice.

recursion seems to be quite troublesome in squake... er i mean squeak. i guess i'll just go play video games now.

What is this? It goes into an infinite loop diplaying these lovely pop-up windows. It's nice and cute telling me that it's going to die. I just thought many others would get a laugh out of these pictures.
External Image

External Image

Yes, there is some trouble with the MPEG plugin in the states cluster. No one on the Squeak list has trouble here (I asked), and in fact everything worked fine last semester.

See Squeak in the States Cluster. It'll get fixed as soon as possible. In the meantime, work from Linux or from non-States machines.

By the way, the MPEG plugin is a clear example of why writing humongous chunks of code in C is a bad strategy. Probably just a handful of the functions in the plugin really need the speed, and yet all of the code has to deal with array bounds and NULL dereferences and erroneous free()'s etc. that come along with C. The JPEG reader is much better. -Lex Spoon

It turns out that this is almost always due to a corrupt MPEG file. The plugin accesses crazy memory locations. -Lex Spoon

Link to this Page