2011-03-06

Portability versus innovation

Choosing between portability and innovation, is an article on LWN.net by Koen Vervloesem that nicely summarizes the debate about portable application development versus (non-portable) innovation based on a single platform (i.e., Linux).

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.