Is Win 10 better for development?

I have Win 7 and like it a lot and I would like to stay with it. But now I'm wondering if I should take the free upgrade to Win 10, because perhaps it would be better to develop on. What do you think?
I like Windows 10 a LOT better than 7. I haven't had any trouble so far.
What do you mean by 'better' for developing on? I can't really see how it would make much difference. You'll still be running the same text editor, compiler, debugger, and so on. It's not going to make you any more productive (at least not enough to make up the time you spend installing and configuring the OS).

However, it is nice in some respects. For one thing, with the flat UI it's the least ugly version of Windows yet. For another, I like that they fixed scrolling focus to work like Mac OS (if you use the scroll wheel, the view under the cursor scrolls, whereas previous versions of Windows scrolled whichever view had keyboard focus).
Unless there's an editor, compiler, IDE, or some such dev tool that's just for Windows 10 (which I don't know, is there?), then it should be the same. Visual Studio 2015 can still be installed under Win7, but who knows if the next one increases its system requirements. There might be some API outside of Win32 that's been introduced after Windows 7 that could interest you such as WinRT (or maybe even UWP, which further extends the WinRT model). I've never seen anyone in the community use any of those new SDKs, but hey you might be the first one.

If we're talking aesthetically, Windows 10 is legit good looking, and objectively boots up faster on my laptop. Do yourself a favor and take a look at the pastebin scripts provided on this Reddit thread, should you decide to upgrade.

Edited by Abner Coimbre on Reason: Wording
If you are developing for DirectX 12, I do not think that is possible to test on Windows 7. Other than that, I can't think of anything that gets _better_ from 7 to 10 - pretty much everything just gets worse.

- Casey
So, Windows 10 has one feature that can make your life easier for development. Bash on Ubuntu on Windows allows you to use the full Ubuntu base terminal on your windows system. This means you can use the linux version of emacs, vim or etc with full support for the linux commands without the emulation. It means you can run llvm and/or gcc to compile your code for linux. You can use all the normal commands of a linux system such as grep and awk, on your Windows 10 machine, natively, without having to share folders to work on files.

Now, this comes with the Anniversary edition of Windows, but you can test it now.

I think many developers will like the power and flexibility that this offers them. It has allowed me to set up my Mac and PC with the same setup for a large number of use cases.

You can achieve many of the benefits in Windows 7 with a Virtual machine, with a lot of over head, and a lot of setup, but I like this better. A virtual machine is too heavy to just run some command line applications.
Bill Strong
This means you can use the linux version of emacs, vim or etc with full support for the linux commands without the emulation. It means you can run llvm and/or gcc to compile your code for linux. You can use all the normal commands of a linux system such as grep and awk, on your Windows 10 machine, natively, without having to share folders to work on files.


I'm wary of the terms "natively" and "without the emulation". To clarify this is just an Ubuntu image running in userspace as a program on your desktop. It will not be a graphical desktop (Russ Alexander notes they are "only working command line"). The way you can run your Ubuntu binaries is because of some real-time translation of Linux system calls into Windows system calls. If you know "Wine", then it'd be the inverse of that. By definition there is some overhead, although it may be negligible if your developer toolset doesn't stress the system.

Reviewers are warning some things won't work properly once released, and there will be limitations, but that's to be expected. Also keep in mind this will be a very self-contained thing relying on the Windows Subsystem for Linux (WSL) introduced in build 14251. You cannot automate Windows commands with bash scripts, for example, or run bash within PowerShell or something.

It's a promising program, but not a complete Linux system. As long as that's understood, I feel it'll be nice to to avoid switching operating systems if unnecessary, avoid re-compiling some of your helpful command-line utilities, etc. It's just not that much of a game changer as people make it out to be?

-Abner

Edited by Abner Coimbre on Reason: Wording
abnercoimbre
Bill Strong
This means you can use the linux version of emacs, vim or etc with full support for the linux commands without the emulation. It means you can run llvm and/or gcc to compile your code for linux. You can use all the normal commands of a linux system such as grep and awk, on your Windows 10 machine, natively, without having to share folders to work on files.


I'm wary of the terms "natively" and "without the emulation". To clarify this is just an Ubuntu image running in userspace as a program on your desktop. It will not be a graphical desktop (Russ Alexander notes they are "only working command line"). The way you can run your Ubuntu binaries is because of some real-time translation of Linux system calls into Windows system calls. If you know "Wine", then it'd be the inverse of that. By definition there is some overhead, although it may be negligible if your developer toolset doesn't stress the system.

Reviewers are warning some things won't work properly once released, and there will be limitations, but that's to be expected. Also keep in mind this will be a very self-contained thing relying on the Windows Subsystem for Linux (WSL) introduced in build 14251. You cannot automate Windows commands with bash scripts, for example, or run bash within PowerShell or something.

It's a promising program, but not a complete Linux system. As long as that's understood, I feel it'll be nice to to avoid switching operating systems if unnecessary, avoid re-compiling some of your helpful command-line utilities, etc. It's just not that much of a game changer as people make it out to be?

-Abner


So, to be clear, this is intended for command line use, and that is the focus of Microsoft. However, there are plenty of instances documented of users running graphical tools through an Xserver->XClient.

When I spoke of "natively", I was speaking of Hardware Virtualization. I guess I didn't make that clear. Some of the reasons I like this solution better are:

1) Full use of available memory. In a VM, you select an amount that you believe you will use, then if you end up using more, you need to reboot. This is not needed with Ubuntu on Windows.

2) Access to disks. With a VM, you are micromanaging folders and drives that can be seen from the VM. Sharing folders doesn't always work reliably. USB devices don't always work reliably. With Ubuntu on Windows, if Windows can see it, so can Bash.

3) You reduce the over head of running the full Linux kernel on top of the Virtualization layer on top of the Windows kernel.

4) It is like Wine.

5) It is the benefit of the Linux/Unix environment with the portability of Windows drivers. Not everyone has driver troubles with Linux, but enough do that this might be enough for many.

6) Microsoft has expressed interest in bringing other "flavors" to choose from, after they are done with the Ubuntu version. So if you like Centos, or Alpine, you may get your wish.

Edited by Bill Strong on Reason: spelling
When I say I like Windows 10 "better", I'm just talking my quality of life. My Win10 found my printer, installed it, and I'm done. I fought with my Win7 machine for two hours and just gave up. I have had many experiences like this, and in all cases, Win10 just works better. They even added a new UI to add folders to the System Path by browsing to the folder. If that doesn't convince you, I don't know what will. ^-^