Harsh Words From Google On Linux Development 948
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?"
Right (Score:5, Insightful)
'...is it time to concentrate on consolidation and standardisation in GNU/Linux in general, and the desktop in particular?'
Good luck.
It's been time for YEARS (Score:5, Insightful)
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.
Re:It's been time for YEARS (Score:5, Insightful)
Accept it, because the kind of standardized APIs that are needed are not going to happen with the attitudes that this community has.
1986
BYTE: Given that manufacturers haven't wanted to fund the project, who do you think will use the GNU system when it is done?
Stallman: I have no idea, but it is not an important question.
Steal an idea from elsewhere (Score:5, Interesting)
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.
Re:Steal an idea from elsewhere (Score:5, Informative)
Programming on Windows is easier? Seriously, I just can't let that go.
At work, we have a codebase that compiles on Sun, Linux, and SGI fine, and mostly compiles on that monstrosity known as Windows. I'm sure that most of our issues working with Windows stem from the fact that the system started its life on UNIX and was ported to Windows, but that's no excuse for some of the issues we face:
Re:It's been time for YEARS (Score:5, Interesting)
Linux is a server OS, only used on the desktop by enthusiasts.
I would hope that all desktop OS's are used by enthusiasts. People who run Ubuntu should do so because that's what they like. People who run Mac OS X should do so because that's what they like. People who run Windows should do so because that's what they like. If people are running an OS for some other reason, then we have problems...
Accept it, because the kind of standardized APIs that are needed are not going to happen with the attitudes that this community has.
Indeed. If we were to reject that attitude and simply standardize around a single way because it's best if everyone runs the same, we'd all run Windows. There's no logical argument that can be made for rejecting running Windows but advocating a standardized API for all Linux platforms. The argument for a standardized API is an argument against having multiple operating systems to begin with. Someone who thinks every Linux-based OS should have the same look, feel, toolkit, API (beyond the Linux kernel), etc. but accepts the notion that we shouldn't all just standardize around Windows is in a state of cognitive dissonance, holding logically imcompatible ideas to be simultaneously true. That's not so amazing as the fact that they've managed to maintain it for ten years...
Setting aside the logical contradictions of your point of view for the moment, and just out of curiosity, when you say "that are needed" -- needed for what? I'm unaware of any objective that an OS should have (keep my computer running, my multiple programs sharing resources effectively, my data safe, etc.) that would require other operating systems to run the same API as me. Why would it matter if my Debian desktop and your Fedora desktop are different? And why would it be more important and somehow more tragic that our two computers are different when it's not likewise tragic that my Debian desktop and my friend's Windows desktop are different? Why is one case of difference bad but the answer is not for all three of us to adopt the more popular standard, rather that for some reason two of us should and one should not?
Re:It's been time for YEARS (Score:5, Informative)
A standardised API doesn't mean that there can only be one operating system, it just means there's a generally accepted way of making the operating system do what you want without having to alter your code for every different platform.
Re:It's been time for YEARS (Score:5, Insightful)
Er... Why is that a problem again?
Why can't billions of people use computers and technology to improve their lives *without* making their OS choice a matter of philosophy or identity? If they choose for more pragmatic reasons (requirements, price/value, simplicity), why is that a 'problem'?
Most people have only a few things in their life that really matter to them to the point you can call them 'enthusiasts'.
Most people use stamps without collecting them, drive cars without obsessing over engine models, drink wine without knowing merlot from cabernet, enjoy music without playing any instruments, use electricity without having the least idea about their house wiring... There are enthusiasts for everything, but as a matter of practicality (and probably mental health) humans have to pick the few things on which they invest their time and energy.
Fortunately, most enthusiast communities are not so arrogant that they assume everyone must share their interests and obsessions - as some kind of political or religious choice. They're the better for it.
Those who demand their pet interests to be *important* to everyone else demonstrate not just arrogance, but a selfishness that is most likely self-defeating.
Technology has continuously improved the standards of living of billions of people - but the greatest values of each advancement are only reached when they are so omnipresent and require so little training they're taken for granted. Billions of lives are saved/extended when electricity is in every building, when every child is vaccinated, etc. Computers are not different.
As a geek, I would like more people to become tech enthusiasts and share the same interests. But I'd also hope we recognize, considering the richness of the human experience, most people will (and should) care a lot less about the OS on their laptop than about most things in their daily life.
Re:It's been time for YEARS (Score:4, Interesting)
I suppose this is feeding the trolls, but I'll bite...
The reason they called your on-board raid fake-raid, is because it is. It's just average, everyday run-of-the-mill software raid with a bios-based setup program and special Windows-only drivers. That's your real problem right there. The drivers are windows-only. Now, of course, Linux will use your on-board mirrored Windows partitions just fine (and, with a bit of coaxing, you might even get the mirroring part to work.). And Linux has it's own software raid that's just as good as your on-board "raid" (because it's practically the same thing). It comes with every modern distribution and works on every modern kernel.
If you really want dual-boot raid with Windows, bust out a higher-end version of Windows that can do actual Windows software raid, with the dynamic disks and all. Linux supports dynamic disks without any real fuss, mirroring, striping, raid-5 and everything else. Windows versions include Vista Ultimate, and any version with 2k in it.
Re:It's been time for YEARS (Score:5, Informative)
Now you're clearly trolling/FUDing. There are plenty of proprietary apps for Linux, either as drivers (Nvidia) or as userland software (mostly for servers), and if you are merely using FLOSS there are hardly any restrictions at all. When was the last time you saw a EULA when you installed a FLOSS application?
The reason companies don't target desktop Linux is because it's only a tiny fraction of the market. The GPL has nothing to do with it. It's business, plain and simple.
Re:It's been time for YEARS (Score:4, Insightful)
The GPL is only viral in the sense that microsoft is viral. If I use MS source code, I am required to release my code to Microsoft under their control and copyright, and am almost certainly an employee.
The GPL grants you additional freedoms on top of this. Viral is just a criticism whiny people use because they want something shiny for free.
If authors of free software want to complain about viral GPL, I can see something of their criticism, but companies are just playing smoke, mirrors, and hypocrite.
You want to talk about proliferation of incompatible free software licenses that's fair, but whining that requiring other people to give back what you used is no sillier or more restrictive than charging $10/unit for others to use your code.
Re:It's been time for YEARS (Score:4, Insightful)
The community can't get it's shit together enough to do it.
Well, that's what you get for choosing an anarchic project management style. It's like the FOSS community is just waking up to the fact that it's hard to do something coherent when anyone only does what they want. The forces of the people involved put together are mighty, and produce great tools, but the Linux crowd really is just a mob. They can do a lot together, but they're a mob, not an army.
To further the mob/army analogy, they want to invade the empire of Microsoft. It can't happen, a mob can't do that. Apple has a better shot at it, because of their wise dictator and well-trained army.
And what you touched on (Score:5, Insightful)
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.
Re:It's been time for YEARS (Score:5, Informative)
Yes, when distributing binaries one must target not only a specific distribution, but a specific release and a specific CPU architecture as well.
This is not true. If you make a binary installer with your own link libraries for all of the dependencies you need, you can successfully make a closed-source release which works on just about any kernel since 2.6 with the correct architecture. The Linux userspace ABI is very stable.
If you want to use open-source libraries that would make such a binary blob legally difficult, that's your choice.
Re:It's been time for YEARS (Score:5, Informative)
Somebody didn't RTFA (I know who expects you to, really). I will distill it down for you:
Chrome on Windows: Hacked to be funky and unique, non standard libraries for rendering, etc.
Chrome for Mac: Easy to replicate windows experience using standard OSX API's.
Chrome on Linux: Clusterfuck, standard API's are not standard, and not good enough. Hacks will not be cross platform, difficulties everywhere.
Basically the question was posed: Do we even bother to try and replicate the windows chrome experience? Or simply put our fast little engine inside a totally different visual experience?
Choice (Score:5, Insightful)
Re:Choice (Score:5, Insightful)
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.
Sounds like the strength is also its weakness.
The criticism made is a fair one, and it is only when there are vocal and influential enough developers do people actually stop to pay attention. I am sure there will be many Linux developers who will go on the defensive, but until you are the number one choice for the desktop it is worth listening to what the critics say. Even when you are number on the desktop you should still listen to the critics if you want to stay there. Just look at Windows as an example.
Re:Choice (Score:4, Insightful)
Why would you care that only 1% of the other computer users are running Linux too? Well, see, I'm a commercial programmer, and I made a program originally for Windows, and planned to port it to both Mac OS and Linux. While I got over 100 e-mails asking me for the Mac version, I've had 0 for the Linux version.
So I'm not going to port it to Linux, I have no reason to. Apparently the very few Linux users out there are content enough with running my program in Wine... Good for you if you're fine with that.
Re: (Score:3, Insightful)
PC vendors are missing a gold opportunity here. They could adopt a GNU/Linux distribution and make it attractive to the masses, just like Apple did with Nextstep. That would really challenge Microsoft and Apple, but require a dedicated software development department, something that many of them don't know how to do or don't want to take the risk at.
Even though it's disappointing, It's not unexpected. They only know how to brand a PC and sell it.
Re:Choice (Score:4, Insightful)
PC vendors are missing a gold opportunity here. They could adopt a GNU/Linux distribution and make it attractive to the masses,
And that benefits them... how?
Yes, you're correct, they *could* do that. (If you're just looking for confirmation.) But why would they? What's the business case for it?
Re:Choice (Score:4, Informative)
There simply is no benefit because PCs without Windows on them won't sell very well. Most people who buy computers barely know where to click and are totally confused by new operating systems. All they know is Windows, so that is what they will buy. It's very hard to get past that.
Re:Choice (Score:4, Insightful)
Welcome to one of the issues with the service and support model - it needs to be profitable almost from day one, because tomorrow the user might no longer want service and support.
So one of the PC vendors get behind Linux heavily, probably burning a lot of cash in the process. Let's just assume that it's a stunning success, though I have my doubts on that too. What's going to happen? Well all the other PC makers will see it too and also put Linux on their computers. Ok maybe the first one out will have a "brand name" Linux but you know as well as I do that a Gnome desktop or a KDE desktop looks very much the same anyway - if you've first gotten people to use all the Linux apps they'll have no issue using a different distro as long as it too is preinstalled and all the drivers work. Not to mention that most of the rebranded Linuxes have been terrible and most ask "Why not just put plain Ubuntu on it?", but I'm assuming this one would be different. So they're all again selling the same product but the one who broke new ground got very little advantage, little price premium opportunity and thus no return on investment.
Face it, "compete by quality" would in reality have to translate to "educate the masses" to sell Linux. Can you imagine how many zillion phone calls they'd have to take with "I used to do X on Windows, but this 'Linux' you've sold me doesn't work" to really sell Linux? There's a reason the warnings are basicly screaming at you "This is not Windows. This is not a normal computer. If you don't know what Linux is, you don't want this. Are you REALLY, REALLY sure you want to buy a Linux computer?" It's not because they're pro-Microsoft. It's because most people have no idea of the relationship between hardware and OS. To the degree they know anything, they know that there are special Mac boxes, which are different from "normal" boxes - generally while plastic design stuff. If Apple sold a Mac that looked like a PC, people would ask why they can't run Windows apps on it. Seriously. People's understanding of computers is that shallow.
Are there any downsides to choice in this case? (Score:3, Insightful)
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
Re:Are there any downsides to choice in this case? (Score:5, Insightful)
The problem with having several GUI toolkits is that then you fragment the user experience. I use GIMP on OS X, and having X11 running makes it a very awkward, sometimes annoying experience - not only do I have to make sure I'm properly in GIMP rather than X11, but all the keys change command button to control button depending on which one you're in. It's really pretty awful, and I expect non-techy users to find it more confusing than I do.
Consistency is important to a user experience. Learning how to complete tasks in an OS is very much like a language skill. When you force people to learn different sets of hot keys, different ways of achieving the same task, then you're burdening them with another language. The only good reason to break away from having a single HIG standard, as far as from the user's perspective, is if you're writing a really novel application where you're trying to provoke a different mindset; writing yet another average GUI toolkit doesn't come close to qualifying.
Re:Are there any downsides to choice in this case? (Score:4, Informative)
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.
I don't know if it's just me that keeps running into these wtfs, but if all of them worked from the user POV then I'd agree with you. Reality is that sometimes pulseaudio works, sometimes it works if I redirect it to ALSA, sometimes for no good reason I have to pick OSS output - that on modern Linuxes maps to ALSA, but for some reason that works and ALSA doesn't. Sometimes if I'm running multiple sound-using apps I get complaints that it can't open the audio device and so I have to close something else, even though everything should support mixers since many years ago.
It usually runs decent if you run say only KDE apps, probably the same for Gnome - but if you start mixing kde and gnome apps, virtualbox, wine and closed source then my experience is really bad. Still, it looks like a decent toolchain is emerging:
Phonon - high-level cross-platform API - "Play me this MP3 file"
GStreamer - plugin layer for all the good/bad/ugly formats, not the one true decoder - "I took the MP3 and decoded it, here's the sound"
PulseAudio - sound (re)direction to speakers, headphones, network+++ - "Preferences say this sound should go on the headphones"
ALSA - actually deal with the hardware and reveal playback/recording capability - "Headphones - play this"
It's not like all these pieces of the audio system does the same thing, when they're trying to show that it's so very confusing they overcomplicate a bit. There's a fairly one-directional workflow from the application towards the hardware, and if you displayed them as a layer diagram (with some blocks possibly covering several layers) then it wouldn't look nearly as bad.
Re:Are there any downsides to choice in this case? (Score:4, Insightful)
The reason we have so many choices is because....the users and developers want choices. OSS choices exist almost by definition because people are choosing them. To say, "your choice sucks, choose a better one" is ridiculous. Google is showing off the corporate mentality here. If you're not paying the thousands of developers of the toolchains for the major (and minor!) distributions, you don't get to complain about what they're producing. If you want standardization, you don't bitch about it - you make your platform of choice far superior to the other options.
There are choices because they all have something to offer to someone.
Re:Are there any downsides to choice in this case? (Score:4, Informative)
wxWidgets is mainly just a wrapper around GTK.
You use Wx when you specifically want your program to "look native" (without having to emulate it) across all three Win32/GTK/Mac platforms.
Yes, that means it has the idiosyncrasies of all three platform. And if your open source application doesn't have a development team large enough to deal with three separate applications sharing backend components, then it's a fairly cheap way to achieve both platform support and native look and feel.
I've used it a couple of times for exactly that purpose.
But if you're Google, and you can afford the programmers to support three forks with common components, then you don't pick Wx. You go straight to lower layer source and use GTK.
Yes (Score:3, Insightful)
Re: (Score:3, Insightful)
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.
Re:Yes (Score:5, Interesting)
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.
Re:Yes (Score:5, Informative)
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.
Re:Asinine. (Score:5, Insightful)
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.
Re:Why does Linux hate compatibility? (Score:5, Insightful)
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.
Use Qt.... (Score:4, Insightful)
Why not just use Qt instead? It's LGPL....why people still using GTK?
Re:Use Qt.... (Score:5, Interesting)
True! And since it now comes with QGtkStyle, which uses GTK+ engines and widgets to render stuff, you can use it and have a nice looking app at the same time.
Re:Use Qt.... (Score:4, Interesting)
Qt has better documentation [qtsoftware.com] than GTK+. [gtk.org]
As an example, you'd be hard pressed to find a widget in the QT documentation that is not documented. GTK+ has rough around the edges documentation for it's Canvas.
I know that RedHat is putting a lot of weight behind Java technology as one of the first and foremost distros for the OpenJDK. I can attest that the QT Java bindings [trolltech.com] are way better than the GNOME bindings. [sourceforge.net] It would make sense for RedHat to toss weight behind QT. Google already uses QT for Google Earth. [google.com] And KHTML is, sorta, WebKit which is Chrome. It all makes more sense to put our weight in QT.
I've got nothing but love for the GTK+ people. Also, don't kill QT just because of the KDE 4.0 issue. They've made good on their latest desktop, but don't knock a good Toolkit because of the DE.
My two cents.
Re:Use Qt.... (Score:5, Insightful)
Re:Use Qt.... (Score:4, Informative)
No his problem is that QT has an execution loop which incompatible with the Chrome engine. What makes QT so cool for event driven programming is an event handler that can't be easily changed to match the event handler in Chrome.
Re:Use Qt.... (Score:5, Informative)
No his problem is that QT has an execution loop which incompatible with the Chrome engine. What makes QT so cool for event driven programming is an event handler that can't be easily changed to match the event handler in Chrome.
Qt actually runs the glib event loop these days. You can easily verify this by kill -ABRT'ing a kde app and checking the core dump; this just in from kate:
#8 0xb5df874b in IA__g_poll (fds=0x9c225c8, nfds=6, timeout=25243) at /build/buildd/glib2.0-2.20.1/glib/gpoll.c:127 /build/buildd/glib2.0-2.20.1/glib/gmain.c:2761 /build/buildd/glib2.0-2.20.1/glib/gmain.c:2511
#9 0xb5deaf82 in g_main_context_iterate (context=0x9778e90, block=1, dispatch=1, self=0x9776f40) at
#10 0xb5deb268 in IA__g_main_context_iteration (context=0x9778e90, may_block=1) at
#11 0xb6a5f438 in QEventDispatcherGlib::processEvents (this=0x9763c68, flags={i = -1074473992}) at kernel/qeventdispatcher_glib.cpp:323
I don't see anything wrong (Score:5, Insightful)
I don't much give a damn about Adobe being skittish, though. Are they paying Linux core developers?
Re:I don't see anything wrong (Score:4, Interesting)
Chrome is really about as simplistic as UIs get (apart from the web pages themselves). There aren't checkboxes or radio buttons on the main interface; you get tabs, a toolbar/address bar and that's it. To go further, the rendering in Chrome happens in a separate process (not even tied to the GUI) which is RPC'd back to the main process, which indicates that it's not really tied to the GUI toolkit either.
Is a standardized set of human interface guidelines really going to help them? Or are they just making an excuse for not servicing a small but vocal market? The truth is, if the Chrome developers wanted to worry about standardized interfaces, they would do the work to reproduce what they have on Windows. They didn't care about the standards on Windows (tabs on the title bar), so why would they care about them on Linux?
While I'm all for creating a common interface "language" for users to understand, I don't think a "linux" specific one is going to be helpful. Making it easy to move from using Chrome on Windows to using Chrome on Linux is much more helpful than saying "hey, look, you can use Chrome on Linux if you know how we do things around here". Making it so someone that uses Windows can understand the linux visual "language" is important, in the same way that we want people to understand what we say when we travel. Otherwise moving to Linux with it's own HIG is going to be like moving from England to China.
To "Anonymous Coward" (Score:4, Informative)
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.
Re:To "Anonymous Coward" (Score:5, Informative)
My wishes:
While I don't mind gtk, I am really hoping gnome3 brings some good changes to it. One of the big things I wish for is more free functionally for base widgets. Things like spell checking for more elements, auto-connecting default actions for cut-copy-paste menues, user toolbar editing, etc. It's pure busy work.
My what the hells
Why do some programs only have a quit menu and some only have a close (epiphany)? Why does the quit quick-key not work if the focus is in a text-view? While I can do ctrl-q to quit firefox, I have to close all the documents in gedit to get ctrl-q to work. What is wrong with having both close and quit for most apps?
My what is going to happen?
I know they are working on a app driven interface over a window driven one (ala Mac OS X). You can tell just by looking at some of the preferences hidden in gconf, recent changes in gimp, and many others. What does this mean to the gtk developers and the future of their applications?
Yes (Score:3, Interesting)
Without some sort of standards how would a helpdesk worker even know where the "start button" is on a caller's "Linux Desktop"? Or what it even looks like, or if it's even there?
Remember the helpdesk worker might not be working for the same company as the user. For example: if Mr XYZ goes to a hotel and has problems with "hotel internet", they might be calling the "hotel internet helpdesk". Same for other stuff e.g. bank and financial sites.
BTW Microsoft has created a similar problem for themselves by changing things immensely with Vista (and Office 2007). Lucky for them, they're in a different market position but even they are having problems with market adoption, so go figure.
apple (Score:3, Funny)
Should've started on the osx version instead!
*impatient*
There's nothing wrong (Score:4, Interesting)
Linux's greatest strength = greatest weakness (Score:5, Insightful)
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.
Re:Linux's greatest strength = greatest weakness (Score:4, Interesting)
Application developers shouldn't be targeting desktops. They should be working with the distribution system. So in other words helping: RedHat, Mandriva, Debian... bring out their version of Chrome and let them distribute the packages.
That's the big problem, commercial app developers want to bypass the distributions without understanding that is the natural point of contact.
Article by Slashdot completely distorts reality (Score:5, Informative)
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.
It's open source, google. Fork it. (Score:3, Insightful)
I'd like to see a Goo/Linux distro. In my experience as a user of several of their products, google really does a good job with user interfaces. I bet if they put some effort into a google desktop environment, it'd be pretty darn good.
It could be related to Android, or not, whatever makes sense.
Qt (Score:5, Interesting)
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.
Re:Qt (Score:4, Informative)
> Chrome should have been built on top of Qt from day 1.
RTFA.
Re:Qt (Score:4, Insightful)
I've read the BS answer, and it is BS.
First off, Qt apps look and operate just fine on Mac and Windows. They don't jump out as looking "foreign" to the platform, where as Chrome on Windows does look extremely foreign in its UI design. This isn't an issue here.
Secondly, Qt provides VASTLY more functionality than GTK, and wouldn't limit what Chrome could do on Windows or Linux. Chrome didn't choose seperate platform codebases to better enable those platforms. The Chrome devs admitted they wrote a very Windows-centric app because they didn't know anything about Linux and coded how they knew how to with what they were familiar with. Again, this reasoning is completely BS.
Lastly, the advantages of cross-platform development not only means no initial time to fork, but it means fewer bugs, less complexity, and the entire life of the project with have a much smaller codebase to manage. Ignoring that major advantage is foolish at best.
Then when you consider how well Qt and Webkit are natively bound, and how well Qt deals with multiple processes and multithreading, it was just plain dumb to not build Chrome on Qt from day 1.
Re:Qt (Score:4, Insightful)
First off, Qt apps look and operate just fine on Mac and Windows.
No.
Better than GTK+, definitely. Not "just fine." Not even good. Especially on Mac, where they're extremely weird in many fundamental ways.
Typically, people saying things like this about cross-platform frameworks really have little or no experience designing GUI apps-- they don't have the eye for detail that that job requires, and they literally don't see anything wrong with the QT apps. But find an advanced Mac user, show them two UIs and tell them to pick-out the QT one, they'll get it 100% of the time.
Re:Qt (Score:5, Insightful)
A Qt browser on Windows looks just as native as Firefox, or Opera, or Chrome. Note, every one of those browsers uses a non-standard UI. Qt provides styles to mimic native widgets and can look perfectly native. Chrome wasn't even designed to look native. They are blowing smoke to obfuscate the reality of the situation.
Chrome wouldn't have looked one ounce more "foreign" because of Qt. It looks foreign because they designed it foreign.
Re:Qt (Score:5, Insightful)
I am a Chromium developer, and if you don't think Qt apps "speak with a foreign accent", especially on Mac, you don't pay close enough attention. It's not an immediate appearance difference, it's the way that subtle details are wrong. By contrast, Chromium appears _very_ different on Windows on the surface, but we go to great lengths to get small details right. Big differences can be accommodated. Small differences drive you crazy.
Also, most of us were Linux developers, not Windows developers, before writing Chromium, so again you are asserting things that are completely wrong.
and this is different from other platforms... how? (Score:5, Insightful)
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.
RTFA (Score:5, Informative)
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.
GUI standard is a myth. (Score:5, Insightful)
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.
Christ, everybody just shut up about look and feel (Score:5, Insightful)
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!
hey Google (Score:4, Interesting)
Corporate freeloaders (Score:4, Insightful)
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
Re: (Score:3, Funny)
Linux has GUI toolkits.....loads of them!
Re:Um.... (Score:5, Insightful)
Re: (Score:3, Interesting)
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.
Re:Um.... (Score:4, Insightful)
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?)
Re:Um.... (Score:5, Insightful)
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.
Comment removed (Score:5, Insightful)
Re:Um.... (Score:5, Insightful)
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.
Re:Um.... (Score:5, Insightful)
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.
Re:Um.... (Score:5, Insightful)
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.
Re:Um.... (Score:5, Interesting)
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.
ALSA often exclusively locked. (Score:4, Interesting)
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.
Re:Um.... (Score:5, Informative)
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.
Comment removed (Score:4, Informative)
Re: (Score:3, Funny)
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 700 or so distros can't agree.
Fixed that for you.
Re:Um.... (Score:5, Funny)
Can you please submit the patch upstream so we don't all have to fix it ourselves on our own copies. Thanks.
RTFA, they did (Score:5, Informative)
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.
Re:RTFA, they did (Score:5, Insightful)
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.
Like merging the window title with the tab bar? Why do they want a consistent HIG if they break it the first chance they get?
Re:RTFA, they did (Score:4, Interesting)
Seriously, what's even remotely consistent in windows' chrome in relation to windows' theme and interface rules? I think google is bullshitting with this one.
Re:RTFA, they did (Score:5, Insightful)
Consistency in any Windows applications is hard to come by. Running MS Office 2007 or Windows Live Messenger 2009 (and several earlier versions) in Windows XP will show you that. Yes, I realise they were made to look like Vista and 7 and fit in with Vista and 7's interfaces, but that in itself is a terrible crime of design! If they're made to look like Vista and 7, that means they probably aren't using the same code for their appearance. Big waste of resources if you add up every program that ignores the system theme and does it's own thing.
Re:Um.... (Score:4, Insightful)
Re:Um.... (Score:5, Insightful)
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.
Re:Um.... (Score:5, Insightful)
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.
Re: (Score:3, Insightful)
IMO QT is much better but who cares, its not like if they used the "wrong one" nobody would have been able to use it, qt comes with a gtk theme and qt-gtk-engine (or some such app), im typing this from firefox (gtk) on kde4 (qt). webkit already works well with both, so its just the "chrome" of chrome that needs to be tied to a specific one anyway.
Re:Um.... (Score:5, Interesting)
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.
Re:Um.... (Score:5, Interesting)
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.
Re:Um.... (Score:5, Interesting)
Re:Um.... (Score:4, Informative)
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.
Re: (Score:3, Insightful)
Re:No Link to Actual Content (Score:5, Informative)
Re:No Link to Actual Content (Score:5, Funny)
"Alternatively, you could have binged it."
Yeah, if I wanted a snarky answer. http://www.eternaldusk.com/images/screenshots/chandlerbing.png [eternaldusk.com]
Re: (Score:3, Informative)
Taking two seconds to skim the article you can find this link to the actual discussion board thread [google.com].
Re: (Score:3, Insightful)
I don't think it's for the lack of trying, it's kind of like unifying the world governments, in some ways good, and some ways bad. Everyone has their own preferences and agendas, getting them to unify on anything isn't going to work. It hasn't worked well in the commercial UNIX world, and it looks like it's not going to work for the FOSS UNIX world.
Re: (Score:3, Insightful)
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
Re:Yes! (Score:5, Informative)
If only the Linux Standard Base existed! Oh, wait, it does!
http://www.linuxfoundation.org/collaborate/workgroups/lsb [linuxfoundation.org]
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.
Re:Yes. (Score:5, Insightful)
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.
Re:Yes. (Score:4, Interesting)
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.
Re:World of goo anyone? (Score:5, Interesting)
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.
Re:it's why Windows took over in the first place (Score:4, Informative)
... that means binary compatibility must stop being broken from OS update to OS update.
It's simply the arrogance of Linux developers that have crippled Linux adoption.
IMHO, this is the biggest barrier that keeps commercial development out of Linux. Basically, the Linux philosophy assumes that all applications are open source, so it doesn't matter if the ABI changes with every point release of the kernel, since the distros can just recompile all their binaries when packaging. This philosophy is incompatible with the commercial software method of distributing apps as binary blobs.