5 ms·
I think the #1 thing Microsoft needs to do in order to right itself is become a platform that developers love, which isn't the case today. Becoming fully posix
by Touche 13y ago
I think the #1 thing Microsoft needs to do in order to right itself is become a platform that developers love, which isn't the case today. Becoming fully posix compliant would be a great start to that.
- ygra 13y agoThey've been there and no one used it.
- Touche 13y agoThey abandoned it when they dominated developer mindshare, which they do not today. 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.
- jasomill 13y agoMicrosoft already provides "something like" coreutils, free compilers, and a console subsystem. While these things could use considerable improvement — particularly the console subsystem — I'm not sure that the best approach for either Microsoft or the market is to encourage a POSIX/GNU monoculture. I'd rather see Microsoft incorporate good ideas from the competition into future products, and vice versa.
- leobelle 13y agoWell sure, I guess my problem is that the current console is terrible, including the powershell.
- marshray 13y agoConsole window aside, what do you think of Powershell as a shell/scripting language?
- ygra 13y agoI'd hazard a guess and say that they didn't use it much and only noticed »Whoa, I have to type Get-ChildItem instead of ls? That's so bloated, get me out of here.« (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).
- marshray 13y agoThanks! Sounds like I will have to get serious about finding time to get it under my fingers then.
- ygra 13y agoI started out code-golfing Project Euler problems in PowerShell and later noticed that because it's .NET-based it can complement .NET development fairly well. Examples below are all things I did recently. 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.
- nailer 13y agoIIRC (old Windows NT4 MCSE here) POSIX subsystem never had access to TCPIP, which made it pointless. It was a sales point, rather than a genuinely useful subsystem. 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.
- hga 13y agoI don't doubt it, it was only Posix.1, required by the Federal government (https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem). Per http://www.unityisplural.com/2012/01/windows-posix-compliance-wink-and-nod.html 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.
- tanzam75 13y agoMicrosoft acquired Interix in 1999. That was a much more complete POSIX subsystem than the one that originally shipped with NT. Another lost opportunity. Microsoft could've captured the academic and web-developer market that eventually turned to OS X as a client OS.
- jejones3141 13y agoWhat I recall hearing was that wherever the standard allowed a POSIX call to just set errno to indicate "sorry, we don't support this", MS's POSIX compatibility library did so, rendering it useless.
- r00fus 13y agoThe CLR, .NET and Visual Studio are quite nice, some of the best in the IDE world. 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.