I’ve been looking around at various open source IM clients such as GAIM and Miranda since I want to learn how IM clients are implemented. I downloaded the source for both and tried to compile both. GAIM is supported on multiple platform while Miranda is an Windows-only IM client. Compiling GAIM on Linux was basically running “make” and everything compiles. Compiling it on Windows was more complicated but GAIM has updated their site to include a script that will download all the various components that are needed in addition to the GAIM source. This made it a lot simpler to get a working compile, but even without the script the site had decent instructions on what was needed. For most UNIX/Linux open source projects except the most advanced and complicated, compiling the source code is pretty straight forward and it allows newbies to dive into the code.
Windows open-source projects, on the other hand, are different. The last few projects I’ve tried to compile were filled with problems. One problem is that there is no standard development environment for Windows. UNIX has the GCC suite which is open source and easily obtainable (if not already on the system) while Windows’ primary development environment is the commercial Visual Studio tools. The developers themselves seem to not have standardize on a single platform. Miranda, for example, is developed on MingW by some and Visual C++ by others. Microsoft also doesn’t make it any easier despite releasing the free Visual Studio express editions (which they admits isn’t meant for windows development anyway).
Thus, my attempt to compile Miranda wasn’t too successful (I don’t normally do much development on Windows so I’m not as familar with it to begin with.). I installed Visual C++ Express only to find out that I also needed the Platform SDK. Once that installed, I still needed other things, but it wasn’t clear to me where I get them. In the end, I wasn’t able to compile my own working executable. I’m sure I’ll be able to with a little more research, but it definitely takes a lot more work then on Linux.
While Microsoft talks about the importance of the developers, they really mean commercial developers. While they are doing many things to try to fend off open source competitors, they should really go back and do something OS vendors used to do (and UNIX vendors still do): include development tools as part of the OS.