Spin off from my comment to @straight-shoota from this thread:
Once upon a time…
For a long time I developed and released RubyInstaller, a Ruby for Windows distribution that aimed to ease new developers install and use Ruby on Windows OS, something that was really complicated and made life of many newcomers complicated.
In order to facilitate that, learnt the need to leverage on MinGW (and mingw64 later in the process) instead of Visual Studio/C installer to build and support the project.
- Leverage on a GCC-like compiler made it easy to non-Windows developers to understand what was going on the build process for their libraries/applications
- Thanks to development of tooling like rake-compiler, it made it easy for those non-Windows developers to cross-compile from the confort of their Linux/macOS setup without having to worry about a Windows license or a VM to test things out.
- RubyInstaller’s “DevKit” allowed non-fuss distribution of a ready-to-use compiler and libraries necessary to install those Ruby gems that didn’t had binaries for Windows, or be able to install the required dependencies for those to successfully compile.
This was an uphill battle: the official Windows binary for Ruby was still compiled with VC6, too old MSVCRT (the C library used by Windows) with no inclusion of binaries for the extensions that were compiled.
Getting Ruby to compile with MinGW was not magic, took years but helped move around these limitations, specially free the users from having to obtain an old compiler, a license or figure out a free version to download.
Things have improved since then, usage of MinGW and MinGW-w64 has grown and today is more easy to cross-compile and support windows than it was 15 years ago, when I started.
Enough nostalgia Luis, get to the point
There has been a massive effort by Crystal developers to get Windows support in, so it becomes one of the supported platforms, and that is monumental for Crystal to succeed as a viable platform. While not there yet, I do believe it will eventually do it, and it will be done with the high level of care shown by all the developers and contributors of the language.
So, to answer the original question, my expectations align more on:
- For a Crystal developer on either Linux or macOS to easily target compilation of their applications to Windows platform, without having figure out Windows VMs and complex incantations to get Visual C compiler or support libraries
- Not assume that a Windows developer will be familiar with Visual C (or have it installed) or all the complexities involved on getting things compiled on Windows natively.
This means something that works across these walled worlds, without too much need for translation.
I know some of these things are beyond the realm of Crystal itself, but could be considered when guiding the future decisions of the project.
If you reached this point, thank you for standing up with my mumblings
Cheers.