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!
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 simpleforeach($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:Should look lots nicer in Perl6 too:aCollection do: [:each | each someMethod ] Hmm... I wonder if you'll be able to dispense with the parentheses there...$a_collection.do({.some_method })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?
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
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.
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".