Who are you? Your name, background and role in the development of GoboLinux.
Edsger Dijkstra about BASIC
It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
My name is Hisham Muhammad. My first contact with Linux was in Operating Systems classes at the university, back in 1999. I used to use Conectiva Linux back then, which was a Red Hat derivative made in Brazil, mostly because it was the one with best internationalization support for Brazil (in other words, it was the one in which accented characters worked out of the box with Brazilian keyboards!).
I've been messing around with computers since 1986; my first computer was an Apple II and by extension my first programming language was BASIC. And even after a BSc degree in Computer Science and a MSc in Programming Languages, I must say that I'm living proof about Dijkstra's quote about being exposed to programming through BASIC.
When it comes to GoboLinux, I'm one of the founders of the distribution, and I'm still active as a developer.
So what is GoboLinux?
GoboLinux was created in 2002 while André Detsch and I were both university students here in Brazil. We wanted something that would help us manage our own machines, where the power would be in our hands and not in the hands of the package management software or the distribution's repository.
At first, the project something we shared among our friends (some of them, like Lucas Villa Real, became active developers later on), but it was when we introduced the project to the world in 2003 that the repercussion really soared.
Over time, a community grew around the project. We have been steadily making releases ever since and we're happy now to have developers from all over the world! Nowadays it's hard to arrange online meetings with the dev group because of the number of timezones involved!
I understand the filesystem is unique in GoboLinux, how so?
Each program lives in a self-contained structure within a single directory. So, each of them has their own Unix tree. For example, the executable for the Audacious music player is in /Programs/Audacious/1.4.5/bin/audacious, and its libaudacious library is in /Programs/Audacious/1.4.5/lib/libaudacious.so.
The system is organized through some indexing directories containing symlinks to these program entries, so that for instance, all libraries are available at /System/Links/Libraries (which also doubles as /usr/lib, for Unix compatibility). You can read more about this here.
Other than the filesystem, what else is special about GoboLinux?
The fact that we broke with the Unix tradition to try a new approach has brought us what I consider one of our most distinctive features, which is our great userbase. The ideas of GoboLinux attract people who tend to like alternative systems, alternative programming languages, etc., so the Gobo environment is one of very forward-thinking people.
At the same time, another feature that is even curious to advertise, but which is rarer and rarer nowadays, is that in Gobo we have a policy of respecting the program settings from the upstream projects we include in the distro. So, we don't make efforts to "brand" their projects to put our face in them. In Gobo, our packages are as vanilla as possible. We do this to avoid introducing bugs and compatibility issues, and also out of respect to the upstream projects.
How can the community get involved in the development?
The typical entry point is by contributing recipes or submitting bug reports in our bugtracker. We also have a developer mailing list where anyone can contribute fixes and patches.
How many developers are working on GoboLinux? Do you see this number increase anytime soon?
There are five people, including myself, in our core development team. There are of course other active developers and translators working on GoboLinux and they are listed here.
Like every free software project, numbers fluctuate and developers come and go, but the numbers have been steadily increasing through the years and if this trend continues... Well, I'm already very happy.
Does the community have any exciting community-projects for GoboLinux?
Code Documentation Project
The goal of this community driven project, is to basically comment as much as possible of the scripts used in GoboLinux.
This way, it should be much easier for users to hack the distribution for their own and possibly others' benefit. With everything documented, everything gets easier for current and future developers of GoboLinux.
A recent one is the Code Documentation Project started by Daniele Maccari from Italy, and Aitor Iturri from Spain.
It's an especially cool initiative because it's focused on lowering the entry barriers for contributing to Gobo and because it was started as a grassroots thing, from discussions on IRC, and not from roadmaps from established developers.