13

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.

ChrisF
  • 38,878
  • 11
  • 125
  • 168
Ygrec
  • 139
  • 2
  • Multiple workspaces? You mean... sub-directories? – Shog9 Dec 18 '10 at 22:29
  • 10
    @Mr.CRT have you ever used linux ? – Ygrec Dec 18 '10 at 22:31
  • 7
    I think by "workspaces" he means virtual desktops. – Jesse Buchanan Dec 19 '10 at 00: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 01: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 05:03
  • ssh to a linux box. – Martin Wickman Dec 19 '10 at 10:33
  • Windows has virtual Workspaces , i used it long back its in Xp am sure . – GoodSp33d Dec 20 '10 at 12:39

12 Answers12

14

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. ;)

Lennart Regebro
  • 2,265
  • 13
  • 17
  • LOL, beat me by seven seconds :) – NPE Dec 18 '10 at 22:10
  • A compiler? A compiler for what? I don't think that including a compiler will satisfy users. Different programmers need different compilers. – Victor Hurdugaci Dec 18 '10 at 22:49
  • 2
    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
  • 1
    @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
  • All compilers that runs on a Unix system is written in C/C++ or written in a language that uses a compiler written in C/C++. Sure there are other compiled languages than C/C++ but most relevant stuff is written in C/C++ anyway... – Ernelli Dec 18 '10 at 23:00
  • 4
    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
  • @FinnNk. No. It is not useful, it's another attempt by MS to push C# on everyone. – Matt Joiner Dec 19 '10 at 03:12
  • 1
    @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 03:28
  • 4
    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 06:09
  • Powershell is a joke. Just better than cmd.exe As a programming language it might be better than the bourne shell. But who really programs using shell languages anymore? Windows lacks all the utilities that make Unix useful for programming. And -1 for the crappy terminal windows. –  Dec 19 '10 at 08:29
  • @qpr: Oh, yeah, the the terminal windows emulate a PC text screen and you can't even cut and paste stuff properly. It's still like that in Windows 7? That's so annoying. – Lennart Regebro Dec 19 '10 at 10:27
  • @FinnNk what language do you get a compiler for with windows? are you talking about some variant of Batch, or the various Windows Scripting Host interpreted languages? – Sparr Dec 19 '10 at 10:28
  • 1
    -1 A useful shell? Powershell (with command history and pipelining and everything else). C++ compiler? Erm... this whole answer is basically FUD. – Murph Dec 19 '10 at 12:29
  • @Murph: How many years have you worked as a Windows developer, and how many years as a Unix developer? – Lennart Regebro Dec 19 '10 at 12:31
  • 1
    None as a unix developer (erm, I may be fibbing, might be a bit, but not serious). Using Windows? At least 15. But the question and answer here seem to me to be about Windows not being unix rather than issues with windows as a dev platform. In particular that stuff is not "in the box (distro)" when its freely available. Comments about weaknesses in the API elsewhere are much more interesting. – Murph Dec 19 '10 at 12:39
  • 1
    well, I've been 15 years on Windows, 6 of them as a full time developer, and 7 on Unix. Whenever I need to go back to Windows as I do for some clients, these things increase the pain. There is no FUD. – Lennart Regebro Dec 19 '10 at 13:08
  • The Windows SDK includes a C/C++ compiler: http://en.wikipedia.org/wiki/Windows_SDK – bk1e Dec 19 '10 at 15:55
  • @Sparr - csc.exe (C#) – FinnNk Dec 20 '10 at 00:23
  • @FinnNk that comes with which versions of Windows 7? – Sparr Dec 20 '10 at 05:29
  • It'll be on any machine with .net installed, which includes all versions of Windows 7 – FinnNk Dec 20 '10 at 09:38
  • C/c++ compiler assumes a dev is even doing one of those languages which is a leap. And powershell certainly has the basic shell functions as well as powerful scripting. – Andy May 30 '15 at 00:53
  • No, it doesn't assume that. Every dev needs a C/C++ compiler to compile libraries, tools and such which I also wrote in my answer, quite clearly. – Lennart Regebro May 31 '15 at 10:44
10
  • 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.
david4dev
  • 648
  • 3
  • 7
  • 2
    "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
  • 2
    `apt-get source package-name` whenever you want to know how a particular software package works. – david4dev Dec 18 '10 at 22:52
  • 4
    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
  • 1
    I agree. That Windows is not open source *is* a development drawback. Not as much as the relative pain it is to install a compiler and development environment that doesn't cost so much you have to sell your grandma to slavery, but it is a drawback. :) – Lennart Regebro Dec 18 '10 at 23:00
  • 3
    @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 03:14
  • 2
    (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 04:49
  • @Mud I didn't say that *all* languages and development tools should be installed by default but there should be at least a C/C++ compiler and a few useful scripting languages by default (Ruby, Python and Perl are very useful for automating tasks). Yes you will need to install extra libraries and tools but they should be available from a package manager for easy installation. Windows makes installing software in general very difficult and it is even more difficult when you have to deal with dependencies. As for controlling Linux with the keyboard - just use Alt+F2 then menu accelerators. – david4dev Dec 19 '10 at 11:06
  • How does Windows make installing software difficult? Are you suggesting your computer illiterate grandma would have an easier time installing software on Linux? As much as I love Linux, I hate that packages spread themselves all over my damn hard disk. I prefer the DOS days when one could remove a program by simply *deleting* it, and I'm a big fan of "portable" versions of tools on Windows. – Mud Dec 19 '10 at 21:27
  • @Mud: Last time I installed Windows and Ubuntu to dual-boot on the same computer, Ubuntu was easier to install. Similarly, it's easier to install Ubuntu packages than Windows software, and neither really supports uninstalling by deleting (that's more of a Mac OSX thing). – David Thornley Dec 20 '10 at 21:24
4

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.

jschroedl
  • 321
  • 1
  • 6
  • 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? –  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
4

BASH, sed, grep, awk, find and ssh

D E
  • 57
  • 1
2
  • Copy/paste for multiple objects
  • Paste format-free (without font/size info)
2

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

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

Amir Rezaei
  • 10,938
  • 6
  • 61
  • 86
1

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.

Macneil
  • 8,223
  • 4
  • 34
  • 68
0

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.

Quaternion
  • 111
  • 4
0

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

Morten
  • 556
  • 2
  • 10
0

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 :)

Matthieu M.
  • 14,567
  • 4
  • 44
  • 65
0

Copy/paste with history function.

Luckily ClipX offers a solution:

ClipX

PS I am not affiliated with ClipX ;)

Arcturus
  • 1,597
  • 12
  • 17
-1

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

NPE
  • 292
  • 2
  • 6