[Random][Humor][Too long] Re: Syntax & Sematics [was: Re: [Enough
already] Re: Proposal3: Make $_ ..]
Bijan Parsia
bparsia at email.unc.edu
Sun Jun 4 16:19:08 UTC 2000
(This is *all* Henrik's fault, and he's graciously just been voluntered to
receive all flames and tech support calls. ;))
On Sun, 4 Jun 2000, Henrik Gedenryd wrote:
> is probably no coincident that lots of people, including Bjarne himself (not
> Bjarne Parsia, the other one), complain that C++ and Java are still used by
Poor Bjarne Parsia...the result of evil genentic experiments which
crossed the genes of myself and "the other Bjarne"...is currently working
on what he's calling "Smallsqueak>>++", or "Screech" for short. Thus far
he's added to base Squeak:
1) Templates with especially long compile times and bloat factors.
2) Operator overloading, so "+" is sometimes a binary and
sometimes a keyword message, depending on the receiver,
and sometimes on the sender, and occasional on
the argument.
3) Manual GC. Instead of automatically kicking in, the programmer
has to track memory use herself, and perform GC when
appropriate.
4) Oop arithmetic. Now you can Smalltalk + Smalltalk and end up
(without warning) pointing to all the garbage in your
memory.
5) Fully braced, often reverse polish notation, with precedence,
syntax.
6) Identifiers must contain an equal number of underscore and non
underscore characters.
7) Whitespace is insignificant, except when used.
8) New inheritance laws: Children inherit from parents only on the
"death" (collection) of their parents, though the parents
may choose to give tax free "gifts" upon achieving tenure
--though, after achieving tenure, the parant class will
not do any work it has never done before (thus, we get a
kind of "finalized" or "dead wood" class); to the GC we
add a stage to full GC, the "probate", which is where
inhertiance may take place; the standard rule is
primogeniture (first child created gets first crack), but
may be altered by the parent class (see the "last
will" protocal; of course, the will messages may be
overidden (by classes in the parent's "friends",
"relations", "devoted servents", and "enemies" lists)
or otherwise "broken", in which case the
#willNotSettleOutOfCourt message gets sent to all
interested parties.
While powerful and flexible, it does sometimes
(typically?) result in perceptible (e.g., multi-year)
GC pauses.
9) Very strong static typing. Once you declare the type of a
variable you can *never* change that type again, no matter
what, not even in other scopes. Indeed, using Squeak's
networking facilities, a type declaration is promulgated
to *all* programs within reach so that *any* use of a
variable *must* conform to the original type declaration
or the whole thing crashes, wipes the hard disk, and
installes (even on Macs and Acorns) Windows 2001, a buggy
oddessy as a lesson to smarty pants who misused the
variable.
10) Slang has been converted to recognizing only four letter
identifiers. So all variables and messages get
appropriately padded or truncated.
11) I could go on, but the horror is getting to me ;)
Bjarne's espeically proud of having improved on C++'s "edit-compile-go out
to dinner-link-crash" cycle. Squawk typically encourages an
"edit-compile-go out to dinner, fall in love, get married, get the hell
out of the rat race to farm mushrooms in the South of France-compile some
more-have fight over poverty and "mushroom breath", get divorced,
desperately need job so go back to old programming job at 1/4 the
pay-link-crash" cycle.
He's planning on releasing this fork under a new variant of the GPL,
called the Gotta Permission Failure (GPF) licence, which basically states
that you have permission to use his software until such time as something
actually works, or you manage to make money off it, at which time you have
to pay Unisys royalties for the GIFs on Bjare's "The 9th circle of
animation" site.
Get it, or get away, while you can!
I fully expect these enhancements to be added to the base Squeak distro.
Cheers,
Bijan Parisa.
More information about the Squeak-dev
mailing list
|