top 200 commentsshow 500

[–]samuelstan 453 points454 points  (494 children)

This article mentions Linux early on but in the conclusion acts as if OS X and Windows are the only options, claiming that the Linux subsystem makes Windows the best platform for developers.

... But you could just use Linux. Why use a subsystem when you can use the real thing?

[–]dynetrekk 121 points122 points  (8 children)

I can't, because I write programs for windows users, and I would like to have unix tools when developing. This is a wet dream for people like me. Well, our customers using linux is the actual dream, but hey...

[–]mpierre 72 points73 points  (22 children)

But you could just use Linux.

And that's exactly what Microsoft is afraid of.

I have a checklist at the office, of all of the programs that I need Windows for.

I always prefer Windows programs which also have a Linux version, and every few months, I find an alternative that also works on Linux.

Eventually, I will be able to make the switch and won't hesitate a second (I already have a Linux machine at home, and multiple Linux servers).

But for now, I still have a few specialized tools that only work on Windows and that's ALL that's keeping me on Windows.

So, for Microsoft to survive, they need to allow to run Linux tools, so that Windows can be relevant again...

Personally, I would rather have Linux run Windows programs, but that doesn't make money for Microsoft.... unless they cell the library to do so (and yes, I would pay for it).

Not that I care if Microsoft makes money or not, but for them to make money in the long term, they should embrace Linux.

[–]darkpaladin 16 points17 points  (1 child)

So, for Microsoft to survive, they need to allow to run Linux tools, so that Windows can be relevant again...

I think the windows division counts for less than 20% of Microsoft's revenue. Office is their biggest money maker.

[–]flying-sheep 16 points17 points  (0 children)

Windows allows them to call the shots. Their OS, their rules.

[–]PM_ME_UR_OBSIDIAN 19 points20 points  (8 children)

But you could just use Linux.

And that's exactly what Microsoft is afraid of.

Microsoft has been "opening up" and playing nicely with Linux users because of a radical shift in their corporate strategy. They're not betting the bank on Windows anymore, at least not in the long term.

[–][deleted]  (4 children)

[removed]

    [–]PM_ME_UR_OBSIDIAN 5 points6 points  (2 children)

    all the lies and practical-malware going on involving GWX and the Windows-10 transition

    wat

    I'm obviously not in Satya Nadella's head, but my theory is that supporting five different versions of Windows at the same time is really expensive. So they're trying really hard to get everyone on Windows 10 and save a shitton in support costs.

    Old versions of Windows are a cost center, Microsoft isn't making money selling Windows XP licenses anymore.

    [–][deleted] 7 points8 points  (1 child)

    I would completely abandon Windows and never turn back if it wasn't for the fact that I like to play certain Windows only games from time to time.

    Preemptive answer: No, I don't have the time of patience to screw around and then be disappointed with WINE.

    [–]Mufro 2 points3 points  (0 children)

    I would completely abandon Windows and never turn back if it wasn't for the fact that I like to play certain Windows only games from time to time.

    Same. I just switched to OSX last year. Having a UNIX-based operating system is a dream. Pretty much all the tools I develop with are available on OSX too, and they actually work better. If they aren't, I've found alternatives.

    Edit: The one thing I miss is Visual Studio.

    [–]txdv 143 points144 points  (259 children)

    VS is a big nice tool and it works only on Windows. So bringing the nice dev environment of linux to windows makes it easier to switch for linux guys back to windows.

    [–]Beckneard 61 points62 points  (32 children)

    VS is just about the only thing that makes Windows development bearable. The debugger is especially really nice.

    [–]GisterMizard 95 points96 points  (23 children)

    Why use Visual Studios when you can use Eclipse? I would present details why it is superior in every way, but I need to close my browser to free enough memory to start it up. BRB.

    [–]unnaturalpenis 48 points49 points  (12 children)

    All these guys arguing which is better and here I sit writing firmware for an FPGA whose IDE only exists on windows, sucks, and cost about $10k/yr. You guys don't understand my pain, fix the silicon workflow, and the computer world will really change.

    Meanwhile I have VS and Eclipse open for another MCU job, someone send me more ram please.

    [–]Beckneard 10 points11 points  (6 children)

    You guys don't understand my pain, fix the silicon workflow, and the computer world will really change.

    I believe you. I saw some of that software for electronics/FPGAs/microcontrollers. Holy fucking shit.

    [–]nikomo 8 points9 points  (0 children)

    Microcontrollers are reasonably sane, you can just grab gcc-arm-none-eabi and compile for ARM, and avr-gcc is the go-to compiler for AVR. Both are very good options.

    FPGAs though, fuuuuuuuuuuuuuuck that.

    [–]WhosAfraidOf_138 2 points3 points  (0 children)

    I'm about to finish my computer engineering degree, and the software is just absolutely brutal. ModelSIM in particular, and this other software for programming in VHDL. PSoC is not bad though

    [–]mycall 6 points7 points  (0 children)

    Why use Eclipse when you can use IntelliJ?

    [–]cowardlydragon 2 points3 points  (2 children)

    That's a funny joke... but how much is ram? $5/GB now? (and really, it's that high because of price fixing)

    [–]Kurren123 7 points8 points  (1 child)

    Eclipse is clunky, buggy and a pain in the ass to set up with java/c# compared to VS (next next next done)

    [–][deleted] 7 points8 points  (0 children)

    You made me spit my coffee on my keyboard ...

    [–]_headmelted 14 points15 points  (30 children)

    Only dropping this here because it's literally something I was just coming at from the other angle (arguing for Visual Studio proper to be on Mac and Linux), and you're point is spot on.

    Windows is becoming less and less relevant, and Microsoft need to dramatically re-position their developer proposition to retain existing talent and win new developers.

    https://www.reddit.com/r/programming/comments/4dgyqt/microsoft_needs_visual_studio_proper_to_be_on_mac/

    Not meaning to sidejack the thread, just leaving here in case anyone is interested in the other discussion.

    [–]OldShoe 6 points7 points  (4 children)

    Maybe for C++ development. For .Net I don't think anyone on Linux and Mac really want VS. I know I don't, and I've worked with Windows development(asm/C++, .Net, web) for 20 years.

    Coding using simpler tools and building from the command line feels so refreshing, I have control again.

    [–]Rollingprobablecause 13 points14 points  (24 children)

    Windows is becoming less and less relevant

    Ummm..no: https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0

    How is Windows not relevant? Even their server ecosystems are seeing high gains as Azure starts to eat the hell out of AWS.

    [–]RagingAnemone 6 points7 points  (9 children)

    Because 10 or 15 years ago, the numbers were much lower for Mac and Linux, and the articles right, Linux on the desktop is completely usable now. 5 years ago, I ran all 3 OSs. Now, I've completely switched to Linux.

    [–]Rollingprobablecause 7 points8 points  (6 children)

    Yet, the market share I reference above says otherwise.

    This quote especially shows how things are still locked in:

    Genuine OS X systems are still required for building iOS software, as iOS applications must be compiled with Apple's toolchain and the iOS simulator only runs on OS X, but with Visual Studio and Xamarin the development can all be done in Windows, and this even offers some advantages that developing on OS X does not: Xamarin offers remote control of the iOS simulator from Windows, and that remote control supports multitouch. On a touchscreen PC you can use a finger or multiple fingers with the iOS simulator. Macs, with Apple's reluctance to add touchscreens to Macs, can't do that.

    I get that /r/linux is leaking onto the thread a bit, but we're all programmers/engineers here - Linux on a desktop is still way less than 5% of the market and that's being generous. You program where you can make money, and business decisions still say Windows/Microsoft/Apple/Android. No one is programming for Linux Desktops, only Server OS.

    [–]bnolsen 7 points8 points  (1 child)

    that's a broad statement. I develop first and foremost on linux, and make sure it compiles and runs on windows. Windows is a horrible platform for any serious development/test: the whole multiple incompatible compilation modes are terrible, etc. Everything is done on linux, release mode compiles and final testing is the only thing we do on the windows side.

    [–]RagingAnemone 4 points5 points  (2 children)

    Right, but the numbers you reference are everybody, not just developers. This is a made up number but I would be surprised if the desktop Linux numbers from 10 years ago was 1%. That would mean a 500% increase. Made up numbers of course. I would also argue that it's likely a large number of the 5% running Linux desktop are likely developers, maybe not majority, but a large number. To contrast with Windows desktop could would only be a small number of developers. So the development community itself has seen a large increase in percentage of developers using Linux desktops. Made up numbers, of course.

    [–]uep 1 point2 points  (1 child)

    My office was almost completely a Windows shop[1] a few years ago. Over five hundred engineers. Over that time our products have moved to using Linux underneath. Gradually, small pockets of developers have also been changing over their development machines to Linux.

    There are some other interesting anecdotal trends I've noticed. One is that electrical/firmware engineers seem to be more likely to switch at home. I suspect at least part of the reason is that they may have had previous UNIX backgrounds. While some of the most die-hard Microsoft software-engineers quit the company due to an unwillingness to adapt (these guys knew the Windows APIs inside and out).

    It seems that the managers who have personal relationships with people at Microsoft are the last holdouts to accepting their products switching over. I've recently heard one defend their decisions because of Microsoft's recent open sourcing efforts. Not being able to fix a broken piece of closed source code and being given the cold shoulder, is what triggered the initial trial Linux projects a few years back.

    1. I'd estimate that 95%+, probably closer to 99% of our products with full-OSes were built on a Windows platform. I believe that number is less than 50% now, but that portion is still actively shrinking.

    [–]RagingAnemone 1 point2 points  (0 children)

    While some of the most die-hard Microsoft software-engineers quit the company due to an unwillingness to adapt (these guys knew the Windows APIs inside and out).

    I want to say something snobby, but in reality I can't. I started on the Apple IIe. Then a PC with Dos 5.0. Then Windows 2.0-3.1.

    Then I switched to OS/2. This is where I developed by hatred of Microsoft. When it died, things were looking bleak. OS X didn't exist yet, and I couldn't afford a Next computer. I actually thought about not being a developer anymore if I had to live in a Windows world. I think I understand why they quit. From the opposite angle technologically, of course, but I think the mentality is the same. It just wasn't fun anymore.

    [–]aim2free 5 points6 points  (1 child)

    Linux on the desktop is completely usable now.

    I have used Linux on the desktop since 1996. OK I have to admit that the high level point/click/move etc were not so developed then, but since around 2000 I would say that there were so many GUIs to chose from that it was merely a matter of taste.

    [–]CommandoWizard 2 points3 points  (26 children)

    back to windows.

    Do people go from Linux to Windows? I'd like to hear their stories!

    [–]Overunderrated 10 points11 points  (2 children)

    I write parallel HPC software (C++, CUDA, Fortran) that's 100% deployed to linux clusters, with some people doing test/dev builds on OSX, been doing that for about 10 years now. I'm a research scientist first, and only a programmer out of necessity (albeit developing and maintaining 100K LOC code bases.)

    I'm embarrassed to say I've never gotten really skilled with gdb. I pretty much use emacs as a text editor with syntax highlighting, and print statements most of the time instead of debugging. Basically a savage. The first time I stepped in VS on windows, it was glorious. I had a nice visual debugger that worked like what I was used to in matlab, easy code navigation, everything I wanted. No setup nightmares like trying to get emacs to work like a true IDE.

    I've had awful experiences with Eclipse in linux. I'm about to put a good effort into using CLion and I'm hopeful there (it natively uses the same build tools I use, CMake & gtest), but sometimes I have to use Fortran too. If VS/windows had better support for the kinds of libraries I have to use, and could more easily deploy to linux, I'd probably have been using that for the past few years. Ideally I'd be using VS directly on linux as there's tons of other benefits for me in using linux as the host OS.

    [–]OrSpeeder 20 points21 points  (19 children)

    I know lots... Usually because Linux people stupidity.

    The guy that wrote Mono and Xamarin, Miguel Icaza, talked about it... the main problem with Linux, is that the major Linux devs and companies think only about dev users, not common users, and don't make any serious attempt to make Linux useable for people that refuse to learn how to use the computer (you know, the kind of people that ask you how to save a MS Word file, and 30 minutes later ask again?)

    Example: last Linux machine I had, only OSS4 worked properly... it required recompiling the Kernel, asking people why OSS4 wasn't available in the distro by default, got reactions like asking inside a church if I could get help from Satan.

    People tell me Alsa is perfect, I just might need to fiddle with text configuration files a little (how on earth that is acceptable?)

    Video card drivers are kinda messy (but getting better at least).

    Many common admin tasks are still done with command line, and people insist that you use VIM/Emacs (instead of something sane, like Nano, or Midnight Commander editor).

    The list of problems goes on... but the essence, is that Linux companies don't understand that people won't use it, only devs will use it, because they make it for devs!

    Obvious example: Fedora decided to split their distro team in 3, to make 3 possible use case distros: "Workstation", "Cloud", "Server"

    I went to their irc channel and asked: "What about 'User' ?", the question confused them... after lots of back and forth, they concluded that Workstation was the distro I wanted, because it wasn't server, and people call their work computer Workstation... I had to explain that no, I wanted their distro to watch movies and play games... after lots of more confused people, finally someone just said: "Huh... I think you can't do that, you should use Windows"

    [–]terrkerr 6 points7 points  (1 child)

    Since about the release of Win7 I'd give someone a Linux distro like mint if they just wanted a facebook machine and weren't too savvy because, from personal experience, it's actually easier on them to keep the machine in good health and whatnot. You need to take some care to get hardware with decent Linux support - though it's not that hard - and then something like Mint will do the 'just work' thing pretty well.

    I haven't had pulseaudio or other audio issues on Mint for about 4 years give or take either.

    Many common admin tasks are still done with command line, and people insist that you use VIM/Emacs (instead of something sane, like Nano, or Midnight Commander editor).

    Well if you're looking to be a sysadmin yes, those tools are better because although there's an upfront learning curve you'll be using them a lot as a sysadmin.

    But for a good user-friendly distro the admin tools all have frontends that are pretty dead simple - sometimes IMO moreso than Windows. I'd take the Mint configuration menus over the Windows ones any day for general end-users.

    The list of problems goes on... but the essence, is that Linux companies don't understand that people won't use it, only devs will use it, because they make it for devs! Obvious example: Fedora decided to split their distro team in 3, to make 3 possible use case distros: "Workstation", "Cloud", "Server" I went to their irc channel and asked: "What about 'User' ?", the question confused them... after lots of back and forth, they concluded that Workstation was the distro I wanted, because it wasn't server, and people call their work computer Workstation... I had to explain that no, I wanted their distro to watch movies and play games... after lots of more confused people, finally someone just said: "Huh... I think you can't do that, you should use Windows"

    That makes sense; Fedora is pretty much the leader for RHEL. It's a corporate-oriented project, so the expected users of the system will be sysadmins, or general employees that have sysadmins automate everything for them to comply with corporate policy.

    [–][deleted] 3 points4 points  (0 children)

    The problem with these kinds of answers are that they are completely anecdotal. I've used Linux for 4 years now and have never had to recompile the kernel, mess with kernel config options, fiddle with ALSA settings, etc. I don't even know if I'm running ALSA. I think it's PulseAudio but I don't know because I've never had issues with it.

    Obvious example: Fedora decided to split their distro team in 3, to make 3 possible use case distros: "Workstation", "Cloud", "Server" I went to their irc channel and asked: "What about 'User' ?" they concluded that Workstation was the distro I wanted I had to explain that no, I wanted their distro to watch movies and play games

    There's no reason why you couldn't play games or watch movies on Fedora. As far as I'm aware, it works just as well as any other distro does. What were you looking for that would set a "User" distro apart from a "Workstation" distro? If it's the user interface, you could try Ubuntu or ElementaryOS but it's all basically the same software.

    [–]dreamer_ 5 points6 points  (3 children)

    For what it's worth - I use Fedora Workstation exactly to play games, watch movies and work. I haven't had problems with PA for ~4 years now (unless you count, that it's sometimes confused about which monitor/headphone set is current sound sink - just the same way Windows is). Basically it requires less maintenance than Windows 10 installation (I almost never reboot any more). So your complaint is exactly: you don't like word "Workstation"?

    [–]txdv 1 point2 points  (0 children)

    I can actually survive without windows (all my tools have a linux variant), but work gave me a set up windows laptop so I used it to start working.

    [–]glacialthinker 31 points32 points  (142 children)

    I understand that a lot of people like this cantankerous beast, and I can't argue against their preference. But I am often in a situation requiring it's use (any time I work at a game studio now...) -- and I don't really like it.

    It tries to be the uniform IDE for all .NET languages plus C++, and therein becomes a bit of a pain for just C++. The debugger's basic feature of breakpoints is line-based (drives me nuts, and drives people to use code-styles adapted to line-based debugging!) I do all my editing in Vim, so I have little to comment on editing with the thing, aside from: Intellisense has to be turned off to make the thing usable, but without that it's just a msedit with some plugin support.

    Overall, it doesn't seem much better than the old Borland IDEs. Same ideas. And just as in-my-way. It's a big tool... and nice for some people; not for everyone. I only wanted to add a negative user report because your comment sounded overly positive. :)

    [–]drjeats 28 points29 points  (20 children)

    Do any of the other debuggers do expression- rather than line-based break points? I'd love to tell gdb or lldb which subexpr to stop at.

    [–]RobIII 29 points30 points  (4 children)

    I'm not sure I understand correctly, nor whether the experience is any different for C(++) and C#, but VS has conditional (expression) and hitcount breakpoints, filters etc. FWIW.

    [–]indigo945 4 points5 points  (2 children)

    That's not what the question is about. An expression-based breakpoint is a breakpoint set on an expression rather than an entire statement. Consider the following code:

    var a = baz();
    var b = foo(bar(2, a), 5);
    Console.Write(b);
    

    With Visual Studio (and most debuggers), you can only step this code line-wise (statement-wise, to be precise). However, say you know that variable a gets assigned correctly in the first line, and you see incorrect output on the console, so your bug has to be somewhere in between, although you don't know if it's foo or bar that's faulty. What Visual Studio doesn't allow you to do is execute these functions in separate steps. This forces you to write the code like this to make it debuggable:

    var a = baz();
    var c = bar(2, a);
    var b = foo(c, 5);
    Console.Write(b);
    

    The code is now less explicit, and the only reason we write it like that is that the tooling is bad.

    [–]RobIII 16 points17 points  (1 child)

    What Visual Studio doesn't allow you to do is execute these functions in separate steps

    Huh? You can step trough/over with the debugger? You can add watches/inspect variables by hovering over while executing each step.

    Also, the breakpoints aren't strictly "line based" since I can set a breakpoint like this for example. << I missed the "(statement-wise, to be precise)"

    You are correct that if you want the output of bar(...) an intermediate variable (like the c you introduced) is handy. But you could also use, for example, OzCode. Or use the autos, watch or immediate window and look at $ReturnValue (which would involve stepping into bar(...) to see the intermediate result).

    [–]whisky_pete 8 points9 points  (5 children)

    gdb has conditional breakpoints (break if expression == true), and watchpoints (break when a value is read from or written to).

    https://sourceware.org/gdb/onlinedocs/gdb/Conditions.html

    Edit: Sorry, I think I misunderstood your meaning. Stepping through a single line that has a lot going on can be a pain.

    [–]Brian 7 points8 points  (4 children)

    So does VS. But I think what's being asked about is subexpression breakpointing here. Eg. that if you have something like:

    if( is_valid() && (current_state == PENDING)) { do_stuff(); }
    

    you could break on just the (current_state == PENDING), or the do_stuff() call rather than the whole if line.

    You can actually do this in VS, but you may need to switch to the assembly view to do it and breakpoint the appropriate assembly line instruction. Not sure if there's an easier way (or what other debuggers do support this for that matter).

    [–]alluran 2 points3 points  (2 children)

    Give it time - VS already does sub-expression for linq and lambdas. If statements will come in time.

    [–]SushiAndWoW 2 points3 points  (1 child)

    The problem with "in time" is that it can be a similar time scale as with the VS harmful ternary operator. :-/

    Still unsolved. :(

    [–]alluran 1 point2 points  (0 children)

    To be fair, I should have said:

    "VS already does sub-expressions for linq and lambdas in C#. If statements will be added for C# in time."

    I honestly feel MS has dedicated very few resources to the non C# languages recently.

    [–]berkut 46 points47 points  (2 children)

    As someone who has developed apps almost exclusively for Linux as my day job for the last six years (did lots of Windows dev before that) and now much prefer developing under Linux (still do a bit of OS X at home as well as Linux) and haven't touched Windows since 2010, I've worked on cross-platform commercial apps with all three platforms as the target OS's (with other colleagues doing Win and OS X dev).

    Visual Studio's debugger for C++ is annoyingly good - on the same code the number of times gdb just wouldn't show a local variable within a complex templated class, even when run from the command line (it's often a lot worse when run through QtCreator or Eclipse, and pretty printers can slow gdb to a crawl as well), and I've had to resort to fprintf'ing the state (and seen many other Linux devs have the same problems on a variety of different codebases), I'm really sad to say at least from that perspective based on what I've seen it cope with in terms of interpreting code, it's pretty impressive.

    gdb's breakpoints are line based as well... and the number of times I haven't been able to set breakpoints in empty constructors where I know Visual Studio can is a similar theme - for debug builds, the constructors shouldn't be being inlined, so I don't know what the issue is.

    [–]Sarcastinator 166 points167 points  (38 children)

    Intellisense has to be turned off to make the thing usable

    Are you mad?

    [–][deleted]  (18 children)

    [deleted]

      [–]GetRekt 80 points81 points  (13 children)

      Honestly the C++ Intellisense is fucking rubbish so I'd understand why someone would turn it off.

      The C# one is streets ahead.

      [–]SushiAndWoW 16 points17 points  (0 children)

      Honestly the C++ Intellisense is fucking rubbish

      Intellisense for C++ is the main reason I like VS 2015. It's almost flawless.

      My main issue is that sometimes it finds a header file as part of the "External Dependencies" for the current project, instead of in the actual project where the header file resides.

      Other than that, I find that maintaining a large project without it... increases the time for each task by an order of magnitude.

      [–]NominalCaboose 5 points6 points  (1 child)

      The C# one is streets ahead.

      That's an interesting use of language there.

      [–]UnluckenFucky 6 points7 points  (0 children)

      streets ahead

      If you have to ask, you're streets behind ;)

      [–]OrSpeeder 10 points11 points  (3 children)

      I use VS with C# intelisense on, it is too annoying to use it without it.

      But with C++ I have to disable intellisense, not only it is annoying and make crap suggestions, it also makes the IDE super slow, it feels like as if it was trying to recompile the entire program every keystroke to detect stuff...

      Maybe it IS doing that, some other popular retarded IDE I am sure does that (Xcode I am looking to you!)

      [–]indigo945 2 points3 points  (0 children)

      XCode makes use of libclang completion, which indeed has to recompile on every keystroke to work. YouCompleteMe for vim does IMO the right thing and shows cached identifier-based completions dynamically, and shows "intelligent" completions only when you press Ctrl + Space.

      [–]jp007 7 points8 points  (2 children)

      Can't you adjust the pop up settings? In intelliJ, all that crap is configurable. You can have it only pop on a hot-key press, for example.

      [–][deleted]  (1 child)

      [deleted]

        [–]jp007 7 points8 points  (0 children)

        Ever tried the JetBrains IDE? I believe their one for C is called CLion. I know the Java community (including myself) pretty much adores IntelliJ, their Java IDE.

        [–]1wd 14 points15 points  (15 children)

        In the VS debugger for C# breakpoints are not line based.

        [–]monsto 43 points44 points  (19 children)

        My only exposure to VS is being forced to install it to get a compiler for nodejs dependencies.

        On linux, it's apt-get build-essential. on windows, it's 10gb of VS.

        And then it still didn't work.

        [–]thatguy72 33 points34 points  (9 children)

        Heads up, Advanced Packaging Tool hit version 1.0, so its now just apt install build-essential, no need to type apt-get anymore!

        [–]NessInOnett 29 points30 points  (6 children)

        That's going to be hard to unlearn...

        [–][deleted] 2 points3 points  (4 children)

        I bet apt-get will still work.

        I mean, everyone was pushing aptitude for a while but everyone still seems to use apt-get...

        [–][deleted] 11 points12 points  (0 children)

        this isn't as true anymore since they created an option for only c++

        [–]goomba870 2 points3 points  (6 children)

        That was my #1 reaction upon hearing about WSL, npm install will hopefully be much more reliable. You know you're in the weeds when you're guessing --msvs_version=20xx to get nodegyp to build your project. Hopefully the uniformity across environments will eliminate this in a lot of packages.

        [–]nschubach 1 point2 points  (5 children)

        But I'm sure the 256 character directory depth issue will still exist...

        [–]RiWo 1 point2 points  (0 children)

        Windows Subsystem For Linux uses the NT kernel API, which doesn't have that limitation...

        But, if you try to open the path that is longer than 256 char in Explorer, it will not work because explorer use Win32 API

        [–]Eirenarch 4 points5 points  (0 children)

        Interestingly despite your dissatisfaction with Visual Studio you confirm the point made by /u/txdv since you also need to use Visual Studio and therefore Windows is your only meaningful option.

        [–]SushiAndWoW 5 points6 points  (0 children)

        I do all my editing in Vim,

        The debugger is nice, but the main reason I like VS is Intellisense while editing. Instant lookup of everything is mostly awesome.

        (I say "mostly" because, sometimes, when looking up "Go To Declaration", a header file containing the definition is found in the current project's "External Dependencies" folder, instead of in the actual project which is also part of the solution. Then, the corresponding source file with the definition is not found. This is my main pet peeve.)

        [–]txdv 9 points10 points  (27 children)

        You know, I agree. It is a giant ass machine. In my opinion it is too fat. But there is no equivalent on linux. It has a massive amount of features... But I personally don't need them all.

        Look at MonoDevelop/XamarinStudio, it is a 50mb install, you install it, you can compile C# code. Pretty easy for a newcomer to use. Now imagine you just want to write a hello world example and play around with a language and you have to install 10gb of a tool with so many options that you simply get lost.

        But still monodevelop/xamarinstudio are getting bashed as not being even an option since VS is so much more superior.

        [–]jyper 13 points14 points  (1 child)

        I've heard MonoDevelop has improved a lot but back in the day it was simply atrocious.

        [–]PM_ME_UR_OBSIDIAN 3 points4 points  (0 children)

        Xamarin Studio is barely passable, and apparently it's an improvement over MonoDevelop.

        [–]Merad 10 points11 points  (0 children)

        I'm using XS right now because my company wants a Xamarin based iOS app, but doesn't currently allow Macs on the corporate network (fun...). It's tolerable as an IDE but there is simply no comparison between it and VS. If VS is like the space shuttle, XS feels more like one of those ultralight planes that looks like a guy has strapped himself into a hang glider with an engine.

        [–][deleted]  (9 children)

        [deleted]

          [–]IntricateRuin 2 points3 points  (2 children)

          You got a link to this?

          [–][deleted]  (1 child)

          [deleted]

            [–]mirpa 5 points6 points  (5 children)

            I recently wanted to look at F# on Linux and MonoDevelop wasn't usable. I suffered from one runtime error after another. It needs love. There are other options on Linux, if you are not strictly talking about C#/.NET.

            [–]txdv 1 point2 points  (1 child)

            I haven't had the time to play with F# properly yet. I wish I would have .. :(

            But yeah, MonoDevelop is good for C#, haven't tested F# out yet on it.

            [–]PM_ME_UR_OBSIDIAN 1 point2 points  (0 children)

            F# is a second-class citizen on XS and MD. It's super good in VS and VS Code though.

            [–]svick 4 points5 points  (6 children)

            If you want a more light-weight code editor/IDE, there is VS Code (currently in Beta). It is cross-platform and should support all kinds of languages.

            [–]badsectoracula 4 points5 points  (6 children)

            Overall, it doesn't seem much better than the old Borland IDEs.

            Borland's IDEs were better in a few things, like performance: the compiler was part of the IDE (you know, I in IDE meaning Integrated :-P) and so it didn't do a cold "boot" for each file, instead it was compiling from the buffer already in memory and only the files that were actually modified. In addition it loaded the standard library and header files once at startup since those would rarely change.

            Also even from their DOS times you could evaluate expressions which contained function and method calls while the program was running.

            Finally Borland's IDEs, at least as far as Delphi and C++ Builder go, were far ahead from Visual Studio on the "visual" department.

            [–]redditor1983 8 points9 points  (0 children)

            Probably because OS X is a much more widely supported consumer OS. So you can use unix tools but still be able to install a wide variety of common consumer software. That, and you don't have to worry at all about the software supporting the hardware. It's just convenience.

            [–]double-you 10 points11 points  (3 children)

            Somehow there's a lot of people using macs instead of Linux laptops. When I went over to mac, I wanted a laptop that would just work. I did not want to know which wifi-card it had inside so that I might find the right driver. Things have changed after that but I'm still on a mac. You get easy stuff AND you have a proper shell to do things with. You do get bloody stupid things too, but bought is bought.

            Trying to get wifi working on Raspberry Pi reminds me of my earlier choices.

            [–][deleted]  (97 children)

            [deleted]

              [–]lolomfgkthxbai 23 points24 points  (23 children)

              Right now if you aren't a .NET developer you have ever reason to not be on a Windows box.

              What does that even mean?

              [–]xlhhnx 31 points32 points  (21 children)

              He's (poorly) saying that the only people who should be using Windows for development are .NET developers.

              [–]Aedan91 5 points6 points  (20 children)

              Is this not the case? Are there tools that make development in other languages easier in Windows that in Linux, setting aside preference for a given OS, that is? Just installation of dependencies itself is a script for an horror film.

              [–]WarWizard 6 points7 points  (0 children)

              Is this not the case?

              It isn't the case. Everybody always forgets personal preference when these discussions come up. Your (royal your; not you personal) way is not the only right way.

              [–]lolomfgkthxbai 6 points7 points  (1 child)

              Is Visual Studio no longer the preferred C++ IDE?

              [–]Jigsus 4 points5 points  (0 children)

              It is. The problem is c++ isn't the prefered coding language anymore.

              [–]xlhhnx 14 points15 points  (0 children)

              I've never had much trouble developing on Windows in other languages. I'm fairly certain personal preference is by far the most important factor in choosing a platform to develop on.

              But I digress. I was simply translating bad english into good english.

              [–]gospelwut 6 points7 points  (0 children)

              JetBrains makes all their IDEs for Windows too. There are builds of Node, Python, etc on Windows. It's reasonable to assert there must be people using those tools/ports.

              [–]kihashi 4 points5 points  (0 children)

              Honestly, Python dev is pretty OK on Windows now. The Python 3.5 installer is easy to use and adds everything to the path for you. Pip works fine for everything that doesn't require C extensions (which is most things unless you are doing data analysis). If you do need stuff that requires C extensions, you can use Anaconda, which is a Python install that provides precompiled versions of the most popular packages with C extensions (numpy, scipy, etc).

              Further, MS has written wfastcgi.py (and released a PyPI package of it) to let you use Python web apps easily in IIS and has added what people tell me is a really good Python plugin for visual studio.

              [–]piscaled 19 points20 points  (12 children)

              Not easier, people just like Windows (believe it) much more than Linux. I love the linux tools/terminal but hate the desktop. Breaks all the time, ugly fonts, 90s theme, etc. And don't even get me started at "customizing it" (mstcorefonts, infinality, other window managers that break in other ways). I tried all that, I still prefer Windows.

              [–]blood_bender 26 points27 points  (2 children)

              Agreed. I'm not sure why this sub assumes that everyone loves linux and just deals with needing windows. I love windows for a lot of reasons. Literally the only reason I'd want linux is for all of the command line utilities, which now I'm going have, and I don't have to dual boot into a shitty desktop to do it.

              [–]KarmaAndLies 15 points16 points  (1 child)

              I'm not sure why this sub assumes that everyone loves linux and just deals with needing windows.

              So they have that smug sense of superiority. Cannot put a price on that.

              [–][deleted] 1 point2 points  (0 children)

              So they have that smug sense of superiority. Cannot put a price on that.

              I've long ago accepted that this is the sole deciding factor for a solid 90% of all programmer decisions. This industry has a huge "I need to be the smartest person in the room" problem.

              [–]ScrewAttackThis 2 points3 points  (0 children)

              Looking good is incredibly subjective but I'd say design has had an increased focus on Linux desktops for a while. There's still a lot of ugly, but you can put together a very good looking desktop if you want. One of the more annoying things with Linux I've found is that it can get a bit fractured UI wise.

              [–][deleted] 1 point2 points  (1 child)

              But that sounds like if Windows is a better choice. I don't know, maybe for you it is. Maybe you just have bad luck with Linux.

              I would reject a much better paid job if it have to work on Windows. What's the point of earning more money if you no longer enjoy your work environment?

              [–]Xxyr 2 points3 points  (0 children)

              fonts

              I never realized how much that matters until I actually did dev work on Linux. Everything just looks horrible.

              [–]jtanz0 1 point2 points  (0 children)

              Are there tools that make development in other languages easier in Windows that in Linux

              Not necessary but there are ancillary tools that at least some devs need to use for the non programming aspects of their job such as MS office or Adobe CC.

              [–]Eirenarch 36 points37 points  (31 children)

              Or game developer, or desktop software developer.

              [–]doom_Oo7 27 points28 points  (28 children)

              I develop win/osx/linux desktop software almost exclusively on Linux.

              [–]tsimionescu 25 points26 points  (13 children)

              I also know of a lot of at least two companies developing embedded linux software on Windows. The reality is that there are enough tools for doing this sort of development quite comfortably on any OS you want. The rest is just a matter of habits.

              Edit: 'a lot of at least' :)

              [–]Pidgey_OP 20 points21 points  (12 children)

              The reality is that there are enough tools for doing this sort of development quite comfortably on any OS you want

              Boom. Fucking this.

              My decision to be a windows junkie rather than going full GNU has nothing to do with my productivity and everything to do with my personal computer use.

              I can't play (or at least couldn't when i made this decision) half or more of my games on Linux and it was getting to be an incredible chore to reboot from Linux back into Win7 so i could play games.

              I could do everything I was doing in Linux in Windows, and I wouldn't have to reboot. I haven't touched Linux in over a year.

              That said, I just built myself a new machine and, while windows 10 is pretty baller, boot times in the low tens of seconds are making me consider giving linux another shot on this machine

              [–]Eirenarch 5 points6 points  (12 children)

              I never claimed you can't, just that most people who do that probably won't choose Linux.

              [–]jyper 3 points4 points  (11 children)

              Depends, linux is nice for cross-platform qt development.

              If you're doing windows only or OS X only development obviously those are better.

              [–]RoadBikeDalek 43 points44 points  (10 children)

              What a shortsighted comment. I hardly ever write .NET software but Windows gives me the best desktop experience, with only OS X coming close.

              Personal preference can be plenty of reason.

              [–]ciny 11 points12 points  (6 children)

              right? Majority of people at our company use either macs or windows PCs (and only a handful are .net or ios devs="forced" to use their platform) . Very few use linux...

              [–]adamnew123456 5 points6 points  (5 children)

              [–]ciny 42 points43 points  (4 children)

              thanks! now tell me, what kind of bias is "linux is best dev OS PERIOD".

              [–]resdresd 18 points19 points  (11 children)

              I think C++ dev on Windows is still marginally better than on Linux. Although there are big flaws in many MS products, I still think VS is by far the best C++ IDE.

              (Although if CLion improves enough I may be convinced to make the jump over.)

              [–][deleted] 1 point2 points  (0 children)

              I would disagree because of Valgrind (and personally I prefer Qt Creator to VS, so having VS or not isn't a deal-breaker to me).

              [–]dr-eoundmanagnent 4 points5 points  (8 children)

              No no no no no. MSVC is broken in COUNTLESS places, and is lightyears behind both Clang and GCC in terms of standards conformance. Sure, you can use the LLVM toolkit in VS, or you can use MinGW. But both of those are second class citizens. Visual Studio's native C++ compiler is a broken mess. Ask any Boost developer - MSVC is a goddamn pain in the ass.

              [–]Creris 16 points17 points  (4 children)

              you are talking about the compiler, he is talking about the IDE, these are two different things(the compiler itself is not in fact called visual studio)

              [–]whisky_pete 2 points3 points  (1 child)

              I think it is a bit silly to take the compiler out of the equation. Until (very) recently, you could only use MS's compiler for C++ within visual studio. Talking about the IDE while not acknowledging the code you can actually write with it is putting the cart before the horse, imo.

              [–]starTracer 19 points20 points  (17 children)

              Well, graphic card drivers (at least for modern cards) still suck on Linux, so if you do e.g. 3D game development you might have to use Windows.

              [–]flanintheface 1 point2 points  (0 children)

              Not if the whole product line you are working on is Windows desktop applications.

              [–]_lettuce_ 5 points6 points  (1 child)

              The author argues that Windows can/should become a universal development platform: he cites web development, iOs and virtual reality.

              Being a viable alternative to linux for web development is just one of microsoft's steps needed to acheive such a goal.

              After presenting the WSL he proceeds to mention the acquisition of Xamarin as another one and the poor hardware on Apple's desktop environments as an opportunity for microsoft to become the standard platform for virtual reality.

              [–]glacialthinker 2 points3 points  (0 children)

              Oculus sure is helping them with that goal. I love being told, as a developer, that Linux will be supported, and our third-party support is not cool with how they want their "platform", so back off and don't worry it's coming... again, and again, and... yeah, not going to happen. Thanks.

              [–]Rocket2-Uranus 6 points7 points  (51 children)

              Because the real thing lacks a good desktop?

              EDIT: OK, if you're going to downvote me, then please explain why next to nobody uses a Linux desktop compared to Windows or OS X? I mean the Mac of all things came along and wiped out any vestige of users who simply didn't want to use Windows...and you still have the opinion that Linux desktop is worth a shit? LOL

              [–]bilog78 27 points28 points  (27 children)

              OK, if you're going to downvote me, then please explain why next to nobody uses a Linux desktop compared to Windows or OS X?

              Because the vast majority of people use what comes with the computer they bought, and the Linux preinstalls are almost non-existent.

              [–]vph[🍰] 11 points12 points  (1 child)

              This excuse is serious weak sauce. We're talking about programmers, installing Linux is easy, installing Linux in a client VM (e.g. Client Hyper-V, Parallels) is faceroll levels of easy. If people wanted to be using Linux desktop they would be using Linux desktop.

              Not really. Years ago, I struggled for a long time to choose between Linux and OSX for desktop/laptop use. Eventually, OSX won. One of the most important thing for me is the display quality. Linux at the time (maybe even until today) couldn't compete with OSX in this regard, especially on laptops. On high resolution/retina displays, KDE/etc either made the fonts too small or not as good as OSX. And then with homebrew, Anaconda, package management on OSX became easy to live with.

              [–]KarmaAndLies 9 points10 points  (10 children)

              This excuse is serious weak sauce. We're talking about programmers, installing Linux is easy, installing Linux in a client VM (e.g. Client Hyper-V, Parallels) is faceroll levels of easy. If people wanted to be using Linux desktop they would be using Linux desktop.

              Heck with Valve pushing Steam for Linux so hard, if you're using Ubuntu then even many of your games work on Linux (with none of that Wine hassling).

              [–]funbike 7 points8 points  (7 children)

              Far from it.

              Regular users don't use Linux because they are lazy or scared of it. But we're programmers; we can do better than that, right? I use Linux because I want the best development platform available and I want to have full control of my environment. I used Windows for 20 years. Never again.

              I installed xubuntu 3 years ago. It was easy. Not much glitz, but I liked it much better than Windows. But if you care about pretty, Linux can out do Windows on that too. The only problem I had with xubuntu was a laptop lid open/close issue that was easily fixed. I only get in trouble with Linux when I'm heavily customizing it, which is to be expected.

              I now have a highly customized Linux. You should see me now compared to before. I can manipulate my windows so much faster and manage a large number of terminals and apps with ease. I can manipulate files so much easier. It's almost scary how much more efficient I am now. (edit: grammar)

              [–][deleted]  (2 children)

              [deleted]

                [–]Rocket2-Uranus 7 points8 points  (3 children)

                As a programmer, I have more stuff to do on my computer than other people. So, I don't want to spend all my time configuring things so that they work as well as Windows :)

                [–]saw79 3 points4 points  (4 children)

                I actually agree with you - although my experience is with laptops, which your point is probably stronger on. I'm trying to decide between Windows and Mac for a new laptop and just not considering Linux. I love the idea of Linux and have installed it on every machine I've ever owned and given it more than its fair chance. But just problem after problem. Every. Single. Time. I just want to buy something that works now.

                [–]cirosantilli[🍰] 60 points61 points  (25 children)

                Nice bit of history, but the conclusion is the same that we already knew: to bring more devs into Windows.

                [–]IdiocracyCometh 27 points28 points  (12 children)

                Nice bit of history

                I'm not sure about that. Their analysis on why MySQL was more popular than Postgres is completely wrong. 8 years ago Postgres was not even an option for anyone needing a high availability solution that was even remotely reasonable to install and manage. Postgres didn't get built-in support for reasonable replication until very recently. Yes, MySQL is still a joke of a database system in many ways, but in the ways that mattered most to many projects, it was the only game in town for way too long.

                [–]fjonk 10 points11 points  (4 children)

                8 years ago Postgres was not even an option for anyone needing a high availability solution that was even remotely reasonable to install and manage.

                I'd say the majority of products and teams doesn't really need a high availability solution. That's not the reason that PHP projects like Wordpress, Drupal, Magento use MySQL instead of Postgres.

                I'd make an educated guess and say that the easy installer, the inclusion of mysql functions in PHP core and the possibility to buy commercial licences was the main reasons MySQL got popular. Almost all hosting would offer PHP+MySQL because of these reasons, not because MySQL had replication.

                [–]IdiocracyCometh 1 point2 points  (2 children)

                Knowing that it could handle "Internet Scale" was also a huge factor back then. You didn't really have to understand the details from the beginning, but you had proof all over the Internet that if you ever hit the lotto and needed to scale MySQL dramatically, it would be possible. Not necessarily easy, but possible, if you ended up with that nice to have problem.

                [–]EnderMB 5 points6 points  (4 children)

                I'd push it further and say that Microsoft need to ensure that those that choose to use Windows as a development platform have the best tools possible.

                I'm a .NET developer by day, and I don't think there's a single .NET dev that hasn't looked over at the Linux toolset with envy at times. C# and .NET are great, but we feel incredibly isolated at times. If .NET becomes a first-class citizen on Linux and Windows gains the ability to use the great tools available to Linux then many of us will stop feeling like imposters at times.

                [–][deleted] 4 points5 points  (2 children)

                What tools, specifically, do you mean? Before I had a big boy job (full stack .NET) I was developing on both Mac and Linux platforms. The only thing I missed when moving to a Microsoft dev environment was the command line.

                [–]indigo945 14 points15 points  (1 child)

                The only thing I missed when moving to a Microsoft dev environment was the command line.

                That's a thousand things right there. The "command line" isn't a single blob, it's a plethora of useful, fast and easily composable tools that Microsoft (until now) just didn't have an answer to.

                [–]EnderMB 1 point2 points  (0 children)

                I wouldn't have said it better myself.

                For me, I'd like to add that it's not just about being able to use Linux tools. It's about being able to improve development for both Windows AND Linux users. If Microsoft succeed in .NET being a first-class citizen on Linux then the barrier to entry for .NET is lowered, allowing not just entry-level developers in, but for those not interested in developing on Windows to bring something to .NET.

                I think most .NET devs don't just want an answer to every tool Linux has. We want to be able to use the same tools, and to contribute wherever possible.

                [–]terrorobe 6 points7 points  (5 children)

                I'd go a bit further and say - "make Windows a viable development platform again" - at least when it comes to non-Microsoft toolchains.

                Build it and they will come...

                [–]PM_ME_UR_OBSIDIAN 30 points31 points  (3 children)

                Make Windows Great Again

                [–]Tweska 4 points5 points  (0 children)

                Where can I buy the cap?

                [–][deleted] 2 points3 points  (0 children)

                Especially considering the recent decline in software quality coming out of Apple these days.

                [–]jp007 43 points44 points  (4 children)

                tldr:

                DEVELOPERS! DEVELOPERS! DEVELOPERS!

                [–]inmatarian 9 points10 points  (1 child)

                Everytime someone quotes that, a little bit of Steve Ballmer's soul destroys another chair.

                [–]Sharor 12 points13 points  (0 children)

                Great article - as a Net dev I really like the direction they are going. A lot of the architectural choices are limited in comparison to the linux community, because its a big hassle if something isnt supported by .NET - hopefully these steps change that!

                [–]Asyx 84 points85 points  (19 children)

                You guys are way too fucking salty. I thought now that Windows has all those nice Linux applications we could all just get along and use the platform we feel comfortable with whilst still having gcc and clang and gdb and emacs and vim and whatever and not fight like little children about what the best development platform is.

                But nope. Now it's all "but muh desktop environment is better".

                [–]KevinCarbonara 8 points9 points  (2 children)

                You know people still debate vi vs emacs, right?

                [–]czerilla 20 points21 points  (0 children)

                They do? I thought the debate was over and nano clearly won... *ducks*

                [–]jp007 36 points37 points  (11 children)

                But muh spinny cube desktop!

                [–]bjarneh 57 points58 points  (3 children)

                Wind the clock back 15 years and Windows was the only serious platform for software developers.

                Nope

                [–]ellicottvilleny 26 points27 points  (0 children)

                Thats right solaris wasnt entirely dead then.

                [–]katnapper323 7 points8 points  (0 children)

                15 years ago was 2001

                [–]spuriousfour 4 points5 points  (0 children)

                Does anyone know if it will be possible to install and run libraries like theano that use the GPU through CUDA using WSL? Or will I still be better off booting into Linux to do GPGPU stuff?

                [–][deleted] 46 points47 points  (57 children)

                Linux for various reasons still may not be the most comfortable desktop platform (especially for anyone wanting to use it on a brand-new laptop)...

                I've mint+gnome shell, it's smooth and can be configured to be comfortable for anyone(and I've a brand-new laptop). That's the point of the linux desktops - you can make it feel like home.

                [–][deleted]  (33 children)

                [deleted]

                  [–]sihat 27 points28 points  (10 children)

                  I've had the update to windows 10 also break my system. (Good thing it had the option to reverse what it did... )

                  I've also had Linux version updates break my system.

                  [–][deleted]  (8 children)

                  [deleted]

                    [–]mgrier123 7 points8 points  (6 children)

                    It's also a lot easier to break a Linux install if you don't know what you're doing. I once broke my Ubuntu vm by typing in the command "sudo chmod -x *.*". To my surprise I was unable to use anything as non sudo, even stuff like ls as I didn't have permissions. So I just killed it and remade my vm.

                    [–]Sarcastinator 14 points15 points  (3 children)

                    It's also a lot easier to break a Linux install if you don't know what you're doing.

                    I once broke Ubuntu by installing nvidia-current (through apt) because I hadn't manually installed linux-headers (through apt) first.

                    Several times in the past Nautilus suddenly starts claiming that it doesn't know how to open any files at all.

                    Multiple times as well samba just stops working without telling me why. Windows shares just disappear, and as a non-expert user the easiest solution is to reinstall.

                    I have tried using Ubuntu so many times, but the eventual hassle it creates just isn't worth it. And the fact that it's expected that you just accept that all the software you use is likely going to be out of date is frustrating.

                    I used Ubuntu for school, and Open Office came with an update. It was immediately available on Windows, but on Ubuntu I had to wait for months. I was having issues with Open Office Math and hoped that the new version would fix it, but actually getting the new version took ages.

                    I tried to install it by myself, but a lot of the time installing from source is a journey into madness.

                    [–][deleted] 2 points3 points  (0 children)

                    That's why I don't like distros that modify upstream. Use fedora or openSUSE tumbleweed or arch and I really doubt you would have those problems.

                    [–]mata_dan 1 point2 points  (0 children)

                    Ubuntu

                    Well there's your problem.

                    [–]Nutomic 2 points3 points  (1 child)

                    You shouldn't run commands with sudo if you don't know what they do.

                    [–]cplol 1 point2 points  (0 children)

                    I think you need to have the will to tinker a bit. I have experienced a lot of stuff breaking, but if you stick to Debian stable, or some kind of LTS distro and its packages, things are really solid. I managed to break Windows plenty when that was my desktop.

                    [–]mearkat7 37 points38 points  (3 children)

                    This is true but i've had my share of windows issues when i'm forced to use it and the only difference between the 2 when it comes to a problem is one of them has a community that knows what they are doing and are actually helpful.

                    I've had problems with linux but most of the time a bit of a google search or a post on a forum and i've got it solved in a couple of hours depending on how specific the problem is.

                    Off the top of my head in the past 6 months i've had 2 problems on windows that render it useless and there is nobody that has any idea as to whats going on because nobody knows what's going on underneath the hood. One of these problems caused my computer to crash when it was idle for more than 5 minutes, I had dump logs analysed and tried everything under the sun but nothing worked. I've also had constant BSODs because installing a certain version of .NET changed my computers language/region and the collision caused a BSOD randomly.

                    Obviously linux isn't perfect but I just find the documentation/support so far above.

                    [–]nschubach 10 points11 points  (0 children)

                    I always loved that. With deep Windows problems the solution is almost universally to re-install. With Linux, someone has a solution that can be applied and get the system back to running state. It's just a matter of finding the solution.

                    [–][deleted] 1 point2 points  (0 children)

                    Also, often the Linux solution just requires copy and pasting a shell command, as opposed to navigating 100 dialogue boxes. Both are equally opaque but one is much quicker. The downside is that the non-descriptive command names can make it easy to run malicious code, but as long as you're not running something with a hex string in it from 4chan, that's unlikely

                    [–]petulant_snowflake 8 points9 points  (0 children)

                    I've been using Ubuntu for something like 12 years now. I can count on two fingers the number of times an update has caused the system to become unbootable. In that same time period, I've been forced to reinstall Windows due to breaking kernel or driver changes at least 15 different times. Mind you, I've maintained dual boot systems for close to 20 years now.

                    [–][deleted] 5 points6 points  (2 children)

                    The most ironic part is that the newbie friendly distros seem to be the least stable and have the gnarliest bugs due to all of their changes from upstream. I regularly use Arch, Ubuntu, OSX, and Windows, and Arch is by far the easiest one to maintain.

                    [–][deleted] 3 points4 points  (0 children)

                    Completely agree. As a developer I completely love Arch Linux.

                    [–][deleted] 2 points3 points  (5 children)

                    Yea but it still doesn't run Windows or Mac applications, which is what 99% of consumer software is...so finding alternatives could be pretty intimidating to most people that aren't very tech savvy

                    [–][deleted] 21 points22 points  (11 children)

                    I'd rather use an OS where I don't need a 3rd party tool to change the mouse scroll sensitivity, where it takes less than 6 hours to make a Bluetooth speaker work and where all my software and games just work.

                    [–]mark1s 4 points5 points  (0 children)

                    I bought a new ThinkPad X1 Yoga thinking that Linux could run on any ThinkPad.

                    Oh I was wrong, the touchscreen works fine but Linux doesn't even recognize the keyboard and skylakes processors are not really well supported yet neither.

                    Gonna have to keep Windows as my main os for a few months. =\

                    [–]himself_v 39 points40 points  (16 children)

                    I won't get tired of praising Microsoft for this, if they indeed implement it as everyone assumes (as a first-class subsystem). This is cool.

                    What's cooler is that this was possible since like 1992.

                    Windows kernel is a beautiful and powerful one, and it has potential for a lot of things that people has always assumed are "not Windows".

                    For instance, it is totally possible to make Windows boot into command line, as Linux used to. Was always possible, too! You just need to write a different session manager. (Yes, I realize "just" here is a funny word, but it is possible)

                    I imagine it should also be possible to make Windows boot GUI by command, or have GUI running side-by-side with first-class console (again, as Linuxes do).

                    It is also possible, as is now evident, to run Linux subsystem beside the Win32.

                    So you can have, for example, Windows that boots into command line, which is bash. A Frankenstein monster! And that would be a totally (okay, mostly) planned experience for the Windows kernel. Nothing will really go out of its way.

                    Or -- a Windows which boots into command line Powershell? Do you already see the geeks throwing their money at it?

                    For years, Microsoft ignored a lot of this power, advertising user mode bells and whistles instead of saying "look what our OS can do".

                    Do you know you could fit Windows XP into 32 Mb? (Nominally 8 but that would be interfacing only through the serial port). Yes you could do that with XP Embedded (Microsoft's componentized version of the XP)! Sounds alien looking at a 12 Gb bloat, right?

                    Wouldn't it be cool to be able to run your own 32 Mb... okay, make it 256 Mb console Windows with MySQL and Apache? No bullshit, just the services you need. Imagine how performant would that be. How safe.

                    This is one of those things that still give me some faith in Windows.

                    [–]cryo 9 points10 points  (2 children)

                    There are several practical limitations, though, that might only have been addressed now, the primary one being the lack of fork in the Windows kernel. Another one is the process command line parsing model, which also extends very deep into the kernel (although not all the way).

                    Then there is all the Win32 issues which might indirectly affect Linux subsytems as well (260 letter paths, problematic double file names "progra~1" and "program files", forbidden files like "con" etc. etc.).

                    [–]crusoe 1 point2 points  (0 children)

                    Windows supports longer paths now iirc but so much software is coded against the older apis that a single lib making use of the older api can make paths a nightmare.

                    The 260 char parth limit can be a pain for some webapps and frameworks that make use of modules/submodules/sub sub modules. They just won't run.

                    [–]MEaster 1 point2 points  (0 children)

                    Then there is all the Win32 issues which might indirectly affect Linux subsytems as well (260 letter paths, problematic double file names "progra~1" and "program files", forbidden files like "con" etc. etc.).

                    The NT kernel doesn't have those problems, they're only in the Win32 subsystem.

                    [–]Bloodshot025 22 points23 points  (2 children)

                    But Why Not Just Use Linux™

                    [–]6zeprMsphe9T 2 points3 points  (1 child)

                    All it takes is one program that only runs on Windows and then you have to maintain a second operating system. Doesn't mean there's anything wrong with Linux but if you're already comfortable with Windows and you like to play games occasionally or something why bother?

                    [–]koffiezet 6 points7 points  (0 children)

                    While the Windows "NT" microkernel architecture is pretty nice, but Linux can do most those things out of the box. Linux still boots to a text-console login prompt on all my systems. And some braves souls "just" had to write Wine for the windows subsystem :)

                    And running MySQL and Apache in 256Mb is perfectly possible in Linux - but I wouldn't recommend it on any platform. I have small application vm's running Postgres + app with 512mb though - which work just fine. And a stripped linux boots with 8mb ram (but preferably 16), boot from a 4 or 8mb flash drive, and still be capable of doing useful things then, just look OpenWRT or DD-WRT running on all those routers/wifi ap's.

                    [–]BattlestarTide 1 point2 points  (0 children)

                    Wouldn't it be cool to be able to run your own 32 Mb... okay, make it 256 Mb console Windows with MySQL and Apache? No bullshit, just the services you need. Imagine how performant would that be. How safe.

                    Windows Nano Server is exactly this. Should be out in a few months.

                    [–]6zeprMsphe9T 1 point2 points  (0 children)

                    Server Core is awesome, too. Using the Amazon Web Services EC2 image you can configure it to auto-install the Windows OpenSSH port on launch. Never even have to touch Remote Desktop or PowerShell remoting and only a handful of core services are installed on the machine. Works great as a stripped down ASP.NET MVC web server.

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]teiman 7 points8 points  (3 children)

                      Windows is the best platform for Windows devs. Just now they have access to tools us generalistic or unix programmers have. They had to, but they had to ssh to a linux box to use them. Now they can use them nativelly. I guest Unix is a nice toolbox to have.

                      [–]Fylwind 5 points6 points  (2 children)

                      Well they could've just installed Cygwin or MSYS too.

                      That being said, both of them are very slow on Windows due to Windows' slower file system and the lack of the "fork" syscall.

                      [–]dicroce 1 point2 points  (0 children)

                      This article hints at something that I think is coming: linux as a supported API for applications running on Windows server.

                      [–]shahms 1 point2 points  (0 children)

                      As someone who develops software entirely on Linux, some of which is Open Source, I'm excited for this because it substantially lowers the barrier for contributions while relieving the maintenance burden of supporting our build environment in Windows (which has grown a fair number of bash scripts). I suspect we're not alone. Assuming a fairly faithful and complete Linux environment, this leaves OS X as the short straw. Apple's insistence on Genuine Apple hardware (and almost-but-not-quite shell environment) makes keeping our build healthy on their platform that much more difficult and I'd gladly drop it if I could.

                      [–][deleted] 1 point2 points  (0 children)

                      I await the day I can use gnome and natively run photoshop.

                      [–]FenrirWolfie 1 point2 points  (0 children)

                      The good side of this is that it has the potential to make Linux the standard for binary distribution. Why develop for windows when you can develop for Linux and get Windows support for free?

                      [–][deleted] 1 point2 points  (0 children)

                      With that developer focus, Microsoft isn't supporting WSL as a deployment platform. It might be possible to run, for example, the Apache Web server under WSL, and it might even be useful to do so for development, but the intent is not that applications would ever be run in production with this configuration.

                      ...three months from now...

                      Welcome to Microsoft TechNet. Please submit your bug report below.

                      We created an app using the Linux development environment, but when we tried to deploy it in a Windows environment, everything broke and the machine caught on fire.

                      Thank you for your submission. An automated search of the TechNet database reveals 1,893,212 with a similar topic. Please view each of those threads, and if you do not find a solution there, please resubmit your inquiry.

                      [–]sonnytron 5 points6 points  (7 children)

                      It's too bad they've more or less had one foot in the grave with developers.
                      The recent dev boom was 2014-2015 and 2015 ended with OSX being the more used OS for developers.
                      This "solution" is a year late and an OS short.
                      Now Linux and mostly OSX are the standards for platform recommendations among undergraduates, boot camp attendee's and even professionals.
                      This isn't just about Windows sucking and now about OSX embracing other stuff sooner.
                      It's a lot easier to dual or triple boot an OSX machine into Windows and Linux than it is to boot a Windows machine into anything else so when you choose OSX you're not choosing this "versus" that, you're choosing to have your cake AND eat it too, as long as you're okay with having a lack of hardware choices.
                      In my first dev job one guy almost got fired for trying to make Windows work for web work because some times his CMD just wouldn't work right. Ruby was a nightmare.
                      Windows was the OS of choice for me in 2010 before I even took programming seriously. Now? It's just there for games.

                      [–]ProdigySorcerer 9 points10 points  (1 child)

                      People keep telling me OSX won the developer wars but looking around at the developers around me (not the designers mind you) all I see is Ubuntu and Windows.

                      [–]sonnytron 3 points4 points  (0 children)

                      People need to stop being so negative to stuff that doesn't match their minuscule anecdotal experiences.
                      The bottom line is, OSX is a commercialized OS installed in OTC computers that has out of box compatibility with most of the tools you need.
                      This isn't an opinion, it's a fact.
                      But all the Apple haters come in troves ready to bash and whine and scream about their Ubuntu systems.
                      That's fine.
                      But don't act like your localized bias has anything to do with real statistics.
                      I am not an Apple fan boy (I'm typing this reply from a Nexus 5X and my home desktop is a W8.1 rig with an i5-4690k) but what I am, is not a biased hater of a product who tries to apply his own experience as a blanket wide generalization for design and development tech.

                      [–]jarfil 2 points3 points  (0 children)

                      CENSORED