You've all probably read somewhere that Valve seems to be pushing their technology towards Linux. Looks like it's really gonna happen. So what do you guys think? Could this be the push Linux needs to become just a little more popular among the "average" computer user/gamer?

Do you not remember the flak id Software got when they released RAGE and it didn't work on Windows systems properly? How would you expect this to work with an OS with so many configurations possible it would take you a milllenium to test them all?

You honestly expect that everyone will manage to write a program that works on all of these, and not leave the user high and dry when a major component changes in their distro (udev being ditched, glibc being replaced, etc)?

If I were a Linux developer I would be sick to my stomach right now.

I'm not trolling, I'm serious here. If they can manage to get this to work, I will be very impressed.

That article means pretty much nothing so far. At most you could assume that Valve will try to bring more of their own titles to Linux. Would that be enough to make Linux more popular? Maybe, if all you play are Valve titles. :P

I think there might be a bit more to it than that though. Increasingly, desktop platforms are being locked down. Apple lead the way with the app store model iOS, but now they're doing the same thing by introducing the app store and API restrictions on Mac OS. Microsoft are going the same route, introducing an app store for Windows, using UEFI secure boot to prevent 2nd OS installation, restricting API access on Windows RT.

All of this is a threat to Steam. It's possible to foresee a day when default installs of Windows and Mac OS will not allow purchase and installation of software from anywhere other than their respective app stores. There'll be ways around it, by purchasing professional editions of the OSes, or jailbreaking the basic editions, but 99% of consumers won't use them, which will squeeze out 3rd party distribution platforms like Steam.

None of that is guaranteed to happen, but it's a big enough threat to motivate Valve to find an escape route. Their response? Step one, make Linux a supported Steam platform. Start porting Valve games to it, and encouraging other vendors to do the same. Step two, produce a fully integrated version of Linux that combines a stripped down version of the OS with Steam at a deep level. In essence, a Steam OS, which is given away free to hardware vendors, who pre-install it on commodity PC hardware to produce what are essentially Steam consoles.

Mark my words, I wager we'll see a Steam OS shipping by 2014 at least.

This is relevant to my interest. Practically the only reason I've stuck with Windows in the past is for games. I don't hate Windows or anything, it's just be nice to realistically have another (cheaper) option. I wonder if MS will ever release Office for linux?

- All games who had a Linux version elsewhere are available to Linux users through Steam and devs make big money

- Enjoying its new found popularity through games, Linux indeed needs better sound libraries/hardware vendor support

- Devs and programmers do the right thing and make things go forward with those aspects

- Linux becomes more and more popular and more games are ported to Linux. DirectX is progressively forgotten and OpenGL evolves faster

- We are in 2024. Windows' shares have gone under the floor and Bill Gates is now a guru in Africa

So why hasn't it happened so far? The problems have been known for years, yet we still got an incredibly fractured platform where the only way to make software work reliably is to compile directly from source on the system it's supposed to run on.

Considering the typical mentality of today's Linux user I don't see things change. The only situation I can imagine is if some huge company (think Google) starts pushing Linux by having some standard components developed that would help overcome these issues.

Then (and only then) I can see Linux in a position to replace Windows.

Jonathan said:
Step two, produce a fully integrated version of Linux that combines a stripped down version of the OS with Steam at a deep level. In essence, a Steam OS, which is given away free to hardware vendors, who pre-install it on commodity PC hardware to produce what are essentially Steam consoles.

Mark my words, I wager we'll see a Steam OS shipping by 2014 at least.

I was going to suggest something along these lines. I've always amused myself with the idea of a gaming machine and a gaming OS, like a PC-console hybrid. I'm included to use my Windows PC like that anyway.

Phml said:
Anyone who believes Linux and average user can go together is utterly out of touch with reality,

I wouldn't phrase it like that. All Linux lacks is some polishing and a GUI interface that's both standard and easy to use and most of the problems would go away.
However, Linux in its current state won't ever mix with the average user.

Phml said:
and anyone who interprets this as implying I dislike Linux is part of the problem.

I wouldn't dispute that. The mantra of the Linux community seems to be 'There is no problem with Linux'. Of course with such an attitude nothing's gonna change. If you just deny the problems something has it ain't gonna be fixed.

Jodwin said:
Assuming that would happen, and I really doubt it, then so what? Is it somehow magically going to make Linux a popular gamers' OS just because there's a few indie games available there?

More popular doesn't mean most popular, but it's a first step in this direction.

@Graf: you answer in your own post:

So why hasn't it happened so far?
[...]
The only situation I can imagine is if some huge company (think Google) starts pushing Linux by having some standard components developed that would help overcome these issues

If the trust in Microsoft continues to crumble for companies like Valve or Google, who knows what will happen next? It could be a "survival move" on the long term.

We aren't talking about Linux becoming the primary and perfect OS for Windows in 2 to 5 years.

Actually, I agree with you in these points. I think the famous Andrew S. Tanenbaum quote (The nice thing about standards is that you have so many to choose from.) pretty much sums up what Linux is right now. Sometimes it seems every programmer wants to write their own library for every "Hello world" program they develop. However, as others have stated, if a big enough company (popular, mainstream, because for instance the giant Red Hat invests in Linux but no one outside the tech world knows about it) starts to invest in it, who knows? "A standard to end all standards"? Won't developers see the gold pot at the end of the rainbow?

Graf Zahl said:
So why hasn't it happened so far? The problems have been known for years, yet we still got an incredibly fractured platform where the only way to make software work reliably is to compile directly from source on the system it's supposed to run on.

This isn't true at all. For the most part you can compile an x86 or x86-64 binary that will work on most Linux systems with the proper libraries installed.

Why most instead of all? The problem is that we keep looking at Linux as the operating system. It is merely the kernel. An x86 Android probably doesn't run your standard ELF binaries, and yet it is still Linux. We will always have this problem as long as we continue to confuse the kernel for the operating system.

The operating systems are Ubuntu, Fedora, Debian, ArchLinux, Android, etc. It is possible to compile one binary that works on most (Skulltag does so, but for an even better example look at libfmodex), but you do have to pick your supported platforms.

Phml said:
Anyone who believes Linux and average user can go together is utterly out of touch with reality, and anyone who interprets this as implying I dislike Linux is part of the problem.

Are we? Just recently I proven my theory that the average user can use whatever operating system they're put in front of for an extended period of time. My mom, who doesn't quite know what a "tab" is in computing, recently had to use my dad's work laptop (Windows XP) and said "OK, how do I shut this thing off?" Apparently Windows isn't THAT easy. ;)

This is the same reason why people love Mac OS X. If the system works, they don't care what the OS is (in my mom's case, Xubuntu).

Jonathan said:
Their response? Step one, make Linux a supported Steam platform. Start porting Valve games to it, and encouraging other vendors to do the same.

No current Linux version can do that, for reasons that others have already cited but I'll gladly repeat: poor cross-distro binary compatibility and library dependency hell, which makes end-user-machine-specific compilation from source the preferred, if not the only practical way of distributing software, which in turn is incompatible with the way commercial videogames have been marketed until nowadays.

Windows and Mac OS software was so easy to sell on a disk because everything comes statically linked and precompiled, on OSes with a predictable API, ABI, and any required libraries are either statically linked or provided during game installation from disk. In particular, game developers develops against those libraries (DirectX, Direct3D, PhysX etc.)

The problem with the Linux world? The statically-linked, precompiled executable is pretty much excommunicated like the Devil from most of the Linux community. No sane company would bother maintaining a dozen of slightly different executables in order to tackle distro- or window-manager specific bugs, and those that tried didn't exactly strike it rich.

Jonathan said:
Step two, produce a fully integrated version of Linux that combines a stripped down version of the OS with Steam at a deep level. In essence, a Steam OS, which is given away free to hardware vendors, who pre-install it on commodity PC hardware to produce what are essentially Steam consoles.

This would work, but it would essentially create their own version of the "walled garden" model which triggered (hypothetically) this whole thing to begin with. So Steam would be the demons, and become a zombie themselves ;-) That is, unless they were far more liberal about licensing it and had a team of developers making sure that it works exactly the same on the various possible future hardware platforms (ARM is expected to gain momentum, though Intel will still be King, either in the old IBM PC-compatible BIOS flavor, or the newfangled UEFI or even MacIntel).

For desktop, the "Steam OS" could presumably run in a VM of sorts adding yet another layer of isolation and abstraction, and yet another performance hit in the name of "enhanced end consumer services".

Blzut3 said:
This isn't true at all. For the most part you can compile an x86 or x86-64 binary that will work on most Linux systems with the proper libraries installed.

Why most instead of all? The problem is that we keep looking at Linux as the operating system. It is merely the kernel. An x86 Android probably doesn't run your standard ELF binaries, and yet it is still Linux. We will always have this problem as long as we continue to confuse the kernel for the operating system.

Thanks for confirming my point. 'Most' means that it isn't reliable. Period. What if your system is the oddball exception?

But tell me what you want, the dependency hell on Linux is magnitudes worse than on Windows and that is and will forever be the big problem here.

Graf Zahl said:
Thanks for confirming my point. 'Most' means that it isn't reliable. Period. What if your system is the oddball exception?

You missed the point of my post I think. My point is that the oddball systems are not the target audience. The Linux kernel encompasses an extremely large number of devices. Expecting a binary to work on all Linux systems is a completely unreasonable target. And this goes for any kernel (Darwin and NT included).

Instead I expect Valve to support Ubuntu. If your operating system is Ubuntu compatible (which in my experience includes all common user-oriented ones), then steam will also work on those platforms. This is no different from how Steam "works" on Ubuntu right now through Wine. (OK, so a few more common distros may be on their list, but you get the idea.)

If you believe that you can target an OS through the kernel, then I suppose you believe PureDarwin is a perfect acceptable Mac OS X development platform.

That said I must reiterate that binary only programs work for a long time across many Linux based operating systems. I can still run the Descent 3 binary on the latest version of Ubuntu. Skulltag is compiled against Ubuntu 10.04 and it works fine (like I said before, notice there is only one version of fmod for an architecture). I even managed to install the Ubuntu 10.04 version of Skype on Ubuntu 9.04.

Blzut3 said:
That said I must reiterate that binary only programs work for a long time across many Linux based operating systems.

Quite the opposite, only Windows is known to (have) clinged with claws and teeth to binary compatibility at any cost, as evidenced by a breadth of compatibility that ranges from DOS v1.1 to Windows 7, with exceptions being, well, exceptions, rather than the norm. You can still fire up a Win 1.x app on Windows 7 today and it will work.

On other OSes, binary compatibility was (and is) much, much more short-lived, unplanned, and the core philosophy is quite the opposite: binary compatibility is not guaranteed even among successive versions, and if it ever occurs, this is to be taken as dumb luck, rather than as a design feature.

Yeah, there is a thing called "LSB" and there's no reason why a "hello world" type of binary (aka something sufficiently simple/trivial) or a statically linked, 100% self-contained one should not work, but that's not The One True Linux Way (TM).

Maes said:
with exceptions being, well, exceptions, rather than the norm.

Is that why Windows Vista compatibility was a big deal back in the day?

Sure, I'll give you that you can run a Win 1.x app on Windows 7 with some reasonable expectation of it working, but it doesn't mean that the binary compatibility of a Linux based OS is something to complain about. It's better than Mac OS X, and for the purposes of this discussion that should be good enough since Steam is available for Mac OS X as well as many other games.

In the Windows world, major compatibility breaks occurred only when they tried to introduce some NEW!!! and ENHANCED!!! technology or architecture which resulted in breaking changes, but the core API (Win32) has remained unchanged ever since Windows 95. Some of these changes were, indeed a "great leap forward" where some existing functionality was extended (e.g. Win32 vs Win16, DirectX vs WinG etc.) or a major overhaul in the kernel/driver architecture occurred e.g. the switchover to the NT kernel (which is still in use, from 2000 up to Windows 7 and 8), the obsolescense of VXD and mixed-mode drivers, etc.

Some were much more questionable like the total audio driver architecture change in Windows Vista and 7 (while keeping the same kernel as Windows XP/2000/2003) and the entire HD video built-in DRM. Some versions like Vista or Millenium were full of questionable changes, so it would not be fair to single them out as an example of how MS too shuns backwards compatibility. If it happens, it's almost always due to oversight/accident in the Windows world, and not something planned, like on Mac OS.

With UNIX/Linux, you're probably standing on a neutral ground: stuff might work in X years from now if they [insert list of conditions here] but nobody is putting any effort into actually making stuff forward/backwards compatible at any cost, like on Windows, and on the converse, there's no planned obsolescence built-in. If it works, it worked. If it doesn't, well, tough cookie. Recompile from source.

Maes said:
No current Linux version can do that, for reasons that others have already cited but I'll gladly repeat: poor cross-distro binary compatibility and library dependency hell, which makes end-user-machine-specific compilation from source the preferred, if not the only practical way of distributing software, which in turn is incompatible with the way commercial videogames have been marketed until nowadays.

Windows and Mac OS software was so easy to sell on a disk because everything comes statically linked and precompiled, on OSes with a predictable API, ABI, and any required libraries are either statically linked or provided during game installation from disk. In particular, game developers develops against those libraries (DirectX, Direct3D, PhysX etc.)

The problem with the Linux world? The statically-linked, precompiled executable is pretty much excommunicated like the Devil from most of the Linux community. No sane company would bother maintaining a dozen of slightly different executables in order to tackle distro- or window-manager specific bugs, and those that tried didn't exactly strike it rich.

The first part isn't a matter of speculation, Valve are porting Steam and the Source engine to Linux right now. Whatever the difficulties, they are doing step one. And those compatibility difficulties are exactly why they would likely go further, and try to produce a better experience by creating their own distro/OS, with a controlled set of drivers and APIs.

This would work, but it would essentially create their own version of the "walled garden" model which triggered (hypothetically) this whole thing to begin with. So Steam would be the demons, and become a zombie themselves ;-) That is, unless they were far more liberal about licensing it and had a team of developers making sure that it works exactly the same on the various possible future hardware platforms (ARM is expected to gain momentum, though Intel will still be King, either in the old IBM PC-compatible BIOS flavor, or the newfangled UEFI or even MacIntel).

Of course it would be a walled garden, but Steam is already a walled garden. This isn't about Valve protecting openness or turning Linux into some perfect gaming platform, it's about them preserving their own platform by removing its dependency on Windows and Mac OS. It's like what Google did with Android, taking Linux as a base and building a stable, controlled platform on top of it.

I'd really like to see a stable, binary-compatibility-maintaining Linux based OS become the defacto standard Linux to use by a large number of people, even if it isn't aimed at the Linux crowd that's obsessed with doing things their way. I know there's Ubuntu, but it's a piece of shit, so...

Perhaps more ideal would be a free Windows alternative? Something like ReactOS, but more fully developed, stable, and more compatible with modern forms of Windows than 5.x.

I like how Maes and Graf both seem to love pretending Linux is still like it was 14 years ago and hasn't evolved since.

For what it's worth, I'll dispute maes' claim of Windows 7 running DOS/Win1.x programs still. Technically true, but only on the 32-bit version; I'd guess that the 64-bit version is far more common. in which case, your SOL to run anything older than Windows 95, and nothing is guaranteed until you get into apps designed specifically for Windows XP or newer.

Really, the largest issue Linux faces today is the rather abysmal state of desktop environments with its current state of flux (GNOME 3 and all)... and even that's relatively minor. (BTW Maes, thanks for claiming that someone using a different window manager is somehow magically going to make binaries stop working. Nearly lost my soda from laughing ;-)

chungy said:
BTW Maes, thanks for claiming that someone using a different window manager is somehow magically going to make binaries stop working. Nearly lost my soda from laughing ;-)

It is certainly enough to fuck up certain apps' behavior e.g. Java Swing apps with regards to drawing surfaces, focus and mouse grabbing. Or can you guarantee that there's absolutely no problem whatsoever with the look, feel and functionality of ANY X Server app because of the window manager?

chungy said:
I like how Maes and Graf both seem to love pretending Linux is still like it was 14 years ago and hasn't evolved since.

If it has evolved that much, where's the numbers showing the progress? It should massively gain market share but that just doesn't happen.

But sure, it requires a dedicated Linux user to deny the problems perceived by the outside and just regurgitate 'It's all fine'.

But well, if it was all fine, I'd be certain that more people outside the hardcore group would use it.

So, bottom line, all is not well. Problems may have been reduced since 10 years ago but they still aren't gone. And still most current Linux users seem to pretend that the problems are minor and not relevant. Yes, maybe to you they are not relevant - but you are not the general public.

As long as the software developers feel that distributing binaries is not feasible, Linux won't ever get out of its geek corner.

IMO Linux never "outgrew" UNIX's well-deserved fame of being an OS for the technicians, the lab people, the "white coats" if you wish. Even until 1997-1998 I recall that computer magazines had pretty much this ranking for OSes:

DOS: the past

Windows: the OS for the rest of us, that brought computers to many people

Mac: well known in certain circles (DTP, art, etc.) and to a close-knit community of aficionados.

UNIX: the OS that "runs the internet". Only for the experts! Keep out! Very demanding! Very hard to run (it WAS much more taxing on the hardware than any other OS, too, at least on IBM PCs)!

Solaris, Nextstep, etc.: exotic stuff you're not very likely to see.

Amiga workbench, Atari GEM etc.: you only dealt with those if you worked in TV production and MIDI composing, accordingly, though that had started to change by 1998.

Linux IS essentially a UNIX derivative, and it's the very core philosophy of that OS that prevents it from truly ever becoming "for the masses", at least if certain things like app and driver installation don't become more like on Windows (I've got to say, ATI has some linux driver installers that reminded me of DOS, and are certainly a step up from having to compile from source :-D )

Linux, like UNIX, will always be a technician's OS: raw, naked, and with all the probing points exposed, which you dare not touch if you're not one of the white coats.

There's only one exception to that: Mac OS X, but only because Apple went to great pains masking the unix-y stuff from the user (restricted hardware also helps a lot with doing away with one of Linux's major PITAs: device drivers). You could say Android takes this even further, as you normally don't even get a built-in console access like you do in Mac OS X..