Why do you use Linux for dev over Windows?

Started by
27 comments, last by Cwhizard 6 years, 11 months ago

I am preparing to switch back to Windows as my dev environment for the haxe,cpp,c workflow because:

1. I need to have a more responsive workflow between graphics work and coding
2. I want to do more Windows rendering work and gamedev experimentation
3. Came to the (duh) startling realization that Win based development at the cutting edge is easily possible (game development). I only need a few dependencies to be productive in my toolchain and mastering their building in Windows is not that difficult.
I think my reasons were the following for switching to Linux for development:
1. I was going to deploy server on Linux (which I am) and wanted to get expertly familiar with it.
2. Building most open source packages is easier on linux.
The point of this thread is to try to remember why I switched to Linux in the first place.
1. Are there any big downsides to Windows development specifically within the hxcpp,NME,OpenFL,Haxe,Apache2,Tora,postgresql pipeline, in case I'm forgetting something before I make the switch to using NTFS, Windows, cygwin.
2. Do you Win devs use cygwin for system interaction in your builds?
I am using a custom build server built in haxe so it's not really an issue but I do have a bunch of bash scripts which I hope will work on Win and will attempt to unify any quick and dirty system manipulation under bash with cygwin,ubuntu,debian as dependencies.
Advertisement
It depends what you want to do.

For most gamedev windows is the platform of choice. All the major graphics card manufacturers put more effort into their windows drivers, and all the major AAA games are released for Windows not Linux, which means more gamers use the platform, so it's a vicious circle of sorts.

As for Linux if you're writing resilient server code e.g. for a server for a Web based or other online game, or something Internet daemon related and not related to games at all, use Linux for it, that's what it's designed for...

As for Mac, I can't vouch or advise as I've used it rarely and it seemed like windows with a smaller user base to me, perhaps you should use that if you're making an ios game.

Edit: at home I have both a windows laptop and desktop for gamedev (windows 10), and another laptop and small office server running Debian.
They both serve important purposes and I've written both big windows projects and big Linux/FOSS projects in the past and needed both.

Hope this helps!

2. Do you Win devs use cygwin for system interaction in your builds?

I have used many build systems and tools based on cygwin in my career and it has always been an unpleasant experience. I'd rather cobble together an arcane cmd batch script than enter the world of cygwin.

However, with the Win10 anniversary update, MS has added bash on Windows (turn in on in "Optional Features") which seems to work great and almost seamlessly, despite being a beta version. It basically gives you a familiar debian/ubuntu based CLI and has managed to run everything I have thrown at it so far, with the exception of "screen".

Another caveat is, that integrating "bash.exe" with other script is made a lot harder by the fact that "bash.exe"'s stdout and stderr can't be redirected. This can be worked around, but it is an annoyance and will hopefully be fixed.

… and has managed to run everything I have thrown at it so far, with the exception of "screen".


Psst, tmux works great under WSL! :^)

All I got is Windows 7 because 8 and 10 go "even further beyond" in the realms of UI fuckery. So I'll compare against that (its also what I got at work).

I cant apply a dark theme on Windows without fucking up some important MS program (like fucking Word or Excel, Visual Studio, and non-Microsoft ones like TortoiseSVN, and a couple of DB managers). In most Linux desktop environments, such thing as "changing the color of the font" is expected, so most applications come out of the box more prepared for whatever wacky color theme you got.

In Xfce I can add/remove/move/resize all the panels I fucking want, while editing all the fucking items inside them I want. I got 3 right now. In Windows 7 I got the one and only menu bar, which is a fat bastard that can be barely resized.

Fucking virtual desktops. I got 4 of them. I can set a manager to a panel, that auto hides, and switch them with the mouse wheel.

In Windows, I have to add shit to the Environment Path so they fucking appear on the console because no one ever expected you to install something in Program Files and call it from a cmd.

I like the package manager.

As for actual developing in one or the other, I do completely different things in each. Web dev with VS2010, .NET 4 in Windows, and desktop dev with Eclipse and Java 8 in Linux. I do enjoy using Debian more, that's all I can say about it. When I get a new computer at work, I might try to install Debian and just run VS2010 out of a VM.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

In the office the network is windows 7 through 10, with Windows and Linux servers.

That is apart from us in IT where I've got us using a Linux distribution of our choice, and it's worked well for a good 3 years without issue.

I find there's very little we actually need windows for.

If we were doing game development though... Not a chance we'd use Linux for it...

I code for X-Plane in C++ because it simply works on all os. If you code on Windows or Mac, you suddenly remark that you have to rewrite stuff to compile on other os.

I'm also faster with Linux tools than on Windows. Grep, bash etc. save me time.

With bash now in windows 10 the line is becoming blurry. Windows 10 GUI with the power of bash when you need it!

With bash now in windows 10 the line is becoming blurry. Windows 10 GUI with the power of bash when you need it!

It's not just bash. It's full-blown Ubuntu. If you use WSL you're running GNU/Windows, which is identical to real GNU/Linux with the Linux part crossed out and Windows written in with blue crayon. The line is not really blurry, and the GNU bash shell is only one fairly small part of the equation.

Stephen M. Webb
Professional Free Software Developer

I code for X-Plane in C++ because it simply works on all os. If you code on Windows or Mac, you suddenly remark that you have to rewrite stuff to compile on other os.

I'm also faster with Linux tools than on Windows. Grep, bash etc. save me time.

This. Unless I'm targeting my code for windows (the need for which is becoming less and less as time flows on) using a Linux shell is pure joy. Even in powershell I'll forget what I'm on and try to write a quick perl line and *bam* pw doesn't know what I'm talking about. Remember: Linux was written by coders for coders (arguably), where as Windows was written by a corporation for people to consume, NOT MODIFY, at least to the extent that Microsoft wants.

Windows works, and well enough for what its meant to do, but its obvious that some things are an afterthought next to Linux. Powershell being an example. Every Linux has shipped with shells and the ability to automate simple tasks easily from waay back, with grep, wget, telnet, perl, awk, etc. Powershell came after Windows developers more and more discovered Linux shells...

This topic is closed to new replies.

Advertisement