I kept reading wanting this to be interesting, but it's the same tired Unix incompatibility rant we've all been reading for 20 years now. First it was Sun needlessly extending Unix to the point where good software assumed 68k and wouldn't run on a VAX. Then it was AT&T needlessly reimplementing stuff like STREAMS instead of just using BSD sockets like everyone else did. Then it was Sun unbundling the compiler and forcing everyone to use proprietary/incompatible development environments. The list goes on and on.
Eventually everyone decided to sit down and write POSIX and X/Open and SUS, which was good. But development didn't stop when the standards were finished, and people again wanted to use tools and features on their platforms that weren't "standard" (GNU Make being a really good example from the article here -- no one who knows what they're talking about would serious consider using anything else. Even Sun ships it, for crying out loud). And history moved on, and platforms that didn't evolve in the direction the market wanted started to have trouble. OSF/1 (Digital Unix) and IRIX are dead now. HP/UX is on life support. AIX lives on as IBM's internal toy for tuning benchmarks on their big POWER6 boxes, but doesn't actually sell much.
So anyway, now the crisis du jour is Linux folks assuming they're building on Linux using the GNU tools instead of Solaris. Cry me a river. Sun is (well, was) as bad an offender in this space as anyone else. To the extent they supported anything "standard", it was because they wrote the standards around their own products post-hoc. But now they're a legacy platform, and their fans need to get used to living like the rest of us did for decades.
Well, yeah. It's not like Sun ever released a completely incompatible OS "upgrade" based on an entirely different codebase and standard set, right? :)
My point wasn't to defend linux, it was that this whole genre of platform flame is boring and useless. This stuff happens. It even happens for some really good reasons, like "improvements" and "features". It's been happening since the dawn of computing (at least), and it's even been happening in precicely this form since the Unix wars began in the mid 80's.
Just deal with it. Or don't. But stop complaining, because you won't fix anything.
At least in Solaris the kernel interfaces doesn't change from minor to minor release rendering existent binary drivers useless ;)
But that aside: At the end the text is not about Linux, about Solaris or AIX, FreeBSD, NetBSD, OpenBSD. It's about portability. Either we have to accept that there is a lock-in to Linux for many opensource development and stop all this portability stuff.
The article is about saying: Hey, use gmake if you want ... but keep into consideration, that the target system may be something else than Debian Lenny.
The next thing: I would like to see a standard way to install software on Linux. 17 distinct packages for Linux, just one of Mac OS X and 2 for (Open)Solaris. A standard would be nice here ... really.
And you have to take the following into consideration: Outside of the enthusiasts group something like binary compatibility guarantees something important for the admins. Improvements are good, features are good. But not at the price of breaking every bridge behind. At the end this hurts the Unix franchise, as the Microsoft franchise is simply a much larger market. We can't afford to fragmentize the Unix business by being to GNU/Linux centric. Deal with it. Solaris won't disappear, the *BSD won't disappear. But we should be able to ensure, that all can participate from open source development. And one factor is further development of the Unix standards to keep them current with the technological development, and not just cooking it's own soup.
Maybe I'm privileged then, because I got used to downloading software written for Linux and not necessarily getting it to compile without a few tweaks for my specific setup. It taught me my way around the OS and really helped me learn how to cleanly administer a system.
It really makes me appreciate a good package management system.
We support 3 million lines of code on every flavour of Linux, 32 and 64 bit architectures, as well as Mac OS X and Solaris (we use the Gnu auto tools).
Well yes and no (the codebase originated as VMS-only). The point is that going to Gnu tools helped us solve the problem, it didn't create the problem (as the OP was implying).
And this is the thing - the complaint seems to come down to "ensuring portability is hard in divergent environments" and the answer is "that should not be the sysadmin's problem, that should be upstream's problem". Up to upstream whether they want to deal with the pain up front in the design, or patch it as it comes.
There's an argument in there somewhere, behind the repetition of anecdotes, but I'm damned if I can figure out what it is. The idea that somehow people developing on laptops is bad because now the server has to support that development environment is absurd on its face, particularly given the amount of sheer crap that comes in a modern e.g. NetBeans install so that you can simulate the Java environment on your J2EE box on your workstation.
He rants about GNU make a lot, but there's a very simple reason why I, for example, write GNU makefiles and not standardized ones; GNU make is more useful.
I had this problem too. It sounded like he was upset that software written for Linux and assuming Linux tools doesn't run on his pristine server. It sounded like he wanted everything to compile on his old Digital Tru64 Unix Alpha box. I hate to say it, but I'm pretty sure that the world has continued to move on and evolve. Yes, people will start using libraries you don't have. Yes, people will stop writing workaround for old technologies. Yes, people will tend to write for their own environment first. No, it is not necessarily a bad thing.
It sounds like a guy who doesn't want to change, and I have a lot of trouble mustering sympathy for that. Oh, and I think he wants a pony too.
No ... i don't want a pony ;) I just want to be able to to compile code on Solaris, Linux, one of the BSD without having to make vast adaptions (or hope that someone else made it). It isn't even about libraries. Of course, you need libraries. It's about compliance to standards, and that Linux shouldn't invent it's own standard and instead work with the established standard bodies. Linux isn't the centre of the universe.
Obviously you didn't understand the point of the article. It's not about hating Linux or GNU ... it's just about the ability to use open source software outside the Linux Community without ending to throw out all this Linuxisms and GNUisms
At the end you can see it as the plea, that portability isn't just an afterthought ... and given the state of some makefiles and hard coded things in some open source developments you get the impression that it's a not-thought-about it at all.
PS: I'm from the Opensolaris side of the unix universe.
I gave up after a couple of paragraphs. Maybe I have a short attention span, or maybe this is just the same tired old argument.
During the Unix wars nobody gave a crap for standards, and these only came to be when Unix was starting to get some serious competition from non-unix operating systems.
The problem is, relying too much on standards leads to stagnation, and it is Linux that has prevented unix from standardizing itself into irrelevance.
I'm mostly a Linux guy, I admit, but I have worked, and still do, with other unixes (the ones spelled with all caps) every day and I must say that although they are unix (and I like the unix way of doing things), they are also a pain to work with and not "standard" at all (just put AIX, Solaris and IRIX side by side, and try creating users, managing ACLs, and so forth). The only standard thing about them is the lack of the small features that Linux admins take for granted and that make one's job so much easier (the so called GNUisms). Keeping your tools in the 1980's just because they are "standard" doesn't mean they are any good.
Don't get me wrong, once you have an AIX box humming along, it works just great. But so does a Linux one with added flexibility and "niceness".
There is a problem with maintaining standards. No matter how advanced your application, you have to rely on a tool over 30 years old (make). I think it would be insane to believe that the efforts of a single individual 30 years ago produced the best possible build system for modern software.
1. The problem is a different one: You develop for a 1-2 core machine and afterwards this stuff is destined to work on real servers. I can´t count how often i found massive scaling problems in systems you wasn´t able to find on a notebook, but was pretty obvious on larger system. Sometimes i was able to remove the problem, but often we replicated the development plattform by using 1-2 socket servers.
2. Obviously GNU make has advantages. I don´t have anything against GNU make. I just hate this Linux centric view. But from my perspective it would be more feasible to extend the standards (for example SUSv5 ;) ) to keep programs more portable between all Unixes and derivates. Free Software should be operating system agnostic.
3. I have to correct you: HPUX and OSF/1 is mainly on life life-support because of HP ill-fated decisions with PA-RISC and Alpha in favour of Itanic. AIX isn´t a toy for testing ... in the real world there are many systems running those operating sytems like Solaris and AIX. You just have too look at the market data: Sun and IBM still sell systems worth billions of $.
4. Yes gmake is in Solaris ... because of the dependence of many build procceses. But i´m still thinking it would be better to define unixwide standards that include GNU make. At the moment the behaviour is similar to Microsoft. We have our LSB .. that´s a standard ... the bad thing ... it´s a extended version of POSIX, SUS and so on. I think people should ask, why there is the need for a extended own standard instead of extending the existing standards.
At the risk of being a bit gnomic: the standard is here to serve me, I am not here to serve the standard. Apparently the Linux community has more of a taste for writing code than worrying about bureaucratic processes. I can't say that I blame them.
When everybody thinks like that, only bureaucrats define standards. Lack of standards let to many problem: I´m just thinking about the amount of power supplies i have to carry. A power supply for the company mobile, a power supply for the iPhone (or at least the USB cable), a power supply for the notebook. I have three small switches from three vendors needing three separate voltages (a standard would be nice here, for example for a central power supply feeding all this stuff). My USB hard drives have their own power supply. The 1.5 TB Maxtor from the special offer have a different one than the 2 1TB Fujitsu-Siemens drives. Standards are bureaucratic, but they help ... but we have to work on them, to enable them to serve us. And at the end it´s the same at power supplies as with Unix standards.
I see one legitimate point in here: There's a lot of faux portability going on these days. The software uses autoconf/automake and it's full of ifdefs so it should just configure/make on any platform, but actually it only runs on Linux/x86. IMO the solution is for such software to stop pretending to be portable (as a bonus, removing all those ifdefs should make the code more readable), but that won't help the grumpy old Solaris users.
Eventually everyone decided to sit down and write POSIX and X/Open and SUS, which was good. But development didn't stop when the standards were finished, and people again wanted to use tools and features on their platforms that weren't "standard" (GNU Make being a really good example from the article here -- no one who knows what they're talking about would serious consider using anything else. Even Sun ships it, for crying out loud). And history moved on, and platforms that didn't evolve in the direction the market wanted started to have trouble. OSF/1 (Digital Unix) and IRIX are dead now. HP/UX is on life support. AIX lives on as IBM's internal toy for tuning benchmarks on their big POWER6 boxes, but doesn't actually sell much.
So anyway, now the crisis du jour is Linux folks assuming they're building on Linux using the GNU tools instead of Solaris. Cry me a river. Sun is (well, was) as bad an offender in this space as anyone else. To the extent they supported anything "standard", it was because they wrote the standards around their own products post-hoc. But now they're a legacy platform, and their fans need to get used to living like the rest of us did for decades.