Showing posts with label xorg. Show all posts
Showing posts with label xorg. Show all posts

2009-08-20

When the Contribution Model Fails

I'm a big advocate of Open Source software. I feel that there really is no reason to close software source for the most part, and in general, closed libraries are very frustrating for me as a developer. However Open Source has it's flaws. The contribution model may be one of it's greatest strengths, but is also a big weakness.

What leads me to this "revelation" is an issue which i've been considering getting involved in and fixing. It's a Gimp enhancement request, which is probably the thing that annoys me most about Gimp at this moment. The "bug" is the lack of grouped layers in Gimp. Obviously, not having groups for layers can make a large document really convoluted, but more than that, i often find myself wanting to make modifications to multiple layers at once, such as opacity or translations. So what's the problem? Surely if they know about it and it's in their list, i should either do it myself or just be patient?

It's a 7 year old feature request.

I do understand that "implementing this feature is not trivial", but 7 years is not even close to acceptable. I realise they are suggesting it might make it to version 2.10, possibly in 2011 or 2012? Before the end of the world i'd hope. But seriously, in the commercial world, people lose their jobs for taking over a month to implement features like this. This is not easy to do, but in that time the KDE guys have written Krita from scratch, which may end up soon overtaking Gimp in features, and already has grouped layers. To me it almost seems like no one wants to take on the task.

What happened to open source being the cradle of innovation, instead of lagging behind commercial competitors? In Gimp, you have the Open Source stereotype. It's not as good as commercial counterparts, and lags several years behind in features. Some Open Source projects really seem to suffer from this. I'd suggest that X.org is another that just can't keep up with feature requests. Is it because of a poor codebase that people struggle to build on? Is it because of lack of interest in the project from outside devs? I'm not sure, but it really does bring down the quality of some big Open Source projects. 

On the other hand you have the entire KDE team as an example of real innovation. The KDE desktop is years ahead of any competitor, the codebase is beautifully clean, and they are churning out major features in just a few weeks. My example of Krita is a very pertinent one. It may turn out to be a big threat to Gimp in the long run, especially because it is now cross platform. The pace of development is clearly much faster, and it seems that it already has some of the modern features Gimp lacks.

In the end this does highlight some of the problems with the contribution model of Open Source software. Some projects fall behind, potentially become aged, while others forge ahead. How do you prevent a split like this? Should similar projects collaborate? Does that then remove an element of choice? The way i see it is that if it is needed enough, someone will do it. Maybe thats why Krita is moving so quickly, compensating for Gimp's inadequacies? It's probably also why Google are going to replace X.org in Chrome OS. After all sometimes its good to do some spring cleaning.

2009-06-15

Xorg, a stumbling stone?

Statement: Xorg is a stumbling stone in the advancement of desktop linux, discuss.

This may seem like a university essay, but there's a valid point hiding in there somewhere. Xorg is bigger, slower and more complicated than the graphical servers of other operating systems. One of the reasons is that it lives in user space and, thus, is not part of the kernel. This has massive advantages for stability, but does mean that getting flickerless boot is somewhat complicated ( Fedora have been trying for a while now and are getting close ). It also means that driver problems within Xorg are often harder to diagnose from the start. 

Here's a little example, i've just bought a Dell Optiplex G280 to use as a media center. It has a Radeon X300 graphics card, and while it works perfectly on my 19" monitor, it refuses to work on my TV, no matter what driver i have installed. There is no feedback, it locks up the entire system, and i can't find anything in the log files. Several different Linux distributions with several different kernels have exactly the same problem. What makes it really frustrating is that i get full graphical boot and have no problems getting to the point where X initialises. Dual screen even refuses to work. And this is not the first rough encounter i've had with X. In fact since i've used Linux ( ~12 years now ), i can remember always having to edit the X config file manually. This is one thing which has never worked properly, and the only config file that i have consistently had to mess around with for 12 years.

My question is why? Firstly, do we need X in it's current form. Yes it's really advanced and has some amazing functionality, but does the average desktop user need that. Would it not make sense to rewrite ( much like Apple did with OS X ), a smaller, faster graphical server which may be part of the kernel? Something dedicated to being primarily a desktop graphical server, and secondarily an advanced server. If linux is to be taken up in the public at large, we can't have people struggling to attach an external monitor, since that is becoming a far more common task. Also, surely taking it into the kernel would make sure its extremely well maintained? Correct me if i'm wrong, but there are far more active and willing kernel developers than there are X developers?

Surely something as old as the X server needs a code over haul anyway? I've heard that there are plans afoot, but i'm not convinced that its anything more than a big extension of some code from 1992. To me, everything about X seems old and archaic, from their code base to their website ( which is just lacking a spinning under construction gif and some marquee text ). I can't believe that something which has never had a complete overhaul for that long is really built to handle modern graphics cards, 3D rendering and all the new input methods like tablets and multitouch very well without some major hack work. And hack work is _NEVER_ a good thing. And seriously, for a graphical server, i do expect a little bling on the web page.

I'm not sure exactly how i would go about it, and maybe it hasn't really been done because it's not something many people know how to do. Yes, i've heard of Wayland, which is NOT meant to ever be an X replacement ( read the FAQ ), and Project Looking Glass, but my stance on Java is a big firm no. What i want to know, is why isn't there a bigger effort by either the Linux Foundation or some big company like Novell, Red Hat or Canonical to actually make a big difference?

And in truth, if Windows works on my media PC, then i'll have a Windows media center. Because sometimes, it's about what works, and not what's got the better theory behind it. And no, i still won't get a mac tv. ever.