I should also mention: this isn't something you will be able to convince someone of just by telling them. You have to experience it for yourself. You will blow yourself away by what you can do...
The fundamental difference between developing under Windows and under UNIX and its derivatives (I use FreeBSD), is that under UNIX everything other than object files, executables, and libraries, is in flat text files. This includes your project files (i.e. makefiles), your version control files, your documentation (man pages, LaTeX, etc). The formats are well documented. Furthermore, you have all the tools you need to do whatever you like to these text files. And the upshot of this is that you can automate almost anything, to the point where typing `make' can check your latest sources out of various repositories around the 'net, compile them, run regression tests on them, and build and cut your release CD, and maybe even send out the mail saying a new release is available and what the changes are.
Under Windows, you have some great tools - but they don't have this underlying simplicity, and that is where *true* power originates.
When I develop under Windows (not very often anymore, I'm glad to say), I still use command line compilers, make, etc, to get as much of this benefit as I can. But it isn't quite the same...
My company develops FreeBSD-based Internet firewalls and VPN gateway products. All of our coding is done in C++. We get far more code reuse, consistency and robustness as a result. For example, part of our class hierarchy is Process->Server->Proxy->Relayer. With this C++ library for writing servers and proxies, adding new servers or proxies that have consistent authentication methods, log message formats, etc etc, is usually always a trivial exercise (for example, it took only a few hours to implement a POP3 server, most of which was writing the new classes to handle maildrops).
I should also mention: this isn't something you will be able to convince someone of just by telling them. You have to experience it for yourself. You will blow yourself away by what you can do...
The fundamental difference between developing under Windows and under UNIX and its derivatives (I use FreeBSD), is that under UNIX everything other than object files, executables, and libraries, is in flat text files. This includes your project files (i.e. makefiles), your version control files, your documentation (man pages, LaTeX, etc). The formats are well documented. Furthermore, you have all the tools you need to do whatever you like to these text files. And the upshot of this is that you can automate almost anything, to the point where typing `make' can check your latest sources out of various repositories around the 'net, compile them, run regression tests on them, and build and cut your release CD, and maybe even send out the mail saying a new release is available and what the changes are.
Under Windows, you have some great tools - but they don't have this underlying simplicity, and that is where *true* power originates.
When I develop under Windows (not very often anymore, I'm glad to say), I still use command line compilers, make, etc, to get as much of this benefit as I can. But it isn't quite the same...
My company develops FreeBSD-based Internet firewalls and VPN gateway products. All of our coding is done in C++. We get far more code reuse, consistency and robustness as a result. For example, part of our class hierarchy is Process->Server->Proxy->Relayer. With this C++ library for writing servers and proxies, adding new servers or proxies that have consistent authentication methods, log message formats, etc etc, is usually always a trivial exercise (for example, it took only a few hours to implement a POP3 server, most of which was writing the new classes to handle maildrops).
I *love* using C++ for systems programming!
AFAIK web polygraph is free (see http://polygraph.ircache.net).