Harsh Words From Google On Linux Development
jeevesbond writes "The alpha version of Google Chrome is now available for GNU/Linux. Google Chrome developer and former Firefox lead Ben Goodger has some problems with the platform though. His complaints range from the lack of a standardised UI toolkit, inconsistencies across applications, the lack of a unified and comprehensive HIG, to GTK not being a very compelling toolkit. With Adobe getting twitchy about the glibc fork and previously describing the various audio systems as welcome to the jungle, is it time to concentrate on consolidation and standardisation in GNU/Linux in general, and the desktop in particular?"
'...is it time to concentrate on consolidation and standardisation in GNU/Linux in general, and the desktop in particular?'
Good luck.
Great minds think alike; fools seldom differ.
Linux has GUI toolkits.....loads of them!
Choice, many times becomes really fast synonym of fragmentation and lack of standard. And this is just a bright example. The situation described is 100% conforming to reality, as far as UI kits and sound infrastructure.
GTK isn't as nice as everyone makes it out to be. Basically what everyone has been doing is talking red hat, and suse and making their product work on that. You can't "standardize" Linux because the 7 or so distro can't agree.
They argue, and I would not say that they are wrong, that GTK+ even so does not give the necessary functionality to allow all the Chrome features.
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
Why not just use Qt instead? It's LGPL....why people still using GTK?
I will squirt it up for you: here. Alternatively, you could have binged it.
Ezekiel 23:20
with a standardized HIG. After all, graphical interfaces are not exactly the new kid on the block. There are common standards (use radio buttons for this, checkboxes for that, put your menu HERE). And while Linux does not necessarily have to conform to OS X or Windows standards, it could certainly have a standard of its own. This would help developers a lot. In my experience, many developers, while good coders, are not good interface designers. Without a comprehensive guide, they just plain get it wrong.
I don't much give a damn about Adobe being skittish, though. Are they paying Linux core developers?
"Alternatively, you could have binged it."
Yeah, if I wanted a snarky answer. http://www.eternaldusk.com/images/screenshots/chandlerbing.png
Should've started on the osx version instead!
*impatient*
with having a standard in Linux at all. It doesn't have to be a just about GTK and QT either. They're both widget kits. Great. The standard has to start in the file system. Red Hat, for instance, worries about being backwards compatible with each update, as it should, but that means it broke the FSH to begin with. So migrating from RH to another Linux distro that may follow the FSH is difficult. Also, it makes installing things a pain sometimes. A few times I've had to edit a config file because it points to a web server in /srv/www but in reality my system may use /var/www/ or what have you. Just because open source is about choice, doesn't mean there shouldn't be a standard set.
That which does not kill me only postpones the inevitable.
Yeah, that and the lack of a "unified and comprehensive HIG" seems a little dishonest for a company that created a windows browser that looks NOTHING like any other piece of windows software, follows its own interface methods, and generally throws off the look and feel of the browsing experince. While i'm aware that a HIG should cover more than just the look and feel, it feels like google bends the rules when it comes to interface guidelines.
Is it sad that I am more likely to recognize you and your posts by your sig than your name or UID?
Let's face it, one of the things all Linux evangelists like to emphasise is the opportunity to use whatever you want and even build it yourself if you want to. But it's maddening for developers to create something that will work on every kind of linux desktop in existence. From political choices of free vs. non-free, to preferred distribution, version numbers, favourite window manager and a host of other choices, no two desktops will be the same. Linux isn't an operating system, it's an operating eco-system. Taking Google as an example, today I tried to install Google Earth on my Ubuntu 9.04 laptop to no avail, despite it having installed without a hitch on my Xubuntu 7.04 Pentium III plaything in my room back in my parent's house. The exact same version of the program with dramatic differences depending on where you try it, that quickly becomes a support nightmare.
Now for the dedicated GNOME/KDE/xfce/whatever volunteer this does not pose much of a problem because your target audience has broadly the same machine makeup as you do, but for a commercial developer looking for a good ROI it quickly becomes untenable. Windows and Mac OS provide a devoloper with a guaranteed stable platform development-wise, and as such are much safer bets.
I agree that the only way Linux can make itself more attractive to commercial desktop program developers is with a mighty amount of consolidation, but the problem is that I don't think it will happen. The great OS wars that went before the dominance of Windows had winners and losers because they were systems of a closed nature, and so if you held with a losing team they closed down because it wasn't economically viable and you had to move to something more mainstream, thus consolidating the market. With Linux a project will never close down as long as someone like it more than something else.
I think Ubuntu implicitly has set the standard. Ubuntu comes standard with GNOME, GNOME uses GTK, GTK is therefore the de facto standard.
The more relevant complaint seems to be that GTK isn't good enough. I agree that Ubuntu and GNOME could do a lot to improve it.
Follow the discussion, and you'll find it's not about complaints at all, at all, at all. Google is trying to figure out the best way to do Chrome for Linux, while making it something that Linux users will actually like, and that means more choices. That's all. No, it's not about needing to standardize, so could someone at Slashdot quit with that FUD? GNU/Linux is about choice, and it always will be.
Well, then, make a standard that doesn't suck. That is what I was saying.
What they are talking about (HIG) is only a "guideline" for programmers to follow. You know, for programmers who would otherwise get it wrong (using dropdowns when radio buttons would be more appropriate, using editable textboxes just for displaying information, etc.). It is not supposed to be a concrete "thou shalt do it this way or else" document.
Otherwise, you are not leaving the "user experience up to the users" anyway... you are leaving the user experience to programmers who don't know how to do interfaces.
Here is the great thing about having dozens of GUI toolkits, multiple libc, and several audio APIs. You only have to choose 1! Every time somebody complains about the "mess" of GUI toolkits, it just comes off as senseless whining. Where are the downsides? There are only 2 major ones, and if you don't have experience in either, just pick one.
The only downside I can think of is that end-users need several GUI toolkits installed, for their multiple programs that use different toolkits, but a) Linux still has a better features/size ratio than any other major OS, and b) Windows and Mac have the same problem (SDL, GTK+, etc, and the dlls have to be included with the binary downloads because Windows/Mac don't have an easy to use package manager).
I agree that there are too many choices, but I believe that's part of the point of open source solutions.
It's partially the responsibility of the application developers to choose the toolkits and platforms that work best for them, not complain about having too many to choose from.
If companies like Google and Adobe got together in a side meeting and came up with a "standard" they found acceptable, it would create a demand for those platforms and make those toolkits/apps the dominant. Too bad this will never happen...
and I don't understand what's wrong with that.
It's like saying "There are so many different operating systems for so many different types of hardware that the computer market is too fragmented - so we won't produce any software"
It's silly. If you want those users then you make the software, if you don't then you don't. simple.
BTW, I'm in the throws of switching to Vista after being an Ubuntu user for many years. They don't like my bugs but Microsoft actually seems to care.
Meh, everything is a trade-off. Qt is way easier than Gtk and has a huge API for doing all sorts of cross-platform stuff. Plus it's truly cross-platform whereas Gtk is pretty crappy on anything other that systems running X Windows.
The trade-off is that Qt is C++ and Gtk is C. This actually matters a lot when you need to interface to other C-only applications and libraries or whatever. C++-to-C is easy but using it the other way around is problematic and annoying. Then you have the issue of how clean the code is in each language (depends on your point of view as to which is better).
There also used to be the issue of Qt forcing the GPL down your throat but that is no longer an issue because both Gtk and Qt use LGPL.
Personally I have been using Qt for everything recently. Since the switch to LGPL it's the obvious choice even though I'm a C purist at heart. I hate the fact that it's so big though. Since it's LGPL you can't statically link only the stuff you use so your application installs tend to be larger than they really should be...
Trade-offs... Everything... So annoying, makes it hard to develop truly high quality software.
Speaking of Desktop Environments (not just toolkits), yes, and KDE does too. And probably that's the point. Having more than one HIG is just slightly better than having none.
Chrome should have been built on top of Qt from day 1. You'd have tight integration with Webkit, a great toolkit, and cross-platform from day 1 on Windows, Mac, Linux and Solaris.
Google opted for VERY Windows-centric design which made porting hard, and then the man tasked with porting to Linux choose a poor toolkit and then blamed the Linux platform for two bad decisions in a row made by Google.
I have zero sympathy.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Meh, does Chrome even follow Microsoft HIG? The tabs being almost part of the title bar, and the lack of an actual window title in the title bar, as well as the random Google logo next to the buttons, all seem to be completely contrary to what I expect on Windows. As do the Vista style buttons even on XP, but then Microsoft did that too with Windows Media Player in some version.
All your base are belong to Wii.
My Mac currently has several apps in three different toolkits open; several apps written by Apple itself don't follow standard UI conventions. The Windows situation is even worse: there are several native toolkits there (Win32, MFC, .NET, ...), plus dozens of third party ones. And UI conventions are violated constantly.
The real problem Windows programmers have with Linux is... that it isn't Windows. They start writing some big, ugly, messy Windows application (hello, Firefox), and then they moan and groan when porting it to Linux and usually do a piss-poor job at it too.
At one point, serious computers ran Unix. PCs were just toys, not useful for doing real work with.
But Unix fragmented. You had AIX, HPUX, and around a dozen other different kinds. They all behaved differently, stored things in different places in the filesystem, had different desktop environments.
Windows came along with a single environment and suddenly *that* was the attractive place to develop software.
Fast forward a few decades, and to a 0th order approximation, all apps are written for Windows, and Unix derivatives are dead on the desktop. Ok, there are a handful of slashdotters using Linux in their basements, but from a desktop perspective it essentially doesn't exist. And the software people need to run for real productivity purposes - Autocad, Photoshop, things like that - are all for Windows.
The only way Linux can hope to succeed is to present a unified environment to developers *and* users. Period. Yes, that means the over-complex KDE will have to die. Yes, that means binary compatibility must stop being broken from OS update to OS update. Yes, that means supporting DRM so that users can play their streaming videos from Netflix.
It's simply the arrogance of Linux developers that have crippled Linux adoption.
I'm sure I'll get modded as a troll, but the fact remains that Windows *owns* the desktop, and normal users are happy with it.
And drop some legacy systems (X comes to mind) along the way.
X is the only GUI* which is pretty much guaranteed to be installed on every Unix and Unix-type system in the modern world. It is to GUIs what ASCII is to text encoding schemes, or what HTML is to markup languages. We're never going to completely get rid of it, and any widely used standard that replaces it is going to have to include it as a subset. You may not like it, but it's relatively simple, its quirks are well understood, and dismissing it as "legacy" isn't going to make it go away.
*Please let's not get into the argument over whether or not X is a "real" GUI because it doesn't include this or that feature of your favorite window manager. It's as silly over the argument over whether MySQL is a "real" DBMS, or Perl / Python / Ruby / scripting language of your choice is a "real" programming language. The answer to all of these is "yes." Now let's move on.
The correlation between ignorance of statistics and using "correlation is not causation" as an argument is close to 1.
I guess the guy that used to be the lead developer of Firefox may know better than you and me.
Perhaps the problem is that the lead developer of Firefox ignored that HIG in making Firefox. From Wikipedia: "Mozilla Firefox's user interface, for example, goes against the GNOME project's HIG, which is one of the main arguments for including Epiphany instead of Firefox in the GNOME distribution." No doubt there were reasons for the choice taken in Firefox development, but the consequences include a lot of bloat and reinvented square wheels.
Those who can make you believe absurdities can make you commit atrocities. - Voltaire
What is really going on is that they have wrapped a new layout engine ("views") and other tools around the "impoverished" (their words) Windows toolkits. Then, they started depending on their wrapper for features they added to Chrome. Now, when porting to Linux, they are suddenly discovering that, geez, both Gtk+ and Qt already does what "views" is doing, they just do it differently and in a way that doesn't connect well with the rest of Chrome. That's what they are complaining about.
Ben Goodger, here's a hint: pick Gtk+ or Qt as your toolkit, Linux users really don't care that much. And both of them are much better toolkits than what Windows offers. I'm sorry that the completeness of Linux GUI toolkits inconveniences you, but, well, too bad.
Or, if you like, don't port to Linux; we don't really care all that much, since there are several great browsers on Linux already that pretty much do what Chrome does.
So let me ask you this, if Chrome treated each Linux distribution as an OS, would you be happy when Chrome was ported to Ubuntu and not Fedora or SUSE?
Personally I think the whole situation is fubar. There should be three distributions, different-enough to be treated as independent OSes: GNOME, KDE, "Other/Build Your Own".
No, nobody gives a shit what the kernel is-- the OS is the UI, and the UI is the OS. (Think about it: if Apple ported OS X to run on the NT Kernel, would it still be OS X or would it magically turn into Windows?)
Comment of the year
Except GTK is so poor that you have Gnome devs calling for a major restructuring, and Mark Shuttleworth of Cannonical/Ubuntu fame calling for Gnome to be built on top of KDE. Ubuntu hitched their wagon to Gnome very early on, and ships broken KDE packages to this day, but I have to wonder if Shuttleworth regrets that decision today.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
If only the Linux Standard Base existed! Oh, wait, it does!
http://www.linuxfoundation.org/collaborate/workgroups/lsb
That is why Skype can build a distro-agnostic package with static linked libraries that just works on every distro, even though they also make distro-specific packages as well.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
PulseAudio is just terrible in its current state. Phonon conversely is EXTREMELY easy to program for. There was a proof-of-concept media player app written for Phonon in 5 lines of code. It has multiple engines/backends to talk directly to the hardware, which do the heavy lifting. When writing an app, you don't have to debate between support for Gstreamer, or Xine, or whatever. Just write for Phonon and then don't sweat it.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
That part in the summary amused me:
It was time ten years ago when Linux was first gaining real momentum in that area. I remember posting Slashdot comments about it and getting told Linux was about "choice" and that if I didn't like it, I should contribute code. Ten years later, even Google is bashing Linux for it. I bet nothing will change even now.
Linux is a server OS, only used on the desktop by enthusiasts. Accept it, because the kind of standardized APIs that are needed are not going to happen with the attitudes that this community has.
While i'm aware that a HIG should cover more than just the look and feel, it feels like google bends the rules when it comes to interface guidelines.
No two browsers look alike. I happen to like Google Chrome's look and feel. To me, it's way superior to IE's.
While Google Chrome has a unique look, it does not have a totally unique behviour. The X button is still in the corner of the screen, making it easy to find an click. (Aren't you annoyed by apps with no X button or titlebar?)
It accepts all the standard hotkeys. I don't care if an app looks Win32, if it doesn't let me use the hotkeys I've gotten used to.
All in all, I'd say the unique interface isn't disruptive. It might even be intuitive, to anyone that's used lots of Windows programs.
While i'm aware that a HIG should cover more than just the look and feel, it feels like google bends the rules when it comes to interface guidelines.
While the GUI for Chrome is different from many other browsers it is very similar to what Microsoft has done with the new office interface and is just a new direction in which GUIs are going.
Being an "Ubuntu user" doesn't make you a GNU user, it makes you a Windows user temporarily using something different either because you thought it would make you cool or because you got mad at your beloved Microsoft and threw a hissy fit.
And people wonder why Linux's desktop share is as small as it is....
Thank fuck the Ubuntu community forums aren't full of arseholes like you. Maybe that's why its market share of Linux pisses over other distros.
I only please one person per day. Today is not your day. Tomorrow isn't looking good either. - Scott Adams
They certainly did break the windows HIG. Then again, I'm a big fan of standards, and yet I've deliberately broken HIGs when I knew they didn't apply well to a new kind of application. I feel justified in doing that, since I've been around since the basically the dawn of GUIs and been able to slowly watch the standardisation process of most widget types. None of that means that I want to start from scratch on a platform though, without any standard HIG already in place. It's one thing breaking the HIG when necessary. It's quite another if no one has bothered to agree on the HIG necessary for even the most typical apps.
Anyway... google are quite right here, I think. When are Linux standards people going to wake up and realise that ANY good, standardised library is better than two that are both great? Especially in open source, the fact that it's a standard allows people to focus on improving it. The whole point of an API is to have something to target your software to. It's also a standard which can be evolved later, even if the next version is as different as Qt is from GTK+. I don't give a crap if the standard is Qt or GTK+ --- whichever is chosen will eventually gain the features necessary for modern apps --- but SOME standard needs to be set.
What's it with all these people thinking that focus is the issue here? There's a theoretically unlimited number of programmers out there in the FOSS world already. The problem isn't focus: if you put the same developers currently active on a smaller number of projects, the development speed will not increase. Heck, it might even slow down, because more people will want to give the bike shed a nice color. And in that sense, the huge amount of forks and pet projects actually speeds up development, because it quickly becomes clear what works and what does not.
There is no universal standard GUI toolkit on Windows either. Firefox and Opera use their own. OpenOffice.org uses its own. Even Microsoft Office uses its own. On the Mac, there is even more GUI dissonance. Current Macs make the typical Linux environment look downright uniform.
Why is this always considered a problem on Linux but not on Windows or on the Mac?
If the Chrome developers feel too constrained by GTK, they should have chosen a better toolkit, such as Qt (which, incidentally, is also popular on Windows). They can't blame their own bad choices on Linux. Their gripe sounds like the standard "how dare Linux be different from Windows and make us have to learn something new" whining.
He did call for it to be built on top of Qt, not KDE. I know better, and honestly can't tell you why I typed KDE instead of Qt.
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Can you please submit the patch upstream so we don't all have to fix it ourselves on our own copies. Thanks.
The revolution will not be televised... but it will have a page on Wikipedia
I've got no idea about him but I've written several white papers for various platforms in my job including .NET and I use Windows daily at work and even in a VM at home sometimes. I also use Ubuntu and OS X primarily for my personal stuff. It's not an either/or religion for all of us who don't have the last name Stallman. I very much value open source products but there are things they don't do or don't do well or because of other cultural reasons such as de facto standards just are positioned properly in the market to do.
If you want it to be either/or us versus them then you have to make a product that meets ALL of my needs and currently no one does so I use Ubuntu (and previously FreeBSD, Suse, Gentoo, Slackware, or Redhat) when I feel it meets my needs and OSX or Win when they do.
There's no "Linux community". There is a lot of communities of different sizes, many of which don't give a damn about each other, plus individual developers doing their own thing.
It's like asking, why does the "programming community" keep inventing new languages? Can't we just all settle on C?
There's a guy somewhere working on some project who got really fed up with say, artsd, and decided that writing a successful sound daemon would look good on his resume. And we end up with yet another sound system. And if you come to him complaining about the lack of unification he'll tell you he's doing it on his own time, has X very happy users and doesn't really care about what you think.
If you want to drop whole subsystems, ALSA would be a better choice than X. Modern Xorg (DRI2, KMS, UXA, evdev2, xcb, hal support/input hotplug and xrandr 1.2+/output hotplug) doesn't look much like Xfree86, and with this summer's release bringing xinput2 and the next Mesa release including Gallium3D for the first time, it will put X in a very good position.
Once all of the new technologies are in use across the board, and the fine tuning has begun, X will be very competitive with the Vista/7 GUI model and the OS X model.
Climate Progress - Hell and High Water
I'm not sure if I want it to be the end-user desktop, I want it to be the
cutting-edge desktop.
As for backwards compatibility, why would you want that
as long as you can just recompile your app towards the new version.
Do you know how many of the bugs/cruft that is in windows comes from trying to be
backwards compatible? There is a reason they finally had it (same with Apple),
and recommends xp in a virtual machine for windows 7 users if they need to run old apps.
Apple had their OS9 emulation layer going on for long but OS X is not backwards compatible
with OS9/8 etc.
You know, I have to agree. I just never did get the zealotry either. While at home and work my main OS is Windows 2K/XP/XP64, when I am called out to fix a network that some bonehead had let God knows what loose on? You bet I'm bringing my laptop with the Xandros Business partition fired up. It lets me access the Ad and Exchange, while having enough of a familiar interface I can hand it over to an employee that has a deadline to get their work done on. Use the right tool for the job, I always say.
That said, why do you Linux guys seem to hate standards so much, hmmm? I'm not talking to you specifically fooslacker, but Linux in general. I mean y'all got, what? Three different sound systems now? Would it really be so hard for all the major players to sit down and choose a basic standard, one that will hopefully be rock solid stable with minimal changes and a focus on backwards compatibility, so that writing drivers and programs for the entire Linux ecosystem would be easy and thus attract more companies?
I mean if I am a hardware manufacturer it takes just three drivers if I want to support Windows past, present, and future with a binary driver. Four if I want to cover the niches. I just have my developers write a Win98/ME, A win2k/XP, and a Vista/Win7. I add a WinXP64/Vista64 and since Win7 can use Vista drivers I have everything from 1998-2014 completely covered with just four binary drivers and no more out of pocket. There just ain't a way to do that in Linux. Same with programs, there really isn't a way to...say make a game, and be assured that it will work on Debian, Red Hat, Ubuntu, Xandros, PCLOS,etc right now, much less have the same thing work out of the box five years from now so I can continue selling it without constant tweaks.
Look, nobody is asking you to become Windows or OSX. Nobody is asking you to give up the bazillion different distros out there. Just have a common, stable, and backwards compatible undercarriage that software developers and hardware manufacturers can target so that it doesn't matter if I use Xandros and you use CentOS and the guy down the street is running Gentoo, that any company can release a program or driver and know that for now and the long term across the board it will "just work", that's all. I bet if you had a stable and solid undercarriage that worked across the board that a lot more companies would seriously consider releasing their products and drivers for Linux. And that is good for everybody, right?
ACs don't waste your time replying, your posts are never seen by me.
The freedom (free as in liberty) aspect of Linux make that sort of standardization somewhere between extremely difficult and absolutely impossible. Freedom and autonomy are the enemies of standards.
As they explained multiple times, they choose GTK because that's what the team doing the Linux "port" is familiar with. However their architecture allows to easily use different toolkits and they are willing to accept patches to support Qt or whatever else. They just don't have the resources necessary to support more than one toolkit.
For laughing out loud. Just like SWT supports any toolkit, I presume. What they did was to shove an abstract API mirroring the one of the windows toolkits. Of course, you can make that work on any toolkit, but it is not always going to be easy, nor a perfect match. And who needs another browser? Chrome offers very little new, being essentially Yet Another Konqueror Fork. (Maybe we can just label them all YAKF :o) )
But I merely replied because of the stupidness spouted about C++ re Qt.
Religion is regarded by the common people as true, by the wise as false, and by rulers as useful.
Linux has had two leading sound systems. It used to be OSS (many years ago) and has been ALSA for quite some time. If you require anything else, you are probably going to have trouble in some distributions. Now, ALSA may be considered a crappy API, but then again, so was WinMM and it didn't stop people from using it.
I mean if I am a hardware manufacturer it takes just three drivers if I want to support Windows past, present, and future with a binary driver. Four if I want to cover the niches. I just have my developers write a Win98/ME, A win2k/XP, and a Vista/Win7. I add a WinXP64/Vista64 and since Win7 can use Vista drivers I have everything from 1998-2014 completely covered with just four binary drivers and no more out of pocket. There just ain't a way to do that in Linux.
There's a much easier way. Send a message to the kernel list saying, "I am a hardware manufacturer. Here are the docs for my hardware under NDA, and here's some samples." Ta-da! You get drivers written for free (or significantly reduced), and every subsequent distro release will support your hardware by default.
Pirate Party UK
I am sick to death of hearing developers bitch about "native look and feel". Grow up! Get a fucking life! I couldn't care less how the goddamn app looks COMPARED TO OTHER APPS as long as the look enables the FUNCTIONALITY to be performed correctly.
What matters is that the program does it's job - not that the widgets look the same as some other app on the system.
Christ, what a fucking waste of millions of man hours farting around with bullshit cosmetic issues! Fucking programmers think they're goddamn "artistes" when they can't even get their shit to RUN PROPERLY, NOT CRASH, BE FUCKING USABLE, and BE SECURE!
Shut the fuck up about look and feel and concentrate on making the thing fucking usable, reliable, and secure.
You want to be Picasso, get a fucking paintbrush!
Richard Steven Hack - This sig is TOO GODDAMN SHORT TO DO ANYTHING USEFUL WITH! MORONS!
It {...} has been ALSA for quite some time. If you require anything else, you are probably going to have trouble in some distributions.
Well, the problem is ALSA is only direct access to the sound hardware (in most common installation. Of course, one could build custom ALSA configurations to pipe the sound through a software mixer). That means that, unless there's hardware support mixing in the sound card (most Soundblasters have it), one application can greedily keep all sound output for itself (happens a lot of time with flash).
Unless doing full screen games or something other that usually requires exclusive access to the sound card, it would be best if sound enabled applications used API of sound-mixing deamons/abstractions such as ESD & Artd (on old Gnome and KDE) or PulseAudio and Phonon (on more recent Gnome and KDE installations).
Specially because there are lots of libraries offering plug-ins for several systems and for ALSA (in case no server or abstraction library is there). Such libraries include SDL, GStreamer, lib-AO, etc... and are available on most distros.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
I don't know what QuickTime has to do with it but if you mean Qt then I'm afraid all that was a storm in a teacup that was made a big thing of by some fanboys after Linus had made it known that he believed that Gnome had no real functionality. It simply meant that the KDE 4.0 as shipped by Fedora was not usable for him, which isn't surprising since distros were actually told this and they just replaced 3.5.x regardless and then whinged.
Oh please, it is exceptionally poorly designed. GTK was chosen as a knee-jerk response to the whole KDE thing in the 90s to build Gnome on. To this day we still have brain damage like libegg and libsexy and where developers even copy and paste GTK code that they need liberally around their codebase if they want things like toolbars. The only reason there is a HIG is that things such as spacings cannot be inherited by applications. Leave a 12-pixel border between the edge of the window and the nearest controls?! The horizontal spacing between the buttons [on an alert] is 6 pixels?! Give me a fucking break. That's why we have component based programming and inheritance. If you give that to a Windows or OS X developer then he'll piss himself.
KDE bit the bullet when they looked at the proprietary competition and what they were doing in Vista, Windows 7 and OS X. It's a rocky road but it was necessary if anyone was even going to fart in the general direction of an open source desktop.
Why not? It happened for Gnome 2.x.
No. The protests against doing what KDE 4 has done have come about because it's like the elephant in the room - the developers know in the back of their minds that they need to do something if open source desktops and Gnome are to stay relevant when people look at Windows and OS X, but they don't want to do it because the infrastructure is so rotten that it will take them years to build it, years to build a desktop out of it and years to build any applications.
Is that most people who use computers are NOT going to be enthusiasts. They use computers because the computer is a tool. They have something they want done, maybe it is e-mail, maybe it is watching video, maybe it is playing games, maybe it is staring at hampsterdance.com all day, doesn't matter. They have something they wish to do and the computer is the tool to allow them to do it. Thus their concern is getting the variety of tool that allows them to do this with minimal fuss. They aren't interested in technical merits, they aren't interested in becoming "fans". They want the shit to work and get out of the way.
Normal users are not OS "enthusiasts" any more than normal people are hammer "enthusiasts". I really don't give a shit about hammers. I don't are how they are made, I don't care about their design, I don't care about their merits. What I care about is their ability to pound a nail in to what I want. So I'm going to get a hammer that does that well for me. In my case, it is a standard claw hammer, about 1 foot long. I'm not interested in technical arguments as to why I ought to like a sledge hammer better. Yes, there are things a sledge hammer can do mine can't. I don't give a shit, I don't do those things and a sledge hammer is rather heavy and unwieldy. I have the hammer I want, and that's all I want. I'm not an "enthusiast" I'm a user.
So for most people, this is how computers are. For technical people, sure the computer itself can be fun. The process of running the system can be as interesting as anything you might do with it. However technical people aren't most people. Most people just want to d various tasks with the computer, and they want to the computer to not cause them grief as they do said tasks.
If you want a better UI toolkit, write one yourself. Otherwise use wx or Qt. But it's OK, everyone knows you're just making lame excuses for not supporting Linux properly despite having enough resources for it easily (even the Mozilla Project can do it and it doesn't earn billions every year).
"I love my job, but I hate talking to people like you" (Freddie Mercury)
So corporations are complaining that the software that they get for free and use to make truck loads of money isnt exactly what they want.
Ive got an idea, WRITE YOUR OWN DAMNED SOFTWARE, or maybe participate constructively in the community. Dont just complain, do some work yourself on the same terms as the work you received.
"Did you ever expect a corporation to have a conscience, when it has no body to be kicked and no soul to be damned?" - Edward Thurlow
In that case, Linux is doomed. There's gotta be some way to compromise freedom and standardization.
Si vis pacem, para bellum
Bullshit.
That freedom and diversity is why Microsoft can't simply attack and destroy a single competing vendor the way they have so many others.
"I've got more toys than Teruhisa Kitahara."
Maybe Ballmer was right? It's all about developers, developers, developers, developers.
Every time a conversation about programming on Linux comes up, I try to follow it. But honestly, it's just easier programming on Windows machines. There are maybe 4 versions to worry about ME/2000/XP/Vista. And you can probably forget about ME/2000. Even if you don't, it's a few lines of difference (between them and XP, they're prerrt to identical to program for). And you can leave them in when you program for XP/Vista.
Meanwhile, if you use the best practices that MS recommended for XP back when they released it, there's no difference between XP/Vista programming (unless you're trying to extend windows explorer.)
It just works, and it's easy.
Your ad here. Ask me how!
Won't happen, because either some free software believer will "leak" the docs to some place like wikileaks, or you will see half the software developers scream in true RMS style "NDAs are the devil! Information wants to be free!" or some such rot. Most companies are NOT going to give their specs and docs to anyone outside the company-period-full stop. If that is what it takes to have a driver for Linux? Then you simply won't have drivers. Kinda like now.
What they WILL do is be quite happy to write you a binary driver if they know they can "write once use forever" like they can with Windows. The last all in one I picked up had a Win98 driver, as well as 2K,XP, and Vista. looking at the dates on the Win98 driver they are from 2001. Hell the XP drivers are from 2003. Can anybody here even imagine a device driver circa 2003 working without ANY need for tweaks, hacks, updating, or recompile in Linux?
And THAT right there is the problem in a nutshell. It isn't the big bad MSFT, who boned themselves real good with fucking up backwards compatibility in Vista, it isn't the OEMs like Asus who are dropping Linux, it ain't the mom & pop shops like me that would be happy to carry Linux boxes if it wasn't a support nightmare from hell. it is the fact that the margins on all those little devices that everybody seems to have sucks, and spending money constantly having to have developers tweak or recompile them for Linux isn't money well spent. If they only support Windows they can have developers only write four drivers and then put them on other projects while selling that device for years. With Linux everything from the kernel up is in a constant state of flux and things are getting broken pretty much constantly. Just go to the Ubuntu forums after a release and see how many "The update totally broke device Foo" posts there are.
So to me it seems pretty simple. The Linux users and developers need to get together and ask themselves a single question: do you WANT to have decent marketshare? If the answer is yes then you HAVE to support all those doodads being sold out of Best Buy, Walmart, Staples, etc. You can't write all those yourselves, it would be too costly. you NEED the hardware manufacturers to support your OS. And they will never do so until they can have a "write once, use forever" driver model like they enjoy on Windows. So get together and decide on a stable, backwards compatible undercarriage that anybody can write a binary to and be done with it. Do that and you'll have OEMs and mom & pop shops like mine selling Ubuntu boxes right next to the Windows ones. But without those manufacturers on your side you will never get any marketshare, and right now writing drivers for Linux is like trying to hit a dartboard with a live bumblebee. Is it any wonder why guys like Asus have stopped trying to sell Linux to home users?
ACs don't waste your time replying, your posts are never seen by me.
What I find kind of funny about the whole situation is that absolutely nobody is complaining about making software for Linux, except people who want to make money with their software.
Don't forget that for instance Fedora has thousands of very useful software packages in their repositories, ready to install with a quick 'yum install blah'.
Now comes around Adobe, Google and other bigshots and what do they do? Complain.
I still understand that it might be difficult for them, but I'm just saying.
8 of 13 people found this answer helpful. Did you?
That said, why do you Linux guys seem to hate standards so much, hmmm? I'm not talking to you specifically fooslacker, but Linux in general. I mean y'all got, what? Three different sound systems now? Would it really be so hard for all the major players to sit down and choose a basic standard, one that will hopefully be rock solid stable with minimal changes and a focus on backwards compatibility, so that writing drivers and programs for the entire Linux ecosystem would be easy and thus attract more companies?
Its comments exactly like that one that make Zealots. The stupidity of such a comment is hard to quantify and universally obvious to anyone who understands what a standard is and what microsoft have done to them. First of all to mix linux, gnome (or any X desktop) and distributions up into one comment that states lack of standards is ridiculous.
But lets look at what MS have done. Starting with TCP/IP, microsoft's answer? "we dont like tcp, here's netbuei and netbios" (they weren't the only ones doing it, but thankfully it failed). Then (closed) smb came next (despite several already open standards for network file systems), and thus everyone else is forced to reverse engineer it (not once, but several times because MS just change it at a whim due to lack of standards). Next Java, do I really have to explain how MS tried to screw java by breaking the one thing it was supposed to be (i.e. cross platform?). Then document formats - finally sun come out with an open standard for a document format, and do MS do, they produce OOXML (and on top of that, their own office product doesnt support it properly). Then to make sure everyones screwed, they produce an ODF plugin for 2007 that breaks everyones implementation. Then theres .NET - supposedly a competitor to java yet lacks the one thing it needs, cross-platform support. Sure, they opened the c# spec, but thats useless without the API being open.
Thats only a couple of examples, HTML, HTTP, MAPI. Kerberos, Active directory, the list of standards MS has polluted (and tried to break) is endless
Who gets screwed in all this? The linux desktop and server OS's out there struggling to build on REAL standards that already exist, and they get angry (anyone who understands the fights would think rightly so) because people say things like "well linux doesn't follow a standard because this thing over here works on windows and doesn't on linux". Well the truth is that linux has fought very very hard to follow the standards, then it has to fight again to reverse engineer broken implementations of the standard that mainly come from MS themselves.
Ultimately "linux" as you put it wears the blame and still it doesn't give up, it continues to reverse engineer and make its products compatible.
Of course when i say linux here it means people like Sun who wrote java and open office (and are forced to reverse engineer the MS document format and code OO to the same lack of standard)
Now lets talk about the desktop, so which desktop standard are you referring to here? The Microsoft standard? Exactly what standard is that? As far as I know the only "Desktop" standards that actually exist (i.e. documented ones) are X + gnome or KDE/Qt - these are documented standards. As for audio, well there is none (unless you mean the undocumented and randomly changed direct sound API from MS). That has been a bad problem on linux in reality since it was born and part of that is inability to produce drivers, then 2 interfaces were born. Now we also have pulse audio (which isnt a linux interface by the way).
So we now have a "culture" of linux desktop environments (lets just look at fedora, redhat and ubuntu), in one corner you have redhat (RHEL) which uses older and more stable/developed interfaces which they stick to between major versions. 5.x has kernel 2.6.18 (and always will) along with a specific version of everything else (gnome, kde, qt, etc), they are all static in version 5.x of RHEL. Fedora is the exact