4 ms·
I think it's time for MS to develop a new ANSI/VT-compliant, text-oriented shell (to complement PowerShell, which is largely object- and API-oriented). There ou
by TimTheTinker 8y ago
I think it's time for MS to develop a new ANSI/VT-compliant, text-oriented shell (to complement PowerShell, which is largely object- and API-oriented). There ought to be a default shell worth using on the other end when you ssh into a Windows server :)
cmd.exe and DOS were both text-oriented but extremely buggy and inconsistent. Perhaps MS could just focus on providing a very bash-like language (perhaps even include gnu utilities) while supporting the major interactive use cases for cmd.
- ocdtrekkie 8y agoI doubt you'd see Microsoft reinvent the wheel here. They'd more likely work to give WSL more ability to interact with Windows, and then let you just use that shell if you want to.
- TimTheTinker 8y agoHow likely is it that MS will include and enable WSL by default on Windows Server just to provide a better default shell for terminal and ssh users? If I were a server admin, I’d probably turn all of that off because it’s more attack surface area. And cripple myself in the process. For that reason alone, I think a new shell is probably more likely to be helpful.
- jackfraser 8y agoWhy would they do that when Powershell is literally that, but refined beyond what's commonly available on Linux? I'm not great with it yet, but it feels intuitively like a step forward to be able to pass objects around instead of spending so much of my time using awk-ward 40 year old tools to tease text out of various fields.
- grumpydba 8y agoHowever it is far too verbose and without aliasing everything it's a big pain in the a to use.
- TimTheTinker 8y agoPowerShell is great for when you want to interact with Windows APIs (local and remote) and/or work with objects. I have no problem with using it for those purposes. But terminals and the tooling around them have always revolved around text. My point is that since Microsoft is (a) including OpenSSH, (b) upgrading their terminal infrastructure to support VT100 and ANSI codes, and (c) investing in WSL, it would make make a lot of sense to add a Windows-native shell that is more text-oriented. Not because I hate working with objects and APIs, but because plain text ought to be the primary, first-class supported data format when working on a terminal. PowerShell is great, but it's an object-oriented (not text-oriented) shell.
- AnIdiotOnTheNet 8y ago> But terminals and the tooling around them have always revolved around text That's because they're from the 70s, when literal terminals with no real computing power were connected to a centralized system that did all the work. They're archaic and silly.
- TimTheTinker 8y ago> They're archaic and silly. They may seem that way to some, but they still provide a surprisingly versatile and useful user interface. Terminal programs and scripts are easy and fast to write, easy to interact with, easy to change, and trivially portable across POSIX platforms; hence, when writing a tool for oneself or another developer, most developers will usually opt for a CLI-based UI. Terminal program UIs are also very stable (in addition to being text-based), making them arbitrarily composable into scripts and workflows without fear of them breaking in the future. Modern graphical UIs are usually easy to use, but they are far-removed from the code and tools that are used to write them or interact with their APIs programmatically. Terminal program UIs, however, are very close to the environment they're built in -- so the line between using a terminal program and interacting with it programmatically is delightfully blurred. I use a multi-paned iTerm2/zsh window every day as a front-end developer (I'm on a Mac running macOS Mojave). I can't imagine working without it. There are a lot of good reasons npm, git, and other popular mainstays in modern development workflows are terminal-based.
- deleted 8y ago[deleted]
- amaccuish 8y ago> I think it's time for MS to develop a new ANSI/VT-compliant... They are doing exactly that: https://blogs.msdn.microsoft.com/commandline/2018/08/02/windows-command-line-introducing-the-windows-pseudo-console-conpty/ https://blogs.msdn.microsoft.com/commandline/2018/08/02/wind...
- TimTheTinker 8y agoThat’s not a shell. Pwershell, bash, and zsh are shells. A TTY/PTY is the infrastructure on top of which a shell runs.
- amaccuish 8y agoThe point was that there wasn't much they could do to make nicer shells if the backing text infrastructure was poor.
- TimTheTinker 8y agoRight, but my point was that now that they've done the work on the infrastructure, a bash-like native Windows shell would be really great.