4 ms·
I realized I was constantly programming services that would be run on Linux servers, through a Linux container dev environment, running on a Linux VM running on
by zxcvcxz 10y ago
I realized I was constantly programming services that would be run on Linux servers, through a Linux container dev environment, running on a Linux VM running on Windows. I finally just cut out the middle man and installed Linux (Fedora w/ GNOME3) and it was the best decision I ever made.
I might try "bash on windows" but there have been compatibility layers like this for years and there are always drawbacks. For instance it'll be years before this can be considered stable for production, so this is purely for developers. As most developers know, when you go to deploy on a production machine things don't always work the way you expected them to because the production environment is slightly different than your development environment. If your development environment is a frankenstein OS with different parts sewn together to make it work then it's going to just add further complication to the process (Will a Linux service interface with a windows service?).
My workflow involves spinning up containers (usually gentoo) on a remote server for each new project and just sshing into them and using vim and other cli tools to build projects. This has been the most superior workflow I've found. I can use a light laptop for pretty much everything because a remote server does all the hard work.
I know many developers who use this workflow and for large projects that require powerful computational resources this is essential.
The only reason I see to use Windows for development is if you were developing Windows desktop apps and I don't know anyone who's building new windows desktop apps, most people are targeting mobile. Those who do work on Windows desktop apps are usually maintaining something that's been around for years. There are a few other reason to use Windows over a unix or unix-like OS but most of them come down to Microsoft and other companies releasing proprietary software which is locked into their ecosystem, and I'd like to avoid software like that.
Also I'd just like to add that I never realized how bad fonts were on Windows until I tried other operating systems. If MS wants to attract developers they need to fix their fonts. IMO this is even more important than a Linux compatibility layer because all I do is stare at text all day.
- ajoy39 10y ago> I don't know anyone who's building new windows desktop apps You don't know any game developers?
- bigdubs 10y agoIn fairness with steam putting a big emphasis on linux Windows time as the OS of choice for gaming might be coming to an end.
- milkey_mouse 10y agoHave you seen the Linux NVIDIA drivers‽
- 0xFFC 10y agoHave you tried win10? It's font rendering for modern app is fucking disaster, and I really mean it. After they switched from cleartype to directwrite it is fucking disaster for display lower than 2k. I have double 1080p and it is fucking hurt my eyes to look at Microsoft edge or any UWP app text.
- blackoil 10y agoMac is very popular in developers, while not being used on servers. Reason? You get high end laptops with drivers and a linux like command line. But the applications and frameworks are all different, osx and linux have separate binaries for node, java etc. Luckily that doesn't matter, most of the programming and testing is done at a high level, where base OS doesn't matter. This is the market they are after.
- emsy 10y agoAs someone who has done (Unixoid) web development on all 3 systems, I'd say OSX was the best experience. On Windows it's really weird to use command line tools, even with Cygwin. There's no package manager for dev tools. Linux is fine but I occasionally had problems with UI quirks, driver issues and so on. It feels "hacky" at times. Once you've installed homebrew on OSX you have the best of both worlds. A stable Unix system with a nice UI (Though the stable part was recently lacking).
- fla 10y ago>Mac is very popular in developers, while not being used on servers. Reason? Linux is free ?
- jasonjei 10y agoUNIX utilities on Win32/64 still feel weird. You don't really have forward-slash paths adopted everywhere, and you have weird volume drive mounts. Writing a Windows app means you have to deal with the realities of Win specifics (e.g file systems) and the fact that you can't link to a UNIX-shared library like you can with OS X. Windows line-endings have screwed me over with running bash scripts (easy to fix with git settings). Have to deal with cmd as default shell. Windows out of the box loves the wchar_t type and std::wstring, a 2-byte character which doesn't even really encapsulate Unicode (UTF-8 is used just about every other operating system). While OS X binaries aren't compatible with Linux, it's usually just a recompile. Sometimes there's a little more to it. But generally a lot less work than Win32/Cygwin. Yet to be seen with Ubuntu on Win32/64, but apps written in Windows Linux subsystem have been said not to be fork able from Win32/64 apps. However, Mac's file system HFS+ is terrible. That's a good reason not to use it for servers on top of parts of it being proprietary.
- mercurial 10y agoYou know you have countries where Microsoft still has a de facto monopoly, right? Try convincing the average Danish company there is something outside Windows.