Örvitinn

aprílgabb trúleysingja og ofurnörda

Ég klikkaði alveg á árlegu aprílgabbi trúleysingja á strikinu þetta árið. Málið er að ég fór að sofa fyrir miðnætti og þetta gabb verður eiginlega að fara í loftið strax eftir miðnætti. Birgir reddaði því, setti sitt inn þegar klukkan var þrjár mínútur yfir miðnætti.

Ég var við það að setja inn svar áðan þar sem ég ætlaði að gefa frat í þetta hjá honum og lýsa því yfir að Gvuð væri ekki svarið heldur nýaldarhyggjan enda hefði ég farið til miðils, smáskammtalæknis og í nálastungu um morgunin. Sleppti því reyndar að taka smáskammtalyfið enda virkar það eflaust best þannig, ef maður tekur mark á fræðunum

Nennti svo ekki að senda það inn þegar ég var búinn að skrifa það. Það gerist stundum. Þeim fjölgar t.d. greinunum sem ég hef skrifað inn í þessa dagbók en lifa ennþá bara sem frumdrög í kerfinu. Koma hugsanlega síðar út.

Þrjár tilraunir hafa verðir gerðar til að gabba mig það sem af er degi. Fyrst sendi Ingunn matarpóst klukkan hálf tólf, matur átti að vera snemma í dag þar sem kokkurinn þyrfti að skjótast út í hádeginu. Nokkrir starfsmenn skokkuðu upp á efstu hæð.

Eftir mat fékk ég svo prívat póst frá Mike Wallir producer frá Simon&Schuster þar sem hann bað mig um að rölta upp og ræða við sig um stöðuna þar sem hann er að fara til BNA í dag. Ég sendi honum póst þar sem ég sagðist ekki falla fyrir svona djóki (meira í gríni en alvöru) en tók svo eftir því að enn og aftur fór fólk að týnast upp á efri hæðir. Allir starfsmenn höfðu semsagt fengið svona póst og Mike kannaðist ekkert við málið. Ég gruna kerfisstjórann.

Í morgun þegar ég kom til vinnu fékk ég svo nördalegasta aprílgabbið. Christian Tismer höfundur stackless python sendi þennan póst á stackless póstlistann. Þetta er semsagt aprílgabb ofurnördans.

Dear Python/Perl Community,

Insiders have known this from the beginning, and they were waiting for this to happen for much too long time:

Stackless 3.0 has been dead-born from the beginning.
The new live language is Stsckless Perl 5.0!

This is not due to the nature of Stackless, it is due to the nature of Python. There is a better language than Python, and its name is PERL!

Python has always been a recursively implemented language.
Perl has been stackless from the very early days.

My brain has always been thinking the Python way.
But my heart always was beating the Perl rhythm & $blues.
Now my time has come, and there is again

A BIG CHANGE OF STACKLESS:

Finally, after all the years of development, it became
not only natural but also consequent, to abandon the very
hard way of merging the principles of Stackless Python 1.0
and 2.0 into 3.0. Instead, I invented Stackless Perl 5.0.

===================================
Stackless Perl 5.0

The implementation was incredibly simple. I just had to drop
95 percent of my C implementation for Stackless Python 3.0, change the object model, and to invent three new Perl objects. These are:

stackless::tasklet
(about 20 methods)
stackless::channel
(about 120 methods)
stackless::continuation
(about 4 methods)

The latter is a re-incarnation of an old idea, which was most popular in many Scheme dialects, but seems to me most appropriate in the Stackless Perl context. There are now infinitely countable ways to express new ways to express
new or existing control structures by Perl continuations. This is an incredible, outstanding feature, which clearly contradicts the Python "one size fits all" paradigm. Or was it "there is only one way to do it"? (What to do, at all?)

Stackless Perl has Default UNIVERSAL methods, for example:

isa(tasklet)

isa returns true if its object is blessed into a subclass of tasklet

isa is also exportable and can be called as a sub with two arguments.
This allows the ability to check what a reference points to. Example

use UNIVERSAL qw(isa);

if(isa($ref, 'tasklet')) {
#...
}

can(become)

can check to see if its object has a method called become, if it
does then a reference to the sub is returned, if it does not then undef
is returned.

And so on. The number of well-formed examples is so incredible large. Isn't that just great! ? Oh, I love it so much. Such a match!

Another very relevant example is the solution to *all* existing PEP308
proposals: The stackless Perl dynamic syntax parser has been extended in a way that covers every possible PEP 308 alternative to implement ternary operators in a completely individual way: Every individual is now able to spell her/his own way of understanding the myriads of possible solutions to implement the different incarnations of $if expr $elif expr $else expr $endif Perl constructs and their relatives, in any imaginable and unimaginable perlish way. This is of course due to the radical use of continuations, together with dynamic syntax rules. I have to admit that this example code took me another two days, and three days of theoretically testing every thinkable implementation possible.

There is no single way to say it. Just say it. 100 Python people will just say "say what?" or "ni!". 10000 Perl people will love and support my message. Messias, you did so absolutely right, finally! Isn't that amount of love and support worth a paradigm change?

I'm very happy that I became converted to this remarkable language in such a short time. It took me only two days to do the whole implementation (that is, abandoning almost all of the code). I will spend the next six months doing the debugging, and the next 10 years doing the porting:

I'm now happy to tell this to all my customers and sponsors: After having ported all your code from Stackless Python 1.0 to 2.0 and almost to 3.0, I now would like to be paid for porting your whole Python application to Stackless Perl 5.0. I know you are happy with this since you knew from the beginning, that this would be most effective in the first place. Sorry for messing with Python for all the years. This was a major design flaw, that I realized a few days before. This principle of very fast design changes makes Open Source so attractive to me.

Downloads are avaliable here: http://stackless.apriperl.org

This was a statement about Stackless Perl 5.0, just an intermediate step towards Stackless Perl 6.0, which will make use of the outstanding feature of white space overloading with continuations. This feature will be presented on the Python/Perl Integration marathon sprint session in August 2005 in Luxemburg. Please apply early, this is a really small country.

BTW., can any knowleadgeable body please give me a crash course in Perl programming? I would like to be able to produce some testing code, but I didn't have the time to RTFM, yet. :-)

cheers -- chris@stackless.apriperl.org

p.s.: This message was intentionally not cross-posted, since most readers will be assimilated to the Perl community anyway, the sooner or later...

dagbók