News for hackers. Stuff that matters.
Re:A Generation Lost in the Bazaar (2012) by makomk on Tuesday December 30, 2014 @05:22AM (#8813984)
Any non-trivial code is non-portable between Unix systems in practice. No system implements all of POSIX, even when they do they often disagree on how parts of it should be implemented, and some software needs features that simply aren't in POSIX. (For example, high-performance webservers need a better way of polling for events than select/poll, and that's platform-specific.)

As for libtool, anything that deals with shared libraries is inherently non-portable. The file extension they're created with and the compiler and linker flags to create them are entirely platform specific - POSIX won't help you there. (Also, a lot of libtool's hairyness exists because some older proprietary Unix systems don't support shared library dependencies.) If you're only planning on supporting open source OSes you don't actually need libtool though - their native toolchains are either the GNU one or something compatible with it, and include most of its functionality natively.

Re:A Generation Lost in the Bazaar (2012) by regularfry on Tuesday December 30, 2014 @05:51AM (#8814067)
And this is because there is nobody with authority to force the right solution.

Compare POSIX to the Java spec: without Sun forcing coherence, "write once, run anywhere" would have died very early on, and we'd be saying the same thing about Java as you've just said about POSIX.

Re:A Generation Lost in the Bazaar (2012) by chris_wot on Tuesday December 30, 2014 @11:00AM (#8815083)
Curious though, what do you use: maven or ant?
Re:A Generation Lost in the Bazaar (2012) by regularfry on Tuesday December 30, 2014 @12:00PM (#8815412)
Neither.
Re:A Generation Lost in the Bazaar (2012) by quesera on Tuesday December 30, 2014 @10:41AM (#8814987)
> webservers need a better way of polling for events than select/poll, and that's platform-specific.

POSIX was just an example, and it is possible to write portable code using #ifdef. But you have to have a goal of writing portable code.

Re: libtool, most of the reason it's ever necessary is because of the historical rush and the incompatibilities created. Again, a single command line switch could handle that.

Still, plenty of software which has clearly only ever been built for Linux requires libtool. It's just the way things are done, just like autoconf. It works, poorly, inefficiently, fragile-ly -- and to most, mysteriously.

Appreciation for autoconf and libtool depends on one's position on the defeatism-pragmatism-idealism spectrum.

Re:A Generation Lost in the Bazaar (2012) by mcguire on Tuesday December 30, 2014 @06:07PM (#8817270)
"POSIX was just an example, and it is possible to write portable code using #ifdef.."

Yes, two ways. One way uses autoconf (and tests each individual option to see which branch of the ifdef to use) and the other uses Imake (and has a big, continuously maintained database of which option to use on each system).