fredag 17 juli 2009

Dreaming about GNOME from a hobby developer point of view

In the latest issue of the GNOME Journal the editor, Jim Hodapp, encourages the GNOME community to start dreaming of GNOME 3. So I decided to take the advantage and do that in this and an upcoming blog post. In this first post I would like to talk about what I believe is an important focus from the hobby developer perspective. In the next post I will take a user perspective.



I have been a GNOME user for some 4 years now and have seen the environment develop through these years. I have never released any software for GNOME, but have spent quite some time with trying to digest the APIs. As a hobby programmer this is the first point I would like to dwell on. Having access to free source code and software is a truly fantastic ting. The amazing development of so many free software projects shows this without a doubt. However I believe there are several points that could be improved on this.



Realising that you as a hobby programmer could write a program that has a nice GUI, can do networking, integrate with a desktop (like the GNOME panel) and so on is really a great way to attract new developers. However, as belonging the this class of people with no formal programming education and no professional connection to software development so far the barrier has proven a little to high. But the point is that it is only a little. I believe that if the part of the GNOME community belonging to a more professional set of people could invest even a little more than is already done, a very large class of new developers could emerge. The things required for this to happen, as I believe is that:


  • The web page becomes better structured.

  • More tutorials that go through the basics.

  • A way to handle autotools.

  • An IDE that is easy to use.

  • Software mentors!


In the next paragraph I would like to develop on these ideas.



The web page


As a person tries to penetrate the community web pages are really one of the most important paths. However I do not know how many times I have been reading something on one (and there are so many!) GNOME related web page, just to find out via IRC or another web page that was I learned is obsolete. This is extremely discouraging and I believe impede also.



So my point here is that the web system really have to be cleaned. There can be no obsolete information and if something is being obsoleted in the near future be very careful about how this is presented on the web. If there are no options how to progress to the new version/api/library etc, do not write about is just yet. Consistency is central I believe.



Tutorials


Tutorials are great! I guess they are one of the main ways for FOSS people to spread and learn technologies and so on. However there could be so many more of them.



When one have not taken part of the development of a certain piece of software (library etc...) it is not at all clear how to start using that code. An example of this I have experienced is how to work with the GNOME panel. Also in connection to the previous point. There is just so much outdated information around about the GNOME panel. There are insinuations that some parts of the technology is being outdated (e.g. bonobo).



I believe well updated tutorials with a clear focus on how to achieve a certain (limited - the Unix'ish way) task are very needed. The tutorials needs to be fairly short, not mixing things up and digging deeper that required to finish the task.



Autotools, the monster


I am sure autotools is a great piece of software, I have even liked to at short moments. However it is a way to large burden to put on the shoulders of new programmers to lift. Autotools is everything a new programmer/project does not need. It includes everything and aims at exactly what a new programmer does not want to handle. All that caring about different platforms, particular problems with this or that library, l18n and so on completely kills the creative spirit!



I don't have a solution of how to get rid of autotools, probably the next paragraph is the solution, but it must be cloaked from the new user. But it turns out to be very hard to do many things without autotools. An many tutorials introduces in a early stage too. I think tutorials on topics other than autotools it self should not depend on autotools. That will make the tutorial unnecessarily complex and fuzz out the important details of what the tutorial wants to communicated (this is also true about other things, a tutorial should any describe what it is there to describe and not the other things - the tutorials should be "orthogonal").



An IDE


There is some bit of hard core culture in the FOSS developer community. IDEs are for lames. But I as a newbee is lame. And I need things to be simple. I have tried some of the IDE around, but they have all turned out to be more trouble than help. The default projects created does not work out-of-the-box and they, again, include everything. So I as a potential developer end up trying to understand this or that and why my project won't compile. There should be more projects options available in the IDEs so that you can create minimal focused projects without all the lull lull and a full features release project requires.



Software mentors


Now I'm dreaming. But these things are just suggestions, so let's dream. It would be great to have some person to talk to. Someone that you can thrust and that really knows what he/she is talking about (it is not so unusual on IRC that people give you wrong information). To have some well initiated programmer that can give you hints, point to resourced if you'r stuck, and answer questions would just be so great!



To make this structure effective it could be part of the deal the if you as an apprentice enters this game you have to be prepared that your conversation with the mentor is being stored and searchable for future newcomers to use.

Inga kommentarer: