Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

[P]
YAPC Wrapup

By rusty in News
Sun Jun 25, 2000 at 08:22:08 PM EST
Tags: Culture (all tags)
Culture

What happens when you get ~400 perl geeks together in one place to hang out, talk perl, and eat free food? Well, as you might expect from their language of choice, mostly chaos. But the kind of just-barely-controlled, productive chaos that has always been a hallmark of the community surrounding what Larry Wall has occasionally referred to as the "Pathologically Eclectic Rubbish Lister". YAPC 19100, three days of all-out geekery at Carnegie Mellon University, may have been pathologically eclectic, but was far from rubbish. Read on for a summary of some of the events, and why this conference is the coolest nerd gathering anywhere.


Why this conference is so cool

YAPC is a conference by and for geeks. It grew from a dissatisfaction with the high price tag to attend The Perl Conference, the 600 pound gorilla of perl gatherings, put on by O'Reilly. Kevin Lenzo, a grad student at CMU, decided last year to put together a smaller conference on the East coast, with a price tag affordable to any perl hacker. The registration cost for YAPC this year was only $75, and that gets you three days of perl, and free breakfast, lunch, and one dinner.

This year, there were wavelan wireless networking stations set up around the CMU University center, so those lucky geeks with laptops could be canstantly on the network as they roamed about the halls and sat in talks. Apparently, you're no one unless you have a Sony Picturebook these days, as they seemed to be sprouting like mushrooms everywhere. Another cool feature was the IRC server. YAPC was fully IRC enabled, with participants chatting during talks, and some attendees re-broadcasting talks live over IRC as they happened.

The best thing about it though, was that it was virtually a PHB-free zone. This was not a convention, there were no booths, and no booth babes (well, ActiveState had one, but she seemed pretty out of place). The talks weren't dumbed down for a general audience, this was nuts and bolts perl. In fact, some may have speculated that Damien Conway went out of his way to make his talk on "Quantum Superpositions and the First Virtue" incomprehensible even to most of the nerds in attendence.

A couple high points

Obviously you can't get to all of the talks. But some did merit special mention, so the rest of this article will be quick summaries of just a few of the presentations that were given. I realize this is a general interest techie website, so I'll try to hit the parts that are cool even if you're not Just Another Perl Hacker.

JAPHs and other obscure signatures, by Abigail

Many of you have probably seen those odd .sigs that look like line noise, but actually print out "Just Another Perl Hacker" when you run them. These are known as JAPHs (for obvious reasons) and have become a mini-subculture of their own. The goal of a good JAPH is to implement 'print "Just Another Perl Hacker";' in the most counterintuitive and incomprehensible way possible, in less than four lines of 80 characters of perl.

He gave several examples, but one in particular epitomized the form. This JAPH, listed as "Obscure flow" in the online presentation, uses a feature of perl called AUTOLOAD, which lets you predefine a generic subroutine or method call, and then call it at runtime without it knowing what it's actual name will be. The JAPH creates an AUTOLOAD subroutine that just prints out the name it was called by. The way it makes this AUTOLOAD is obscure in the extreme, and probably couldn't be done in any language but perl. It definitely *shouldn't* be done in any language, including perl! But there's more-- it also manipulates the symbol table to alias AUTOLOAD into the $_ special variable, which is the variable that's used when a scalar is needed but not specified. Then finally the text is printed with a set of nested subroutine calls which call subroutines named by the letters of the canonical sentence.

I said I'd keep it non-perl specific, didn't I. Oh well, I lied.

Pointless? Yes, JAPHs are pretty pointless. But for sheer hack value, you can't beat 'em.

What is it with these Python F**ks Anyway? by Nat Torkington

Anyone who is even peripherially involved in either the perl or the python communities will be well aware of the building animosity between proponents of the two camps. Perl mailing lists are regularly gripped in the throes of perl vs. python flamewars, and I can only assume that python lists are too. Of course, like all Holy wars, this is totally pointless and a waste of time for everyone.

Nat Torkington brilliantly satirized the whole mess in this 5 minute lightning talk. With hyperbole worthy of a Monty Python skit (or should that be a Monty Perl skit?) he ranted for five minutes straight without apparently taking a breath, about why python sucks and why no one in his right mind would ever use it.

While he did hit some of the major weaknesses in python (no lexical scoping? slower than Java!!??), the talk was fully meant as satire, and an example of how *not* to convince someone of your argument. And if anyone tries to continue this flamewar in the comments here, they will be taken out behind the barn and shot.

YAPC Paintball

Friday evening, after the official close of the conference, a bunch of folks got together at the Pittsburgh Paintball Sports Arena in the strip district, to get very dirty and shoot marble-sized balls of colored jelly at each other. This was one of my personal highlights, as I'm an occasional, but enthusiastic, paintball player myself. Much fun was had, and I have to publically congratulate Jonathan Eisenzopf of Whirlwind Interactive for personally taking me out of three consecutive games. Bastard. :-)

For the real highlight of the show, also see my other article on Damien Conway's talk, Quantum Superpositions and The First Virtue. I was going to include it here, but it really merited its own article.

Overall, it was a fantastic conference, well-run, well-attended, and worth far more than the $75 registration fee. I heartily encourage anyone interested in perl to attend next year.

Sponsors

Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure

Login

Related Links
o Larry Wall
o YAPC 19100
o The Perl Conference
o wavelan
o Sony Picturebook
o ActiveStat e
o JAPHs and other obscure signatures
o Whirlwind Interactive
o Also by rusty


Display: Sort:
YAPC Wrapup | 29 comments (26 topical, 3 editorial, 0 hidden)
Why Python? (none / 0) (#4)
by mattc on Sun Jun 25, 2000 at 07:55:08 PM EST

The big advantage of Python, IMO, is that it requires indentation, making it MUCH easier to read than Perl. Yes, I realize that good code formatting does not necessarily mean that the code itself is good, but that still seems to be the case more often than not.

If I see
another
perl
program
written like this I'm going to
scream!

I think Perl vs Python is going to become another permanent Unix war, just like vi vs Emacs.

"...going to become..."? (none / 0) (#5)
by rusty on Sun Jun 25, 2000 at 08:07:20 PM EST

Try "already is another permanent unix war." I have my opinions on enforced indenting, but we probably should just spare everyone from having to hear this argument yet again, so I'll keep them to myself. :-)

____
Not the real rusty
[ Parent ]
Re: Why Python? (4.00 / 1) (#6)
by PresJPolk on Sun Jun 25, 2000 at 08:40:27 PM EST

People can't even agree on what to do *within* a language, so how can we be expected to agree upon a language, editor, or anything!

Just look at C:

if(k&r){
     printf("Do one thing.");
}

if(I don't know the name of every style)
{
	printf("Do another.");
}

and there's always the GNU indent style!

So, maybe the forced nature of python just creates unity, since there's only one way to do it!



[ Parent ]
Re: Why Python? (none / 0) (#16)
by tzanger on Mon Jun 26, 2000 at 06:41:53 AM EST

Actually I indent this way:
int myfunc(int a, int b, char c)
{
 int x, y, z;

 if(a == 5)
   {
   x = a*b;
   printf("%c: %i\n", c, x);
   }
}
In other words, the braces are lined up with the test code, which is lined up (usually) with the opening bracket of any test or while or for. It tends to (IMO) better define the blocks of code instead of having a lot of braces sitting at the 0 character position. I also don't tend to code in variable-pitch font so it may look a little strange if you're not browsing with lynx. Just copy/paste into vi or something.

[ Parent ]
Re: Why Python? (none / 0) (#19)
by Alhazred on Mon Jun 26, 2000 at 09:53:02 AM EST

ME TOO!

Your the only one I've heard of doing that besides people I trained.

I wish people would adopt this style (and I wish Emacs would let you set it up without being a freaking LISP genius...).

Maybe you were a FORTH programmer in a former life, thats where I learned it.
That is not dead which may eternal lie And with strange aeons death itself may die.
[ Parent ]
Re: Why Python? (none / 0) (#26)
by tzanger on Tue Jun 27, 2000 at 07:19:42 PM EST

Your the only one I've heard of doing that besides people I trained. I wish people would adopt this style (and I wish Emacs would let you set it up without being a freaking LISP genius...).

:-) I've never used emacs before.

Actually that's not true. I think that years ago I ran it and couldn't figure out how to get out so I never returned. The same thing happened with vi, but for some reason I stuck with it. :-)

Maybe you were a FORTH programmer in a former life, thats where I learned it.

I picked it up myself from the old days of QuickC. I couldn't stand the whole

if(whatever) {
       code;
       code;
       code;
       }
or the
if(whatever)
{
        code;
        code;
        code;
}
styles, as they seemed too awkward and assymmetrical. So it's FORTH based, eh? heh



[ Parent ]
Re: Why Python? (none / 0) (#7)
by mihalis on Sun Jun 25, 2000 at 09:03:50 PM EST

The big advantage of Python, IMO, is that it requires indentation, making it MUCH easier to read than Perl

On my project I require all Perl to be written in Emacs and starting off like this :


use strict;
use English;
and to have good comments for anything tricky.

All of which tend to lead to more readable Perl than might otherwise be the case. Of course since so far only I've written any perl on this project, my results are not statistically valid...


-- Chris Morgan <see em at mihalis dot net>
[ Parent ]

Re: Why Python? (none / 0) (#12)
by rusty on Sun Jun 25, 2000 at 10:40:22 PM EST

'use strict' is an absolute requirement. It ought to be built in, as far as I'm concerned-- you should have to say 'no strict' if you really don't want it. There are times where it can't be used, mind you (i.e. closures)-- but if you don't want it, you should have to know enough to know why.

'use English' I've actually never used. But I tend to avoid the special variables anyway. They're not generally of much use for web applications. The perldoc for English does say that it can cause portability problems, and slow down regular expressions, so use this one more carefully.

____
Not the real rusty
[ Parent ]

Re: Why Python? (none / 0) (#10)
by jlp on Sun Jun 25, 2000 at 10:26:59 PM EST

The point of the talk is not the relative (de)merits of either language (as far as I can tell, anyway. I wasn't there). The point is the way that Python advocates tend to scream from the rooftops that Python is the One True Language, delivered from on high, and that you are quite frankly an idiot if you prefer Perl.

[ Parent ]
Re: Why Python? (3.00 / 1) (#11)
by rusty on Sun Jun 25, 2000 at 10:36:30 PM EST

And don't forget, the way some Perl zealots tend to do the same, with s/python/perl/g. Same as any other meaningless Holy War, really. I do hope they get the text online though, cause the speech was absolutely hilarious.

____
Not the real rusty
[ Parent ]
Re: Why Python? (none / 0) (#15)
by PresJPolk on Mon Jun 26, 2000 at 02:07:37 AM EST

Not quite the "same with every holy war."

While python and perl each have their merits, we all know that emacs is totally worthless, and vi is the one true way. :-)

[ Parent ]
one good use for emacs (none / 0) (#17)
by Anonymous 242 on Mon Jun 26, 2000 at 08:22:46 AM EST

At work, we have over a hundred programmers each of which uses their own favorite text editor ranging from emacs to vi to ms visdev to ms word to ....

It always makes my life much simpler to use the c-set-syntax mode to BSD C++ indentation style and re-indent files before editing. I know that there are command line tools out there to do this, but then I'd have to convince the sys admin to install new software on our Solaris boxen or write something myself and I'm not quite that lazy.

Any way, once the indentation looks nice, I typically use vi.



[ Parent ]
Re: one good use for emacs (none / 0) (#18)
by Anonymous Hero on Mon Jun 26, 2000 at 09:20:47 AM EST

What, you can't make a copy of GNU indent in your user account? Trust me, it'll do 99% of what you want.

[ Parent ]
Re: one good use for emacs (none / 0) (#20)
by Anonymous 242 on Mon Jun 26, 2000 at 11:37:10 AM EST

I could, but, FWIW, I'm not allowed. ;)

[ Parent ]
Re: Why Python? (none / 0) (#25)
by gnat on Tue Jun 27, 2000 at 03:03:27 PM EST

Good point, Rusty. Something I wanted to say in my advocacy talk, but which the cough medicine prevented from surfacing, was that one reason Python advocates rub Perl programmers the wrong way is quite possibly the fact that they resemble us so much.

Over the last few years, my personal arc of Perl advocacy has been:

  1. Trying to become good at Perl
  2. Becoming good enough that pretty much any job is fun
  3. Wanting to convince other people to have as much fun as me
  4. Realizing it'll grow as it grows, and external advocacy is hard and prone to flamewars
  5. Becoming very very mellow and even happier than before
I think Python advocacy is in the middle stage now. They're trying to convince the world that Python is best and everyone should use Python, just as we tried to do a few years ago. Given time, I think (hope!) they'll chill out as we have.

Perhaps then it will be safe to announce Perl software on Slashdot.

Nat

[ Parent ]

Re: Why Python? (none / 0) (#28)
by rusty on Tue Jun 27, 2000 at 11:33:17 PM EST

First-- welcome! I'm really glad to see you posting here.

Second, I actually don't engage in much perl advocacy myself, mostly because of the idiotic flamewars I've seen on slashdot. When someone who is not a partisan of any language in particular asks, I'm always glad to tell them why perl is great. But arguments over what language to use, I just avoid, usually.

One thing that didn't come up much at the conference is the growing antipathy between advocates of PHP and perl in web applications. It's not nearly as rabid and senseless as perl v. python yet, but I'm personally starting to get really tired of the question "Why didn't you write it in PHP?" There's a large and ever growing base of web developers who are picking up PHP really quickly, and deciding that consequently perl is "difficult to learn" and "too scary". Strikes me as odd, given that PHP is basically just a subset of perl syntax, with a lot of common web tasks wrapped in function calls. I think it actually wouldn't even be that hard to write PHP *in* perl-- that is, to write some modules that replicate the built-in behavior of the PHP functions, and write code that runs in either interpreter.

Have you heard any of this, or is it a web-only thing still? And is anyone doing anything to address the fears of PHP developers that perl is too complicated and hard to learn?

____
Not the real rusty
[ Parent ]

"Python [fscks]" transcript? (none / 0) (#8)
by genehack on Sun Jun 25, 2000 at 10:09:11 PM EST

Okay, so with all this sooper dooper network/IRC madness, someone was able to get a transcript of the talk to put on the web, right?

Re: "Python [fscks]" transcript? (none / 0) (#9)
by rusty on Sun Jun 25, 2000 at 10:13:22 PM EST

It'll be up, sooner or later, I think. I'll link to it if/when it is.

____
Not the real rusty
[ Parent ]
Re: "Python [fscks]" transcript? (none / 0) (#22)
by eann on Mon Jun 26, 2000 at 01:23:17 PM EST

Update: According to Nat's own page, this isn't going to be posted. It has the potential to be too inflammatory when taken out of context.

Our scientific power has outrun our spiritual power. We have guided missiles and misguided men. —MLK

$email =~ s/0/o/; # The K5 cabal is out to get you.


[ Parent ]
Re: "Python [fscks]" transcript? (none / 0) (#24)
by gnat on Tue Jun 27, 2000 at 02:58:44 PM EST

Sorry, no transcript. As was mentioned later in this thread, it was satire. The rant nature of the satire means that it reads mostly as abuse and hyperbole. I don't want Python folks to read it as a serious essay and take offence at it, so it's not going online.

I will have a paper copy at TPC, though, for all who are curious to read. I'll bring it to YAPC::UK and future YAPC::US if there's still interest by then.

Nat

[ Parent ]

Re: "Python [fscks]" transcript? (none / 0) (#27)
by rusty on Tue Jun 27, 2000 at 11:24:58 PM EST

Oh, come one... please! That was *so* funny-- you can't refuse to post it somewhere!

Maybe it could get, errr, "accidentally" leaked to rusty@kuro5hin.org, and passed around the Perl Underground as samizdat....

Seriously, though, I can't believe that people could fail to see the satire in that. Even, y'know, Python people. :-) It was just so rabidly over the top. Oh well. I'll pick one up at TPC. No names will be named.

____
Not the real rusty
[ Parent ]

Mmmmm..... paintball (none / 0) (#13)
by Dacta on Mon Jun 26, 2000 at 12:39:22 AM EST

Why, oh why, can I never find a game!

Every place I ever work always says "yeah, we should do that", but never does.

Anyone in Adelaide, Australia up for one? I guess we could have a conference, too, if we need an excuse.

Re: Mmmmm..... paintball (none / 0) (#14)
by rusty on Mon Jun 26, 2000 at 01:52:25 AM EST

Go to a local field. Most of them accept walk-ons, at least some days, and IME paintball players are some of the friendliest people around. I've never been to a game as a walk-on and felt like I wasn't wanted. The more the messier! :-) Just go out and do it-- when your lame co-workers see how much fun you have, they'll come along.

____
Not the real rusty
[ Parent ]
Re: Mmmmm..... paintball (none / 0) (#23)
by darmok on Tue Jun 27, 2000 at 03:28:05 AM EST

Paintball's actually outlawed in Australia. There's an underground circuit though, your best bet is to ask around surplus and hardware stores (really!).

Daniel.


[ Parent ]
If they outlaw paintball guns... (none / 0) (#29)
by rusty on Tue Jun 27, 2000 at 11:38:23 PM EST

...only outlaws will play paintball!

Is that true? How can that even be? It's a really safe sport, if you're not a total idiot. In the US, paintball arenas are always really fascist about making *everyone* wear masks at all times, but other than that, what's the danger? It's way safer than, say, riding a mototrcycle, or driving a car!

____
Not the real rusty
[ Parent ]

Other cool stuff (none / 0) (#21)
by lachoy on Mon Jun 26, 2000 at 12:39:58 PM EST

Lightning talks

Rusty was at the second part of Conway's quantum computing thing, so he missed most of these. Mark-Jason Dominus put out the call for people to give very short (five-minute) talks on something that was bugging them, to announce a project or just mention something cool they've done. There was not only the (mostly satirical) anti-python tirade by Gnat that Rusty mentioned, but also some cool project announcments, a negative discussion of why perl doesn't scale, and some folks who decided to reinvent the wheel and let everyone know about it. (There was also one poor soul who violated some of the 'Ineffective Perl Programming' practices presented the previous day with his code on the screen...)

Rumblings in the ranks

There were some talks about open-source stuff in general and how it affects perl. In particular, Dick Hardt -- who was also at YAPC paintball :) -- of ActiveState fame tried to impose a 'church-and-state' narrative on some of the tensions among open source developers, open source evangelists and companies looking to make a living. It mostly worked, and he brought it up primarily for discussion and tuning rather than to say "This is the way the world works," although he does conclude that the only way the entire community can survive and prosper is if church (core developers, evangelism) and state (companies, infrastructure creators) are separated.

There were also references to these tensions in Larry Wall's talk. He seemed to feel partly responsible, since he's been working on the new version of the camel for the last six months he hasn't had time to play the shepherd. Gnat did the same in a separate lightning talk about p5p.

I'm curious to see what happens to the perl community. There's this weird tension between advocacy ("We want more people to use perl because it's great and solves lots of problems.") and the issues that come with the community getting bigger, partly through successful advocacy. IMO, it takes a strong central figure to sort these things out and "lead the way", so to speak.
M-x auto-bs-mode

YAPC Wrapup | 29 comments (26 topical, 3 editorial, 0 hidden)
Display: Sort:

kuro5hin.org

[XML]
All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
See our legalese page for copyright policies. Please also read our Privacy Policy.
Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
Need some help? Email help@kuro5hin.org.
My heart's the long stairs.

Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!