YAPC Lightning Talks Nostalgia

gnat on 2002-06-19T20:43:57

gnat writes "While you're looking forward to YAPC lightning talks, look back to the YAPC 2001 lightning talks. In particular, Sean Burke's seminal "How OOP is like Japanese food", which you can stream or download in MP3 format through the magic of Apache::MP3." PS, register for YAPC!


Iterater negativity

ken on 2002-06-19T22:06:09

Just read "How OOP is like Japanese food".

Burke says: These are both bad things, and even wanting them is a sign that everything is just wrong. And the OOP equivalent of those danger signs is, of course, iterators. [Except in streams!]

He does not go on to substantiate this comparison. I would like to hear any justification for this opinion.


Yet another JAPH

Re:Iterater negativity

ziggy on 2002-06-20T02:25:22

Yes. This is very confusing, partially because the term iterator is overloaded.

On the one hand, it's a C++ bastardization of a general concept, where every relevant class has *, ++ and -- overloaded so you can do things like use generic sort functions with your class (regardless of how the aggregate structure in your class works internally).

On the other hand, there's the source of that general concept in the Lisp world, where an iterator is nothing more than serialized access to some abstract sequence (lines in a file, integers between 1 and 10, leaves in a tree, or well-formed blocks of input).

The first kind is like fresh uni. The second kind is like a fresh, warm unagi handroll. :-)

Brak Counter Brak

TorgoX on 2002-06-20T04:43:54

I was bitter about a run-in with a horrible system that couldn't be bothered to return a simple list (because lists aren't OOey! so say the VOICES!) and so returned an iterator object. So it was real ugly to deal with, instead of how pretty a simple foreach($thing->woozewuzzle) would have been.

I think that's what I meant.

Montreal was in the middle of an unliveable heat wave, so as I was giving that talk, I could barely stand up from heat exhaustion. Global warming is fun!!

Re:Brak Counter Brak

pdcawley on 2002-06-20T07:28:38

Heh. But $thing->woozewuzzle->loop(sub {...}) isn't exactly tricky.

Let me guess; that's not the kind of interface the thing provided.

Re:Brak Counter Brak

gnat on 2002-06-20T15:53:09

Not tricky, but uglier than sin. That kind of nonsense is what happens when your language implemented OO with the 80/20 rule. Cleanly integrating iterators was the 20/80 that didn't get implemented.

--Nat

Re:Brak Counter Brak

pdcawley on 2002-06-21T08:58:24

Point. This is where Smalltalk syntax starts to win:
aCollection do: [ :each | each someMethod ]
Should look lots nicer in Perl6 too:
$a_collection.do({.some_method })
Hmm... I wonder if you'll be able to dispense with the parentheses there...

Re:Brak Counter Brak

pnelynx on 2002-06-21T10:23:42

IIRC, Win32::OLE solves this for OLE collections by providing a method "in", which enables you to write

foreach $elem (in $coll) {...}

which also resembles the Visual Basic For Elem in Coll(?) syntax, making it a bit easier to port VB code (e.g. in interface docs).

Re:Iterater negativity

Dominus on 2002-06-21T04:55:27

You may be interested to read Henry Baker's excellent paper Iterators: Signs of Weakness in Object-Oriented Languages . The quick summary: If C++ had had a decent type system with reasonable polymorphism (like Perl arrays) or if it had had decent higher-order functions (like Perl map) then all this yah-yah about 'iterators' would be completely unnecessary.

Henry Baker is one of those people where you should pay close attention to everything he says because he's nearly always right. What is it about people named Henry, anyway?

You're too modest, gnat

clintp on 2002-06-20T03:13:26

No-one that was there can forget the Lighting Talk That Shall Not Be Named (at least around the Python folks anyway). It's been two years, and we're still waiting for a transcript. :)

Re:You're too modest, gnat

jhi on 2002-06-20T03:39:32

You missed the part where gnat explained (as if it ever needed explaining) that That Talk Shall Never Be Transcribed Publicly.

Re:You're too modest, gnat

davorg on 2002-06-20T08:02:39

But there have been repeat performances. I've seen two. One at YAPC::Europe 2000 and an unforgettable performance at about 3am in the foyer of the Doubletree Hotel in Monterey at OSCON 2000.

Re:You're too modest, gnat

gnat on 2002-06-20T16:20:22

A fan! Thanks! Tell you what--if Python's still around in 2005, I'll do it again. That was a lot of fun to do, but I'm worried that the more I do it, the more chance there is that someone will realize I'm just talking shit :-)

--Nat

Atari

jdavidb on 2002-06-20T05:58:53

Similarly, if you're writing an Atari 2600 emulator, I don't way to hear the word "object" mentioned, even in jest!

I have a sudden, almost uncontrollable urge to write an object-oriented Atari emulator in Perl.

2002 talk: CPAN is unusable

dc2000 on 2002-06-25T05:12:12

A sneak preview 2002 lightning talk: CPAN is unusable is posted.

dc

Re:2002 talk: CPAN is unusable

bart on 2002-07-21T10:44:54

Well, OK... The main problem with CPAN, as perceived by this Anonymous User, is that it isn't clear that the actual download link is in the top section, next to the label "Latest Release"; and that the links in the bottom sections all point to documentation.

(See slides 3 and 4)

I'd propose an extra header bar above the bar "Modules", and that a header "Download" is added above the label "Latest Release".