First of all, why do we need this?
When GNOME was launched we wanted a free desktop. We got it with GNOME
Then we wanted a free and cool desktop. We did GNOME 1.4 and we got lot of users.
Then we needed a free, cool, easy to use and friendly desktop. We did GNOME 2.x and we have now lot of happy users.
So our next step towards world domination it’s a platform which everyone can develop applications with. I know that we have a good infrastructure with current GNOME, and it’s fast and elegant. But as well as I coudn’t ask my mother to use GNOME 1.4, I cannot ask most of my friends studying computer science to develop their applications over current GNOME, because it’s a pain for them: they need to learn a powerful but hard language as C, and they need to understand lot of complex mechanisms, autohell, vi… So now we want to progress, and we want lot of people developing easy applications. Keep in mind that 99% of the software all over the world are not OSs, neither desktops neither office programs, they are just home made applications. If we want people using our plataform and we want to progress, we need to
provide an easy way to develop applications that can be used forever.
All of this is the normal evolution of GNOME. During 1.x time, GNOME desktop was developed by hackers and for hackers. In the 2.x transition, we focused in usability, and began to care about normal users (SUN, seth and more people explained and conviced us of this). So now is the time that we (these people that use emacs and love C) have to begin to care about normal developers (these people doing applications at home that are not hackers, ISV’s, etc…).
To summarize, we just need a framework for developing applications. This framework should be easy to learn, easy to use, and as much complete as possible. How can we get this? One possible solution is to add to our beloved GNOME a lateral framework. The core (main libraries) will still remain as they are, but people could develop easy applications for our desktop using it through this transpared framework.
Right now we have three candidates: JAVA, .NET and “El pato Lukas”.
We could use a free implementation of JAVA, mono for the ECMA .NET or a from-scratch platform called “El pato Lukas”.
Java is an 8 years old platform and has proved to be good. We have free a implementation nearly ready for use. Also Java is not an standard and it’s controled by SUN. SUN have lot of patents and IP over it.
ECMA .NET and C# is a really new platform, but a techinal analisys says that it is as good or better than JAVA (personally I like the option to execute pinvoked code). ECMA .NET is controled by a standarization organism, but Microsoft has lot of patents and IP over it.
“El Pato Lukas”
El Pato Lukas doesn’t exist. It would be a new framework doing everything that JAVA and ECMA .NET do. But no one has written it, and for example mono implementing .NET takes over 3 years, so this would be longer, and maybe that would put us out of the game. Red Hat tried to do it long time ago, with the orginal INTI project.
Patents and IP
Patents are evil. But they are real in the US, and maybe in the EU. So we have to care about them. Is free software doing things that are patented? Sure. Is it stoping it for doing them? No. How have we avoid them problem? Just ignoring patents, and if someone has tried to sue us, we have workarounded the problem. Remember the infamous GIF patent. All free software all over the world was using it, but when someone tried to sue people we developed PNG, that is better and just moved to it. Also most of patents will be declared void because of prior art. Also think about how software companies use patents. They just patent as many thing as they can just as a defensive act, so if A tries to sue B because B is using a thing patented by A, B answer to A that A is also using a thing patented by B, so B will sue A. Finally there is no sue. Just like nuclear weapons. If two countries have both nuclear weapons, they know that they are not going to use them against each other. So why don’t we patent “spatial nautilus” and so many things that SUN and Microsoft are using?.
So current discussion is about using Java or .NET. Lot of arguments from JAVA against .NET are about the IP dangers. But both are dangerous in the same way, and we just need to defend us if we are going to use one of them. Also lot of hackers are frightened about political or company decisions about one or other platform. I belive that, with the same start conditions, technical arguments, and hackers will decide.
And I see all of this as a natural adoption, not an imposition. People can start coding external applications using .NET or JAVA. Red Hat maybe is going to do them on JAVA. Novell is going to do them in .NET. Our desktop core will remain in C. Time
Currently I’m not using any JAVA GNOME application, and cannot remember anyone, but I’m using Muime (.NET GNOME) for music playing. And I’m using it just ecause the UI solves all my problems, and does what we want: Search and play, or search and enqueue. Sometimes things of this kind make people to take decissions… so GNOME JAVA hackers… show us what we can do!
Oh, I forget to metion, if you want to use muine with current mono cvs or beta
2, you can use this