257 - null

Recently, there has been some discussion in the Gnome community about whether to stay with C/C++ as the main language used for Gnome, or to move to another language, specifically C# or Java.

Both of these languages are, in my opinion, far better than C for desktop application development. Their focus on higher level structures makes them more suited to the task of creating usable software, relieving the developer from low level string manipulation, to take an example that always causes me problems when I use C. I think C is an excellent language, just not when it comes to desktop development. I’d be much more prepared to dev on a desktop level using C# or Java than C. The extreme control you get with C for all aspects of you code just seems like overkill for a desktop application.

On the other hand, for low level things, such as Pango and even perhaps GTK itself, the speed offered by C does go a long way. I would say that C has its place down at those levels and C#/Java has a strong case for being used higher up the chain. Whether the people currently involved in Gnome development feel the same way, who can say. I know several people think it is the way to go.

There are problems on a different level with the new ideas though. Both Mono and Java suffer from patent issues. Mono is based on the CLI and C#, both standardised with EMCA but both still in a sense “owned” by Microsoft. For Java, there is still not a complete open source platform to build from. Both of these issues form the major core of objection, as far as I can tell. Given Gnome’s Free Software basis, these matters are important and I don’t think much progress can be made without these issues being cleared up.

The fact that this problem is now being more actively discussed is a good thing. Hopefully the discussions will produce results, either one way or the other. There needs to be a concensus on the issue. Without a proper direction, there is a good change of fragmentation within the community, which would definitely be a bad thing in the long run.