shd / uade team wrote:GNU/Linux has hugely boosted development and skills for UNIX.
GNU has, Linux has not. With GNU, programmers would actually read the GNU coding standards. If they followed them, they would be good programmers. I don't see much of that happening with 90% of projects on freshmeat.
Actually the only realistic way to do sw devel in hacker style is evolutionary.
Have you ever heard of this thing called "design"? All the best projects have one of these. Because software has actually been designed with the thought of other operating systems and architectures in mind, and has therefore been designed to be flexible, the actual job of getting the software to work on other platforms is relatively painless.
Writing deliberately for one platform, then hacking it to get it running on another, then hacking it again, and again and again is how you end up with unmaintainable, unusable code. Before your very eyes, it has become impossible to change anything without breaking something else. This isn't just what they warn you about, it really happens.
Are you writing Linux software, or UNIX software. If you're writing UNIX software, then write it for UNIX. Read the entire book of autoconf macros. Understand where the differences lie. Even if this is only subconcious knowledge, you'll do a better job writing multi-platform software.
autoconf became popular due to GNU/Linux success
No, GNU autoconf became popular due to GNU's success. The GNU basic toolset is usually superior to any other UNIX basic toolset. All Linux did was bring UNIX to the commodity desktop PC. Before that, everyone was still using GNU, but they were all big server owners and administrators.
Linux has no need for autoconf, it can comply to GNU's idealised OS. It even uses GNU libc. autoconf is popular because it makes developers easily capable of supporting even the most esoteric UNIXes. You can be happy knowing ./configure will make the code compile on your platform and you don't need to hack code manually to get it working.
We have copied ./configure, and --prefix= stuff from there obviously even if we don't touch M4
You should use autoconf rather than parody it in nonsensical shell scripts. For example, $prefix/doc is the wrong place for documentation on many systems, it should be $prefix/share/doc. Where can I change that? Oh, I can't, your --docprefix option is completely ignored. Great. If you had used autoconf, you wouldn't need to have spent any time manually writing that broken configuration option, and I would have a configuration option that actually worked. If you used automake, which generates makefiles to the GNU coding standards, packagers could just use those de-facto standards to make your code build in a temporary place while having paths hard-coded to their true installation place. But no, you didn't use automake, so you have to spend time manually writing code to let packagers do their job.
Autoconf wouldn't solve the select/poll problem totally. Yet another #define into headers/code and there would still be more tweaks to code. We just demand poll(). It is found on all modern unixes, so why not MacOSX? Even Solaris has it!
select() works on N systems, poll() works on N-1 systems. Those systems will never change, but your software can easily change, and in fact I have changed it. Every day you demand poll() is a day your software doesn't work on Mac OS X. Your point again?
select() even works on non-UNIX systems, given that it's part of the BSD socket programming interface (as used in Winsock, AmiTCP, etc). The same can't be said for poll().