Copy Link
Add to Bookmark
Report

Interview: Colin Watson - Ubuntu Developer

Colin Watson is one of the lead developers for Ubuntu and is an employee at Canonical. Here we ask him how he first got involved, what he likes best about the Ubuntu community and about his most uplifting experience.

eZine's profile picture
Published in 
Full Circle Magazine
 · 7 Jan 2023

Written by Robert Clipsham


How long have you been programming?

Since I was 7, so a little over 20 years. My parents got me a ZX Spectrum+, and I taught myself to program in BASIC. The first language I learnt that I still use today would be C, which I think I picked up around the age of 17.


How long have you been involved with Ubuntu?
I was one of the founding members of the Ubuntu core development team. I started working on Ubuntu in May 2004 upon being employed by Canonical (though neither Ubuntu nor Canonical were called that back then). Memory is unclear, but it's possible I was involved in coming up with the name "MOTU"


How has your experience as a MOTU developer been?
With the same caveat (core developer), it's been amazing; I love being in a position to set up a really well-integrated system across the board with a minimum of bureaucracy, and of course it's hugely rewarding to see Ubuntu get so much favourable attention. It's been a lot of work but well worth it so far.


How has your experience been with the community been?
I've been very impressed with how much the Ubuntu community's grown in three years, and how incredibly active it has been. I've also been pleased that it generally works as a community; it doesn't tend to get stuck in endless back-and-forth or mired in bureaucracy. That's all been great to see.


Are you also working with upstream (or Debian)? If yes, how is that experience?
I've been a Debian developer since early 2001, and that hasn't changed. Naturally there's only so much time you can put into operating system development in the day and remain sane, but I try to contribute what I can in my free time even though it's my day job too; I still care very much about both projects, and I think there's plenty of room for them both to excel. While I've had a few arguments with people about details of whether such-and-such a change should have been contributed back to Debian or not, on the whole I've tried to stay clear of flamewars on the subject, and I find that I still work well with Debian developers on a technical level. I'm happy with this situation and it all seems quite stable now.


How much time did it take you to become a developer?
Well, um, I think it might have been a couple of weeks after I started at Canonical until the very first Ubuntu archive was actually in place so that we could upload to it ...


Have you had any uplifting experiences while working for Ubuntu and its community?
The Warty preview release was really quite something. I'd been up for goodness knows how long dealing with the release (I'm in charge of cdimage.ubuntu.com and releases.ubuntu.com, so I was the one who had to put all the files in place and press the Big Red Button), and straight after that I went off to sleep for 16 hours. When I got back, #ubuntu had EXPLODED; it took me a solid hour to catch up with all the activity there, when previously it had been this quiet little development channel. I think a lot of us had a "wow, people might actually be interested in this stuff" moment around then.


What do you see happening in Ubuntu's future?
I don't see it slowing down, certainly. By next year, if all goes to plan, we'll have another long-term-support release under our belt, and this time we'll have had the experience of 6.06 to learn from, so I think it'll work out pretty well. I think that will give us an excellent base for expanding into bigger audiences.


What do you think the best way for the Ubuntu community to help with Ubuntu?
I can really only point to https://wiki.ubuntu.com/ContributeToUbuntu for this; people have such a variety of different skills that could be put to good use. We're definitely always in need of new developers and even core developers who can put concerted effort into improving the quality and reliability of Ubuntu, though, and people who can accurately sift through bug reports to find items that developers need to work on.


Which part of Ubuntu do you like developing the most?
Given that I've spent a good chunk of the last three years working on the installer, it's probably not surprising that that's what I enjoy most. I think I like installer work because it's somehow immensely satisfying to build a system up from the very bottom, and to be the first experience people have with the operating system. There's still plenty of variety there, even though the installer manifestly works well for so many people, just because hardware always manages to find more weirdness to throw at us.

For somewhat similar reasons, I suppose, I also like working ondistribution infrastructure: the bits you never really bother to look at that work out the full list of packages we need to ship, or the process of kicking off a new development distribution after we release. I think it's fun to be in at the ground floor.


Is there anything you would like to see in Ubuntu in the future?
I'd like to have integrated support for producing custom Ubuntu CD images. I'd like to have the graphical installer be more reliable and more flexible, particularly in terms of partitioning. I'd like to make a concerted assault on excessive use of system memory.

In general, I would like to start a big push for systematic improvements in quality and reliability. My parents seem quite happy with their Ubuntu system, but it still breaks fairly frequently in ways they don't know how to fix. I certainly don't mind helping them out, but it really shouldn't break to start with, or when it must break it should be clearer what to do (for example, the whole user interface around fsck is difficult for end users). One thing we're doing in Gutsy is to make the system more robust against running out of disk space, so you can still log in and clean up some files. There's lots of that kind of thing to be tackled.


What advantages does Ubuntu have over other Linux distributions?
It has a functional and enthusiastic development community, together with strong commercial backing to make sure that it keeps moving forward and to do the boring jobs like infrastructure. I think we've struck the best balance there of any distribution I've seen: on controversial decisions the community really has overruled the company at times when its technical arguments have been stronger. We have the superb basis of Debian, and developers with plenty of experience in some very central parts of Debian so that we aren't just riding on its coat-tails. We release often yet have the LTS releases for people who want a slower upgrade cycle. We have a strong belief in having things Just Work.


Is Ubuntu the first Distribution you have worked on?
No; as mentioned above, I worked on Debian before Ubuntu. I used (but never developed) Red Hat for about a year before switching to Debian, but that's the extent of my distribution experience.


When did you first start developing Ubuntu?
May 2004.


What programming language(s) do you need to develop Ubuntu?
Personally, I use an ad-hoc mixture of C, shell script, Python, and Perl; that's skewed because d-i (the installer you see on our alternate install CDs) is written in C and shell, though new development work in Ubuntu is usually in Python where possible. You need to have a basic working familiarity with GNU Make in order to handle Debian/Ubuntu-style packaging, too. Areas of Ubuntu other than those I tend to work in may have their own requirements.

I've picked all of these up over the years, so it's very hard to say how long it took me to master them. C took several years, though I was going through university at the same time. Shell and make were just things I absorbed gradually based on what I needed at the time. I taught myself Perl and Python in a few weeks each with lots of reading. Really, the more languages you're used to, the easier it gets to pick up new ones. I very much recommend a broad education in as many languages as you can so that you don't get stuck in a rut.


What advice would you give to someone wishing to help out with Ubuntu?
There is no better advice in my book than to find something you care about and make it better. I learnt Perl because a program I was writing for fun was ridiculously slow in shell. The point where I really got into serious Debian development was when I started working on man-db (the 'man' program and so on) because nobody else was doing so, and fixing swathes of bugs that had been annoying lots of people. I started working on d-i because I needed to do so in order to get Debian to install on my new PowerBook.

There's no harm in asking questions, but spend your own time doing your own research too. It will take longer the first time, but in order to be a serious developer you need to cultivate the skill of finding things out for yourself, whether it be from manual pages or the source code or the web or whatever; it will save you time in the long run because you'll be able to find things out even when the experts aren't around; and people will have a higher opinion of you if you demonstrate the capacity to learn quickly.

Be bold. We like people who make themselves experts in a field and are consistently right and helpful. Don't wait for somebody to give you permission to do that.

Remember that everyone else had to learn everything from scratch! None of the core development team were born with experience of Ubuntu, or Debian, or wherever we started; we all had to learn it too.

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT