I had some free time today so I decided to check how much community invests in the final product of it's language. So I decided to target three languages for this - Python, Rust and Ruby.
My target machine(s)
- Windows 7 SP1 and Windows 10 (1904)
- 8GB RAM (both machines)
- 8GB dedicated broadband line
What I want to test?
- Installer type
- Installation process
- Installation issues
- Community support on Installation
Python Installer
Python has installer for different version for each targeted platform. My OS being Windows I downloaded the MSI installer. The experience was pretty smooth. No errors. Installation worked and I can easily use the python on command prompt. It also added the PATH on it's own. No action required from my side.
- Easy to install
- Updates PATH on it's own
- Uninstall is painless
- PIP works with no issues
Rust Installer
Now this is where the drama starts. Rust community has no option for MSI based installers for Windows users. They offer rustup utility from where they allow you to do the command line installation. Each part of the Rust gets downloaded separately in order to keep things current. Fair enough. But the installer went down plenty of times, on which I thought it was my internet but I tested this on different connections but it continued to have issues on windows machine. Biggest drawback of Rust, it does not add the Cargo path on it's own but you have to manually do it. My Windows 7 machines command prompt never recognized cargo command and even with PATH updated, it continued to throw errors. Plus windows based install requires MSVC build tools which is another dinosaur to handle.
- Harder to install
- Requires MSVC build tools
- rustup can hang while downloading
- No MSI installer
- Uninstallation is pain
- PATH update is manual
Ruby Installer
I don't even have to mention how bad Ruby community is going for years as far as developing on Windows. There are multiple community projects that allow ruby installs for windows. I tried both official and devkit method. And both got me into issues. Gem installation continued to throw error with CA cert and other SSL errors. If you plan on developing ruby apps then better do it through Ubuntu under some virtual machine or docker or vagrant.
- Lot of pain for stable install
- Gem installs are even more pain
- Lot of errors while downloading gems
- Some gems just don't work on Windows.
I must say with years of experience of Python foundation and it's active community, it shows in their effort, when you see they are paying attention to tiny details. Rust is pure pain as far as community support and installer is concerned. I don't know how some developers are so blindly advocating Rust when it has lot of issues to sort out for platform like Windows.
I stopped expecting from Ruby and I am sure many others too have reduced their expectations by now. So I'll ignore anything about Ruby on Windows. I just wanted to test it's state for Windows in 2019. I know Rust fans would say things like why do you need installer, command line is fine and you can use command line to install it but they are ignoring the PATH issues Rust has on Windows. I think Rust community needs to be open about opinion on Windows development.
My verdict: Python is boss, as far as installer and community is concerned. I don't mind reporting some of these issues to development team on github or any other specific place but based on their own design decisions towards platform like Windows. I wonder apart from Python any community would even listen to such opinion?
Note: Do understand that these are observation specific to Windows. Your experience on Linux and Mac may not be the same.
Top comments (13)
Thank you for writing about your experience! I agree that it's a big problem that Ruby has such a poor ecosystem on Windows.
I know there's always the good ol' "why don't you just use Linux or MacOS?" excuse, but I think it's a total cop-out. "Please install another operating system" is never going to be a compelling argument if we want to make people interested in the language.
We're alienating so many wonderful beginners and experienced programmers by doing that.
Nice post. I suggest you also try the Java (maven) and the Node (npm) installers on Windows, most likely you won't be disappointed!
And if you get time after that and you have some liking for PHP, you can try that too. In my experience, a bundled XAMPP is far more easier to setup on Windows than creating a WAMP stack from scratch.
Python has a long history of support on Windows.
I have a faint recollection of playing with the Win32 API with it 😂 IronPython (Python for .NET) was a thing for a while, a few Python IDEs for Windows had a sizable market share. I myself started programming with Python on Windows.
I might be wrong on this but if memory serves me well, the Python core team had Windows experts in their midst.
All of this to say that it's the result of devs caring enough 😊
Ideally you wouldn't even need installer. Just copy paste a compiler to your machine and add it to your PATH.
I guess you are right regarding all the attention going to Linux and macos, people like to develop on similar platforms to where they are going to run the application. When I was working in a bank, we had to write python on windows machines that were quite lock downed and deploy to rhel servers... It's like coding with one hand tied behind your back, never again!:D
Made me always ask potential employers what they standard development environment is :)
When I started studying ruby I almost gave up because of so much trouble I had on windows until I switched to Linux and it was only joy.
Hey Thanks for writing maheshkay
MSI Installer can be found here for Rust
Gnu variant : static.rust-lang.org/dist/rust-1.3... …
Msvc Variant : static.rust-lang.org/dist/rust-1.3... …
Gnu toolschain Rustupinit Exe : static.rust-lang.org/rustup/dist/x... …
msvc toolchain Rustupinit Exe : static.rust-lang.org/rustup/dist/x... …
I like ruby but I never used it seriously just because of bad support on windows. haven't tried rust yet.
I'd recommend WSL with ubuntu for ruby
The best experience I've had was the Anaconda installer - and its python package repos are amazing. Who knew installing TensorFlow could be painless!
Rails installer for windows is good tho. It solves gems and PATH without any manual modification.
You can also install python 3.7 from the Microsoft store. Just one click to install 👌🏻