workflow: porting code between everything, running bash scripts, building software.
Reduce vulnerability. No system is invulnerable, but sadly we run Windows in a sandbox or not at all.
And portability, I don't care if you fake it as long as it works. Don't require weird stuff. C:\AUTOEXEC.BAT, bash and zsh are "just interfaces." I don't usually interact directly with mach or the linux kernel that would be weird. For instance, over time OS X has had a line of dispatch mechanisms, launchd, Grand Central Dispatch, ... They all work, but they are different (weird.) Don't even get people started about systemd on Linux. crontab should work on OS X, and Windows because it's "just an interface." The underlying layers are Microsoft's kernel and services. We're just using an interface.
Don't require weird stuff. At the same time, don't break things.
UNIX
POSIX API layer
coreutils https://www.gnu.org/software/coreutils/
Homebrew installs the stuff you need that Microsoft didn’t. http://brew.sh/
Obviously, don't install coreutils, homebrew, fill-in-the-blank by default. But make them easily installable and seamless once installed. Keep the core OS lean.
Adopt Linux, OS X, Google Play, and whoever else comes on the scene. If you do, then Microsoft OS is the killer OS because it runs ALL the programs. I should be able to run programs for different architectures in Windows. Virtual layers via VMs, compatibilty layers, simulators, and emulators are sweet. ie. "wine weirdProgramForWin32.Exe", running a Mac OS X PowerPC program on OS X Intel or Arm, or ...
Please lose the "CP/M" (MS-DOS) creatures. Here's a short wish list of things because they bother me:
* go with a single character newline: change from CR LF to LF
* make notepad play nice with newlines
* change \ to /
* mount umount: the drive letters are old and \\ is weird
* text files don't need the .TXT extension
* change .HTM to .html, or get rid of extensions.
* executables don't need the .EXE extension
* file permissions: hidden-extension.jpg.EXE should not be executable by default
* don't take over the boot block of my hard drive, allow grub or whatever to boot Windows
See Linus Torvalds comments on filenames -- case sensitivity amongst many other hard to salve problems. See the Apple devs comments on Microsoft Office filenames. All of this, not just Microsoft, seems broken to me. Why can't I put a "/" in my filename in Linux? Why can't I put ":" in my filename on OS X? Windows paths? I know why, but I feel like there is a better way. Simple, but not too simple.
Basically, allow interoperability: make things work. OS X is good, Linux is better. Microsoft could be the best. People like using what they are used to. The Windows interface is familiar. A mobile interface intermixed with the familiar Windows interface is confusing. Again, it's "just an interface." I was hoping Windows 9 might be more like Windows 7. Hopefully, looking forward to Windows 10. Good luck.
My question for you is: How do you manage complexity?