Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

What features is Windows missing that can improve the productivity of a programmer. I know a lot of people would want some features from Linux and OSX ported or being created for Windows as well. What is missing for you ?

An example would be the option to have multiple workspaces. When not having the possibility to use dual monitors that can come in handy.

share|improve this question

closed as primarily opinion-based by gnat, Dan Pichelman, MichaelT, Kilian Foth, jmo21 Oct 18 '13 at 10:01

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

Multiple workspaces? You mean... sub-directories? – Shog9 Dec 18 '10 at 22:29
@Mr.CRT have you ever used linux ? – Ygrec Dec 18 '10 at 22:31
I think by "workspaces" he means virtual desktops. – Jesse Buchanan Dec 19 '10 at 0:39
@Ygrec: yes. If, as jbinto guesses, you mean virtual desktops, then I'm not sure how that rates as an essential programmer tool. I find them very useful for tasks like image editing, but for programming just having multiple consoles open at once is enough - and both OSs support that (albeit with a rather... sad difference in the available shells). – Shog9 Dec 19 '10 at 1:30
Both gnome and kde refer to to the feature of virtual desktops as workspaces which are by far the most common linux desktop environments, tomato/tomato. – Quaternion Dec 19 '10 at 5:03

12 Answers 12

A compiler and a useful shell.

Clarification based on the comments:

I was unclear, I should have written C/C++ compiler. Compilers for C# or Fortran doesn't count, as much of the tools and libraries you need requires a C or C++ compiler. It used to be really bad, where you could not build C extensions for Python with another compiler than Microsofts, because that's what Python was compiled with, I think MinGW has solved this and you can do it with MinGW now, but that's a good reason why a standard C/C++ compiler should have been included or made available for free 20 years ago. Microsoft is only lately starting to understand the power of having an army of hobby programmers available.

I haven't used powershell, maybe it is good. But the usefulness of bash for me is not in the shell language. The *sh family of languages are horrid beasts anyway. I even prefer batch files. ;) It's things like the command history recall and search which relatively basic in Windows, and having pipelines and such that I'm talking about (and I see powershell has pipelines, so that's good).

There are things that are good in Windows too, but that's another topic. ;)

share|improve this answer
That's why Linux distributions normally bundle several compilers and interpreters with many more available from the package manager. – david4dev Dec 18 '10 at 22:51
@Victor Hurdugaci: You do have a point there, but the one that is most significantly missing is of course a compiler for C/C++. – Lennart Regebro Dec 18 '10 at 22:57
Surely this answer is out of date - you get a compiler and a reasonable shell (powershell) in Windows 7. – FinnNk Dec 18 '10 at 23:07
@Matt: Well, that's just language bigotry on your part. There are many free compilers readily available for other languages besides Microsoft languages, and I doubt you would accuse them of pushing a language on you. – Robert Harvey Dec 19 '10 at 3:28
A useful shell for sure. Absolutely ridiculous that in 2010 you just can't maximise the command prompt window. WTF?! – Colin Goudie Dec 19 '10 at 6:09
  • The ability to write and run programs in various languages (C, C++, Python, Perl, Ruby ...) without having to install anything extra.
  • Having at least one text editor with syntax highlighting installed by default.
  • A package manager so that you can easily install extra libraries, version control systems, IDEs etc.
  • A powerful command line interface.
  • The ability to tweak the GUI for maximum efficiency (keyboard shortcuts, hot corners etc.)
  • manpages
  • Having the source code of the operating system and software packages easily available and licensed permissively so that you can reuse it.
  • Good performance on modest hardware.
share|improve this answer
"Having the source code of the operating system and software packages easily available and licensed permissively so that you can reuse it." What? – Ygrec Dec 18 '10 at 22:51
apt-get source package-name whenever you want to know how a particular software package works. – david4dev Dec 18 '10 at 22:52
I disagree with your first point. Why bloat the OS with different editors, compilers and runtime environments, hoping that you'll satisfy everyone? Is better to let each programmer install the things that he needs. – Victor Hurdugaci Dec 18 '10 at 22:52
@Victor Hurdugaci: That would be true if Windows wasn't already bloated with apparently nothing. A typical linux install is an order of magnitude smaller, and comes with all these things. – Matt Joiner Dec 19 '10 at 3:14
(1) I just installed Ubunto, and had to install languages and dev tool separately, just like I do on Window. (2) Notepad is indeed an inadequate default editor; TextPad is closer to a sweet spot. (4) Window's overall keyboard support better than any Linux desktop I've used; I can operate the desktop and most apps without a mouse even plugged in. – Mud Dec 19 '10 at 4:49

I might drop "required" from the title as I've developed for Windows happily for almost 20 years. Of course, I've developed quite a good toolbox of utilities and tools. See Scott Hanselmann's list for starters. It's top notch and look back all the way to 2003.

BTW, Windows 7 includes PowerShell which helps with the "decent shell" comments.

That said, It's always good to have better tools built in. Take any of the tools in Scott's list.

Realisitically, MS could certainly improve the UI of many built-in tools such as regedit, task mgr (cf. Process Monitor) and the event perf viewer tools. It would be good to have built-in support for multiple clipboards. From OSX, I'd like expose and their multi-desktop support is good. It would be nice if Windows natively (aka more easily) supported dragging text from text boxes.

XCode really sucks IMO so I would not want that on Windows. VS is much better but not built-in so maybe build-in VS Expess with an ability to upgrade. Of course, the OS footprint grows with this (like OSX's does) so there's a downside too.

distributed gcc is very good so that would be very welcome as a built-in framework for any compiler to use (see Incredibuild for a VS solution).

It would be nice if it were easier to get and use a Checked Build of the OS to find issues. Using debug cables is a bit extreme for the good info you get out of the Checked Build. VMs may do this easily -- if so someone please comment with a link.

share|improve this answer
Yep a basic IDE would be especially nice, failing that a moderately OK text editor would be a start. – FinnNk Dec 18 '10 at 23:11
@FinnNk, which requirements do you have for a "moderately OK" text editor? – user1249 Dec 18 '10 at 23:20
Some support for syntax highlighting, regex search/replace, multiple windows, visible whitespace and line numbering - so I don't have something like emacs in mind (although that would be nice as an option). Although not really a text editor, for little bits of .net code these days I use LinqPad a lot. – FinnNk Dec 18 '10 at 23:37

BASH, sed, grep, awk, find and ssh

share|improve this answer
I've run most of those on windows... and can do most of the above with powershell. – Murph Dec 19 '10 at 12:32
ssh with x windows support ;) Bash is powerful but everything under it is customizable, a shell is only as powerful as the resources it can manipulate. – Quaternion Dec 19 '10 at 19:13
Since when are awk and sed required for a programmer? – Dynamic Jun 3 '12 at 2:00
  • Copy/paste for multiple objects
  • Paste format-free (without font/size info)
share|improve this answer
+1 for format-free. I always end up pasting into a text area on a webpage or notepad and then cutting to remove text styles. – Macneil Dec 19 '10 at 2:43
Windows does support plain text pasting, applications just need to implement it as an option. – GrandmasterB Dec 19 '10 at 7:50
@GrandmasterB Then it is a desire for formatless clipboards to be the default. – pestaa Dec 19 '10 at 10:37

The ability to change UI to different level based users knowledge.

For example as developer/administrator you may need expert level on UI.

share|improve this answer

The Unix file processing tools (wc, sort, uniq, awk, cat, grep, find, et cetera), including-- as others have mentioned-- a good shell (e.g., bash).

In order to be productive in Windows, when I'm working with anything text related, eventually I'll need to go into the Unix command toolbox. Fortunately, Cygwin is an excellent resource just for that purpose.

That said, you do need to "tame" Cygwin to work nicely with the Windows file system; unless you override some default settings, you can get files with nasty permissions that are difficult to delete. Anything too far above the basic needs and you're better off with a VM or dual booting, but for my purposes I'm quite satisfied with Cygwin.

share|improve this answer

I agree with the other posts so to add:

I miss ssh with x forwarding vs windows remote desktop. For those that don't know you can run a desktop program across the network but it acts like a local window.

share|improve this answer

Support for longer command line arguments. You'll quickly run into issues when building complex java solutions that doesn't use Microsofts build systems.

share|improve this answer

valgrind and gcov ?

I use PowerShell when developping on windows (as a hobby) and I have installed the GnuWin32 tools (sed, awk, grep, etc...) and Python to get some easy scripting, so no issue there.

But I find myself hitting a wall whenever I want to inspect my program... Sure I can use the debugger (a bit) but:

  • how does one spot a memory leak ?
  • how does one identifies the memory hogs ?
  • how does one identifies the hot spots ?
  • how does one identifies unused / untested parts of the code ?

I have seen some tools here and there and there was a good question on StackOverflow and the number of tools listed is pretty frightening... and their limitations too.

Linux has been made by developers for developers, so it got a lot more developers' friendly tools :)

share|improve this answer

Copy/paste with history function.

Luckily ClipX offers a solution:


PS I am not affiliated with ClipX ;)

share|improve this answer

A decent shell, plus a compiler would be a good start as far as "default" features are concerned.

share|improve this answer
csc.exe is included in .NET framework. You can compile C# code with it. – Victor Hurdugaci Dec 18 '10 at 22:41
@Victor: Is that included with stock Windows? – Josh K Dec 18 '10 at 22:52
Yes. .NET 3.0 is shipped with Windows 2008 and Vista while 3.5 is shipped with Windows 7. – Victor Hurdugaci Dec 18 '10 at 22:55
I agree, if we're talking about the current version of windows then this answer makes no sense - you get both a compiler and powershell. – FinnNk Dec 18 '10 at 23:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.