Quote:
Quite often, "do what everyone else does" is actually one of the better solutions.
I can't help remembering the saying 'When in Rome, do as Romans do'. There is a reason why this saying is constantly at debate tournaments. This is because it's a coin with 2 faces.
I must confess, you, sir, make some weird points.
Quote:
That is why X is *the* standard solution.
Did I not mention I am looking for an alternative? The reason why I am looking for an alternative is precisely because I agree with the fact that X is currently the standard solution. What I do not agree with is replacing the word 'currently' with 'always' and 'standard' with 'optimal'.
Quote:
Are you going to design your own CPU to run your application too, because x86 is too ugly to be optimal?
By your logic, no efforts should have been made to create the amd64 architecture. And yet, there is such an architecture. Is it possible that some of us are actually doubting the established dogma? That's one big no-no, isn't it?
Quote:
And yet somehow quite a lot of people seem to manage to write fairly advanced applications based on X.
I think we've reached the idealist vs pragmatic situation here. You see fairly advanced applications based on X, I see 3-legged dogs who walk fairly fast.
You are happy with the current solution, I am searching for a better solution. There's nothing wrong with that. Constant searching for new solutions is what drives progress, don't you think?
Quote:
How is "non-elegant API" at all relevant to "what your users really need"
Taking words out of the context isn't that interesting anymore.
My answer would be that the more 'non-elegant' an API is, the more time the developers have to spend learning it and it's little peculiarities, the more pressure they get from their bosses (assuming they work in a company). And when you get to this situation, the more pressure a developer gets, the more he will try to hack something together and release it to the manufacturer. The more hacks we get in our software, the higher the number of bugs. The higher number of bugs in a software, the more users are going to be unhappy with what they got. And here's where we arrive to the 'You get what you paid for' concept. And that is definitely not what users really need.
Quote:
Non-elegant API's can be worked around by using one of the dozen or so libraries that completely wrap it, so you don't have to look at it.
I mentioned this in a previous post: This gets you going, but does not fix the underlying problem. Some day, somebody is going to have to fix the root of the problem. You get these situation a lot in software, mostly because in a pragmatic world, 'now' is more important than 'some day', for numerous reasons (time,money, interest, etc). In an ideal world, the problems of 'some day' would be fixed 'now'.
Quote:
Sure you do. You have the problem that you just replaced the root, and now everything above it just fell apart because the root it was expecting to communicate with doesn't exist. You have the problem that the one piece of infrastructure that *everyone* have in place has just been ditched.
I have already explained this. See my post above about Qt, SDL and DirectFB, and the link to YouTube. Again, replacing X is possible. Sure it'll break some things, but since most of the programs are based on toolkits (that were initially there to solve the Xlib problem), I wouldn't say that the effort would be phenomenal. Qt did it, and their library is huge. There is a DirectFB driver for Qt. How many tools are more complicated than Qt?
Quote:
In any case, I haven't really seen how you propose to "fix the root".
In a previous post, I have acknowledged the fact that I do not possess the knowledge to "fix the root". It would probably be hard for any one person to do it. However, a team of developers should be able to accomplish this. Most of the time, these teams are found in big companies like Apple, Sun, IBM and Google.
Quote:
What I've seen is that you want *your* application to not use X, for some vague reason (ugly API, can be dodged by using wrapper libraries, low performance, is a dubious claim at best, needless features don't actually seem harmful, and so on)
1. Wrapper libraries? Ok, consider this. I'll give you a piece of rotten meat and I'll put lots of ketchup on it. What will your attitude be towards the food?
2. Low performance is a dubious claim? The advantages of writing directly to the hardware, without going through a network library (read: socket checks, memory reads, tcp/udp/unix delays, filesystem writes, cpu cycles just to get the data to the graphics card.) should be obvious. What we lack here is actual testing. Hopefully this is going to change soon.
3. Needless features don't actually seem harmful. I might agree with that, as soon as we get those test results. I don't have them. You don't have them. Point 2 makes a theoretical description of what's going on, so that should serve as a theoretical proof that in no way is a network client/server architecture faster than communicating directly with the graphics card. This should have been a self-evident statement, but the details in Point 2 are there just in case. So, now that we all know X cannot be faster, let's talk about how much slower it is. No tests results? Too bad for both of us. At least I can say that X is a sub-optimal solution, which is exactly what I said in my initial post, when I explained my choice to search for an alternative solution.
Quote:
But really, what exactly is *fixed* by your specific application not using X?
Well, for starters, allow me to say that I do not intend to fix something with my application, at least not something related to X. I don't know what led you to that conclusion. One of the consequences would be that there would be one more application that does not use X. Not a big deal, is it? But then, that's precisely why I posed my initial question. If I used an alternative to X, that would perform faster, I would have had a program that works faster, compared to an implementation on X. Consequently, I would have shown that using X for the same task would have been slower. And so, at least the set of tasks that are similar to the task I would solve with my program, would have been a good choice for 'Programs that work better without X'. And I'm talking about graphical programs, not command line program that benefit from no overhead of X11. Games, perhaps? Simulations? 3D desktops, maybe?
As you can see, nothing would be definitely fixed, but my intention is not to fix something. My intention is purely egoistic: have my program run better than any potential competitor by choosing reliable and fast software to depend on (that's why I asked about an alternative). That would be a good start. Just as in an economy: everyone acts in a selfish way, and we will all be better off. Of course, there's little to be selfish here, especially in the open-source world. But that's the fun of it: develop something better, and be proud of it. The rest will follow.
Again, no solution. Just corner stones.