The Success of Ubuntu

In a previous post I wrote about The Ubuntu Business model and Perl. This is the second part of that post trying to look at what made Ubuntu successful, how can that be mapped to Perl and what can the Perl community learn from there.

The success of Ubuntu

We can understand from the previous post that the Perl community cannot copy the business model of Canonical, the company behind Ubuntu so let's look at how did Ubuntu succeed in becoming one of the leading GNU/Linux distributions in such a short period of time. I searched a bit and found a couple of explanations. I am sure some people will say they are not true or that they are not the reasons for the success of Ubuntu and I am sure there are others who will point at other explanations. So let's take this as my subjective list with my subjective explanations.

I'll go over the points and try to relate them to Perl and the Perl community.

On Ubuntu Innovations the author points to the following reasons:

  • Simple install
  • Regular release schedule
  • Live-CD that you can install from
  • One application for each purpose
  • Secure by default
  • Over 20,000 applications can easily be installed
  • Include non-free hardware drivers
  • Made the color brown sexy
  • Get an Ubuntu CD for FREE
  • The Ubuntu Community

  • Simple install: Perl comes built in on almost all the Unix like Operating systems. ActivePerl and now Strawberry Perl provide easy installation on Windows as well. What IMHO Perl is missing is a set of distributions for some some of the operating systems based on the idea of Strawberry Perl. Similar to how ActiveState has distributions to several platforms but with the Strawberry philosophy and with a lot more juice.
  • Regular release schedule: Here Perl clearly has a problem. I hope it will be fixed now that the development moved to Git. It does not have to have exactly time based nor do the releases need to be earth shattering but a minor update every 3-6 months could help improve both the image and the level of real users testing perl.
  • Live-CD that you can install from: This is mostly irrelevant as Perl does not replace the Operating system. It can be installed on any major Operating system. Actually the Portable Strawberry that can be installed on a disk-on-key might provide a nice demo-ing kit.
  • One application for each purpose: That's another problematic area of Perl and more specifically of CPAN. In my opinion people like to have choices but don't want to choose. We should improve the situation as people waste a lot of time searching CPAN and I am sure in many cases find a module that is far from the preferred modules of any of the active CPAN authors. There are many partial projects that are trying to address this problem.
  • Secure by default: I don't know about any issues in this regard.
  • Over 20,000 applications can easily be installed: There are 17,000 modules on CPAN. Many of them are easily installable but many others have problems. I think this areas is both a success (as CPAN has so many packages) but also needs improving such as perl version and platform aware installing tools and allowing several possibly incompatible trees of the same distribution 1.x, 2.x etc versions)
  • Include non-free hardware drivers. That's ok, there are modules on CPAN to many proprietary systems. (e.g DBD::Oracle) What might be interesting is to include them in Strawberry Perl or the other future Linux/Unix Perl
  • Made the color brown sexy Camel ? Onion ? I don't know what to say.
  • Get an Ubuntu CD for FREE IMHO that's quite irrelevant to Perl and actually that is one of the only places where Canonical invested money. Though I am not sure that was a large chunk of their investment.
  • The Ubuntu Community - The Perl community is quite awesome though there are places to improve. Let's discuss this a bit further

Perl Community

The Ubuntu project has written directions on how to behave. While many of the entries are obvious it is worth to take a look at both the Code of Conduct and the Leadership Code of Conduct.. The points are:

  • Be considerate.
  • Be respectful.
  • Be collaborative.
  • When you disagree, consult others.
  • When you are unsure, ask for help.
  • Step down considerately.

I'd especially point out the last entry. We have tons of code out there, application and modules on CPAN and in many other places. Some of this code, actually quite a large part of it is more or less abandoned. The original developer or last maintainer has mostly disappeared and there was no real process of handing over the code to others. There is a process in which others can take over a module even when the author is gone but I think it would be much better if the authors took it as their responsibility to transfer the modules they don't want to maintain any more.

I know the way this usually happens is that the person slowly has less and less time and keeps telling himself, that soon he will return to that code... so its not easy. We as the community should work on it.

7 reasons of In another article called The 7 reasons why Ubuntu is so successful I found the following reasons:

  1. A good start (vision ?)
  2. Easy and straightforward installation
  3. ShipIt
  4. Synaptic
  5. Ubuntu forums/Community
  6. User promotion
  7. Fragmented competitors

with the following comments I would highlight:

  • Promotion of Ubuntu through media and freeCDs
  • Synaptic was really impressive, and not having to download package information from the net every time i do a search was good

These are mostly the same reasons as we read earlier. Let me point out a few issues:

For those who don't use Ubuntu or don't know what it is, the Synaptic Package Manager is basically a graphical version of CPAN.pm for all the packages distributed by Ubuntu.

It would be probably better if Perl also had a graphical tool to install CPAN packages. (In Padre we are going to have one.)

User promotion. Perl got into many places by enthusiastic people who started to use it to solve problems. We should help these people more.

So what do you think, what does Perl need to be more successful in companies and how can we achieve that?