Hacker News new | ask | show | jobs
by YCOmega 3824 days ago
Microsoft is going about the whole SSH thing in a very backwards way.

If all they did was make or back an official POSIX environment, all of this comes for free.

Insisting that PowerShell be the focal point for all these changes is just bizarre.

Just install msys2.

7 comments

A half-bad Unix on top of Windows, with its own duplicate way of handling services, storage, users, permissions and everything else, is a pretty poor setup. Powershell (particularly the way it separates data from presentation) is one of the best shells on any OS. Being able to access it from Linux is a good thing.
As soon as Microsoft open sources PowerShell I'll be more than happy to take a look at it and perhaps add it to MSYS2. Until then for me and many like me, it's neither half bad nor half good, it lies orthogonal to the scale on which I judge software.
This "separate data from presentation" sounds like TCO-speak. Way too frequently referenced to be a genuine inspiration.

It's only "half bad" (if that even) because while the whole world moved on from Windows to Unix (OSX, Linux), Microsoft dug their heels in. Think of it as paying down long overdue technical debt.

> This "separate data from presentation" sounds like TCO-speak. Way too frequently referenced to be a genuine inspiration.

Huh? It's a very specific thing. When you run stuff on Powershell, you pipe it to 'select' or 'where' and pick fields, rather than running grep / sed / awk and inventing regexs to scrape stuff.

    ps | where {$_.StartTime -ge $1HourAgo}
Before accusing me of 'TCO speak' and being 'ungenuine' - for mentioning something that's a well known engineering concept, particularly in the Unix world (ever used TeX?), you could have done <1 minute of research.
If someone created a solid port of PowerShell to nix it would be a god-send.
They purchased a reasonably nice POSIX environment when they bought Interix in 1999 (https://en.wikipedia.org/wiki/Interix). Interix was a lot of fun to use, and I really wish it still existed as a product. I used to have fanciful dreams of a POSIX-based Linux-like "distribution" of Windows that kept a lot of the things I like about the Windows NT environment (NTFS filesystem, kernel object manager, service control manager) but jettisoned those things I don't.
Yeah, it went through a pile of rebrands until Windows 8 when it ended up getting pulled in one of the preview releases IIRC. I've wanted similar to you just so that people could target some kinda baseline on Windows with FOSS.

I mean, I get that coming from the other direction, powershell seems like a nice treat. And if you use it, colour me impressed. I know in some cases, it's the only option for doing script work on Windows machines. But there is a much bigger and more sane ecosystem waiting if MS just rallied around SFU again. Probably cheaper too, tell the investors that.

>I mean, I get that coming from the other direction, powershell seems like a nice treat. And if you use it, colour me impressed. I know in some cases, it's the only option for doing script work on Windows machines.

Your dismissive attitude towards PowerShell makes me think you either haven't put much time into using it (if any) or haven't touched it since the 1.x days (even then the benefits over a string-based shell should have been obvious). It's a really good shell and is in a completely different league than sh/bash/zsh. It's not the best scripting language and there are still warts but until they make a solid and practical Ruby or Python based shell it's going to sit far and away from the rest.

If the many replies you've gotten haven't been enough motivation I encourage you to actually try it out for a while.

I don't know, most of the people who are replying seem to be quite rude about it. I certainly judge software by the community and I'd hate to need a question answered by them. /s

As for actually trying it... I'd love to, but every time I do I come up against limitations. Mostly because none of the projects I use write shell scripts for powershell.

But again, that doesn't justify PS being the only one that gets any official attention on Windows, hence me mentioning msys2 earlier.

I think the rudeness is mostly a response to what seemed like dismissiveness with an apparent lack of personal experience. I had a hard time containing my incredulousness as well to be honest.

As far as official attention goes, I think Microsoft is right to stay focused. Third parties can and should feel free to build their own solutions though.

I loved using SFU/Interix with Gentoo-prefix on XP and Win7 enterprise. I'm using Msys2 now and am pretty happy with it. There are mingw packages for practically everything but openssh is msys only. So this native openssh should give some speedup.
There's a huge difference in functionality and philosophy between powershell and posix. For one, everything in powershell is an object. What this means, is that when you pipe things together, you're not just piping output strings, you have iterators, arrays, closures, typed values, etc at your disposal. Additionally, in powershell, you can use arbitrary CLR libraries as if they were native. Posix shells, in contrast, tend to require you to write and build wrapper libraries to import the functions into your scripting environment.

So in short, using a posix shell would mean getting rid of all of the work MS has put into an insanely flexible command environment over the past several years. Insisting on posix just denies the flexibility to experiment and develop something which serves a different problem set, or approaches a problem from a new angle.

PowerShell is the focal point for Windows on Azure, for Server Core and for Server Nano. So it makes perfect sense from that perspective. As a Windows and Linux user, this is absolutely fantastic.

msys2 still can't overcome some of the limitations of mintty so it kinda makes sense.

More choice in this case isn't a bad thing.

Why is having PowerShell be the focal point for this bizarre? PowerShell is Windows' native command line interface.

Most of the scriptable administration tools (which are being heavily promoted as the primary way to administer Windows boxes these days) are PowerShell based, the tools for talking to Azure are PowerShell based, the new package manager in Windows 10 is PowerShell based, etcetera.

OpenSSH isn't being ported to Windows to make Windows overall more POSIXish; it's being ported to make managing Windows boxen from POSIX ones easier, and vice versa.

I don't know why YCOmega is getting downvoted, msys2 is actually an extremely nice environment, now that Interix has been dead for quite some time.

I wish msys2 would figure out how to port Cygwin's sshd, or figure out how to use Microsoft's new one to give me a msys2'ed zsh prompt instead of Powershell.

As far as I can tell (initial glance only), building this port requires Visual Studio which is a shame. It'd require a bit of effort to port. I wish MS had gone down the CMake route again.

As for Cygwin's sshd, we don't want to step their toes any more than we already have.

Managing Windows from the command line these days without PowerShell is severely handicapping yourself. It's not practical to divorce PowerShell from Windows command line administration.