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
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.
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.
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.
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.
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.
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.0How 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.