Peter Åstrand wrote:
> The MSVC compiler might be free today, but what about tomorrow? The
> history also indicates that MS moves quite rapidly when it comes to
> development environments: The 2008 version might soon be replaced with
> something new and incompatible. This has happened numerous times
> before. In fact, when I started working with TightVNC, one problem I
> had was that the build system required MSVC 6.0, but that version
> wasn't available any longer...
>
> MSVC also has some other serious limitations, such that it only
> supports compiling code that's are located on local drives. Samba
> shares, for example, does not work. (At least this was the case last
> time i checked.)
>
> If you use MSYS, Cygwin is not necessary. So I think it's safe to say
> installing MSYS, MinGW and even NASM on Windows should be as easy or
> even more easy than installing MSVC 2008.
Well, except that MSYS doesn't have the AutoTools.  So if you insist on
using AutoTools, then that requires Cygwin, which is a somewhat bloated
install.  And if you think MSVC technology changes quickly, Cygwin
pushes out incompatible package changes on practically a daily basis.

MinGW simply does not support the full Win32 spec, and the parts of the
spec it does support often do not behave correctly.  Don't think I
haven't tried to use MinGW with VirtualGL and TurboVNC on many
occasions.  In the case of TurboVNC, it was a non-starter, because the
TightVNC server code relied on some libraries that simply weren't
provided by MinGW.  I haven't yet looked at TigerVNC/Windows to see if
that's still the case.  In the case of VirtualGL, I ran into all sorts
of problems with C++ exceptions that caused me to abandon MinGW.  In
general, it's been my experience that if you want the Windows API to
work as specified, use Microsoft's compilers.  I have 15 years of Win32
development experience and know a few things about that.

Also, this goes back to the argument of maintainability.  The goal isn't
just to be able to compile our code once on a given platform.  It has to
be easy to add features and fixes to it.  Maybe someone wants to use
DirectX or some other technology that doesn't work with MinGW.

I agree, in general, that OSS compilers are better.  But I'm in the
business of solving problems, not creating them, and if MSVC is the best
tool to solve the problem, then that's the one I use.  If it isn't free
tomorrow, then I'll worry about that tomorrow.  There are similar
concerns with OSS compilers, such as what if someone suddenly decides to
stop maintaining it.  That is particularly a concern with Cygwin.  I
have seen many cases, such as in the Cygwin/X11 project, where the port
went without a maintainer for years.  Whether or not we're depending on
a healthy OSS project or a healthy company, we're depending on something
either way, and in either case, the rug could be pulled out from
underneath us.  Microsoft could just as easily change the O/S and make
it suddenly incompatible with MinGW, but seeing as how MSVC is their
application, it's guaranteed that it will always work with their O/S.

I again go back to looking to the OSS community for a best practices
model, and if you look at the most popular Win32 OSS projects, the
lion's share of them build with MSVC.  That's because any serious
professional Win32 developer has MSVC.  It's just a fact of life.


------------------------------------------------------------------------------
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to