Sunday, February 21, 2010

Making Myself Clear About Ubuntu Development

Visual Studio 2010 features a new UI developed...Image via Wikipedia

Yesterday, I posted about the differences between 's, Apple's, and Ubuntu's "Getting Started for Developers" pages. I didn't comment a lot on the pictures, though maybe I should have.

My points are/were the following:

  1. Both Windows and Mac OS X development is easy to get into with tutorials and videos for the preferred development environments. They actively recruit and help new developers. Beginning programmers would feel comfotable. Ubuntu doesn't talk about development, but discusses packaging. No tutorials or videos are available from the "developer" page. There's little chance someone is going to write a first program on Ubuntu.
  2. Windows prefers Visual Studio and .NET development (C# and Visual Basic are heavily promoted). Apple highly recommends Objective-C and XCode. Mark Shuttleworth stated in 2004 that Ubuntu would be targeting Python, and the standard desktop is GNOME (signalling a preference for GTK+), but there aren't really any links pertaining to these decisions ... or even acknowledging that these decisions were made. All three platforms have many options available with regard to languages available. Of the three OSes, only Ubuntu refuses to give guidance on where to start.
  3. Ubuntu distinguished itself from virtually every other distro by "making opinionated choices" about applications instead of installing seven text editors, three desktop environments, and five word processors. Those opinionated choices have been missing for application development, though.
  4. Ubuntu 9.10 introduced Quickly as the rapid application development method for Ubuntu (making opinionated choices), but this isn't mentioned on the development page, either. Also absent are mentions of more recent development like Lernid and Ubuntu Developer Week, Ground Control and projects, and Launchpad PPAs.
  5. Ubuntu appears to be saying that packaging is equivalent to development.


  1. Well there are many possible ways you can develop app for ubuntu to be more correct Linux distros. If you prefer using Gtk+ you can use either C C++ or Python (PyGTK) or Qt / PyQT PySIDE or even PyKDE. All this holds for all distributions of Linux.
    They mention about packaging mainly because its important if you want your app to appear in ubuntu repository.

  2. Vasudev,

    I agree that there are many ways to develop (including GTK# and others you don't mention). Canonical, though, has a favorite -- PyGTK -- which it decided on right after 4.10 came out. Shuttleworth likes Python. Why don't they say that?

    Really, if you look at the development targets for 10.04, that's exactly what Ubuntu and Canonical are starting to do, but they could have presented Python/GNOME (even though Quickly wasn't developed yet) and Launchpad (even before PPAs were out and Ground Control was set up), but they didn't.

    Ubuntu has been painted by many in the FOSS community as failing to help develop software for Linux. Canonical can't do it all. Building up a dev community would remove that criticism.

  3. Daengo,

    I agree with you. They should support the developers.
    Any way I started disliking ubuntu for making the UI better they are messing up the distro big time..
    I like plain old debian :)

  4. That makes a lot of sense...

    I think a lot of Linux users aren't even aware of pygtk, and wouldn't know where to begin when developing a Linux gui. Probably the web development tools are better known.

    There's nothing wrong with pushing a particular toolkit. We're not inhibiting people from going out and doing QT development. However, Ubuntu is gtk based, and pygtk is probably the quickest way to put together a gtk app.


Other I' Been to Ubuntu Stories