When considering what OS to develop software under, one should consider the level of utility he or she expects the software to have.\n Regarding OS, the way I see it, there are two basic catagories:\n 1) Those OS that are POSIX compliant 2) The rest What is POSIX? Wow, I am suprised to see no mention of POSIX anywhere here. POSIX is a set of OS interfacing standards developed by the IEEE society. It specifies API's for the manipulation of files, processes, interprocess communication, and threads. POSIX is extremely important to serious application developers because it allows us to develop code that is portable and easily read and understood. If you set out to develop any serious, portable application, then you want to choose a POSIX compliant OS as your development environment, period. In POSIX compliant OS, things such as multi-tasking, multi-threading, and networking are a natural extension of the OS, and many system calls are already defined to do the job. Most POSIX work is based on the UNIX OS, however, WindowsNT, VMS, and OS/2 are also POSIX compliant. This is by no means an exaustive list of POSIX compliant OS. You can see what bearing this has on software utility. If you dont care to use your software on any other platform BUT the one you develop it on, or if your application does not have to talk to other computers of multiple OS, or if it is not a true multi-tasking or heavy duty computing application, then you are safe with any OS, including POSIX compliant OS. Otherwise, there is no alternative but to use a POSIX OS. Among these POSIX OS, it is simply a matter of preference. GUI portability is quickly becoming a non-issue with lots of multi-platform GUI API's emerging. My personal preference is Linux because it is free and open source. When I develop POSIX compliant code on linux, I can be sure that my application will port to all of the systems which I frequently use - including IRIX, Solaris, AIX. Linux is also the emerging standard for high-performance cluster computing. Code developed on POSIX compliant systems is easily ported to linux. If I dont like the behaviour of some built-in tool, I can grab the source and change it to my liking, then port the new tool to any other POSIX system I want. The advantages are limitless. Eight years ago, almost to date, linux transformed my Windows PC (which was mostly a toy) to a serious computing workstation and development environment. It is to this transformation that I give credit for all of my programming skills and awesome marketability as a programmer.
When considering what OS to develop software under, one should consider the level of utility he or she expects the software to have.\n Regarding OS, the way I see it, there are two basic catagories:\n 1) Those OS that are POSIX compliant 2) The rest What is POSIX? Wow, I am suprised to see no mention of POSIX anywhere here. POSIX is a set of OS interfacing standards developed by the IEEE society. It specifies API's for the manipulation of files, processes, interprocess communication, and threads. POSIX is extremely important to serious application developers because it allows us to develop code that is portable and easily read and understood. If you set out to develop any serious, portable application, then you want to choose a POSIX compliant OS as your development environment, period. In POSIX compliant OS, things such as multi-tasking, multi-threading, and networking are a natural extension of the OS, and many system calls are already defined to do the job. Most POSIX work is based on the UNIX OS, however, WindowsNT, VMS, and OS/2 are also POSIX compliant. This is by no means an exaustive list of POSIX compliant OS. You can see what bearing this has on software utility. If you dont care to use your software on any other platform BUT the one you develop it on, or if your application does not have to talk to other computers of multiple OS, or if it is not a true multi-tasking or heavy duty computing application, then you are safe with any OS, including POSIX compliant OS. Otherwise, there is no alternative but to use a POSIX OS. Among these POSIX OS, it is simply a matter of preference. GUI portability is quickly becoming a non-issue with lots of multi-platform GUI API's emerging. My personal preference is Linux because it is free and open source. When I develop POSIX compliant code on linux, I can be sure that my application will port to all of the systems which I frequently use - including IRIX, Solaris, AIX. Linux is also the emerging standard for high-performance cluster computing. Code developed on POSIX compliant systems is easily ported to linux. If I dont like the behaviour of some built-in tool, I can grab the source and change it to my liking, then port the new tool to any other POSIX system I want. The advantages are limitless. Eight years ago, almost to date, linux transformed my Windows PC (which was mostly a toy) to a serious computing workstation and development environment. It is to this transformation that I give credit for all of my programming skills and awesome marketability as a programmer.