Friday, February 19, 2010

"Getting Started" with Ubuntu Development

Look at the following screenshots and guess what's wrong. Any ideas?

Getting Started With Windows Client Programming

Getting Started With OS X Client Programming

Getting Started With Ubuntu Client Programming

How easy is it to get started with Ubuntu development?

The MS site has featured books, introductions, guided tours, videos, blogs, howtos, and presentations on programming for VS and .NET, making writing software for the platform as simple as possible.

The Apple site has overviews, guides, sample code, and tours for Obj-C and XCode, again making writing software simple.

The Ubuntu site has a description of the political process and details on packaging existing software. It does not, however talk at all about how to develop for new software for Ubuntu. They are pretty much just interested in bug fixes.

Ubuntu needs a developer community. Canonical is promoting that hard for 10.04. It's still too hard to learn to develop for Ubuntu.




Wich OS are you using in these screenshots?


Ubuntu 9.10. I am using the Exotic theme + GlobalMenu + DocbarX. I was on the Elementary Desktop theme last week. It's awesome, too.


BTW, this post has NOTHING to do with appearance of the web pages and everything to do with the content.

deriziotis said...

I'm not sure what you're trying to point out.

That the Ubuntu Development pages don't mention what languages you should be learning to start developing Ubuntu apps?



I added three paragraphs to the article to make the issue clear. Thanks.


Well for one thing the Windows site is pushing development within the .NET framework. While it is not a language it is markedly more specific than simply Windows development. So that one may be a bad example.

The MacOS site does seem to be pimping Objective C and I don't know enough to say that they just picked one language that you could work with or if there is some not so objective reason to pick it. Still Apple's culture is more closed than even MS's so I'd have to guess that they have one preference--or mandate.

Still it wouldn't be a bad idea for the Ubuntu site to link to some how-to info in several languages and list the appropriate libraries/frameworks/toolkits that would get you started.


Okay... so what do you want?
Introduction to Python? C++? GTK? GTK+? QT4? Mono? What?
If there is a programming language available, you can most likely develop an app for any Linux distribution.

The point of Ubuntu's pages is not to instruct you on programming, since the environments are all open source and use open source frameworks.

The point is how do you get your software into an official Ubuntu repository and maintain it.

If you want to learn how to program, there are many other sites for that. The reason Apple and Microsoft have the how-to code portions of their site is because you are using Visual Studio and .NET for Microsoft or XCode and Cocoa/Aqua/Objective-C for Mac. They will not include your software by any means, but want people to write software for their platforms.

Many people have already written and are writing software for Linux. Ubuntu is just a collection of that software in .DEB package format for easy installation.


Thanks, William and Michael, for commenting. My point (also made in a couple other recent posts) is that Ubuntu doesn't have a real outside developer community nor does it actively promote one. The Ubuntu team, though, wants to change that for 10.04 by introducing Ground Control (Launchpad integration in Nautilus), Lucid (developer training via IRC), and Quickly (right now, a Python development environment for Ubuntu). The "Getting Started" page (if we can call it that) doesn't mention any of these, even though they are available now and work well.

Any developer who wants to develop applications for Ubuntu is left to figure out what language, toolkit, version control system, and libraries to use, finding tutorials that are likely out of date Of the hundreds of combinations available, Ubuntu has had a favorite since version 4.10 -- Python and GTK+ -- but you wouldn't know that from looking at the "developer" page. Even if the developer figures this combination out, most tutorials are out of date. It would be very frustrating to be trying to target Ubuntu for a new application.

Michael's point is exactly my own: there are lots of sites to learn to program. There isn't, however, any guidance from Ubuntu on this matter. It makes sense to support the developer community (developers being the folks writing software, not the ones packaging it, despite the Ubuntu page's assertion otherwise) and increase the amount of software being developed for Ubuntu (and by extension, Linux distros in general).

I've been using Linux since 1997 and exclusively since 2000, long before Ubuntu even existed, so I understand that Ubuntu is a _distro_, but it seeks to be more than that. Creating a developer and ISV community is important to its future as a leader in the Linux world. If it continues to be just another distro without targeted development, its mindshare in the home will be supplanted in a few years by some upstart, just as RH cum Fedora and Debian weres by Ubuntu in 2004-2005.


I do see your point now. If Canonical has made choices about tools they use to actively develop the tools and apps in their distribution, then they should be mentioned and promoted on the development pages and wiki.

I consider myself broadly informed on many computer-related topics, and on Ubuntu (the first distribution that just frikin worked for me, without RPM hell, wierd application renaming, or some other oddity). However, I had not heard about their preference for python, choosing pyGTK, or even Quickly. I have made notes...

Post a Comment

Other I' Been to Ubuntu Stories