[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