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?"
Seriously Google how hard can it be? Just use GTK, its light, useful and even a weekend coder can use it.
Taxation is legalized theft, no more, no less.
'...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.
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.
Well it was a few years ago. Hope ubuntu has enough weight it can set standards.
Where's the link to this developer's comments? Would be nice to read all of what he has to say rather than just what you want us to read.
Joshua Purcell
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?
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?
How is that even a problem if there web engine works then make it for several ui toolkits or just pick one. All the work is done it would just be a matter of how its shown. Id rather have something that possibly changes the way its displayed in the future than have nothing and sit around bitching.
Yes!
(Seriously, linux needs a standard base to work off. The current mess is completely untenable)
This is how the loudness war is killing music.
Well, I'm sorta serious... in the original thread, Ben mentions that the Windows APIs are "kinda impoverished" and they wound up doing a lot of work that the higher-level widget toolkits (like GTK+, Qt, MFC or .NET) would do. Maybe they should have just used Xlib/Xt instead and duplicated everything they did for Windows, especially if they want a completely consistent cross-platform look and feel, BUT don't want to be hamstrung by any single UI library's way of doing things.
"... I declare our city to be a free and independent state to be named Tri-Insula!" --Fernando Wood, Mayor of NYC 1861
Yes, but I doubt it's going to happen.
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.
This reminds me of something that I read a while ago, when world of goo was released for linux, the developers had some trouble as well, but that time the culprit was pulse audio.
Should've started on the osx version instead!
*impatient*
Maybe that's why there are so few "I can to everything" applications and so many "I can just do this one thing". Especially when it comes to creative work with multi-media.
Say NO to unpaid Internships!
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.
Really?
and I thought Google Chrome was going out of its way to feel as foreign as possible on windows...
If Linux wants to have substantial even ubiquitous marketshare it is going to have to mature. This is going to require the majority of backend developers choosing one API/toolkit/etc to add features to, test for bugs and release on a predictable schedule. Yes, Gnome or KDE may whither or die, too bad. If we do not these steps now, Linux will continue receiving ports of projects developed on other platforms and not real development time.
If you build it they will come.
An Education is the Font of All Liberty
And drop some legacy systems (X comes to mind) along the way.
Fight hunger. Filet a politician and send him to a 3rd world country of your choice.
The real problem is on Windows they are targeting a single operating system, with OSX they are also targeting a single OS, with "Linux" they are targeting a whole range of operating systems, of course there is gonna be a lot of diversity and no "standard". They should be targeting desktop enivironments, not kernels. If Google said we are going to target the GNOME desktop then GTK+ is the obvious choice, same with KDE and QT. Anyway, the chrome core is open source, what does it matter? Choose one toolkit and if people aren't happy they will develop a new UI for their platform.
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.
On another point nearby somebody else, will mention that an OS is nothing without proper applications.
And somebody else in an attempt to consolidate ideas from both sides will mention that if everybody do their jobs properly that there would be no problem.
Unfortunately somebody will pick from there and people will start compare OS X and Linux. We all know the result of this particular argument...
If it is a bad day some poor M$ programmer/user/whatever will try to tell something, probably irrelevant, about M$ craps sold as OS, and everybody will smash poor guy, even before reading his full post. Strangely, they would be right; even if that post was something interesting to read, M$ OSs suckiness factor is above the strongest Black Holes...
If it is really a bad day we also see BSD kernel mentioned...
Well another day in Slahsdot...
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.
Linux does not exist for Google's pleasure and ease.
They seem to be taking arrogance lessons from Microsoft.
Probably the result of all those ex-microsofties they hire.
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.
Or they could have made the SLOWEST browser in java :P
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).
On Widows XP, Chrome makes an extensive use of the standard Windows XP GUI toolkit and its associated HIG. Yeah, right.
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.
You see? You see? Your stupid minds! Stupid! Stupid!
It seems they didn't design it to be portable in the first place and now it's a bit harder than it should have been.
All their other complaints would have been solved by using Qt (including good-but-not-perfect Gnome integration). Again, their mistake. Nobody uses GTK if they don't have to.
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.
I've been using Kubuntu since December 2006, and it's been my opinion this whole time that the reason Linux isn't catching on is the lack of standards. There are simply too many choices. Granted, choice is good sometimes, but Linux just has too much. It gets confusing. For a new user who doesn't know Linux, simply choosing a distro is overwhelming. That doesn't make Linux very open or friendly to the average person. Not to mention the mess with installing programs. If I want a program that isn't in my repositories, I have to go to the site and hope they have a .deb package that's for my distro, which isn't always the case. At which point I either have to learn how to install from source, attempt to convert an RPM (which isn't always provided, either), or give up and find an alternative.
Every Windows OS has one GUI and one installer/executable format that every Windows program uses. Same with Mac. But Linux gives you at least three GUIs and four or more installer formats, and it's up to you to figure out which one suits you best.
I like Linux. But if it's going to become a serious alternative to Windows or Mac, it needs unified standards. Especially in the desktop environment and package manager. But I just don't see that happening.
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.
Let's not forget about Kubuntu. I have just tried it and looks impressive. I already have around 100 Ubuntu PCs deployed at work. I'm seriously thinking of Kubuntu as a replacement.
The best way to predict the future is to invent it
Just use Qt, it is LGPL and works beautifully.
Is that there's so many to choose from.
Help stamp out iliturcy.
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.
Should have used Qt instead of GTK for Google Chrome. Just sayin'... :) somecanuckchick
somecanuckchick dot com
If Google with all it's resources want's to help standardize the FOSS tools then they should invest in making whatever tools they have issues with to make them the best. It seems painfully obvious to me because if any given tool in the FOSS arena works best most distos will use that one.
That will make the big tools of importance to Google, and others, 'standardized' in effect. There still would be obscure distros or people who might use forked and or alternative versions of major parts of the OS but that would be fine too.
Really, I know what I'm doing...Ohhhh, look at the shiny buttons!
First they create a browser that works with their applications. What's next? An operating system where they can run their browser on?
They're two very different things. One is the open source PART of the chrome browser, the other is a browser binary, built in part on the Chromium source, that reports usage information back to Google, one subset of this being non-optional. Please don't get these two confused, no matter how much clueless reporting there is on the relationship between the two. The latter is, in my opinion, a privacy leakage too far.
Resistance is futile. Reactance buggers it up.
Wait, let me get this straight. Google's complaint was that the presence of differing Linux environments makes it hard to reach customers on Linux. And your solution is for them to make their *own* Linux environment? And this gets modded Insightful? Only on Slashdot.
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.
Chrome/Chromium is OSS, right? Can't someone else do what Google should have done and make a Qt port?
http://blindscribblings.com - Tasty pop-culture in conceptual fashion.
Agreed agreed agreed.
Please let us standardise!
It's the best OS in my opinion, this needs to be sorted out.
Linux Standard Base (LSB)
Since no one so far cared to provide a link to the actual Chromium Linux builds, here it is:
http://build.chromium.org/buildbot/snapshots/chromium-rel-linux/
google apps are on the web, why not build a nice javascript gui ? oh wait...
Sincerly, it seems I have been in a time machine for all these years. ./'tter. Some 8-9 years ago. We had lots of FUD, Flood and Flame around here.
Quite long ago I was an active
And you know what is the most strinkgly thing I see now. Entered time machine. BRRRRRRR. Zero... I'm exactly in the same place at the very same time I left.
Back then, there were already tons of people claiming the Hell and the Tartarus for the way Linux is built. Well, apart of remarking that Linux is JUST a kernel, let me mention a few things. Just as 9 years ago.
1. GTK, KDE and alikes are probably not ideal code. But they are two standards well fixed and working on Linux environment. Don't like them, push for YOUR standard. Don't like anything at all, gather your team and MAKE your standard. I AM a KDE fan, I LIKE KDE and have been using it since it was a raw alpha stuff. Now my friends at one work, where I was the all-power BOfH LOVED GTK/Gnome and could not see KDE by 2 thousand miles. And that's what is GREAT on Linux - there is a CHOICE!
2. I use KDE on most of my desktops. But on my Eee PC I use Enlightenment as it is much more economic and has all the resources I need there. I have also a Zaurus (Linux, of course) and a server without graphical BLOAT on it. I also have a router with Linux on it. Now., are you telling me that all this hardware will work perfectly under a "standard"? Aren't you telling me that if I will have ONE desktop, then every dumb programmer will demand that the graphic system shall be EVERYWHERE? Look, I know what programmers are and how many of them think, specially the IDE crowd. If this thing goes this way, I am pretty sure that we end in a all-embedded, full-featured, completely geekish MONOLITH. And then, problems will not be only compatibility. It will be price... And probably my Zaurus will have a few kilos more... Besides, what will be the difference from Windows?
3. Frankly, only a dodo doesn't know that problems exist on the development of many libraries. But, what is a community for? People this stuff works and it will work while there is a community. It is not just a question of volunteerism but self-discipline. While I have been pretty inactive for these last years, still, when something was real wrong, I would knock the bugtrackers and developers. And without this, there is NO Linux. There is a product. Want to use it? Great, consume it. But then, don't blame for the bloat, monolitics and managers believing they are masters of the Universe. If you want to turn Linux systems into pure consumer products, you will have to be bound into what the seller thinks is best for you, not the contrary. You have only two choices - you either accept it or not. Considering what happened in the past, with IBM, Apple and Microsoft, I believe that such environment on Linux will be pretty damaging. And, frankly, it makes me wonder why the whinning is coming from Google.
People, don't give your freedoms. I know it is quite spicy for me to say this, I am in no way an american patriot, but the America's Founding Fathers had some true words about "giving up Freedom".
Firefox doesn't use native widgets. Goodger was formerly lead dev on Firefox. How can he complain about lack of standards on Linux when his track record is not to follow them.
And then of course there is Chrome's installer which does per user installations of program files into the user's local profile. Just what standard does that follow?
And yet Debian Gtk chose to recently arbitrarily rename the glib package, breaking binary compatibility. Why? Who knows? Will they ever fix it? Who knows?
Why does this Linux community have such a deep and abiding hatred of backwards compatibility? Library versions, device drivers, audio systems, hot-plugging, device naming, anything even remotely related to multimedia. This list goes on and on.
Until the Linux community decides to settle on some standards, it will never be ready for the end-user desktop.
GNOME has human interface guidelines and has had them since 1.0. If Ben Goodger is bitching about GTK+/GNOME not having consistent UI guidelines, it's because it's not consistent with whatever his vision is. In my opinion, GNOME is a heck of a lot more consistent than MacOSX's Steve-Jobs-whim-of-the-day, and-- let's not even get started on the Windows UI fustercluck. Of course, if he's talking about KDE... well, OK. KDE's interface is... odd.
I have an old GTK book somewhere that says that the developers based their HIG on the original Macintosh HIG (that the MacOS now no longer follows), which was actually based on user-feedback and also based in part on the Xerox Star. That's a pretty long lineage when it comes to GUI.
The complaint about Mozilla having a functionless 511MB executable after switching to GTK+ has nothing to do with GTK+. GTK+ is not exactly lightweight, but it ain't exactly a bloated beast either.
Complaints about audio are well-founded, though. Audio in Linux still sucks.
And now it's time for Google to embrace the future..
..and release a Windows 2000 compatible version!
..I kid. The real question is when will this come out of alpha? :-P
All the choice inherent in Linux -- meaning the choice for developers to go their own way -- increases the difficulty of achieving the level of standardization that allows any software platform to play well with others.
-- Slashdot: When Public Access TV Says "No"
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.
these are the guys who were trying to make a portable browser, so they used all the windows apis, and then they went "now we just port it to the other platforms.. no big deal, you just have to change this "compilor" thingy and press the "build" button again, right?"
of course they'll have trouble with a new platform, they don't know what they're doing.
--
Stay tuned for some shock and awe coming right up after this messages!
Yeah, I'd love to see a Google UI, too. I can't wait for context-sensitive ads about shirt buttons when I'm trying to click a button :^P
To all of these people who are bitching about the UI in Linux-- are you actually using Linux? Maybe I'm an old-timer, but Ubuntu 9.04 looks a lot nicer to me than my Windows box at work. The MacOS is pretty slick, but I wouldn't go so far as to say it is "consistent" or "intuitive". And the Expose pretty much blows compared to your bog-standard workspace switchers on Linux.
Google CEO: "Do no Evil"
someLinuxDev: "If you wont, we will, and blame it all on you"
Politics is Treachery, Religion is Brainwashing
Three excellent paragraphs.
Apparently, the crappy dev team of Chrome strike back. Mac is still waiting (oh well, not that one does not sleep at night) a port. And linux does not seem to live much better. Yet another masterpiece...
As someone working with Android, let me just remind you that Android has its own libc and its own UI stuff.
Persumably this is Ben speaking on his own and not as the Chrome team. Otherwise perhaps they should go talk with their Android team first :)
There are basically 3 toolkits that come up for Linux GUI development:
- GTK+
- QT
- wxWidgets
and all have their own little flaws. GTK is nice and mature, but not overly flexible. QT is on the way of maturing, but it is still quite far from complete or usable (e.g. it takes some settings of my GNOME desktop and then plays with them so much that it ends with the correct colour scheme and for normal controls font size 24.. bold). Also only by looking at the syntax conventions of QT I get RSI in my fingers. wxWidgets is admittedly a horrible mess, but probably a good place to start writing a consolidation framework without forcing everyone to do the same. Probably the best choice would be to fix and clean up the internal mess of wx, add QT support and build a software development kit around it (sound, video, whatever). But mesmerising about it is quite useless. Unless someone takes one of the GUI frameworks and puts together a workable development kit on his own, there will be no good answer to the question.
To make it short: everybody is scratching their own itch, so either find some folks with the same itch or just develop it yourself and stop moaning about it.
I really think distros using different GUI toolkits should be considered different platforms, it has been long since an OS was just a kernel, really.
Copyright infringement is "piracy" in the same way DRM is "consumer rape"
I believe that Google has an internal flavor of Gentoo.
I have to agree with you.
Gnome came in existence because the purity police didnt like the non-free Qt widget toolkit. (how ironic is it that its founder Icaza is now on the other side and being attacked for his hardon for mono in the same way? Poetic justice.)
It seems that even though QT is now under a free software license, a lot of the old bias still exists.
I like the fact that we now have the best of both worlds with QT, both a free software license and
that the phone leader Nokia bought Trolltech because it wants to use QT for cross-platform software for mobile devices as well as desktop applications,..
You can use Qt on platform like X Window Systems,
Mac OS 10, Java, Windows and CE, embedded platforms like smartphones.
Just looking at my sytem quickly, here are few apps that are using QT: Skype, VLC, Opera, Virtualbox, Scribus, Avidemux, Mythtv, Google Earth, Xconfig and Launchy.
Its all a question of taste, opinion and choice.
I might not agree with your versions of the first two but the third one is the reason why i work develop free software on my own dime/time.
There are half a dozen versions of Windows in common use, more if you count the different editions. Microsoft alone has several major and radically different GUI APIs, and there are several common third party ones in addition to that. The notion that Windows is more "consistent" or simpler to target is a joke.
several apps written by Apple itself don't follow standard UI conventions
Not following interface guidelines in itself is quite common on both Windows and OS X, but that usually has nothing to do with the lack of a unified platform UI.
The Windows situation is even worse: there are several native toolkits there
You're confusing the shell's control library with the stack used to access it. On Windows when you write a .NET, WTL, MFC or plain Win32 application, you're still targeting the Windows shell native controls.
I've been back and forth between Windows and Linux for the last decade. Then, like now, QT and GTK were the main two competing GUI kits, Gnome and KDE were the two competing desktops. At the time, OSS was the standard audio API, though ALSA was the new kid on the block that was supposed to standardize Linux audio. There were multiple apps for organizing my music, watching videos, writings docs and spreadsheets, browsing the web, etc. None of the apps was as good as its best counterpart on Windows/Mac.
We all knew there were problems with having multiple GUI kits, desktops, audio APIs, and applications that provided the same functionality. This was acceptable, at the time, because we believed that evolution would eventually win, the strong would survive, the weak would die, and Linux would eventually have one standard GUI toolkit, one top-notch desktop manager, one audio API, and at least one great app for each needed function. At the time, we ignored all the complaints and deficiencies because we knew that this process would not happen overnight; we were sure that, in the end, all the competing apps and apis would innovate until a clear winner became dominant. Then, we assured ourselves, Linux would finally take over the desktop.
We believed the same economic BS the neo-cons have been chanting since the 80's. Leave the market alone, and economic prosperity will take care of itself.
Now, same as the neo-cons facing the reality of their collapsed businesses, we see that Linux has failed to standardize. Ubuntu has been forked into at least three semi-popular versions, one for each of the far-from-perfect desktops/GUI kits, contains yet another Audio api, and has a huge repository that allows one to download dozens of audio managers, video players, browsers, word processors, etc - none of which is as good as its best counterpart on Windows/Mac OSX. Ten years of waiting for evolution to fix Linux on its own, both Microsoft and Mac OSX have made major improvements, such that OSX and Windows XP (both pushing many years old, now) are unarguably more polished and stable than the comparable Linux desktop distros.
I guess what I'm trying to say is that it is time for us (along with the major vendors - RH, Suse, Ubuntu), to start making the tough choices. One desktop/GUI kit, one audio api, one good app for each needed function. That software that depends on the other toolkits, apis, etc. is deprecated. Period.
Lets put the shoe on the other foot.
If application developers all chose the same toolkit, that would become the standard. You can't dictate this kind of thing. It has to come from the bottom up. Don't whine about the distros or toolkit producers because you don't all make the same choice.
Second, AFAIK all toolkits can be supported on all distros if the distro producer bothers to configure dependencies in their packages and provide libraries for all of the toolkits. If a developer chooses an obscure toolkit not universally available, whose fault is that?
And besides, standards suppresses innovation. Eliminate that and Linux will stagnate.
They are needlessly creating pain for themselves - First is there really a need for Chrome on Linux? There is already Firefox, Konqueror/KHTML, GTK+Webkit, QtWebKit, Arora/WebKit, ReKonq/WebKit.
Google should really choose a sane cross platform toolkit like Qt4, which already provides integration with latest WebKit and build there UI and other features on top of that. Heck Qt is using git now - Google could send them patches to take care of the low level UI inconsistency issues. Sound - SDL is fine. I haven't had any program using SDL giving problems on any distro/DE combination.
They also fail to learn from Opera - it looks equally ugly on all platfroms :D - but they are consistent and the UI ugliness is fixable.
That said I think the lack of standards, fork-happiness and the resulting massive duplication of efforts is hurting OSS - especially given the general shortage of talented programmers. But ok, no one spent money on it so whatever the world is getting out of it is a net gain...
Yep. I use kde-desktop, but don't really consider myself a kubuntu user. That's because I install ubuntu, then kde-desktop. When I tried a straight kubuntu install, it was a disaster. No big deal, since I want both kde and gnome anyway. They're largely compatible and it gives you access to apps for both families. It seems kind of stupid to limit yourself to one or the other when you can have both.
Loose lips lose spit.
It's called xlib, if you use gtk, qt, what have you, it doesn't matter. If it uses xlib it will work and that's it.
They have only token support for Linux anyway. Where's the Creative Suite?
you had me at #!
There ARE advantages to monopolies. They are more than happy to standardize things and make life easier. Of course, in the end, it is what is easiest, and most profitable in the long run, for the monopoly, not the other companies. So yes. Google will find it MUCH easier to develop on MS. Of course, so did AOL, Stacker, Netscape, Word Perfect, etc.....
I prefer the "u" in honour as it seems to be missing these days.
simple answer -
yes
- duh.
I cant stand Linux's ecosystem of half implemented and conflicting multimedia features. Kde4 looks as fisher price as XP did on release, Gnome is still brown and featureless like the plains of Africa. I also cant anymore tolerate system folder structures that look like a network share at some company after all of the employees decided to dump unfinished and unorganized crap in the /tmp folder.
I would like to see a root / look like this (yes, with the full name of the folders!! If those are too big for you - use your tab key on the command line sissy! :
/
Boot
App Configs
Default Applications
LinuxOS
MediaSystem
User Installed Applications
Also
I cant stand how there are tons of hackers out there who dont bother porting directx to linux, so I cant play Windows games without the Kludge called WINE or some resource hogging VM with OpenGL support. I cant stand the multiple sound systems and the drivers for lots of multimedia devices (Such as my Audigy Card have WONKEY INTERFACES to adjust audio levels. If you want to take Windows market share you must make the interface look or work the same and then hide the nice extra extended Linux enabled driver features in a advanced sub-UI. This will make things intuitive. As it stands right now Linux is anything but intuitive for standard users looking to leave Winblows behind - unless you just plan on browsing the web.
Sure you could say: "Well its all community generated - go code your own xyzzy interfaces, or join the community and contribute you insensitive clod!" but in reality, I don't code and there are better qualified coders. What Linux is missing here the the regular user's point of view when apps are developed. It all looks like a typical PRE-QA Department, alpha code, coder's (an engineer's) with no proper standard user and UI testing mess.
And whats more the mess evolves into a bigger mess as time goes by....
I am not saying I don't love Linux by a longshot tho - These are just things that get under my skin
This OS has a long long way to go before consumers will touch it with a 10 ft pole.
Dj fuQ [url="http://djfuq.org"]djfuq urges you to listen to the beats[/url] [url="http://djfuq.org"]http://djfuq.org[
I love me some Linux, all my server boxes run it and I do do app and gui work on it, but the last time I tried to port a game to it I just gave up in disgust after hitting the sound stuff. And it wasn't just the sound, it was getting the mouse input, getting gamepad input, and a bunch of other things you don't even think about normally but have to work right to get a game running.
This is why my desktop runs Win7 - I like my games. The Direct X family (including Direct Sound, Direct Input, etc) was possibly the smartest thing Microsoft ever did. Yes, you can get it all working under Linux with enough work, but why bother except as a work of love? I write cross-platform stuff using PyGame now, which works pretty well, but since it's using SDL there are sound issues on Linux (the sound nightmare again).
I'm not sure I have a solution here, just whining. Really, you need a unified API for /everything/ involved in making a game that doesn't care what mouse or sound card or sound drivers or gamepad or video card you're using. And I realize that's a big 'Good Luck With That' with open source. There are cases where a benevolent dictator is better than democracy - as long as they stay benevolent, which is another 'Good Luck'.
"511MB executable that brings up an empty window."
Hmm, is that a new OS?
I used linux (open suse with kde) for the first time recently, installing it on a machine that had previously been running the win 7 beta. Apart from the fact that I found it totally impossible to get sound from it despite spending almost 2 hours installing drivers (which are near impossible to find for linux) I just found it to be less useable overall (than any of the windows systems or mac osx). I had been considering giving it to my parents to replace their windows machine, but I quickly realised that they would be unable to use it. I think that considering there is such a good community behind all of the linux distros the effort would be much better used on creating a single more customizable distro. It would be far easier on the software devs as well. At the moment they cant be bothered realeasing software for such a small percentage of users and it is damaging the image of linux.
Maybe it's time to standardize. Maybe. I mean, why do we bitch so much about Microsoft? They fail to follow established standards, making it difficult for honest people to compete with them - most notably in Internet Explorer, not to mention their office suite.
So, why can't Linux establish standards? I mean, yeah, we can have choices out the wazoo, but why not a STANDARD? As Adobe points out, audio is a jungle. A set of standards for desktop audio would simplify life for MOST new users. It would simplify life for most developers. And, the standard would detract from NO ONE'S experience, since so many choices exist anyway. If ALSA becomes "the standard", and I really want to use OSS, well, OSS is still there to use.
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
As a Linux user and software developer, I appreciate the flexibility and diversity available in Linux. I think most Linux users appreciate it.
The impression I get is that it's mostly butthurt Microsoft haters calling for less flexibility and diversity. Fortunately, that also seems to be the group that contributes the least actual work, so I don't see their dreams becoming reality any time soon.
Seriously, I have been a heavy Linux user since 1995 and I have even attended and spoken at a few conferences... and I have been saying this for years. You know what it is met with every time? "Blah, blah, chaos, blah" or "blah, blah, choice, blah" or "blah, blah, STFU nub!1, blah" every time. I describe it as trying to build a mansion on a shifting and incomplete foundation... Linux NEEDS to be more than a kernel. It needs to be the entire basic framework (foundation) and it needs to include ONE of each basic app that is standardized in UI, look, and feel. Then you can still tweak, add, subtract, etc. from it and have your customized distros and apps... but we have 40 half-assed apps in one area in all manner of development and disarray with no cohesive vision or goal. it is destined for failure.
As it stands Asus (was, not now) or Ubuntu or some other corporation is the only hope of packaging a solid base system that is re-thought from the ground up. Everyone can keep fighting it for another 15 years and still be nowhere much further than we are now, or we could get our collective heads out of our asses and finally make it happen. OSX has beaten Linux in almost every area in short order due to a single, solid, vision... and it is time Linus steps up and takes some sort of control and direction back.
There's a reason the kernel is not handled like the rest of Linux, but why we are all so stubborn to insist that everything else does not apply. FFS hopefully Google is the voice that finally gets shit on the track again, mine surely hasn't despite my efforts.
http://teasphere.wordpress.com - A little spot of tea
Great discussion going on! Some good remarks, some so-so.
Let me note one thing to everyone. This is mostly a reflection on History and how it can apply to what we have here.
Ancient Greeks had the knowledge of the steam machine. Yes, we can say that they played with it as a toy and so on... But the problem is that they had not only the steam machine! They had all the basics to build machines, besides they were pretty advanced on using them as we know now. Not so long ago a very complicated machine was found that amazingly modelled the solar system. They were toys, but pretty elaborated toys.
Now we perfectly know that steam machines came up into life only in the XVII century. More, all the machinery stuff was mostly reinvented! We didn't know Greeks went that far until recent time.
Why?
Some people say that they, and Romans afterward, stuck to their "way of things" - slaves do the work, why we shall do something serious out of these machines? Why we need to substitute them for something... Better? Or worser? Or just different?
Now, they kept their society. Where is that society now, we perfectly know.
Is no one afraid, that sticking into the "way of things", we will just build our own doom? Yes, I know that it is hard to see the Future and probably no one of us will see the Avenge of Linux. Most probably there will never be such an avenge but someone will reinvent Linux on its basics. But, sincerly, I would prefer that even the basis for such things will never come into life! Because, if this happens, that will mean that we have choosen the most stupid historical path - no-way street.
Now I leave two questions for everyone here -
On trying to make a wholescale standard on Linux, aren't we burning bridges?
What do you prefer - an imperfect world and a future of Chance, or a perfect system and one-way to nowhere?
Then use QT. It's much nicer.
Problem is, they think they want to make a "Linux" app, but they really want to make a Gnome app or a KDE app. Mainstream projects need to pick a mainstream desktop and design for that.
Nothing to see here. Move along.
What's more likely: Standardization (which involves Microsoft working in cooperation with apple and Linux developers) or North Korea just saying "oh sorry, my bad, here's the nukes". Not too sure where I'd vote!!
Windows took over because it offered a safe, sane single-API equivalent? That's gross, blatant revisionism.
Doesn't anybody here remember that MSFT is in fact a convicted monopolist? Doesn't anybody remember how they got that way? There have been *multiple* court cases over this, some settled (why Gary Kildall got rich after all) and some didn't.
Microsoft pulled a bunch of dirty tricks to get where they were, that's all there is to it, any other viewpoint is false.
It would still be in beta.
So why didn't they just use Xlib? Sounds like it would have solved a lot of the problems they had... maybe it was not new and sexy enough?
Myself I use Kubuntu and Firefox as a browser. While the GTK look and feel of Firefox does not blend well with KDE, it offers compelling functionality (free software, addons, browser history, spell checking, ...).
In my opinion they should use Ruby or Python and the corresponding Qt- and GTK-bindings. By leveraging the power of a scripting language, it should be possible to efficiently develop customised GUIs for each desktop and platform. I currently use Ruby and Qt4-QtRuby and I must say that I can work much faster than with C++ and Qt4 as I did previously.
We hear complaints from Google but where's the
resources?
Certainly Google could provide some direction
to one or more of the UI toolkits in Linux
by either joining or helping to set up a standards
consortium.
The only way software can be designed is by setting down
requirements, guiding the development with solid standards,
and actively participating in all levels of the process.
Standing back and saying "Whoa! Linux is a mess there are no standards...etc"
is a bit if a lark. When we recall all the workarounds we still have to do
with other operating systems simply because they don't follow standards,
or disregard them to control the marketplace, there is no difference
in the level of additional work that is required.
So, I spend money using/learning QT or build my own GUI toolkit, or use something stable
and homely like lestif. On the other hand I spend my money on licenses for build tools
on some other operating system. Either way I have to spend time and/or money
to get the job done.
I get the feeling that Google has been hiring too many Microsoft campus
programmers who just can't get their heads around anything outside
directX.
It is always time to standardize in the Linux domain. However, it is impossible to implement a standard as long as people have different opinions on a subject. What these company guys do not understand is the free nature of Open Source. Free means everyone can do what they want. And as long as not a significant group wants a particular standard, it will not be a standard.
yes it would be great if we could agree on one toolkit. And yes it would be cool if it would be cross platform, easy to use, and available for all programming languages (because we want that freedom). And yes GTK is very old school in design. It inherits features from Motif. It would be nice to have a Swing like composition model (e.g. GroupLayout) without the speed problems of Swing.
But I find it interesting what he finds so problematic with audio systems. He could use Phonon when he is writing with QT or gstreamer with GTK and QT. As it looks like he is using GTK gstreamer would be fine. It also work in KDE. And there is a HIG available especially for Gnome applications. Yes KDE does not have something similar. So instead of wining, he should encourage the KDE team to adopt the Gnome HIG or support a unifying HIG for both platforms.
The problem for Adobe can easily be fixed. Release the source code. This would allow us to fix the other issues the flash-plugin has.
There's no logical argument that can be made for rejecting running Windows but advocating a standardized API for all Linux platforms.
Then allow me to proprose an illogical one: The superiority of open source software.
Seriously, the fact that Linux has a thousand ways to do everything is a major problem. It not only affects the users, but it also affects developers who simply want to make a nice piece of software, but find it obscenely difficult due to everything else they have to deal with. Simplifying the OS will make it better for both users and developers, and making it better for developers will make it double better for users since they'll have more software that works better.
The Mac is just awful in my opinion, but it is a great example of how difficult it is to write software for Linux. I've used Linux for more than ten years, and in all of that time I've never written a single GUI program, despite having written lots of graphical stuff for DOS before I switched to Linux. One day I bought a Mac, hoping for a platform which was easier to program for, and indeed it was, as I wrote several graphical programs in the month it took me to realize the Mac was hopelessly stupid. Even so, Linux is such a pain that I probably would have stuck with the Mac were it not for its mouse acceleration problem.
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.
So this is how the QT people get to feel better about themselves after a horrible major restructuring that made Linus Torvalds of the Linux kernal fame team begrudgingly switch to Gnome even though he hates its approach to UI design. Seriously, your post was asinine. GTK has grown extremely long in the tooth because of the extreme dedication of the group to incrementalism, but that is not a sign of poor design.
So Gnome's 2.0 structure was so bad that it is going to last longer than KDE3's? I also doubt it's going to have the rockey ride that was 4.0/4.1 for KDE users either. After so many years, most software needs reworking. The reason for the outward protests at Gnome is that the developers are absolutely against the KDE4 kind of developement unless it is 100% necessary. If people didn't protest, this kind of reworking would never happen have happened. The original plan for the gnome folks was to have the 2.xx series continue indefinitely.
Once you start despising the jerks, you become one.
I wonder if this is typical situation, when you start your development on MS-Windows with all the restricting consequences that this odd platform offers and the weird style of coding it forces develepers to use.
On my opinion, when you start on MS-Windows, it's always wrong, because you get some unportable crap. The only way to make this right, is to choose the right toolkit that is portable to all platforms at once, if you don't want to build a toolkit by yourself.
When I look at Google's statement (that I would like to interpret this way)... "Why doesn't Linux have an UI toolkit like MS-Windows?", it reminds me of the old weird comment from NVidia on FreeBSD/amd64 "Make FreeBSD behave more like Linux, then we give you drivers."... Have the people who say such things really understood what they demand?
This thread has quickly veered into the inevitable realm of comparing the Linux environment to Windows and OSX, which with a few reasonable exceptions, has yielded the usual complaints about each in comparison to the others. As I see it, Microsoft and Apple are in the business of selling an environment for the casual computer user, and with some effort do their best to hide the underlying complexity from people who have no interest in computers beyond listening to music, browsing, checking their email, or using whatever applications they need to do their job.
Of course, Linux can do most of these things as well, but makes less effort to hide the complexity underneath, and can quickly becoming confusing to someone who has only used Windows or OSX. This is evidenced by the large number complaints on various Linux forums by new users who are asked to perform some task at the command line or edit a configuration file instead of using their more familiar GUI environment. I see no reason for argument as people use computers for different reasons, and come from different backgrounds and as such, they should use whatever suits them best. There are plenty of intelligent and reasonable people who have no need or interest in learning more about computers than how to operate the applications they use to accomplish a specific task.
Linux can do many of these things, but these people will almost always find the underlying environment getting in their way because they don't care to understand it, or because the Linux equivalent is not what they are accustomed to.
And this is fine.
As others have mentioned, Linux is simply a kernel around which have grown a large body of specialized applications, frameworks and toolkits, and as such can be used to design a variety of systems for a variety of purposes. Almost by definition it is primarily for those of a technical inclination, who do not mind or even enjoy learning about computers, and what it is possible to do with them. There is little reason to recommend Linux to the more casual computer user, especially as it is almost always done with no care for what they actually want, and is largely out of the personal bias of those recommending it.
Linux is based on a community of developers largely working in their own time and on projects they have personal use for or interest in and they cannot be forced to design or agree upon "a single API" as some have suggested. Of course, there is nothing stopping a team from creating a Linux distribution targeted for the casual user, but then what is the compelling reason to switch, given that there are at least two separate and well-funded environments with this purpose already in mind? Such an environment would, by necessity have to leave out many of the compelling benefits of Linux that I and many others have come to enjoy.
I do not particularly care if Chrome is ever ported to a particular Linux distribution, and if they do adhere to their pretence of open standards, there is nothing preventing someone so inclined in creating a substitute for us as well.
We always whine about the windows monoculture, but when it comes to Linux, there are always those pseudo-experts (similar to pundits), who still think everything has to be unified.
They would love to live in a world with only one desktop environment, one library per technology (eg audio), one userland, and one unpatchable kernel with a fixed config. In other words: They want it to become Windows.
No thank you. I love my freedom more than anything in the world. I want many, many concurring libraries, kernels, desktop environments, and even "standards". I want to be able to choose and support my favorite one.
When Linux becomes a monoculture, Linux will be dead.
Luckily, that will never happen. Because we are no company, and do not walk in lockstep. :)
Any sufficiently advanced intelligence is indistinguishable from stupidity.
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...
Computers are useful because of applications. The OS is just there to make it easy for apps to interface with the hardware, such as video cards and hard drives. The OS also supports the applications with APIs such as DirectX. The user doesn't and shouldn't have to care about the OS.
Now if you meant to say that application developers should be enthusiastic about the OS, then I would agree.
Google has paid. They paid for WINE development. Most of their "Linux" ports are Win32 apps recompiled with WINE. With android, they ditched X/GTK/QT and did their own thing.
Their direction is: KDE/GNOME/Wt/GTK suck.
Do you even lift?
These aren't the 'roids you're looking for.
KDE and Gnome are desktop environments. Qt and GTK+ are GUI toolkits. KDE is built on top of Qt. Gnome is built on top of GTK+. GTK+ is not responsible for Gnome developer decisions, and Qt is not responsible for KDE developer decisions.
http://en.wikipedia.org/wiki/Qt_(toolkit)
http://en.wikipedia.org/wiki/KDE
http://en.wikipedia.org/wiki/GTK%2B
http://en.wikipedia.org/wiki/GNOME
YES! Linux needs standardization, without it no-one wants to develop for it and it will forever remain as an experimental OS.
Why don't we have a standard (maybe like the LSB but better) with distros that follow it? Perhaps it could be modeled after a popular distro such as Ubuntu? Other disros would be free to deviate, but major software manufacturers (Adobe, Google, Apple, Microsoft, etc.) would only be expected to produce software for the standards. If a distro didn't follow the standards it would be up to the maintainers to make it work if they wanted the software.
First of all, those "harsh words" are somehow pulled out from context to prove that "Linux sucks". I don't know what you guys are trying to prove but:
1) There are two, serious, commercially used toolkits GTK+ and Qt. As far as I know it is much less than several tens of toolkits which rules Windows world. I prefer GTK+ and quite happy how Qt/KDE fanbois are pushed compete;
2) "inconsistencies across applications" - news at eleven. Are you talking about applications as general? Because it is kinda rule of numb;
3) "the lack of a unified and comprehensive HIG" - again, there are two toolkits and two HIGs. Actually there is no Microsoft or Windows HIG, only different ones for each application group in Windows. Same as for OS X. Maybe it indicates that such unified HIG is kinda impossible?
4) " GTK not being a very compelling toolkit" - bug reports with patches or whishes are welcome. Linus did it and his suggestions with patches were accepted in two weeks time;
Other parts of article indicates that Google guy has very strong anti Linux bias. For example: "Committing to any single toolkit could potentially marginalize other segments of the community, so it's not a decision that can be made easily."
What a heck? If they really think so, how Skype manages to be ran by thousands of casual Ubuntu users? It uses qt and it is not installed by default. Uhhh ohhh, dependencies man. Compile package with sane version of qt libs and you are set to go. Several years ago yes, there were kinda alien feeling running Qt app in GTK+ environment and vice versa. But now it's non-issue.
""First of all let me generally comment that this entire situation is a clusterf*ck. I am not happy with the technical constraints imposed by Linux and its assorted UIs on Chrome's UI and feature set," he wrote. "There isn't dominant consensus around toolkit and HIG, there seems to be variance in commonly used software as to how it's constructed and what it matches, and I've not heard anyone glow about how they can create the coolest looking UIs with GTK."
For those who are unaware, Ben Goodger is a former employee of Mozilla and used to be the lead developer of the Firefox project."
Wow hang on here. Isn't that the same Firefox which was for a moment developed for Windows only and Linux was just fucking afterthought? How they screwed everything under the sun doing FF 2 with GTK+? Ohhh, I see. Real answer is "I couldn't master it, because I tried to use toolkit to do as I want - instead of following HIG and toolkit coding practice.". And using nice terms and phrases like "clusterfuck", and "dominant consensus around toolkit and HIG" (Ben, let's be honest, everyone standardizes around GTK+. You don't like it, end of story.) indicates that there is something else going on here than honest evaluation of things.
So more or less - article or more concretely, Ben is a flamebat. And comments "Why not to use Qt instead?" and "Phono is so nice to use" from Slashdot crowd today indicates that it clearly works nothing such retribution magnet for KDE fanbois who loose their impact to market with each day. And that's what harsh.
Sorry for putting myself under karma flamethrower, but it was too much.
user@ubuntubox:~$ stfu This server is going down for shutdown NOW!
Win32 is the Windows API. MFC is a library consisting of shortcut functions to do larger things with the Windows API. .NET is a framework for languages like C# and Visual Basic that ultimately translates everything to the Windows API.
Hence there's still one standard: the Windows API. Everything else just builds on top of it.
First, the article says nothing of the sort. As usual, the summary is completely off the point.
But to address the summary and the other comments, rather than the article:
The Free OS world (whether you call yours Linux, GNU, GNU/Linux, OpenBSD, NetBSD, OpenSolaris, etc etc) does NOT suffer from a lack of standardization. I've been hearing this for 13 years (people who are in the community longer than me have been hearing it for longer) and I'm sick of it. It wasn't true then and it wasn't true now. We have lots of standards, maybe more than I would prefer. We have standards for a lot of things that other OSes don't.
And we also have a lot of people who choose not to follow them. It's a freedom we have and it's one of the things that makes it so great.
Standard UI toolkit? We had one in the 90s, and it sucked. So people decided to write Qt and GTK+ and we're much better off now. Standard HIG? KDE has one, GNOME has one, and XFCE has one, take your pick. Standards for binary compatibility? Yes we can, and as another commenter mentioned, Skype uses it rather effectively for their crapware.
Now, does all that choice pose a minor problem to proprietary vendors who want to offer non-free, closed-source software in our platform(s)? Yes, it does. However, I don't care. They have a very simple solution: give us the source, and if the product is good, the people who care will help you port. You can provide one, bare-bones port, and the GNOME/XFCE/KDE/portable/etc people will work out the customisation and integration for you. Don't want to give us the source? Then I'm sorry, it's going to be your problem.
Incidentally, this is exactly Google's solution, well, almost exactly. I doubt there's going to be, say, a XFCE port of Chrome, but chances are there will be a XFCE-integration version of Chromium (or an add-on that does it). Everybody wins, nothing to bitch about.
The issue at hand is that there is a jungle of toolkits, each having a different focus. So, to keep all those toolkits but eliminate the differences between them a toolkit which basically is a wrapper around the most popular toolkits is needed.
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!
They start writing some big, ugly, messy Windows application (hello, Firefox), and then they moan and groan when porting it to Linux
Mosaic was originally designed for UNIX / X Windows. Mosaic Netscape (->) Netscape Navigator -> Mozilla -> Phoenix -> Firebird -> Firefox.
It's been cross platform for a very, very long time, and it definitely didn't start as a "big, ugly, messy Windows application".
Is this the guy who gave us a whole bunch of reasons as to why they weren't going to use a working cross-platform toolkit in Qt for a cross-platform browser and why they were going to use the, now inferior, GTK for Linux? Somehow 'I told you so' just doesn't quite say it.
We're all aware of how sound standardisation is a mess. Broken compatibility with other Unixes, layers upon layers, high latency, bugginess, etc. THE SOLUTION IS YOU SWITCH TO OSSv4! It actually works! Please, people, for the sake of the developers and the users who have to scratch their heads wondering how to get their alsa/esound/pulseaudio/whatever to play nice. Just use ossv4!
Well, tough. Calling for "standardization", uniform GUI and what not is not going to help - different companies would like the standard to match what *they* need and nobody would be happy anyway. Furthermore, I do not see why Linux should change to match the (terrible) development practices on Windows.
The solution is to try to release as much code as open source as possible and let the distro packagers do the integration work for you. Or, if you must keep it proprietary, work with the major distros at least. Their developers will be happy to help - unless one is providing the OS as well, the user will likely need an OS to run the super-proprietary application anyway and it is a win-win situation for both sides. This works a lot better than whining about how terrible Linux is ...
And to answer the poor soul that asserted that Ubuntu is the standard Linux - I am sorry for you. I can as well say that standard way of using a computer means using Windows, making your argument completely irrelevant (number-wise, the Windows desktops dwarfs all Linux installs combined ..). Make yourself a bit better informed next time - Ubuntu is far from standard, it just happens to be popular in US. Not so much in Europe and elsewhere.
such as eschewing a menubar and consolidating the commands in Page and Tool dropdown buttons.
Incidentally, Slashdotters bashed MS for doing this in IE7, but were silent about Google doing the same thing in Chrome. Which reminds me that slashdotters also bashed Microsoft for merging the Back/Forward navigation stack into a single dropdown control in IE7, but said nothing when Firefox 3 copied that idea. I only point out these things to show that slashdotters aren't the most objective analysts when it comes to judging UI.
That said, I agree with you that Chrome's UI is better than IE's, and I think Chrome's UI is the best of all browsers.
-- "I never gave these stories much credence." - HAL 9000
is it time to concentrate on consolidation and standardisation in GNU/Linux in general, and the desktop in particular? /. has been trumpeting The Year Of Linux On The Desktop for as long as I've been a user - before, no doubt.
You want it to happen? Like, actually happen? Do that.
Consolidate, standardize, document. Choice is a fantastic thing to have and will always be there for those who need it - but it confuses the hell out of most grandmothers. Linux might be paradise for server-side and web developers (I heart my debian box) but it's a mess on the desktop. It's come a long way from the early days of Red Hat, to be sure - but Desktop Linux still suffers from Tinkering Required for some applications, and massive, massive bloat. X-windows toolkits, for example - Windows and the Mac have one UI toolkit. Linux (rather, X-Windows) has as many as it has IRC clients, and while GTK has gained a lot of marketshare, it's not A Standard in the sense that, say.... Cocoa is. Cocoa's just there OS X. Compare to GTK - your distro might have it, it might not... and if it does, what version? If it doesn't, how easy is it to get? Do you have to compile?
My grandmother doesn't know how to compile. She shouldn't have to.
I know, I know... making Linux truly Grandmother Friendly goes completely against the natural instincts of the developer community. That doesn't mean we can't have GrandmotherOS with a linux kernel and a set of rock-solid featureful APIs that make ISVs drool.... and then backport it to the distros we use on our LCIIIs, toasters, SGIs, sparcs, Apollos and DECs.
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 ]
Nobody would switch to it because it'd be in "beta."
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.
That's one self-serving assumption he has there. I use Ubuntu on my home PC, Windows 7 on my media center PC, Gentoo on my servers, and at work, here I have no choice, I use Windows XP.
Ubuntu on my home PC, because it was easy to install and has a big support forum. Although I'm no stranger with linux, I have a stranger to debian-based systems way of doing things. Ubuntu is easy to use; if I don't want to touch a command line, most of the time I don't have to. That doesn't mean I don't like the command line; I do, but sometimes I just like to be able to use nothing but the mouse. I could use Gentoo, but it takes a lot of work to get things right on it (with a GUI).
Gentoo on my servers, because I can start with the most very basic system. No services installed by default. Do I want to use syslog-ng, syslog, or metalog for my log management -- I always choose syslog-ng and install logrotate, mainly because it has a good track record, and I haven't found a program yet that is standardized to use metalog's method of login. Someimes metalog on PCs, just because it's simple but still effective. How about cron? There's vixie-cron and anacron. I'm familiar with vixie-cron, so I stick with that, but Ubuntu uses anacron.
Since '05, I've setup Gentoo probably over 2 dozen times. I'm sure I've installed windows quite many more times. I've installed Mac OS X a few times; Freebsd, CentOS, Red Hat, Fedora Core, BeOS, the list goes on. the list goes on.
I'm sure I could get on my high horse like the GP, but I don't see any reason for that. As someone else has already said, I use the best tool for the job.
But linux gets preference. I just can't do with out that awesome command line.
Since Google is using Webkit for the rendering engine, using QT for the linux version makes sense (especially now that its LGPL)
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)
Maybe they should have just used Xlib/Xt instead and duplicated everything they did for Windows, especially if they want a completely consistent cross-platform look and feel, BUT don't want to be hamstrung by any single UI library's way of doing things.
Specially since this has already worked.
- Early versions of OpenOffice.org used to have their own toolkit (now they have something that is partly collaborating with either GTK or KDE's Qt).
- Firefox has it own widget abstraction (XUL) running on top of GTK2.
It has worked for these, so Google could achieve something similar.
Except that then, people trying to build micro distribution for limited hardware will complain about the memory foot-print of yet another tool-kit.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
"is it time to concentrate on consolidation and standardisation in GNU/Linux in general, and the desktop in particular?" Yes. Yes it is.
... everyone would scramble to support it. Do you see what the real issue is now? Companies (and individuals) feel it costs them too much for too little profit/reward. That's all there is to it and that's why certain companies should think really hard about why they are in the position to benefit from Free (Beer) Software all the time. It's because someone else put a lot of effort into it despite the lack of profit/reward. Who's evil now, eh?
"I love my job, but I hate talking to people like you" (Freddie Mercury)
There are issues any time you make a choice. As an example, take audio on Windows which is in a vastly better state, and something I understand quite well. Windows itself provides APIs for audio you can use. Any soundcard with a Windows driver will by definition support these. However Windows allows for other APIs to be installed. There are two major ones you'll run across:
1) OpenAL. This was developed by Creative Labs because they wanted better support for hardware sound acceleration, which is something that few companies do.
2) ASIO. This was developed by Steinberg for professional audio to provide a multi-channel, low latency, cross platform interface.
Now, suppose you like one of those formats and want to use them in your app. Ok, great, but your app will suddenly not work on a whole bunch of systems. Most soundcards don't support OpenAL or ASIO. They support MME, DS, and WDM/KS because those are the Windows formats and by having a Windows drier you'll support them, but they don't support the others. In fact the Creative Labs X-Fi are the only series of cards I'm aware of that support both OpenAL and ASIO. You can find other cards that support one or the other but not both.
So then what to do? Well you can go for the software shim idea. This is usually what OpenAL games do. They have an openal32.dll in their directory that performs conversion from OpenAL to one of the Windows formats (DirectSound usually). However this has numerous problems in that you lose functionality, it takes more resources, is another area for problems, etc. If you sniff around online you can find all kinds of problems related to this with games and various hack solutions form gamers for it.
In the case of ASIO there is a very nice 3rd party program, ASIO4ALL that does a good job of translating from ASIO to WDM/KS. Works in almost all cases, it's grade A stuff and is free. However, you lose any special features ASIO would get you. You are interfacing with a soundcard in KS mode effectively if you do that. So why not just have your program support that anyhow?
Now take that mess, and then go the Linux route where there isn't a guaranteed standard. It is a whole bunch of different shit and you don't know what you will and won't have on any given system or piece of hardware. There's isn't the "MME" option like in Windows that is universally supported.
These multiple, competing and sometimes conflicting standards really do make shit hard. I'm not saying that it should be a situation of "There is only one way to do things, everything else is banned." No that's not the case even on Windows. However there needs to be a default that ALL Linux distros support. Everything can use the default, and then you can have support for others as well if you like.
Big cluestick: we are not your employees, we do not do your bidding.
Don't blame me, I didn't vote for either of them!
Yeah why doesn't Google reimplement GNU?
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.
And above all weren't opensource.
Linux distribution are opensource, almost from the top to the bottom. Kernel, UI Toolkits, Applications.
That means that maker of Linux distributions have all the necessary material needed to adapt Applications to the specifics of their distribution.
Thus you can find Firefox on almost any distribution, and the distributions maker has taken the effort to compile Firefox's source against the distribution's special mix of libraries. In the process more bugs are discovered, leading to more patch sent upstream to application developers.
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.
The lack of uniform environment poses only major problems to binary closed source software. Which has to be designed in a way which work whichever distro it is thrown against. That is hard.
For the rest of us, our open-source applications all work pretty well, thank you very much (thanks to the massive effort put by both applications and distributions developers)
Currently Google is complaining that it's hard for them to get a Linux port.
Meanwhile, both the major browser Firefox and Konqueror (and probably a dozen of other minor less-known browsers) are very well ported on virtually any linux distribution AND on Windows and Mac OS X too.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
..It's a kernel. The different distributions are operative systems. Here's a list of distros: http://en.wikipedia.org/wiki/List_of_Linux_distributions
Yes, that is a lot of distros, and the very reason why simply reaching consensus on which APIs to use won't work and is against the whole point with the Linux kernel in the first place. Because there is not even a potential lowest common denominator for all of them. The only one thing Linux distros have in common is a version of the kernel. That is a slight exaggeration, but not too far from the truth. Again, this is one of Linux strengths, not weaknesses. Anyone can start their own distro, given enough persistency and time. Making client software which supports all the different distros is hard if not downright impossible, and not worth the hassle in my opinion.
Doing what a lot of people do here and ask for a streamlined API across distros limits people's freedom, and misunderstands what Linux is. If you want to support "Linux", go for the big ones, Ubuntu, Debian, Fedora and Redhat. If you want to support the more obscure ones, then don't complain about too much choice, it makes you look like an idiot.
Who ever complained that Mac and Windows have different ABIs, APIs and kernels?
What I mean by that is most of the QT apps I've seen are ones where the UI is completely and totally non-standard. They have their own idea of how things should look and work that has zero to do with how things on the system look and work.
A good example that I mess with would be EastWest's Play sampler. It's QT, though they don't seem to advertise the fact (I noticed it installing the QT DLLs). It also looks more like an old school piece of audio hardware than a computer application. It's interface actually has a number of rather confusing and suboptimal controls, as do many audio apps. For example its settings are controlled by "dials". They look just like physical twist knobs from old audio hardware. Ok but I'm not twisting them with my fingers, I'm using a mouse. So how do they work? Well they actually work as vertical sliders. You click on the knob to take control, and move the mouse up to increase it, down to decrease it. The knob turns in a circle as you do this. If you try to move the mouse as the knob moves, you won't get the result you were looking for.
So I mean it works "fine" in that the app runs and it displays and such, but nobody is going to confuse that for good interface design. Also nobody is going to confuse it for a native Windows (or Mac, runs on there too and looks the same) interface. Qt let them do the cross platform UI easier, and perhaps helped make it look shiny, but did so at the expense of good UI integration. Personally, I'd much rather that it looked and felt like a Windows app. Would make it much easier to work with.
Because it's them who are ignoring the standards, not vice-versa. I'm not a system administrator at all, but ifconfig in /sbin instead of /usr/sbin? WTF?
"I don't mind telling you that I'm a little nervous about this business of Debian switching to EGLIBC. I know, it's supposed to be binary compatible and it shouldn't matter to application developers. Does that include developers of closed source binaries?"
when i read that, i felt the urge to say that:
of course not, shitface! damned be the day i install the crappy binary blobs you call software on my Debian box. are you not ashamed, that every second website demands a download of fucking adobereadershit and fucking adobeflashplayershit? it's the rfc's stupid. something the programmers at your stupid company have obviously no clue of. have you ever thought about that assholes like you are the main reason free software exists? thanks for listening, you dumb fuck!
but then i decided to say this:
thanks a lot, Mike for making the use of the ubiquitous flash player utility possible for all the Ubuntu users out there who really NEED it!
Or was he just bitching?
How does Wine development qualify as GUI development/support for linux?
Wine is a MS Windows API for using Windows applications on linux.
That's like saying, "Geeze! they paid for a PS2 emulator. What do you want *blood*?".
Google can well afford to throw some bucks at a standards based
consortium for the linux user interface.
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
Sure, there is genuinely a problem on the Linux desktop and that problem is that there are two major toolkits, two major desktops, two looks and feels (despite the KDE/Qt community's attempts to unify them, note that the GTK/GNOME community have done absolutely NOTHING in this regard). However, this problem is ENTIRELY the making of the GNOME community, who came into existence purely as a reaction to KDE and who frankly have been the fly in the ointment ever since. I appreciate their commitment to choice and the (now irrelevant) commitment to the Free Software Ideals but anyone with half a brain has been able to see for about a decade now that the division this has created has made the Linux desktop as a whole suffer overall enormously. To then see someone choose GTK as their toolkit (for a C++ app no less!) and then complain that there is no standardisation is so rich as to make me feel unwell. It's your fault in the first place, and now you are perpetutating it. Grow up, stop whinging, and next time don't make a bum choice and then whinge about it as if it was somehow not your fault.
original thread
After reading through the discussion between Ben, some other Google people and various Linux users, it's apparent to me that Ben is whining too much. One one hand, there all the bitching about the weakness of GTK and the fractured APIs of Linux but when it's suggested that they use QT instead, the answer is that they don't want to choose one toolkit over another and potentially alienate some of the userbase (!). No technical reason is given for not using QT and, from the various comments, it's clear that what they needed on Windows wasn't all baked into Win32 - they had to make some of it from scratch. Some advice for Ben - if you want to get the Linux port out, use QT, ship it and write a note saying that you choose the best tool you had available and if anyone wants to port it to GTK+, well good luck to them and here are a list of stumbling blocks they'll encounter. There was really no need to start a flame war and I imagine the opensource community should be relieved that he's not the lead dev for Chrome.
Pain is merely failure leaving the body
If only i had modpoints to give! I feel your pain
Pain is merely failure leaving the body
Another thing that annoys me is the diversity of animals and plants on Earth. It makes it so hard to study them all. Isn't it time to concentrate on the consolidation and standardisation living species in general?
This is an interesting case, because it's the reverse of the normal OS vs. Application development relationship. Usually there's an OS, and all the application developers have to write their application to suit the OS. Because the OS is king.
Here it could almost be seen as if Google is king, and should just write their application once for their preferred Linux distribution, and then challenge all the other distributions to make the application work for that flavor. Therefore making the application king.
That seems like what might happen, kind of like hardware drivers. Somebody puts out a video card, and then all the distributions write drivers to let their flavor use that video card.
There are two parts to WINE. One part is running Windows binaries in Linux. The other part is compiling code written for the win32 api as a native linux application.
Do you even lift?
These aren't the 'roids you're looking for.
The guy though well experienced sounds like a crybaby. I can't imagine how a programmer can't learn to make it work. Come on, he's got the tools, they are free.
Is this weak abled programmer not capable of making programs for various platforms? Is he telling us that they haven't *ever* done a real program under Linux? He's telling us this is new? He's telling the hundreds of thousands of programmers world-wide that they are doing what he can't because they are less experienced and know no better?
Come on. This guy is under pressure and he's caving. He's making excuses and pulling a henny penny.
Get with it and make it happen. We are tired of your excuses. This isn't rocket science. Use your brain you google employee.
You can lead a man with reason but you can't make him think.
The original political bullshit over the Qt licence was pretty well irrelevant to anyone that actually read the trolltech licences (which got more and more like the GPL every time). The gnome people (the competant ones that stayed on instead of the political ones that left early and left us horrors like gconf) really just wanted their own environment that looked and behaved differently to KDE in ways they thought were better. When Qt went GPL years ago that didn't change so gnome continued. By then gnome had progressed from a horror show that did little but break gimp every week to a stable multiplatform environment with very few flaws.
I can't believe no one else noticed this. The summary is wrong. The article is about Chromium, not Chrome. Chrome is based on Chromium, and open-source project. There is no official Google Chrome for linux. There's Chromium, then there's crossover Chrome (or Chrome run through wine), but no Google Chrome for linux.
And, an alpha version of Chromium has been out for more than a month now. It has just recently become somewhat usable (tabs started working a couple of weeks ago). The options menu isn't populated, although the framework appears to be there. Rather annoyingly, it doesn't remember the size of the window when it was closed.
Running it on Ubuntu 9.04.
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!
Goobuntu.
It's been cross platform for a very, very long time, and it definitely didn't start as a "big, ugly, messy Windows application".
Firefox has always had Windows as its primary GUI and target platform, with Linux added as an afterthought.
The fact that Mosaic had a different GUI at some point is pretty much irrelevant since that was ripped out long before Firefox.
If google really cared, they could throw one billion with a b dollars at building their own OS, and just act like that is now the defacto "linux standard". However they wanted it to be.. Canonical did a similar project with a (relatively puny compared to a billion) few tens of millions. I know they are doing that with android sort of, but we are talking desktop OS here. They pick what flavor and version toolkit and compiler and so on they really like, fork wherever they feel they need to, and just go for it. They have a billion to spend on something like that, and not miss it, so if they don't, I don't see them having much to complain about at all. A THOUSAND devs at 100 grand a year, double that for office space and so on expenses, is 1000 x 100,000 x 2 or 200,000,000 ie 200 million dollars, so enough just with the initial outlay for five years of some serious kick ass operating system development work, which would build on already established good code, plus you know a project like that would get unlimited PR and press coverage.
So they could swing it if they really wanted to as a pure investment. If google did it, every major and minor computer manufacturer would have a serious MS competitor that they *couldn't ignore* like they can now with all the other various linuxes. They could charge cash for it as well, whatever MS had, half price to the OEMs, because the bulk of it would still be free for them to take and use,so they'd get takers by the millions of machines shipped I bet, and the project would be self funding and be profitable from there on out once it started getting shipped as the installed default OS from some major brands.
The built in OS combined with their online stuff...couldn't be ignored. Adobe with Flash and photoshop wouldn't ignore it, heck, maybe even autocad wouldn't ignore it. The big game makers sure wouldn't ignore it. The tax software/accounting apps folks wouldn't ignore it. So what's that now, about the bulk of the "why I stay stuck on MS" complaints out there now theoretically covered? And all those devs would be working obviously, so they'd be covering the rest of the complaints, exchange type server stuff, etc.
In other words, they gots the cash, so put up or shutup.
I am only a semi-professional developer, writing and numerical software for research (which influences some things). My perspective on this is simple, and has not changed much since Java 1.2 came out. At that time my personal focus shifted completely to writing applications which are as portable as possible. Before that i was extremely annoyed over having to choose between the different platforms for UNIX (motif, X, gtk, qt), which where at that time either not free or not running well on windows. There are actually not many toolkits stable on both platforms. i would suppose that i would stick nowadays to qt if somebody would force me to write C.
With Java it became obvious that i can trade of performance for development time and having something running on all platforms. Yes, i am aware that AWT was never perfect, but it was, for a long time it was the tool providing the best abstraction of your OS while maintaining performance (please spare me the "java is slow" generalization here. i know the drawbacks, but i had a quite complex DAQ application in java running on a P120 with 96MB of RAM). Best in terms of not having to learn much and getting programs which still run well. The other option i am following is tcl/tk. I am impressed on the stability and maturity of tk in everyday life, even if it *definitely* not my favourite Toolkit. Nowadays, using Swing is the obvious way to go for multi-platform.
So, if you want to save development effort (and that is what i guess this is about), bind your native renderer to Java and use Swing as an GUI. You wont event have to maintain different versions. If you are keen on having it native on all platforms, how about QT? But i think we are getting closer to the problem here. So, google, instead of taking one of the options available and using it, insists on a windows-like philosophy that this should be part of the OS. We should ask for the motivation here. Google recently released android. It seems to be flourishing. I think this is nothing bad, i enjoy that after many progressive small companies who have been pushe out of the market when trying to make free phones, google creates one strong pole of development. But, IMHO, this time would be exactly the right time for google to tell to the FOSS community: "look we have this google-backed platform; Netbooks, mobiles, pdas - linux will conquer the world" and "oh BTW did you notice a standardized platform is utterly lacking for Linux?". So i appreciate a certain consolidation of toolkits in use on linux, be it just to make copy and paste working finally. On the other hand, i think, seeing that Java is GPLed now, doomsday predictions for Linux on the Desktop due to this reasons are highly exaggerated and developer opinions from companies who have an interest in establishing their own platform (which i appreciate. I can't wait to use an android phone when these are mature) should be taken with a grain of salt.
You're confusing the shell's control library with the stack used to access it. On Windows when you write a .NET, WTL, MFC or plain Win32 application, you're still targeting the Windows shell native controls.
You make it sound like these toolkits are merely bindings to a common set of widgets, but that's not true. There are some common Win32 APIs that all of these call, but there is also a lot of functionality that each of them implements separately. As a result, a developer on Windows faces the same problem as a developer on Linux: they have a bunch of different APIs with all sort of tradeoffs between them.
And the Chrome developers apparently couldn't find a single suitable Windows API that gave them reasonable widget layout, which is why they re-wrote part of the toolkit. And that's what's causing all their problems.
Hence there's still one standard: the Windows API. Everything else just builds on top of it.
Hey, there is only one standard on Linux then: the Linux and X11 APIs. Everything else just builds on top of them.
And the Expose pretty much blows compared to your bog-standard workspace switchers on Linux.
Do you mean Expose or Spaces? Expose isn't a workspace switcher at all, it's just a weirdo visual effect to let you shrink all the windows on your current workspace down and switch between them. Spaces is, well, a bog-standard workspace switcher. Press a function key to see all the workspaces and drag windows between them, use ^1-^4 to switch between the spaces immediately (I only have 4 set, but you can set more if you're so inclined), click and hold on a window title and press the workspace control key to move the window directly there, add a dropdown for switching between spaces to your menu bar with optional names for the spaces, even "assign" applications to open in specific spaces by default.
I find the OS X interface to be mostly consistent and intuitive, but the last Ubuntu I used (8.04, I think) seemed to pretty much have its act together, and to be fair I think Windows Vista/7 does a pretty decent job. OS X is notably less consistent than OS 9 is, but I'd rather stab myself in the hand repeatedly with a fondue fork than use OS 9 for any length of time, so I think it's a fair tradeoff.
Sometimes people need to hear the truth in order to smell their shit.
It's like when you fart, and everyone runs. Yes, your shit does stink.
Good old X code...sheesh.
On a more serious note however, I seriosly feel their pain. It is a mess.
Unless you are writing code to run in batch mode and user interactivity is not on your list of requrinments, you are fine.
The minute you say I need to add a button, or a window, you are presented with the questions :
1) QT or GTK
2) Maybe I should just drop both and build the GUI in Java, so I do not have to get screwed across distributions and glibc updates.
3) Nah, java is limiting, I will use Python, but it looks ugly..
Been there, and its a mess, specially if you try to get into such a conversation with mangment.
As for the audio, dont get me started.
The lunatic is in my head
I don't understand this. There's a reasonably clear HIG document in GNOME which is continuously updated. The strict packing rules make the resulting interface flexible in regards to RTL languages and reasonably consistent with other applications. GTK+ has widgets for just about every purpose. Since the introduction of Cairo it is trivial to draw custom widgets, especially using the gtkmm and cairomm C++ bindings: the custom tab bar could be done in a day. With those bindings it is even quite easy to modify the behaviour of existing widgets by overloading their signal handlers, Murray Cumming and the others working on those have invested a great deal of effort to truly (and easily) expose the object system via C++.
http://0install.net/tests/Chromium.xml
Tested on Ubuntu/Jaunty so far, but let me know if it doesn't work on other distributions.
Even the Gnome people don't like GTK. I have tried programming with it, and was surprised by its primitive level of development.
Clearly the Google developers made a mistake, by not choosing the appropriate tools for the job.
They now have to live with those mistakes.
Qt is much nicer for GUI development than ANY other C++ toolkit, on ANY platform that I have ever used. This may have been a more sensible choice, particularly, since it already includes the same webkit based browser engine, and a useable sample browser that uses it - all nicely and cleanly implemented, from what I have seen.
Also, I found wxWidgets pretty easy (I used to use on Windows because MFC is dismal)
For sound, programming directly to ALSA is not as easy as writing to a higher level library, but agaiin, it is perfectly manageable, standardised on all Linux platforms, and well understood.
I wonder if Google didn't make some WIndows centric design mistakes to begin with, or maybe just appointed a lower grade developer to this porting task, who will blame tools, rather than themselves, for making the wrong development decisions.
As for glibc forks, I can't see anyone shipping a binary incompatible version of GLIBC. Simply put, nobody is stupid enough to do this.
Don't call it GNU/Linux, you got to give credit to all!!
It is GNU/X11/Apache/Linux/TeX/Perl/Python/FreeCiv.
Linus shpuld put the Linux kernel under Affero GPLv3 license, and force those big corporations to give back to the community a decent share of his wealth. Period.
What's in a sig?
It's funny that you say so... I study CS on a university where we work a lot in groups... In the last project we wrote a ray tracer in C++ with SDL, libnetpbm and pthreads...
:)
As the others in my groups were novice developers, I decided to use codeblocks on Linux/Ubuntu... The windows users in our project ran VS...
Now using pkg-config and sdl-config, I could easily enable codeblocks to build under different distros... It even used relatives paths for source files, so I could check the project file into svn...
The windows users on the other hand had to enter absolute paths for libraries and couldn't share project file... And they had a hassle finding the libraries, whereas the linux users, me included, just got them from the package manager...
Now it's very likely that I didn't care to help the windows users making stuff run smoothly... and it's very possible that the windows users could have fixed the issue... Not that I know of any reasonable approaches... Nevertheless, at the end of the project, everybody agreed that development under Linux was a lot easier...
Firefox has always had Windows as its primary GUI and target platform, with Linux added as an afterthought
Firefox is Phoenix, which has always been cross-platform, being a stripped-down version of Mozilla.
From the Phoenix 0.1 release notes:
Phoenix is a redesign of the Mozilla browser component, similar to Galeon, K-Meleon and Chimera, but written using the XUL user interface language and designed to be cross-platform.
I have to agree with this violently.
Hey, I can think of only one reason why it would take more than a year to port Chrome to any other platform besides Windows. They only thing I can think of is logic intertwined with UI code.
Without nice logic and UI separation they can b*tch about Linux all they want, but any programmer worth his/her money wouldn't take a year to slap a UI on something as simple as a fscking web browser.
News about the Kettle Open Source project: on my blog
you are all arguing over facetious crap. if there is any standardization that needs to be done it should starts at the kernel and move out from there. people cant even agree on a bootloader!
Firefox is Phoenix, which has always been cross-platform, being a stripped-down version of Mozilla.
Yes, and that so-called "cross-platform GUI" is primarily oriented towards Windows, with a low quality adaptation to Linux.
(Java is the same way: nominally, it's cross-platform, but the GUI is poor quality on Linux and OS X.)
a) Decide once and for all; client or server? If client, (which is what the desktop is) embrace that completely. Tell anyone who wants UNIX that they need to move to *BSD.
b) For sound, return to OSS. v4 is under the GPL now, so there's no reason not to. ALSA is over-engineered, unstable garbage. Get rid of it.
c) Standardise around GNOME. For my money it's the least bloated of the big two. In terms of features, truthfully I probably like KDE more, but it needs to lose weight before I'd advocate it.
d) Stop standardising around Debian, and stop listening to whoever keeps telling everyone to do so. Debian/Ubuntu are the two most poorly designed Linux distributions in existence. If fanboys want to respond to that, fine, but if I list my issues with Debian, I expect you to respond to me on those issues specifically, without simply resorting to the old standby of telling me that I'm ignorant.
e) Standardise around pkgsrc for package management. It's portable, it's solid, it has a lot of features, and it's written by people who, unlike many Linux developers, both care about design quality AND can actually code their way out of a wet paper bag. Do not listen to Debian fanboys who attempt to say otherwise.
f) Stop caring AT ALL about what the FSF thinks. If nVidia only distribute binary drivers, people are going to want them, period; and are going to use them, irrespective of what the cult decrees. I also don't want to hear from FSF cultists in response to this, either. I don't agree with you now, I'm not going to in the future, I think your organisation is a disease, and is the single worst thing about Linux, and I'd be much happier if it didn't exist, putting it bluntly; so don't bother.
g) If money is what it takes to cause FOSS developers to get serious, then so be it. Relicense under more commercially friendly licenses, (like the BSD license, for instance) and form companies around the relevant applications.
h) If the desktop is where the Linux community has decided it wants to go, Linus needs to be brought into line with that vision. At the moment, he is primarily concerned about big iron, because that is what the corporate hands that feed him primarily care about. If you want the i386 client desktop, that is where you need to put the entirety of your focus. Forget portability, forget the server, and focus purely on being an i386 client desktop. You're not going to get there any other way.
When writing an application, you need to decide how to structure your code. GUI libraries like Qt and Gtk+ and MFC are difficult because they encourage spreading their patterns all over the application. Same happens with libraries like OpenGl and DirectX. So the porting problem is not unique the gui libraries. If you built your application to use one gui library only and did what they recommend -- spread the gui library's patterns all over your code, then porting will be difficult and ports will definitely be more limited than the original code.
But fortunately, experienced programmers know there is alternative way to build an application. Instead of choosing a platform and using it's services, you design your custom platform. This can be a single function that contains all dependencies to gui libraries or opengl libraries etc.
Next question that comes is that the GUI library's API is HUGE. If you go duplicating the api, you just waste time rewriting the apis and with no benefit. But fortunately this misses the point. You're designing your application, not a gui library! Your application's scope is considerably smaller than the gui library's scope. So the API that you need is considerably smaller than the whole gui library's api.
A good design makes a single function to your application which contains all dependencies to the gui library. The gui library is just one function! How the function will look is like this:
class I { virtual void f()=0; virtual void g()=0; };
void DisplayGui(I &i);
One class and one function is all you're going to need. That one function will communicate with your program using f() and g() and display the gui. When you port your code to another toolkit, you just need to write DisplayGui() again. No other changes to your application are needed.
The Design of I class will determine how complex application you can build. But all gui library uses must be inside DisplayGui() function, and your program just implements I interface. So you'll have
void DisplayGuiGTK(I &i);
void DisplayGuiQt(I &i);
void DisplayGuiMFC(I &i);
And then you're done with your portability. (btw, it's good idea that I class should not be larger than 10 member functions -- but it needs to capture nature of your application, so I cannot give stardard class to use since it's dependent of your application behaviour.)
Next question is probably that all the code is inside DisplayGui() functions! Well, then your application is not doing anything and you should start thinking how you can contribute. Common cases is that DisplayGui() is about 500 lines long and rest of the application is 50000 lines long. So porting is considerably easier than trying to modify 50000 lines of code to use different gui library.
Unless doing full screen games
Why does a full-screen game require exclusive access to the sound card?
Latency. The more layers you put between your game engine and the speaker, the more latency you add.
It's perfectly acceptable if the sound chimes signaling new e-mail is half a second late. Not the same with in game sound. Games need to have at least one option giving as close as possible access to the hardware. Note that VoIP conversations too would benefit from the lowest latency possible.
(That's probably one of the reasons why most VoIP application let you pick a different sound configuration for sound alerts and for actual calls).
it would be best if sound enabled applications used API of sound-mixing deamons/abstractions such as ESD & Artd {...} or PulseAudio and Phonon
That's four already, and there are plenty more.
3 remarks.
- Backward compatibility :
Pulseaudio has compatibility layers for programs written for ESD or ARTSD.
- That's the four major that most people are likely to have. Of course there's Jack (which is actually kind of interesting for gamers and VoIP users due to its emphasis on low latency) and much more.
- As I said, there are plenty of libraries which feature plugins for several backends.
GStream, SDL, etc...
Most are so popular that you're bound to find them installed on most modern distributions.
The best part ? As they are almost standard in distributions, the distribution maker pay special attention to make sure that their local installation of SDL,etc. plays nicely with the latest sound-mixing daemon-du-jour.
So don't keep reinventing the wheel. Just pick one of the libraries, and let its plugins do the necessary interfacing with sound mixers.
If I were a software developer I too would concentrate on an OS that had industrial-grade (ie. standard, maintainable, guaranteed) interfaces.
Oh, you mean like DirectSound ? The API that got hosed in Windows Vista even though 99% of games counted on it to get low-level access to hardware and environmental sound processing technologies such as EAX ?
Yeah ! That's a nice idea !
Well, at least in consolation, DirectSound was droped in favour of the much more open and wide standard, OpenAL.
Every single solution out there gets replaced from time to time. The only difference is that for Microsoft, the last couple of major iteration where so much apart that people just forgot that even on Windows, some API gets deprecated in favour of others.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
In that case, Linux is doomed. There's gotta be some way to compromise freedom and standardization.
There is: the developer of the software picks the distributions that they're willing to support. For example they pick RHEL 5, SUSE 11, and Fedora 10. Everyone else has to manage on their own.
Done.
Chrome needs Vista or XP SP2; if you're using 2000 or 98 or ME you're out of luck. How is it any different with Linux?
Most applications don't use the full range of features with any toolkit, and generally use a small, shared subset of features. Why is there no uniform abstraction layer for, say, Qt and GTK, a library that takes genericized commands and then implements them in whatever environment the app is built for? If you needed something only available in one toolkit, you could include those separately, which would lead to a nice segregation between genericized and toolkit-specific stuff in your code. You'd be able to cut down substantially on code because instead of having separate functions and objects for each toolkit, you just have one that works with all.
Alternatively, is Linux was so easy to code for that porting your software for that 5% of users was only 5% of the software development effort, you'd see companies scrambling to create Linux software.
That's something the open source community actually controls.
Comment of the year
Comment removed based on user account deletion
Hence there's still one standard: the Windows API. Everything else just builds on top of it.
That used to be the case, but GP forgot to list yet another "official UI API" newcomer, which is WPF.
And that thing does not use Win32 UI API. It draws native-looking widgets, yes (though it fails utterly because of font rendering differences - something that will only be fixed in .NET 4.0), but it draws them itself, just like Qt does.
Good point on Android. We don't see the rate of development on it as we thought. Can they say why?
And double karma for the points about the kernel and Gnome & Kde
For every present, there is a past
Okay, let me call you out on your analogy. Ever wondered what happened to the Roman Empire? Mobs or tribes can bring down empires. But, of course, they don't do it in any single, headline-grabbing battle. Roman Empire = Microsoft. Germanic Tribes = F/OSS horde.
I fail to see where Google has a problem.
Gnome is the default DE of the three main distros, Ubuntu, Suse and RH/Fedora, so - and that's what they did - it's quite logical to do the port on Gnome.
Now Chrome is open source, so if anybody want to port Chrome to QT/KDE, well, they can.
As to why Google wants to port Chrome to Linux, well, they need to show goodwill to the open source community to beef up the Android Market.
And finally, I think we'll see the Gnome/KDE duality for a long, long time, simply because some people prefer C and others C++ and we're talking about free software.
This is one of the reasons that Java should have been used for the UI instead of GTK, but Linux zealots are too rabidly anti Java to make what would have been an eminently sensible choice. Great triumph of zealotry over common sense.
Google and Canonical should merge and release that to the public at a quarter year offset from the traditional Ubuntu.
Goobuntu 10.01 "Gooey Gnu" beta.
I don't therefore I'm not.
"there are several native toolkits there (Win32, MFC, .NET, ...)"
wrong, is the same toolkit wrapped, not three different toolkits
Well, yes. On Linux platform, there are usually choices. And it's not uncommon that the choices are unclear, no straight winner, ...
But being and application developer and targeting Linux then one has responsibility or privilege - depending on how you look at the problem.
If I'm a user, its really quite hard or nearly impossible to choose say sound system. OSS? Pusle Audio? ALSA? ...? After all, I just want to hear something from my machine without hickups or any other distortions.
But if I'm application developer for say some sound oriented application? Well, I'm already on totally different level when it comes to competency to choose a sound system: I'm not only able to simply listen to what I hear from the machine, I'm also a programmer with some knowledge about this and that.
So as developer, I have to (and should) choose which sound system to target thus helping end users to decide which one to choose.
Of course, in short term it leads to some conflicts - you get the machine and one sound application wants OSS, another Pulse, ... But after some time (i.e. few iterations later) we will have a winner. Because:
Thus, best susbsytem(s) will win. Because the best app. choose them and drive/help them. Because users want the best apps.
So, Google (and any other developer) should investigate options available and decide, which one to support based on what is best suited for the needs for their users and also best suited to be used for development. In that way, some options will get eliminated (by simple lack of attention), others get pushed up (additional attention will help them become better), some options will merge (and either strenghten or vanish).
So please, make a choice.
hany
I developed my game Mystic Mine on Kubuntu using nothing but Open Source tools: python/pygame, gVim, blender, the gimp, inkscape and audacity. I had no trouble getting it to work on any Linux (32-64bit), Windows and Mac OS X intel and ppc (installer packages included). Sound, graphics, ... no problem! I honestly don't know what they are complaining about, but they are probably doing something wrong or using the wrong tools.
No, because porting is only one part of the effort required to support Linux. The other is actual tech support, keeping your programmers, sales people and support personnell up-to-date with Linux etc. ...
"I love my job, but I hate talking to people like you" (Freddie Mercury)
Push API standards to help with program communication and integration, but still allow differences of course. Some Linux users think of "standardization" as taking away freedoms and conforming, when it does just the opposite. It allows for more competition and differences, because it allows you do try very different paths without causing headaches for community in general.
Promote true freedom - support standards and interoperability.
Oh! why can't the mighty Google do something that Mozilla and Opera have been doing for so long. Maybe this guys aren't as bright as they want you to believe.
Anyway, you want standards? maybe we should just start with the browser, and not only on Linux, but also on your beloved, closed source Windows. Yeeee! MSIE for everyone bitches!
Sorry, yes, I meant Spaces. But Spaces has some annoying bugs. Try binding an application to a space. Now go to a different space, and try to switch back to the application by clicking on the application's Dock icon. It doesn't always work. Instead, I use a keyboard shortcut that is a lot like GNOME's, but for me, Fluxbox's virtual desktop handling is ideal. I wish Spaces were more like that.
You want to be Picasso, get a fucking paintbrush!
Have you ever seen Picasso's work? Jumbled user interfaces give you the Picasso look for free!