Template talk:Unix shells

From Wikipedia, the free encyclopedia
Jump to: navigation, search

·Why is the Hamilton C Shell listed? It's a Windows program. QVVERTYVS (hm?) 22:35, 23 April 2014 (UTC)

I think you've asked a reasonable question. Let me try to respond.
We define Unix shell as "A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems. ... the basic features common to all the Unix shells, including piping, here documents, command substitution, variables, control structures for condition-testing and looping and filename wildcarding." From Unix-like, "There is no standard for defining the term, and some difference of opinion is possible as to the degree to which a given operating system is "Unix-like"."
Hamilton provides a command-line shell interface very similar to that of the Unix C shell and it does include all the basic facilities common to all Unix shells listed above. Yes, it does it only on Windows but the facilities on Windows that it uses (file system operations, process creation, ipc, etc.), the use it makes of them and the functionality it provides are Unix-like. That's sort of the whole point of it. I think that qualifies under our (admittedly vague) definitions.
But also, consider something like Cygwin, which also only runs on Windows (using code ported from Linux). We report in Cygwin#Features that it includes "Shells (i.e. command line interpreters): bash, dash, pdksh, tcsh, zsh". Are those now Windows shells because they've been compiled to run on Windows? Or are they still Unix shells?
For yet another take on why a Unix shell that doesn't run on Unix isn't nearly so illogical a term as it might seem, consider this query. What should that return?
I hope this was helpful. Msnicki (talk) 23:34, 23 April 2014 (UTC)
So we're back at the question what "Unix-like" means, which also plagues the template {{unix}}.
The Cygwin comparison is flawed because Cygwin is explicitly meant to port Unix software to Windows. The shells it supports were developed on Unix and still run there. That's not true of the Hamilton shell, which doesn't run on Unix at all.
But anyway, I won't pursue this further, at least for now, because it's bound to be a waste of time and it was actually quite fun to learn about this shell. I'd never heard of it. QVVERTYVS (hm?) 08:52, 24 April 2014 (UTC)
Ruud Koot removed the Hamilton Shell again. Should we make a navbox for Unix-like environments running in other operating systems? We have articles on quite a few of those: Cygwin, DJGPP, Eunice (software), Hamilton C Shell, Interix, MinGW, MKS Toolkit, UnxUtils, UWIN. Currently, they inconsistently link to each other in their See also sections. QVVERTYVS (hm?) 12:13, 23 November 2015 (UTC)
There's already {{Unix-Windows Interoperability}}. I think, it would make more sense to reorganize that template than create a new one. —Ruud 12:16, 23 November 2015 (UTC)
I propose to add it back. The only argument for removal was that our Unix shell article contained language stating that a Unix shell was something that ran on Unix or a Unix-like OS. Windows isn't sufficiently Unix-like to satisfy everyone, therefore Hamilton C shell could not be a Unix shell. I think that was a poorly-written definition and an even poorer argument. I have fixed the Unix shell article here[1] and posted a comment, including a COI declaration, here.[2] A Unix shell shouldn't be defined by whether it also runs on Unix, especially as even the ones that do are often run on Windows. It is the type of the command line environment it creates and the basic facilities it offers that characterize these things. Msnicki (talk) 18:50, 23 November 2015 (UTC)