Are language discussions fun?

I’m not sure how the “is Gnome fun” discussion turned into a language
discussion. I would personally perfer using either C# or Java over C
to code a new app these days. However, using C is not what makes
hacking Gnome less fun than it used to be for me.

What makes Gnome less fun for me is the fact that Gnome is a stable
high-quality codebase that I’m spending all my time maintaining. Each
little change has to be very careful about not breaking backwards
compatibility or introducing bugs and each new features must be very
well understood and known to be right (because its very hard to get
rid of it later). Most time I spend on gnome is reading bugzilla,
fixing bugs in old code, discussing each little change forever,
reviewing patches and saying no to feature requests. In essence, I
have become a maintainance programmer, not a software developer. Of
course, at times I do new development, but it is far more seldom than
it used to be, and I almost never have time to do experimental stuff.

One reason using C# or Java would make things fun for me is because it
would basically force me to work on a new application from scratch,
which means I wouldn’t have to care about all these things and just go
wild experimenting and hacking. Of course, there isn’t much chance for
me to do that because even if I did start working on a new app I’d
still have all the old code I’d have to maintain.

4 thoughts on “Are language discussions fun?”

Well, I for one appreciate the “boring” work you’ve done on Nautilus – it’s become really great. And I wonder how “boring” the spatial transition was – well maybe it was, development wise.

However, I think as the nautilus maintainer, you’re in a unique position to experiment with new systems. Navigating your system is probably the thing that touches users the most, and can probably use the most innovating. For instance, things like beagle are ok, but I’d like more than a fancy search – I’d like to not only find my files in a myriad of ways, I’d also like easy “views” of (meta)data and “edits” of metadata (if beagle can index an id3 title, I’d like to be able to edit the id3 tag with my file manager just as easily). For that you need a lot of integration in the file manager. The file manager should be my primary interface to view and edit metadata (intrinsic metadata like id3 tags, and external metadata like the nautilus labels), the file itself (like the thumbnail, and evince, and quick editors), a collection of files as a whole (a svn/arch/git repository for instance) etc etc.

I’m not saying its impossible to do experimental work in a file manager. Its just that its very risky to do experimental work in something that is part of the core functionallity in the desktop. The file manager must work and be stable, which such experiments would affect. Also, if the experiments turn out to be failed its very bad if you’ve made massive changes to the default file manager.

Maybe your time constraints don’t allow for it, but there’s the option of making experimental forks.

For what it’s worth, I’d support you breaking the file manager for fun and profit – projects should be allowed to fail from time to time ;-). A lot can be learned from the failures, as long as one is willing to go back and reevaluate ones previous decisions.