Talking with Alan Burlison about Perl v PHP, Solaris v Linux

schwern on 2007-09-07T22:24:49

Last night on #p5p Alan Burlison talked about how Perl is viewed inside Sun. Alan is a Perl 5 Porter from way back and is deeply involved with dynamic languages at Sun. He talked about how Solaris is currently struggling to reshape itself after losing lots of ground to Linux and the parallels this has with Perl vs PHP and Ruby.

It wasn't a formal interview by any means, just a late night IRC bitch session. I've posted the whole conversation (don't think anybody minds, it is a public channel and there's good stuff in there). Here's some highlights.

 They care about being able to do things quickly, not how they are
done.  PHP is proof of that
 Web2.0 types
 I was musing about PHP.  I think PHP has something we lost, and
that is that its ok to be sloppy.
 I subscribe to a local mailing list of web designers and
developers.  It's been interesting - virtually *all* the conversation i about
either ROR or PHP.  perl has never even come up.


 Perl stared off with a massive head start in the webworld - it was
*the* de-facto langiage for CGI, it integrated really well with Apache.  What
happened, and why?


 I see close parallels between the problems we had to address with
Solaris when confronted by Linux and the problems perl has.
 Any of these sound familiar:
 1. Being displaced by a new kid on the block who has inferior
technology
 2. Losing you place on CS teaching courses
 3. Concentrating mainly on existing users rather than obtaining new ones
 I don't understand #2.
 My place?
 Do people teach your stuff in CS courses?
 No, but they never did.  However, I see your point.
 4. Valuing technical beauty over pragmatic usefulness
 5. Concentration on solving existing problems rather than new ones


About points #1 and #3

btilly on 2007-09-08T00:25:32

They are part of a (now) well-known business pattern. Read The Innovator's Dilemma or its follow-up The Innovator's Solution.

I'd never thought of applying the theory to programming languages. But it fits. Some of the pressures documented in The Innovator's Solution to pay close attention to existing customers apply in the case of Perl as well if you interpret them just right. The pricing part is not quite as good a fit, but it is close.

However I've long said, if you want to improve the visibility of Perl, create a way for Perl to be used conveniently in shared hosting environments with reasonable performance. That's the big thing that PHP does that Perl does not. If you want to get someone to host your website and you're a cheapskate, you have a choice. Use PHP, or use CGI. Faced with that choice, lots of people start with PHP then never look back.

Re:About points #1 and #3

renodino on 2007-09-08T02:08:45

Umm, so why is Java so popular ? I've never seen an ISP that supported it.

If Perl is going to compete with PHP, then its time for me to switch to Ruby.

See also Idiocracy.

Re:About points #1 and #3

btilly on 2007-09-08T02:29:20

There are different paths to success. Java's path involves having a large marketing machine and significant corporate sponsors. There is no mystery there, but it isn't an example that Perl looks like it will duplicate soon.

PHP's success is along a line that is closer to how Perl grew. Historically Perl was the language that people used for small and personal web projects, which sometimes grew up. That's how a lot of Perl projects started, and a lot of Perl people began learning the language. (Including me. I was working for a small company in 1997 that told me, "We're doing well with personal Access applications, but we need to explore this web thing. Learn Perl and teach us about it.") But Perl no longer has that position - PHP does. It is worth wondering how PHP wound up in the niche that Perl was in, and worth wondering whether Perl could become more competitive in that niche.

Re:About points #1 and #3

chromatic on 2007-09-08T02:33:18

Umm, so why is Java so popular ?

As an IT manager, you can buy a big huge manly server and hire a man-sized staff of dozens of barely-competent monkeys to write programs in it and look like a big man in front of your other big manly peers.

(Don't blame me; Sun's marketing department uses libidinous phrases such as "opening the kimono".)

Don't discount the value of being able to reach a level of success despite having to hire an army of barely-competent monkeys to write software for you.

Re:About points #1 and #3

schwern on 2007-09-08T10:57:52

Umm, so why is Java so popular ?


Java takes a totally different approach facilitated by a huge marketing machine funded by number of large businesses who have bet the farm on Java.

1) It's taught in schools.

Java, sadly, is the predominant language taught in CS classes. Every year you have an army of CS students graduating and entering the workplace ready to code some Java on the cheap.

2) Your CEO knows about Java.

Java advertises in business magazines. Business folks have "Java" branded into their brains right next to "Microsoft" as being good and reliable. There's racks and racks of books and magazines about Java. So when it comes time to choose a language, what are they going to choose? .Net or Java.

2a) It's buzzword compliant.

Java has a big company behind it. You can get big, comfortable, executive security blanket-style support contracts. It runs on big, expensive hardware. You can hire programmers with all sorts of important looking certifications secure in the knowledge that they're going to be good at their job (it's not about reality, folks).

3) It's the cross-platform GUI language.

Want to write a GUI application that works on Mac and Windows without tearing your hair out over compatibility issues? Java.

There's more, but you get the idea. Perl and PHP go in through the back door. Java is welcomed in the front door on a path of rose petals.

So let me ask you...

sigzero on 2007-09-08T00:25:59

You are more in tune with what is happening in P5/P6 circles. What do you get out of that conversation?

Re:So let me ask you...

schwern on 2007-09-08T11:43:19

Me? Alan's just framing what I already know. As far as Perl 6 is concerned it's orthogonal to the problem. If Perl 6 came out tomorrow we'd have the same issues. Double since Perl 6's public perception is so messed up.

This is an issue of people and direction, not technology.

Re:So let me ask you...

sigzero on 2007-09-08T14:19:02

Yes...but given the nature of the community can we CHANGE the direction?

Re:So let me ask you...

Lecar_red on 2007-09-10T16:20:17

Maybe the foundation should raise some money and hire a PR company for perl5 and perl6. Do some marketing of the language, its benefits and such. It benefits all of us Perl coders.



Also, I've been thinking that maybe the foundation should take a role in helping to develop Perl businesses (consulting companies, web apps, etc...). I'm not quite sure what type of role it should take, maybe PR is good place to start, maybe something like barcamp but for Perl folks, maybe put together angel investors and selling them on the Perl community. Maybe connecting folks trying to start business with people, resources and such. I'm not entirely sure what that pictures looks like but once again more companies using Perl benefit the community. And the very smart folks in the community would (and have) benefit young companies.



Just some quick thoughts.

Sun had other problems

brian_d_foy on 2007-09-08T00:28:47

Well, I know why Sun lost out. They were overpriced and had poor customer support. I worked at two companies that had the high level support with them, and it was always a pain to get them to actually provide that support (as in, come out and replace the power supplies in my machines like you are supposed to). I liked Solaris well enough, but with Sun's non-technical problems, going with FreeBSD on Dell was just easier to manage because Sun wasn't the bottleneck in support and replacement hardware.

I don't think Perl has those problems, so it's not the same thing at all for the customer. Perl might have other problems, but Sun wasn't acting like a good vendor to people who really wanted to use them.

Re:Sun had other problems

schwern on 2007-09-08T11:02:10

Perl might have other problems, but Sun wasn't acting like a good vendor to people who really wanted to use them.


But that's exactly Perl's problem. We *think* we know what Perl users want, but we're actually very disconnected from the vast majority of our own users out there, not to mention the folks who aren't Perl programmers but could be.

Backing that one up requires an entire essay that I'm not ready to write at 4am.

Re:Sun had other problems

sigzero on 2007-09-08T14:20:24

Aw shucks! I would love to read it. You seem generally positive that any current negative perception problems could be wiped out. I would like to hear your thoughts on that.

Re:Sun had other problems

schwern on 2007-09-09T00:17:17

After 5.10 is out the door I'll release my Robot Kraken to shake up this boat.

Web 2.0: Yahoo Pipes?

vek on 2007-09-08T02:49:06

Interesting conversation. Regarding Perl not being on anyone's Web 2.0 radar, I could have sworn Yahoo Pipes used Perl heavily. Not sure how popular Pipes is these days but it did create some measure of Web 2.0 buzz when it came out. Odd that it's never mentioned whenever Perl's lack of Web 2.0 presence is brought up.

Re:Web 2.0: Yahoo Pipes?

schwern on 2007-09-08T11:14:41

Odd that it's never mentioned whenever Perl's lack of Web 2.0 presence is brought up.


That's EXACTLY the (a?) problem. Companies don't trumpet "we wrote this new produced in Perl!" Bill Odom laments this all the time. Why is a bit of a chicken/egg problem. They have no incentive to trumpet Perl because Perl isn't sexy and won't win them any points or want great programmers to work for them. This makes Perl even less visible which makes it even less sexy which gives them even less incentive...

Perception-wise it doesn't matter how much cool shit is written in Perl if nobody knows about it. There's huge companies writing huge amounts of critical software in Perl out there and they don't tell anyone. Rafael was just bitching on #p5p the other day that Nvidia uses lots of Perl and hasn't told anyone. We only found out because a subtle bug in File::Path caused them problems.

or...

Eric Wilhelm on 2007-09-08T07:46:01

Insisting on staying compatible with technology which is simply too old? Maybe the 5.5 compatibility habit was developed when 5.6 came out. Perhaps we should drop 5.5 (and even start sharpening the axe for 5.6) once 5.10 arrives.

Perl has *actually* changed in that time. Being compatible means programming with your hands tied behind your back.

And then there's ExtUtils::MakeMaker, which apparently is the favored installer of 99.9% of CPAN users (at least, if you take the default options of CPAN or CPANPLUS.)

I'm wondering if the "perl is getting old" observation is actually about the community. There is a lot of wisdom, but also a lot of set-in-their-ways.

Lately, I'm feeling somewhat "sick of Perl" myself. On deeper inspection, I'm actually just sick of trying to change the world. But alas, Perl is still the best language linguistically, so I guess I'm stuck trying to explain to others in the community that it does indeed have such modern conveniences as exception handling and Module::Build.

I dunno, ruby wins because you get a fresh start on creating all of the cruft all over again (though they're well on their way at this point.) And PHP wins because 99% of the works of Shakespeare are valid code.

There's also the fact that perl is the "strong, silent type", and the bit where PHP was an easy-to-install templating language. It did manage to botch PUT and DELETE almost as badly as CGI.pm (which was about the only competition at the time, no?)

Re:or...

chromatic on 2007-09-08T17:55:31

Being compatible means programming with your hands tied behind your back.

How dare you use a feature as simple and nice as lexical filehandles in a CPAN module, you fascist! It is my right as someone who demonstratably does not upgrade to have the option to upgrade to code written this millennium, you pig!

Compatibility

schwern on 2007-09-09T00:18:27

WRT compatibility, it will be interesting to see from the results of the Perl Survey how many people still use the older versions we're so slavishly adhering to.

The fight of old versus new

ferreira on 2007-09-10T11:48:17

If ExtUtils::MakeMaker still got the upper hand on Module::Build like CPAN does compared to CPANPLUS, it's because they work flawlessly (if you accept its quirks).

I believe the greater problems with M::B and CPANPLUS is one of resistance, not enough feedback for authors, and maybe lack of developers' time (like in the recent thread discussing Parrot). They are supposed to be better than their counterparts, but they are not there yet.

The support for EU::MM is omniscient. The support for M::B is not there sometimes. For example, chris' smoke servers report failures on modules that only provides Build.PL scripts. That means you can't get rid of the compatibility concerns (no matter what).

The case of CPAN and CPANPLUS looks different. CPAN keeps getting better incrementally thanks to the work by Andreas. It has some subtle advantages that many can think it does not make difference, but it does. For example, CPAN is a memory-expensive application which can be improved in this aspect by CPAN::SQLite. CPANPLUS is an even larger memory hog (without remedy). That means in a under-powered machine, you go with CPAN. And many of these machines run in many places.

The whole point of my entry is that you can't promote the compatibility break when you don't have yet adequate replacements for the old tools people grew used to.

crystal balls and navels

mr_bean on 2007-09-08T08:00:15

This woke me up, just as it was nap time.

Reading computer language development as an evolutionary issue is interesting.

I think although the analogy of a business (Sun) and a computer language (perl) is an okay, even good, analogy, a business organization has more in common with a biological organism than a language, and a language has more in common with a religion than a business.

Although running a business requires winning hearts and minds and using the language involves programmers tapping at keyboards, the question of what will determine perl's future is all in the mind. The difference is the difference between the real and the conceptual.

I thought I had something more witty to say about that difference. Perhaps
something about the ease of marshalling resources.

PHP's future is a lot more insecure than perl's. It has all its eggs in one basket, but perl has its fingers in many pies. The loss of PHP's web niche spells the end of PHP.

In fact, it is better NOT to be the forerunner if you don't know what the race is going to demand of you. Don't try too hard. Think dinosaurs and lizards. Small is better.

The problem of paying close attention to present customers rather than winning new ones is the other side of the coin to buyer lock-in. The seller gets locked in too.

Solving new problems before they come up, the difficult business one, might admit of a recursive solution. If we could do that, this question probably wouldn't be so interesting.

But rather than consider what brings buyers and sellers together, perhaps it is more useful to consider how people choose a religion.

I'm interested in the statement that is perl not a contender in Web-2.0. I thought there was lots of CPAN stuff that could be considered Web-2.0

Re:crystal balls and navels

schwern on 2007-09-08T11:40:15

Interesting thoughts, all.

I'm interested in the statement that is perl not a contender in Web-2.0. I thought there was lots of CPAN stuff that could be considered Web-2.0


If they knew about it.

Here's a soul crushing exercise. Go to your favorite popular web 2.0 style search site, Digg or Technorati or del.icio.us and type in "Perl". Look at the garbage that comes back.

And if it were easy to install.

Jifty and Catalyst are both awesome web frameworks able to go toe to toe with anything out there. But installing them, or more importantly their dependencies, is not a simple operation. I tried to install Plagger the other day and after the CPAN shell finished with a gianormous list of dependencies and sub dependencies I was left with 3 critical modules failing and no Plagger. No matter what the reasoning is for installation working that way, I'm still left without working software. Now *I* know to diagnose and fix it, but Joe User isn't or just won't have the patience. Hell, even I'm going to use Planet instead written in *gasp* Python!

Finally, CPAN stuff is pieces. People want applications and that's where we fall down. Hard. When you think of free blogging software you think... Wordpress comes to mind, written in PHP. What's the great, free Perl blogging software? Hmm. (Yes, I know, Movable Type will eventually be mostly open source but its not now).

When you think of wikis you think... MediaWiki, written in PHP. What does Perl have that's on par? Kwiki? Socialtext? Not nearly.

As an interesting exercise, install MediaWiki. Observe how easy it is and how it walks you through the configuration process with a web page. Then try installing SocialText or Kwiki and all the plugins necessary to bring it up to something like MediaWiki's feature set.

Or maybe Trac vs RT. I'm guessing about Trac being easier than RT mostly because RT is so damn hard to install and configure.

Wordpress vs... well, I don't know what. Just try installing Wordpress and marvel.

PHP provides complete Web 2.0 applications which are easy to install out of the box. That's what Perl used to be for the Web 1.0. We've lost that, big time.

Re:crystal balls and navels

sigzero on 2007-09-08T14:27:56

I have not seen any talk in the P6 circles about "easier to install". Is that problem being dealt with as well?

Re:crystal balls and navels

chromatic on 2007-09-08T17:56:40

Not to my knowledge. Parrot has a couple of features to bundle up everything into a single PBC file, and it looks like we can avoid having to require everyone to recompile their own bindings to shared libraries, but there's more to distribution and installation than having a single big blob of code.

Re:crystal balls and navels

Aristotle on 2007-09-08T18:00:25

Not at all, but I think it’s an orthogonal issue. Ease of installation is a toolchain problem; Perl 6 is a language, not a toolchain. However, I agree that it needs to have a toolchain that’s good enough. There has been some grunting that “we’ll make that work”, but no concrete design has happened.

Personally, I think that’s just as well, since the Perl 5 toolchain is suboptimal anyway, and anything we do for Perl 5 will be roughly applicable to Perl 6 as well, particularly if we get a working pure-Perl toolchain – read: if we get Module::Build up to snuff. Then IMO it’s mostly a matter of porting the Perl 5 toolchain to Perl 6.

We’ll cross that bridge when we get to it. For now I think we urgently need to fix the Perl 5 toolchain.

Fix Perl 5 and Perl 6 will follow.

schwern on 2007-09-09T00:30:46

For now I think we urgently need to fix the Perl 5 toolchain.


Yep, that's the idea. Fix Perl 5 and Perl 6 will follow. Worked for testing.

Re: toolchain

Eric Wilhelm on 2007-09-10T17:06:51

And what exactly is not "up-to-snuff" about Module::Build? (Other than compatibility problems if you try to run it in 1999.)

Re: toolchain

Aristotle on 2007-09-10T17:55:20

Most importantly the circular dependency issue: AFAIK we don’t have the tooling in place yet by which the CPAN client could upgrade Module::Build before running Build.PL, when a newer version is necessary.

I also remember reading mentions of other issues I’m only vaguely aware of anymore and couldn’t list. None of them sounded unfixable, most in fact benign. I think building XS modules with Module::Build needed more polish? My understanding was that more work was needed to make it really solid, but work was progressing apace, and so I didn’t worry enough to look very closely.

The circular dependency issue is the important one, and the one I care about (and it extends beyond Module::Build, so many more cogs to fix to make it work). It’s the one thing I consider broken with all of the CPAN toolchain options we currently have.

Re: toolchain

Eric Wilhelm on 2007-09-10T18:15:31

It is not a circular dependency. Module::Build builds itself just fine.

It *is* a configure-dependency issue. The cpan clients now (I think) handle configure_requires properly, so the next release of Module::Build should seal the deal.

Re:crystal balls and navels

Aristotle on 2007-09-08T17:58:31

Trac was very easy to get going for me. Python is no PHP though; I’m sure that if I had wanted to install it with better infrastructure than as a CGI, be it FastCGI or mod_python, it would have been a good deal harder. Regardless, it was easier than most Perl web apps. They could and should be on par with Trac in terms of installation difficulty.

Movable Type is GPL’d, btw… why’s it not free? Am I missing something?

Movable Type

schwern on 2007-09-09T00:29:41

To go off topic a bit...

It hasn't been relicensed yet to my knowledge. They're wibbling about it. "Before we released an open source version of Movable Type we wanted to engage with the community regarding its development and scope." What a complete waste of time and energy. What's to talk about, JUST RELEASE IT!

Just you watch, they're going to write their own license. I can smell it.

Let me make some sweeping generalizations...

Commercial software dumped onto the open source world acts very differently than true open source software. The community development is often very weak to non-existent at the start and remains weak because employees at the company have a commanding position (it's not a meritocracy). It's often optimized for big (read: dumb) company's IT departments and paid-for installs.

I'm currently using both Wordpress and Movable Type. Wordpress wins on backend usability hands down. The admin web interface is a dream. There's tons and tons of themes and a plugin out there for everything you might need.

Re:Movable Type

vek on 2007-09-09T18:36:34

Movable Type 4's admin interface has had a complete overhaul and is rather lovely now. MT has a shed load of plugins too. Themes however, yes, Wordpress wins on number of themes by a mile.

Re:crystal balls and navels

perigrin on 2007-09-08T18:20:43

I'm interested in the statement that is perl not a contender in Web-2.0. I thought there was lots of CPAN stuff that could be considered Web-2.0

How about OpenGuides? I haven't seen a *single* other wiki with structured metadata (based on Wiki::Toolkit from the CPAN) and a geo-locational focus. Hell even Tim Berners-Lee said it was cool (I can find the irclog somewhere I'm sure ...)

But OpenGuides has the same publicity issues as the rest of Perl I suppose. A dozen or so people actively work in the community, probably a few hundred more in the world support their local guide. Simply nobody knows about it.

Promoting your project

schwern on 2007-09-09T00:37:55

I haven't seen a *single* other wiki with structured metadata


Check out Freebase and their Metaweb Technology. Watch the first intro movie all the way through.

But OpenGuides has the same publicity issues as the rest of Perl I suppose. A dozen or so people actively work in the community, probably a few hundred more in the world support their local guide. Simply nobody knows about it.


Yep. "How to advertise your web project" is something to be figured out. Here's one way... try searching for it and similar projects. Then do whatever it takes to make yourself visible to the Web 2.0. Go to the various social bookmarking sites (delicious and Digg) and get yourself on there. Put up a blog about the site and get it linked to Technorati. Register your project on Ohloh.

Also it would be nice if the site mentioned Perl somewhere.

Re:Promoting your project

perigrin on 2007-09-17T11:35:57

Check out Freebase and their Metaweb Technology. Watch the first intro movie all the way through.

I'd forgotten about Freebase, OpenGuides pre-dates it by several years (I started my guide in early 2004, and I heard about the software in 2003 at YAPC::EU) and has been alone for so long I'll have to revise my rant now.

Also it would be nice if the site mentioned Perl somewhere.

Wow, I hadn't even noticed it wasn't in there. It is mentioned on http://openguides.org/page/software but I'll see about getting someone to plug it into the front page too.

Re:Promoting your project

Kake on 2007-09-17T14:19:41

Yep, the OpenGuides website needs an overhaul; first it needs to move to the same server as all our Trac stuff. I've sent mail to the person responsible for this, but I don't know when he'll get back to me and even when he does I'm a bit overwhelmed at the moment. But thanks very much for pointing it out; we should definitely mention Perl on the front page.