I don't want to draw any conclusions, but I have a good feeling about that.
I don't want to draw any conclusions, but I have a good feeling about that.
Also, I'm not talking about a posix layer that is all but hidden, I'm talking about making Windows a posix system. Coreutils (or something like it), a free compiler, a terminal.
(Side note: I'm a developer, not an administrator and I use PowerShell as such – I have no clue of how to query AD or manage IIS, but I do know the language very well. I also was a technical reviewer of the PowerShell Cookbook 2nd ed.)
From my experience the language has some quirks (that are being slowly remedied in recent versions, e.g. handling of one-element arrays), but otherwise is quite well designed. The quite consistent naming of cmdlets give you enough hints to figure out what a command would be, if you only knows it exists, e.g. querying things always start with Get, projection is done with Select, etc. In a way, PowerShell is more unixy than traditional Unix utilities in that they really do one thing and only one thing. This can lead some to consider PowerShell overly verbose, because the pipeline often looks like
Get-Things | Select-Things | Format-Things
But to me this is actually nicer because I can concentrate on each part individually and not figure out the switch to ls that tells me the file size. And well, PowerShell passes objects through the pipeline so most of the time you can cut text processing to a minimum because you already get what you need directly (which is not to say that text processing is poor in PowerShell – -match, -replace represent grep and sed and switch -regex is very nice for quickly writing parsers for semi-structured text content).Need to fiddle around with a format string to get it right?
'{0:yyyy-MM-dd}' -f (Get-Date)
Or need to quickly test a web service whether the new method works correctly? $p = New-WebServiceProxy http://localhost/FooService.svc
$p.AwesomeMethod()
Or quickly figure out whether a license key matches with the lib you have lying around anyway: Add-Type -Path key.dll
[Key.LicenseKey]::Check('...')
For me it dramatically reduced the number of ConsoleApplication8624 projects in VS. In any case, if there are questions you can also drop me a mail.That said, I think OSs are irrelevant: people are happy to pay for apps, cloud hosting etc and MS are happy to provide it to them, Windows or not, for money.
Per http://www.unityisplural.com/2012/01/windows-posix-complianc... due to a procurement lawsuit in 1995 the Coast Guard was forced to accept a NT based "open system" bid. I don't know if they actually cared at the time, but the UNIX(TM) losing bidders certainly did, and it certainly made a big difference in subsequent adoption of NT/Windows.
Another lost opportunity. Microsoft could've captured the academic and web-developer market that eventually turned to OS X as a client OS.
However, it's Microsoft's tendency to squeeze and coerce compliance that drove people away. Proprietary everything means you don't play nice with everyone else.
Now the web has leveled the playing field somewhat, and they can't be coercive to be successful. It'll be interesting to see them play will on other companies' turf and platforms.
While there are reasonable third-party workarounds for the most pressing problems, the Windows console subsystem could use lots of love.
I also forgot to mention how slow text output is on cmd.exe when compared against terminals like xterm on linux. If the new CEO can improve the windows command line experience I for one would be immensely grateful.
You might have been facetious to prove a point but surprisingly few know you can change those settings there, and I like making my terminal oldschool-hacker-green :)
edit: Actually, I've no idea what I've done but now I can drag the window arbitrarily and it'll just show more characters. Maybe I set a font and now can do it? I don't know!
edit 2: I made it go to 160 characters, then set it back to 80, and now it'll let me drag it out to 160 but no more? This is so confusing Microsoft is on drugs
edit 3: Oh, ok. Screen buffer size sets the 'you can resize to this maximum' whereas screen size sets the 'you start at this size'. I'll stop making edits now.
I'd never even consider using a Windows machine without it.
http://lifehacker.com/5185647/mintty-gives-cygwin-a-native-w...
/sarcasm
If you're from a Unix background, you're probably better off running bash from Cygwin, but if you're a Windows guy, TCC is a great shell.
It's the first thing I install on a Windows machine.