7 ms·
I'm always amazed when I hear a developer state that they use Windows by choice. Frankly it makes me look down upon them - no matter how successful they are (an
by adwhit 12y ago
I'm always amazed when I hear a developer state that they use Windows by choice. Frankly it makes me look down upon them - no matter how successful they are (and this fellow is clearly very successful). I have to use Windows at work every day, and every day it will make me howl in frustration. How do people cope without a decent terminal?
- AndrewDucker 12y agoBy not doing much work in a terminal? I use a CLI for about 10% of my work, and that's all PowerShell, which works very well for what I want it to. But the vast majority of my work is inside either text editors or IDEs.
- dovel 12y agoUsed to think this before I used VS for web dev using ASP.NET... it's a good idea to not judge people for the OS they use.
- ceejayoz 12y ago> How do people cope without a decent terminal? I'm not a big Windows user, but PowerShell came out in 2006 and has made a lot of big strides since.
- emodendroket 12y agoPowerShell came out missing a lot of obvious commands it's gradually been filling in but the core concept is pretty good. It's easy to write a bunch of scripts and feel like it's just normal to waste a lot of time munging text but PowerShell kind of frees you from that.
- outworlder 12y agoDo you use Powershell ISE then? Powershell is a shell, not a terminal. The terminal still sucks and ISE is a poor substitute.
- juliangregorian 12y agoHow is Powershell not a terminal?
- isxek 12y agoWe make do with things like ConsoleZ/ConEmu, clink, MSYS, sometimes TCC-LE (https://jpsoft.com/tccle-cmd-replacement.html https://jpsoft.com/tccle-cmd-replacement.html).
- smackfu 12y agoWhat do you do with the terminal that you can't do with your IDE? I think you underestimate the number of developers who basically use IDE plugins to do everything.
- zaphar 12y agoProgramming an IDE plugin is far more difficult than a sed or awk script with a much higher development start up cost. You can do a whole lot with an IDE but saying it has the same amount of power as a good unix shell is somewhat disingenuous. If you want to be able to extend your coding environment in an infinite number of arbitrary ways then a shell beats an IDE every time.
- cpwright 12y agoRenaming a java variable or permuting arguments in IntelliJ is far easier than trying to do the same thing with grep/sed. IntelliJ happens to work with both Windows and Linux, but I've found that I'm certainly more effective programming Java in an IDE than without.
- zaphar 12y agoIf all you have to do is Java then absolutely. I hop into IDE's all the time for refactoring work VS or Monodevelop for C# IntelliJ for java and so on. But I work with much more than just java and C#. Shell utilities that work with plain text can deal with a whole lot more than java. Claiming that an IDE occupies the same place as a shell in a developers toolbox misses a lot of the reason why shells are useful.
- cpwright 12y agoI'm not saying a shell isn't useful. I don't use an IDE for any of my git workflow (I actually find git to be poor on Windows, which is a good reason to choose Linux); but for navigating the code. Shell utilities that deal with plain text often get the nuance wrong, because they don't have the full syntax tree to deal with. Mostly you're using regular expressions; which often get you close but not quite right. For navigation, people often would use cscope/ctags something else anyway; and text searching often isn't as good as a semantically aware find. I don't use an IDE beyond vim for my C++ work; but am considering clion. So far I'm not entirely convinced, it doesn't handle some of the more complex C++ constructs correctly.
- zaphar 12y agoI know a lot of really good developers who work mainly in the windows platform. While I personally find working in windows like working with 1 1/2 hands tied behind my back they have built up just as large a toolset as I have in unix based systems. Most of them are just as effective as I am they just have a different toolbox. If I wished to I could build up just as large a toolbox on a windows platforms. I just don't want to at this time in my life.
- balabaster 12y agoand that equally goes from our (Windows devs) perspective. It's hard to find the time to research and learn the toolset of another environment. Both environments have their advantages and disadvantages. If you have a hacker mindset that doesn't mind negotiating the perils of configuration files and the command line, perhaps Linux is the better choice. If however you prefer to spend more time just getting stuff done... ;) In all seriousness though, having attempted to learn Linux on a number of occasions, trying to make the leap from one O/S to another isn't a cakewalk. They're structured differently, operate differently, configured differently, have different UI paradigms - it takes a big mental effort and a bunch of time few of us have to spare to cross that chasm. If you grew up in a Windows environment, it's not hard to see why you'd think Linux sucks. But equally, I find it hard to argue with the reasons Linux die-hards complain about Windows - given their lack of experience and/or patience with the Windows toolset.
- mreiland 12y agoAs someone who leaps in and out of both Operating Systems on a daily basis, it really isn't that difficult. The thing you have to watch out for is how well your tech stack is supported. If I know I'm supporting Windows I will not write the software in Ruby as their Windows support is atrocious (honestly Python isn't much better imo, but I have less personal experience with it). If I'm developing .Net/C# I'll use Windows for Visual Studio, even if I"m supporting Mono because the environment is just better. If I'm working on a PHP project I'll do it Linux even if it's meant to run on Windows because, again, the environment there is just better for the development. It isn't about the OS itself. There is some friction there in terms of familiarity with editors, etc, but most of the friction is about the technology you're using.
- codegeek 12y agoYou are making a very generic statement by saying "developer state that they use Windows by choice". If you read the entire post, he clearly says that he uses a dual environment of Windows/Linux. He uses Visual Studio which is certainly one of the best IDEs and right now, it only works on windows. So it is not like he is only using windows but he is using what works best for him. He also uses Vim as he clearly explained. Isn't that the point for developers that they use the tools they are most comfortable with ? I am not a Windows fanboy of course. I know Linux works really well for dev environments but if you prefer to use an IDE for development and not just a simple editor, then I would argue that it is hard to beat Visual Studio. Sure you can program even in notepad. Again, a choice. CLI is not always the answer. But then again, Windows does have Powershell which has evolved well. I will give you one example. If you are building ASP.NET MVC applications, you really don't have a better choice than Windows as you can integrate it really well within Visual Studio, link with Git and pretty much do everything within VS including deployment. It just works. So there are uses cases like these where Windows makes sense.
- mattmanser 12y agoUgh, I can't understand why anyone would do deployment from VS. It's insane.
- codegeek 12y agoOne example, if you are using Azure, it makes it very easy to deploy from VS. But again, this is an option and not a requirement. You are fee to deploy however you please.
- mattmanser 12y agoJust because it's easy, doesn't mean you should. It's a bad habit to get into. Admittedly, there's still no good deploy solution for C# at the moment that isn't a colossal load of work, but web deploy is definitely not a good choice. It's like MS looked at every single choice and went "Hmm, we'll pick the worst of these two options!". Good luck if you need to do a rollback stat.
- ddoolin 12y agoI feel you, but I used to have to use Windows for work (for no reason in particular other than my boss was a dick). PowerShell + https://chocolatey.org/ https://chocolatey.org/ is a great way to go. It made working in Windows quite enjoyable and now I use Windows at home.
- wobbleblob 12y agoMy problem with development on windows hasn't been the OS itself, but the fact that companies that prescribe an OS for your development also tend to prescribe a set of tools, an IDE, a browser type + version, have the configuration of your PC locked down, and the corporate virus scanner dialed up to 11. I can't work on a workstation where I can't choose that editor I'm so used to that I don't have to think about 'how', only about 'what'. I can't stand the latency caused by having the virus scanner run on access, create, change and write of every file, which makes an incremental build laggy and a full build impractically slow. I can't stand working on a workstation where I only have write access to c:\temp and a network drive, complete with more latency and flakiness. My current employer lets us choose, but the admin told me if it's something other than Windows, Linux or OSX, don't expect support from us.
- reymus 12y agoAdditional to the other responses, did you notice this guy wrote three books about one liners in awk, sed and perl?
- gokhan 12y agoTry VS+Resharper and see how opinions change quickly time to time :)
- Someone1234 12y agoAre you recommending Resharper for navigation, auto-fixes, auto-styling, or something else? I hear Resharper thrown around a lot but it isn't clear what people find it so invaluable for exactly.
- WorldWideWayne 12y agoThere is also a contingent of developers that don't like Resharper at all. I'm in that group because I think it's bloated and slow with the 10,000 features that it adds to Visual Studio. There are individual extensions for all of the things that I personally want from Resharper, so I tend to go with those.
- gokhan 12y agoNavigation is my favorite. There are lot's of actions I use daily, such as surround with, splitting declaration and assignment, inserting new class/interface/enum etc, removing dead code or imports and so on. I can't sit in front of a "stock" VS and code right away. I always feel incomplete and non-productive without it.
- yodsanklai 12y agoI tend to agree with you (even though I can barely read your comment :)). I haven't used Windows for years and I'd rather not to if given the choice. However, I find it very respectable to be comfortable with different platform and to be able to use the best tools on each of them. It also shows open-mindness not to be stuck into religion wars. It reminds me of a colleague of mine who was an OS researcher. He was hacking the linux kernel all day long but still wrote his PhD dissertation using Words (when everybody else in the community was using Latex).
- CurtHagenlocher 12y agoThere's a word for someone who makes those kinds of judgments: "bigot".
- rattray 12y agoThat's a little unfair. It's clearly coming from an informed perspective at the very least; bigots' opinions aren't grounded in experience/reason.
- ownedthx 12y agoYou raise a good point, but for me it only solidifies the fact that it is a view point born from inexperience or narrow experience. If you only have a bunch of .NET experience, or if you only have a bunch of Node experience, it isn't surprising when you judge others poorly when they don't like the sane OS as you do. Age and more experience will cure that.
- binxbolling 12y agoI guess I'm an equal opportunity howler: I howl in frustration at Android, at Ubuntu, at iOS, at Windows, at OSX... Sometimes I wonder if—gasp!—all of 'em are imperfect and I should just find something that suits me well enough and be done with it.
- chrisan 12y ago> How do people cope without a decent terminal? The same way you do on a mac! You are using a virtual machine to mimic your production environment, right? I have Win8 desktop and MBPr laptop and develop on both about 70/30. Brew is nice and all (tho has made me howl in frustration numerous times) but I want stuff running on the exact same software as what I deploy. Between work and pleasure I use a mix of PHP, Ruby, Java, Node, and Python (well and Haskell.. hello coworker! /wave). Not that I actively develop in all of those but will use other programs written in them and sometimes modify the source. CLI on mac is better than cygwin on PC, but I have had hiccups with both getting the right packages/libraries installed. OSX is far from the holy land imo. I never have a hair pulling event on Ubuntu installing things, sadly I am too frustrated with the NON-CLI parts of Ubuntu to make it my primary OS. I have all of those languages installed "natively" (ie not through cygwin) on Windows so linting works in Intellij. For SPAs I can use bower,grunt,gulp,livereload etc in cygwin just as easily as OSX. I've not tried installing Haskell on windows, I run that in my VM exclusively. Right now my biggest gripe is Ansible is a b to get working in windows, but it can work. Hopefully the "run ansible on host" PR gets merged soon into Vagrant.
- outworlder 12y agoWhat if your production environment is Windows? They it doesn't matter. You have to use Visual Studio and the horrible terminal. OSX has a decent terminal. Windows has not.
- sremani 12y agoIt has been stated here, most of the developers who are working heavily in Windows environment (myself included) use ConEmu. There are tools out there that do make Windows a productive environment. Windows does suffer from short-comings but do not tell me OS X or Linux do not.
- w4tson 12y ago+1 for ConEmu. It's a life saver on Windows. I know it's a religious issue, M$ vs <whatever> but it is still kinda valid. I work with some talented C# developers but I'm always thinking in the back of my mind : "what compels you to only develop for windows?".
- kgtm 12y agoMaybe the problem isn't the Windows OS (which is quite fine actually, especially compared to the hot mess OSX has turned into), but the development approach, tooling and processes that was forced upon you. Personally, i couldn't care less where my VMs are running. I SSH into them and do my work, using the tools i know are best for the job. I develop locally using VMs managed by Vagrant, i deploy to AWS or DO. If i feel like it, i can switch from Ubuntu, to Windows, to OSX and my dev env will be there waiting for me. How do people cope without a decent dev mindset? PS You should look into ConEmu, which is what all the Windows devs use.
- Someone1234 12y ago> but the development approach, tooling and processes that was forced upon you. As opposed to the ones you're trying to force on people? A lot of people, yourself included, aren't even able to quantify why Windows is inherently bad. I can think of a few reasons, but I am not here to help you since I am not randomly criticising developers based on platform, you are. > How do people cope without a decent dev mindset? This is meaningless in and of itself. You will need to expand on it. Your entire post reads like "unless you're developing MY way you're wrong." I find these rants about "use SSH and VIM!!!" pretty funny given Sublime Text's popularity on Linux as well as things like Eclipse. Do those work over SSH? No? Guess those Linux developers are as bad as Windows developers in your view, right?
- kgtm 12y agoAre you sure you've read my post correctly? In fact, i stated the exact opposite: there is nothing inherently bad about Windows. I run Windows myself as the host OS, using ConEmu to wrap PowerShell. I am not dogmatic. I use vim when it makes sense, Sublime for what makes sense, and a full-blown IDE, you guessed it, for when the strengths of an IDE are useful. Yes, i am using these across operating systems just fine. I am versatile. I can use OSX, Linux and Windows to develop code, as i've abstracted away the development environment, and decoupled it from the machine and OS i am typing the code on. And that is the decent dev mindest. I am not trying to force anything down your throat, and it surprises me that you would think that.
- 12y ago
- outworlder 12y agoI have the same prejudice - and yes, I'll freely admit it is a prejudice. But it is also based on observation. "Windows-only" developers tend to be too narrow-minded and many will have never heard of a lot of stuff that I take for granted. Stuff like Vagrant, Docker, Puppet, even a 'grep'. You get a blank stare whenever something that's not from Microsoft gets mentioned. Given the difficulty that it is to install a lot of things under Windows, that's understandable. The other day I was having trouble installing Jupyter (formely iPython), which is trivial to install on Linux or OSX. Managed to, but only because I am stubborn. Firing a VM would have taken less time. Not everyone is like that of course. You'll see that Notch uses Windows, even if he develops with Java and Eclipse. But he develops games (or used to anyway) and Windows is hard to beat in this case. If I hear that the guy actually prefers Windows, during a job interview, you can be sure that I'll ask a whole bunch of additional questions to see how aware of the outside world the guy is. I could be turning down Notch, or Jeff Atwood. So far, I don't think I have. [edit: just noticed that I've used 'guy' here a lot, my mistake. Please replace by whatever genderless word feels more appropriate.]
- yareally 12y ago> I have to use Windows at work every day, and every day it will make me howl in frustration. How do people cope without a decent terminal? You should probably stop torturing yourself and install Cygwin + mintty (or kitty/puttycyg). Never had any major issues with Windows and the CLI after discovering it. Anything it can't do, I launch Powershell, but that's mostly things Cygwin can't do easily (like working with Windows/.net objects).
- hluska 12y agoI used to be of this opinion, but then I ended up working in a .Net startup and, a few years later, did a project in ASP MVC. Once I figured out Visual Studio, it got the hell out of my way and just let me work. It is really one hell of an IDE and, I'll be honest, I miss it sometimes. Windows itself needs quite a bit of tweaking to be used as a serious development box, but armed with some patience and good paht thai, it wasn't even the most horrible experience. Of course, we often had Ste. Ambroise Oatmeal stout in the fridge, so I may have been feeling bulletproof...:) Of course, I'm in my late thirties and remember building awful websites with Windows ME. I may not have an opinion, I just may be a sadist...:)
- logicallee 12y agoHe does stuff on the server? In the part where he mentions using windows, he says he uses SSH into a server. Windows might be bad, but is it too bad to host a text terminal client?
- WorldWideWayne 12y agoYou're only saying that because you're a bigot: A person who is intolerant toward those holding different opinions. If you ever feel bad about being a bigot - don't - because whether you realize it or not, people generally look down upon bigots, so you've already been getting back what you've been putting out.
- jacquesm 12y agoI use linux every day but I would not berate another programmer their tools. They should use what works best for them. And Putty is a half decent terminal so if that's your reason for not using windows you can switch tomorrow.
- obstinate 12y agoThis is a dumb attitude. Windows is not much worse than other OSes for dev. At worst, you can easily virtualize. And it is much better for daily life than Linux, so if you aren't willing to pay the Apple premium, Windows is your likely OS of choice.
- jrbancel 12y ago> How do people cope without a decent terminal? Try cmder (http://gooseberrycreative.com/cmder/ http://gooseberrycreative.com/cmder/). Some of the features: tabs, most Unix commands available, git integration and the default font and color theme are very good.