Although the benefits of portable programming are clear, I also have some sympathy for Lennart Poettering's position (which also gave a nice nod to TLPI):
In fact, the way I see things the Linux API has been taking the role of the POSIX API and Linux is the focal point of all Free Software development. Due to that I can only recommend developers to try to hack with only Linux in mind and experience the freedom and the opportunities this offers you. So, get yourself a copy of The Linux Programming Interface, ignore everything it says about POSIX compatibility and hack away your amazing Linux software. It's quite relieving!I wrote TLPI in such a way that it could be used for programmers whose goal was portability (to the point that it should be useful even to programmers actually working only on UNIX platforms other than Linux). However, as Lennart suggests, TLPI can equally be used in the converse way: as a guide to fully exploiting the features of Linux, without worrying about portability.
Writing TLPI so that it could be used in these dual roles seemed (and still seems) appropriate for the current circumstances. But, by the time it becomes necessary to do a revision of TLPI, it'll be interesting to see if the operating-system landscape has changed to such an extent that Lennart's argument becomes even more compelling.
I couldn't disagree any more strongly with the notion that we should forget about everything but Linux. That is the reason why the mass consumer market isn't going to be running Linux any time (as opposed to Android, or whatever): because we can't just leave things alone and work to compatibility above all else. And yes, that often means that exciting opportunities at innovation are intentionally ignored in order to retain a non-moving target.
ReplyDeleteHi Jon, while I understand your point (and the pages of TLPI show a lot of sympathy with your ideas), things are not so simple. There's an inevitable tension between portability and innovation, and the goal is to find the right middle ground. Further, Linux is solving problems today that weren't even faced by the older UNIXes and aren't addressed in any standards.
ReplyDelete