Jython vs Squeak for teaching multimedia

Richard A. O'Keefe ok at cs.otago.ac.nz
Wed Jun 26 00:39:49 UTC 2002


Mark Guzdial <guzdial at cc.gatech.edu> wrote:
	In the end, I surrendered on Scheme.  Take a look at the student surveys 
	linked off http://coweb.cc.gatech.edu/mediaComp-plan  I learned that 
	Scheme has a really good reputation, but not good for my class.  The 
	reputation is "Serious CS."  Non-majors aren't interested in serious 
	CS.  (I actually had one English professor say to me, "You wouldn't use 
	Scheme, would you?  Do you know that they use that at MIT?!?  That's not 
	what we want for our students!")
	
About 8 years ago, when I was at RMIT, we knew we were going to have to drop
Pascal as our teaching language.  I was in the group that had to make the
decision as to what we would use.  I recommended Scheme.  By the following
week, the rumour had got out, and we started getting phone calls from
schools saying "if you're going all 'academic' like that, we'll tell our
pupils to go elsewhere."  Funny thing is that this was a course for CS majors,
and we were after all a University.  Weren't we _supposed_ to be academic?
(Even funnier: Rob Hagan at the Monash Caulfield campus had great success
using Scheme in what was basically a polytechnic course.  Originally the
students had 3 semesters of COBOL.  When Rob Hagan gave them one semester
of Scheme followed by one semester of COBOL they ended up understanding a
lot more COBOL than when they had 3 semesters of COBOL.  Academic my b*m!)

	Squeak's syntax isn't well-oriented to non-majors who MAY do future 
	programming, but want to do as little as possible now.  (Again, see the 
	student surveys.)  They want something that looks like Java or C++ or 
	Visual Basic.  While Squeak's syntax is elegant and uniform, it's not 
	obvious.

You really *cannot* call Java or C++ syntax obvious either.
Isn't there a saying "if it wasn't arcane, it wouldn't be C?"
Java spits in the face of 40 years of learning about programming language
design.  Visual Basic syntax may be verbose, but (as someone who lost count
of the number of programming languages he had used when the count exceeded
120) I have to say that it is very far from obvious.  (And C++ is worse than
arcane.)

I guess if we want them to deal with something that has simplistic
control structures and has obvious 'relevance' to everyday life you
can't go past Pentium assembly code.  [Half (:-), but only half.]
	
Seriously, our first year computing papers are shared with Information
Science and _are_ the general "service" papers, and I wish I could say
that we used Smalltalk or Eiffel, but we use Java.  Java has three
virtues:

 1. It's very nearly portable.  (Except for having 1.4 on SPARCs and
    1.1.7 on Macs; hence having to upgrade our labs to MacOS X.  And
    of course it doesn't fit on hand-helds.  And no way could it run
    on the B6700 descendants still in production and use.  And ...)

 2. It has big libraries.  (Even if, for example, an XSLT processor
    in Java is still loading its classes when libxslt has already
    finished crunching through all of Shakespeare...  With respect
    to the New Zealand Programming Contest, I've been arguing that
    the problem specifications should be provided in HTML.  One counter-
    argument was that we couldn't be sure that all sites would make it
    possible for contestants to view it.  It was a real pleasure to retort
    that since contestants had to be allowed to use Java, we couldn't
    stop them, because an HTML viewer came as part of Swing.)

 3. People WANT to learn it.

For us at any rate (and for RMIT, who found themselves forced to switch
from Ada to Java *despite* the existence of Ada->JVM compilers) point 3
is the biggie.  Java may be lame and daft, and it may be a real PAIN to
use it compared with Smalltalk, but if people WANT to learn Java and
DON'T want to learn Smalltalk, guess what they'll learn?



More information about the Squeak-dev mailing list