Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This shouldn't be a surprise. Tons of development is done on Windows. Most game development, obviously Windows app development, .NET websites, etc.

There are command line tools there, but in my 10 years of being a Windows developer, GUI tools were more the norm.

There's a time and a place for both. Now developing predominantly under Linux, it amazes me how time consuming and clunky some tasks are on the command line compared to using a GUI (e.g. debugging, Visual Studio is just a fantastic IDE), but also how much faster and easier other tasks are with a CLI.



Windows is just inherently GUI-centric, if you force developers to use Windows they are naturally going to gravitate toward using GUI based tools because Windows command line is so crippled. Tools like Cygwin and Chocolatey are nice in a pinch but they just don't compare to being in a real UNIX environment.


Why use a loaded word like 'force'? Developing on Windows was excellent. Microsoft provides great tools and support; it was incredibly productive. The only real negative is the licensing requirements.

As of 2011 (I couldn't find more recent data publicly available) Windows was far and away the most popular development environment. http://www.cnet.com/news/coders-choosing-mac-os-over-linux-e...

It's interesting to see the culture of development differ so much from place to place. When I worked in Australia, Windows was an incredibly common development environment, while here in Silicon Valley it's all Mac/Linux.


> Why use a loaded word like 'force'?

Because a lot of us would always pick alternatives when there's a choice. In fact, some of us won't take jobs where we have to develop on Windows.


Yes, but my point was that there is no evidence that is the majority, nor are they really 'forced' to use it - if it's that much of an issue, just don't take the job (as you say).

Many, many developers have no issue developing on Windows or even enjoy it. There seems to be a mindset amongst certain people that Windows developers are not 'real' developers, which is what I'm arguing against.


I say "force" because a lot of employers simply do not allow developers to choose their workstation OS. Windows is very popular with the non-programmers responsible for making IT purchasing deals within most major corporations. Among programmers, it's not quite so popular.


It still depends on what programmers you ask. Windows works fine for me, Linux did not work well when I tried it (but it was many years ago). Unix through XWindows from a pc was actually quite nice. I think developers like users use feelings more than thoughts when choosing an environment. Yes, you can do some things on Linux that are harder on Windows but saying that missing "grep" is severly limiting you is strange since it is easy to install. And you have find in most editors. You can run Vim or Emacs if you want to on Windows. Powershell is very good but with a strange syntax. If that is someones problem they sound like they don't want to learn something new. Listing thousands of files in a folder is probably still faster on Linux but I rarely do that (I can't see the point in collecting many years of logs in one folder, for example). The main problem I have with Windows is that I have to restart the computer every now and then.


Yes, the way Windows locks shared DLLs and requires a restart of the whole OS instead of just the programs currently using the DLL when you install an update is, in a word, obnoxious.

Also, again I dislike the fact that Windows is inherently GUI-centric. Interacting with programs is designed to be done using primarily the mouse or a touch screen. Even Windows Server is designed to be used via remote desktop. Whereas for UNIX-compliant OSes the desktop and mouse are not required for anything, a skilled user can easily be more productive using only a keyboard, and anything a user can do can just as easily be placed in a script and automated.

Package management is also a major deficiency of Windows. Chocolatey is a nice workaround, but is a relatively young project. Windows did not have any package management for a long time.

Also for a lot of programming language packages with native code extensions, it can be difficult or even impossible to get them to compile on Windows. I can think of a handful of Ruby packages that flat-out do not compile, making Rails dev on Windows a non-starter.


> Developing on Windows was excellent. Microsoft provides great tools and support; it was incredibly productive.

I don't know about that. I've made several good faith efforts to really see what people like about the Windows development ecosystem, and I consistently come away dismayed. "Great tools and support" could never be used to describe msbuild, for example. Or any of the MSDN documentation with incredible antipattern code that people like to blithely copy and paste into their programs. Visual Studio is slow, brittle, and makes it difficult to do version control right.

I could list examples for days but that's not the point. Nowhere is perfect, but there's no way anyone could consider Microsoft a clear leader here.


> The only real negative is the licensing requirements

Fix: Some of the real negatives are:

* the licensing requirements,

* lack of virtual desktops,

* having to manually update everything except the office suite and the OS itself

* having to use a different platform than what is used in production

* many standard tools works slower / is less tested / etc

(PS: I'm working happily from a Windows workstation now.)


Windows does have virtual desktops...just not the way X allows. The main thing that bugs me about Windows's desktops is that it is given a logical display surface compromised of all the display units. Whereas with X (going by my use of xmonad) it's easy to separate the display and desktop abstractions and have desktop 2 on display 1 and desktop 5 on display 2.

There's a nice overview of the limitations and intentions of the Windows model here: http://msdn.microsoft.com/en-us/library/windows/desktop/ms68...

When on windows, I've been using this (it crashes sometimes, but only itself, never takes other programs with it): https://github.com/Tzbob/python-windows-tiler


> lack of virtual desktops

They're not built in, but a few of my colleagues use Dexpot and like it: http://www.dexpot.de/index.php?lang=en


Also note, if I'm remembering correctly, there are native virtual desktops slated to come with Windows 10. Kinda late to the game, but it's nice that they're finally getting them.


Windows Powershell is actually quite nice and powerful, while also avoiding some of the shell legacy traps around escaping. It suffers from not being very discoverable and not having a community.


I wish they had just been less stubborn and made something that would run bash and standard unix commands. I've used it for production jobs and it's worked as advertised, but I would have rather have just had bash.


Because there are a lot of shitty things about bash, too, that anybody with half a brain would think should be blindingly simple from the command line. For example, add a virtual host to apache with an Allow for localhost on /var/www/localtest. And do it in a portable way, i.e. no 'put every vhost in a separate file and Include those. Or fetch a configuration parameter from another machine and that other machine might run any of 5 different distros. The list goes on and on - look I'm no PowerShell fan, or 'real' user even, but we have to admit that the old Unix approach is reaching EOL (well I should say 'it should reach EOL', unfortunately it seems like it's not going to go away soon, with there not even being an alternative).


They weren't stubborn, they set out to "give windows a Unix command line" but then they discovered how unsuitable a Unix command line is, and had to rethink.

See the original lead architects comments here: http://stackoverflow.com/a/573861


A lot of bash is using awk, sed, cut, tr and others to munge the output of one command into the input of another. The killer feature of Powershell is that it does away with all of that.


.. having advertised Powershell upthread, I found it fell on its face at the last hurdle. I wanted to grep a file, and discovered that the default output formatters will either truncate or wrap lines, even when directed into a file. This is wrong and destroys data. I ended up with

Select-String " 23:56.00" -Path .\input.txt | ForEach-Object { Write-Output $_.Line } | Out-File outpu.txt


Yeah, so installing Cygwin and/or gnuwin is just a lot faster than learning how to invoke "CLR objects" from the command line...


It also has a surprising number of WTFs, which was a great disappointment to me because it really seemed like MS had done scripting better. Of course, later versions fix some of the pitfalls if you use them right, but then you need to make sure you're always running machines that will have the latest Powershell on them.

(And, of course, it would have been nice if they could improve its interactive use to even be on par with the Unix shells of the 80s)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: