Perl Programmers as Angst-ridden Amateur Screenwriters

Ovid on 2004-09-23T18:25:41

Years ago I wanted to be a screenwriter so I did what aspiring screenwriters do. I wrote a bad screenplay. The screenplay has many flaws, but there are a few things that aren't flaws. While you can't see it in the HTML formatted version, it's worth noting that the margins are correct, the indenting is correct, superfluous stage directions do not exist except where necessary, etc. (Much of that was handled with the excellent ScriptThing software.)

Other things that weren't flawed in the script were the scenes moving the plot forward and the timing of the scenes were set up in the traditional beginning/middle/end (roughly 30, 60 and 30 pages each -- but mine's a tad short) format that Hollywood generally expects. However, when I took a screenwriting class, I was surprised at how the students were complaining strongly about this. As far as they were concerned, the strict formatting was hampering their artistic freedom. Well of course it hampers artistic freedom. Everyone knows how rigid the sonnet structure is and what miserable failures Shakespeare and Elizabeth Barrett Browning's sonnets were, right?

You see, what these aspiring writers failed to realize is that these were not arbitrary rules. Having the margins and formatting meet an exacting standard guarantees that someone reading the script can assume one minute of screentime per page. Thus, counting the pages ensures that everyone knows roughly how long the movie is. This translates to dollars!

The 30,60,30 rule is a bit subtler. Foreign films are often subsidized by government agencies or filmed on a very low budget. As a result, these movies can earn less money and still be profitable. While this does allow for great films to be produced, it also allows for some very strange things to get out there. Let's face it, The Pillow Book was a magnificent film, but it also grossed less than 3 million in the US. I don't know the budget for the film, but a gross that low in the US is frequently a financial disaster (Gigli made more than twice what "The Pillow Book" made.)

Hollywood movies are generally not subsidized by the government. Instead, they have to succeed or fail on their audience appeal. Directors such as Michael Cimino who forget that are quickly out of a job. Hollywood movies have to show a profit (well, no they don't. Oversimplification is necessary here.) That's what these aspiring screenwriters keep forgetting. Yes, they can write their art-house movies and have five people say what a great film it was, but if they want to "make it big," they probably have to bow to reality (at this point, the writers yell about how Quentin Tarantino didn't have to follow the rules, but few writers have Tarantino's ability.)

Many Perl programmers seem to have the same attitude. Frameworks? That limits my style. Certification? Why should I bow to the corporate machine? Everybody knows that MCSEs are all idiots, right? Many programmers (myself included) don't have that much of a problem with those ideas. Let's face it, when a company only hires J2EE certified programmers, they know that the programmer already has a darned good idea of how to use their framework and that rogue programmer off in the corner can't just open up a socket connection and kill the system security. Sure, the companies have to spend more on development time, but they also buy themselves some peace of mind. This isn't to argue that this is always the best course of action, but for Perl programmers to argue that it's never the best course of action is silly, yet I hear this argument all the time (hint: words like "never" and "always" frequently imply that the author of those words didn't think things through.)

Sure, we can unleash our artistic expression by creating yet another proprietary in-house enterprise-class buzzword-compliant doo-dah, but why? Now everyone who comes in has to be trained on the "meta" aspects of the system instead of being able to focus on the business rules. Frankly, I want to Perl to be seen as a viable option for enterprise class architectures. Sure, the Perl community knows it can be done, but others don't. If they even know about the widespread use of Perl at Amazon and Yahoo!, they think of this as an exception rather than the rule. Without standards -- TIMTOWTDI is often viewed as being the antithesis standards -- it's tough to hire programmers who can follow them. And sorry, but Mason, TT, mod_perl, Class::DBI and other tools are not enterprise class frameworks. If anything, they would be components of said frameworks.

You may now commence the flaming.


Flame On!

chromatic on 2004-09-23T21:36:49

Standards are good, but what part of the phrase "enterprise-class framework" means anything besides a vendor shaking his own hand vigorously?

As far as I'm concerned, a programming language in its context with its libraries itself is a framework.

As far as I'm concerned, "enterprise-class" means that some 500 companies in the U.S. and maybe another 1000 abroad use it deliberately and on purpose and have to customize something so general to work in their specific cases.

As far as I'm aware, most programmers don't work in those 1500 companies.

Re:Flame On!

Ovid on 2004-09-23T22:13:48

Quite a bit of a language's use and acceptance will be driven by those "500 companies in the U.S." Were many of them to come out and say "we're hiring Perl programmers like mad," you can bet your Camel that programmers are going to notice. Tool vendors are going to notice. A P2EE project will be born and certification processes will be created. Perl would dominate and non-Perl programmers will still continue to sneer at us while secretly hitting the books on the language in hopes of paying their mortgage. The Perl community will moan and groan about the hacks working in Perl (as in any other language) and long for the days of simplicity, but enjoy their job security.

Of course, instead of a paragraph of speculation, I can have a paragraph of history:

$first_paragraph =~ s/Perl/Java/;

Admittedly there's more to it than what I just described but I don't think I'm losing a lot in the translation.

hmm

jmason on 2004-09-24T00:34:11

I'm curious. You say "TIMTOWTDI is often viewed as being the antithesis [of] standards" (I presume you meant an "of" there). Is that the case? If I write two different object models, using good Patterns for both, haven't I implemented MTOWTDI using standards -- and possibly even done it well?

Anyway, my beef with big "do it all for you" class frameworks is that:

1. I haven't seen any compelling evidence that it produces better results, so far

2. it insulates me too much from the iron, and when things go wrong, I *still* have to dig down into the lower levels to deal with that stuff, myself

3. in a past life, I worked on a team *developing* an implementation of a "do it all for you" class framework -- CORBA in those days, and both we the developers, and our customers, ran into #1 and #2 repeatedly. ;)

4. my experience working with big companies is that they haven't a clue what makes for good software development, so why should they dictate what OS/framework/development style/object-modelling strategy I should use?

Re:hmm

Ovid on 2004-09-24T01:25:32

I must say that I agree with all of your points. However, it's a matter of perception. Until we can convince those who actually make the language decisions that Perl is a good choice, they still are going to choose other languages. Let's face it, Java's market share is due to their marketing share and despite Perl programmer's protests to the contrary, there are sometimes very good reasons to choose Java over Perl.

For a while I thought that those reasons would go away when Perl 6 comes out but I was finally convinced that it's not the language which leads to acceptance. It's the language, the tools for said language and how those tools are viewed by those who are less familiar with them. It's awfully difficult for someone who doesn't know much about Perl to interview Perl programmers and know if they're any good. However, they interview a Java programmer and they know about all of those sparkly tools that they can use and how those tools can provide security and even though they still don't know if the Java programmer is any good, they have an army of m(?:ouse|ark)eteers to show them the error of their ways. Perl does not have this and it puts at us a disadvantage in many respects.

I think chromatic alludes to this when he points out that most programmers don't work at the big companies and there are strong inroads that can be made there which can in turn lead to wider acceptance of Perl. If that's what he intended to say, I have to agree that it's probably a more realistic goal.

Re:hmm

chromatic on 2004-09-24T04:36:33

I'm not sure it's possible for me to care less if the CIO of a random Fortune 500 companies doesn't realize that design patterns are a lot more important to Java than Perl because Java's much less flexible than Perl. I wouldn't expect him to make smart decisions based on that knowledge anyway.

I don't expect big companies to make smart decisions. I expect them to make "safe", top-down decisions that don't really have much bearing on the people who do actual work. Meanwhile, I expect a big chunk of the rest of businesses to do what big companies do because it's what big companies do, not because it makes sense.

It's those smaller companies that actually try to evaluate languages and tools and hire the right people that I care about.

If I was actively looking for work...

btilly on 2004-09-26T07:30:15

then I'd darned well care about any company that might potentially be convinced to hire me. Big, small, stupid, smart. A paycheck is a paycheck.

Given the choice I'm with you, I want a smaller company that tries to evaluate languages and hire the right people. Working with the right people is so much more fun than the alternative.

But I see where Ovid is coming from as well.

"Subsidies"

drhyde on 2004-09-24T08:34:31

The "subsidies" of which you speak are generally in the form of tax breaks. A great many US films also benefit from tax breaks, by the dodgy accounting the studios use to claim that films never made a profit. So I guess Hollyweird is also subsidised by the government. This same dodgy accounting is also used by the film and music industries to ensure that artists don't get their fair share of the proceeds in far too many cases.

The Pillow Book

mdxi on 2004-09-24T13:03:18

SUCKED.

Peter Greenaway should be flogged with Ewan McGregor's wang for making that (and all his other) self-indulgent crapfests. But from him we do learn the valuable lesson that:

HORRIBLE STORY + GOOD CINEMATOGRAPHY + "EDGY" SOFTCORE = "ART"

Re:The Pillow Book

Ovid on 2004-09-24T15:03:40

Yeah, I know not everyone appreciates Greenaway's work. Perhaps what puts it into perspective is realizing the Greenaway hates D.W. Griffith. D.W. Griffith was one of the pioneers of film, with the horribly racist Birth of a Nation. What made that film interesting is that he focused heavily on telling a story in a linear fashion and its success pretty much set into stone the "Visual Novel" idea of film-making.

Greenaway, by contrast, feels that film is primarily a visual media that should be used as such and linear story telling distracts from this medium. If you can divorce yourself from the idea that films need to be coherent stories, you can get a lot out of his work. Works like The Cook the Thief His Wife & Her Lover (also by Greenaway, for those who don't know) was also magnificent, but it only grossed a tad less than 8 million in the U.S., so I think it's fair to say that it's not most people's cup of tea. It's so ingrained in us that there must be a story to accompany the visuals that pathetic crap like Titanic dominates at the box office. Of course, it didn't hurt that teenage girls were massively drooling over DiCaprio.

Re:The Pillow Book

bart on 2004-09-24T19:51:51

It's not just girls drooling over DiCaprio. It's also guys dooling over Kate Winslet. I plead guilty.

But I must admit, I've never seen "Titanic" completely. Not in one go, anyway.

Anything that tastes this bad must be good for me!

scrottie on 2004-09-25T18:36:19

Hi Ovid!

I'm attempting a reverse straw man attack, here. Programming should, above all else, be fun and empowering to the programmer or else you'll lose all of your good hackers (with hand waving towards Paul Graham's "Great Hackers" article).

However, we human beings are not qualified to assess ourselves. Perl programmers fail to assess themselves accurately, but This causes problems as novices (usually more full of barely post-pubescent testosterone than knowledge) frequently and grotesquely miss the mark. If I had a nickel for every PHP programmer that fancied himself a great hacker (hanging out in Perl help channels, asking people to translate badly written PHP to Perl for him), I could afford a nice bender (which I could really use after dealing with said PHP programmers). If Lisp was seen as cool, trendy, easy to learn, and was mentally associated with things that looked pretty, a lot of wanna-be Lisp programmers with half read "In 24 Days" books would be strutting their stuff all over the help channels and employer's Internet presences.

Let me be obtuse. I mean blunt. I hate these stupid kids. I want them off my programming lawn. (I'm half serious - I hate the sin but love the sinner - I was a stupid neen once. Now I'm just stupid). I, as a Perl programmer, am associated with their work (and tactics - walking out on the job when they paint themselves into a corner, always moving to easier pastures), and I don't like this. In fact, it's hurt my pocket book. Let me tell you a story (please, I really love telling this one). Google graced my resume with a quite favorable Page rank, much to my surprise. I'd get hundreds of hits a day, but no calls. That's odd - I have Perl and Java clearly listed (the format has since changed) and I have reasonable experience with both, how come no one is emailing me (at the time, I also had a box where you could type in your phone number and it would page my cell with it)? So I installed a survey on my resume with about 40 options covering all of the reasons I could think of someone wouldn't immediately offer me a job, such as: too little experience; too much experience; wrong locale; just shopping for resume ideas; too much contract, too little full time; stayed with companies for too short of a time each; and others. "Just shopping for resume ideas" was the most popular. Former employers policing the Internet to see how their name was being used were pretty common too, but they didn't fill out the survey. The second most popular, by a narrow margin, as "dislike Perl", an option I included on a lark. Hmm. Experimentally removing "Perl" from my resume increased my Java work and I wasn't getting Perl work anyway. And I don't even have a Java certification (I've been meaning to get one). (Yes, I'm not the greatest Java fan - too many projects are a game of "how far can I ram this broom handle up my ass?"). It's widely known that Linux took over the server room (to the degree that it has) because it was snuck in the back door. Perl's the same story. I'm sure Lisp's deployment mostly follows the same model: someone graduates school with a love of Lisp (or Scheme), they're given a programming task in the real world with no language specified, and they use Lisp. I'm not sure certifying Lisp programmers would alter Lisp's reputation (but IBM backing Lisp would). Likewise, I doubt certifications would alter the perception of Perl. (On the other hand, Lisp doesn't struggle with poor quality of deployed code and large numbers of novices (hey, I did say I was going to attempt a reverse straw man)).

There's no reason peer review must be an all or nothing thing. Right now, the best way to get a good Perl job is have the implied peer trust metric that comes of being associated with important projects (such as key modules, Perl itself, organizations associated with Perl, and so on). This is optional peer, implicit review. There's room for optional, explicit peer review. In the case of Matt Wright, there was an exceptional display of non-optional explicit peer review. Anyone considering hiring Matt could google for him and find tens of thousands of angry flames. Of course, there are those that pride themselves on being outcasts (you just don't understand me man!), and they're prevalent enough that non-optional explicit peer review for everyone would quickly lose credibility. Ovid's proposed optional explicit peer review, in the form of certification, is entirely implausible because, well, that's what other people are doing, and, uh, therefore it's not, uh, interesting, because, er, it clearly isn't a silver bullet, and, eh, I'm only interested in cure all silver bullets.

Insincerely,
-scott