
Show HN: Nixar – New design of Linux command line - askucher
http://nixar.work
======
askucher
I am a developer. I have experience of working in different programming
languages like C#, Haskell and Javascript. I noticed that all of them has
similar library. Prelude for Haskell, Linq for C# and Undercore for
Javascript. A lot of functions are common: map, filter, concat, join and so
on. In daily life I need work linux shell and got the understanding that this
kind of library can be applied in shell as well. So I rolled my sleeves and
implemented the prototype. It would be great to read your comments. Thank you

~~~
mediumdeviation
Sorry to be pedantic but I presume you're not a native English speaker?
'Joyable' is not an English word, but rather the name of a startup company[1].
Perhaps you're looking for 'joyful'. 'Checkout' when spelt as one word refers
to the place in a supermarket where you pay for the things in your basket.
When you ask people to look at something, it's usually spelt as two words (as
in 'check this out').

[1]: [https://joyable.com/](https://joyable.com/)

~~~
luxpir
It was probably 'enjoyable'. That was one fault that didn't stop me reading
on. While we're at it though, 'Checkout' used incorrectly did stop me,
however, because in the software context 'checkout' could refer to more than
just supermarkets. I'd fix that one. Especially on a call to action. I'd also
fix 'fine file'.

Scoring grammar points could be seen as nitpicking, but I think in a Show HN
situation, where fair criticism is welcome, it's helping to improve
presentation and conversion rates. If some kind of 'foreign bias' kicks in for
some visitors you might lose the conversion completely. Copy counts. In any
language.

------
rolandukor
In same directory

time ls -al | awk '{print $1,$3}' real 0m0.008s user 0m0.000s sys 0m0.004s

time ls -al | col 1 3 real 0m1.690s user 0m1.143s sys 0m0.173s

While I appreciate the effort, it seems to me that this decreases the
snappiness of the unix terminal experience for not much gain.

------
jamescun
Maybe I'm just old hat, but all the examples given I immediately thought of
their *NIX equivalent. This doesn't appear to do anything above and beyond
what our current tooling gives us (except perhaps 30 years less development).

~~~
escherize
I think I agree with you for most of them. However I'm not sure how to pull
off 'turn'. And if you don't know bash extremely well I'm sure there's a
readability win here.

Not sure if it's enough to get node installed everywhere I go, though.

~~~
easytiger
what is 'turn' ; their docs site is broken

~~~
HelloNurse
'turn' is a fun way to get an out of memory error on a large input. Looking at
the source, there are no options to limit line length or buffering amount. A
naive implementation of an amateurish idea, like all the other commands, but
with a greater potential for suffering.

------
mickgardner
This is node.js? no. Golang/C/C++ I can handle, but I'm NOT installing node.js
just for this.

~~~
martiuk
I don't know what it is with node.js but people seem to want to reinvent
everything with it.

~~~
archimedes_owl
Hipster hubris? The "cool kids" crowd that jumped from PHP to RoR to node.js.

Please don't follow the hype: many of this tools will be abandoned when a new
framework/language comes out and this will leave the Unix userspace more
fragmented.

------
jaxgeller
Another example of Atwoods Law, 'any application that can be written in
JavaScript, will eventually be written in JavaScript.'

~~~
vezzy-fnord
These are all basic CLI and text processing tools, so it's not something all
that grandiose to do in Node.

------
drinchev
It would be far more reasonable if "nixar" was a set of aliases or just a
bunch of bash scripts ...

something like

    
    
        alias count='wc -l'
    

or

    
    
        echo "#bin/sh\nsed \"1, \$1d\"" > drop
        chmod +x ./drop
        cat file | drop 5

------
insanebits
Looks really nice from first glance, would need to give it a try for a week or
so to see how it really fits in my workflow.

>In daily life I need work linux shell and got the understanding that this
kind of library can be applied in shell as well. S

Then why not sticking to unix command names? For example my most used command
on linux is "ls", which in nixar is "fs" for some reason. Am I missing
something?

I would try to get it to be as close to unix commands as possible, if you
really hoping to achieve linux shell feel. And it would be really easy to jump
from linux machine to it.

What would be nixar's selling point? Why would users choose it instead of
cygwin or minGW?

~~~
escherize
You probably don't want that. It's a namespacing issue. If you call some new
command ls and it has a different API that is a serious affordance issue.

~~~
insanebits
Then how can you have "cat" and not "ls"?

~~~
escherize
Oh wow, rewriting cat.. that's definitely a mapping/affordance issue.

I assumed cat was cat!

~~~
onli
I don't see cat in the list of commands
([https://github.com/askucher/nixar/tree/master/commands](https://github.com/askucher/nixar/tree/master/commands)).
cat is cat.

~~~
vacri
uniq is there, though

------
seivui
I don not understand this. My only question is why? This seems to be one of
these tools the author thinks is really good, but in the end nobody will use a
tool like this.

~~~
betimsl
Not to mention dependencies it will make you install.

------
reitanqild
Tried to play my favourite game of "find the license" but couldn't. Anyone
else found it?

~~~
pas
[https://github.com/askucher/nixar/blob/master/package.json#L...](https://github.com/askucher/nixar/blob/master/package.json#L57)
seems to be MIT

------
escherize
This makes me excited for some kind of cljs shell. I sincerely dislike bash
syntax. I've looked into scheme shell (scsh), but it wasn't that interesting.
There's already Planck, which is a quick starting cljs repl. If closurescript
can work in excel surely it can thrive as a shell replacement/enhancement.

~~~
bananaoomarang
The problem for me is that _everyone_ (on Linux/OSX at least) has a bash
shell, so investing in learning any other scripting language seems a little
futile. Would recomend ZSH + zprezto or Fish for day to day use though.

~~~
AnthonBerg
It's nice to get your thoughts into form in a decently ergonomic shell like
Fish and then port it afterwards to nasty old Bash. So definitely worth
learning a better scripting language.

~~~
masukomi
"ergonomic" I'm fairly certain that word doesn't mean what you think it means.
It's synonyms would be applicable though: well designed, usable, user-
friendly; maybe even comfortable, although that seems like it'd be pushing it
a bit.

------
Gys
Written in node means that devs will be the main user-group ? I normally do
not have node installed other then on my Mac (not on servers, not on win-
machines).

~~~
creshal
Welcome to devops, where Node is the new Java.

~~~
merb
It's more like:

Now that you learned to compile a BigJar / OneJar and deploying Java got easy,
we got a new Tool for you: "nodejs and npm" now you could still try to get all
the dependencies on the Production Machines.

------
kluck
I would really be interested in the Nixar commands beeing implemented as
normal bash alias commands.

------
skimmas
site down, found this:
[https://github.com/askucher/nixar](https://github.com/askucher/nixar)

------
theknarf
If you really want an shell written in Node, why not go all the way and choose
both a shell and a terminal written in it. [https://github.com/black-
screen/black-screen](https://github.com/black-screen/black-screen)

------
jdkanani
Interesting. It would be great if it can be integrated with bash/zsh without
installing Node.js.

I think you opened up server's root access to HN. You should use sandbox
environment for such experiments.

------
interpol_p
Seems a bit buggy. I just tried `show` on a plist file and got

    
    
        &lt;dict>
            &lt;key>CFBundleDevelopmentRegion&lt;/key>
            &lt;string>English&lt;/string>
            &lt;key>CFBundleIconFile&lt;/key>
    

(Actual contents obviously are):

    
    
        <dict>
            <key>CFBundleDevelopmentRegion</key>
            <string>English</string>
            <key>CFBundleIconFile</key>

------
JustSomeNobody
I don't see anyone using this except people who want Javascript everywhere. It
really doesn't provide anything for anyone else beyond what the established
shells are doing that I can see.

------
anonfunction
I'd love to have some sort of spec to implement this in Go. I'll just go by
the source but I love the simplicity compared to the standard Linux commands.

------
seqizz
Well, they closed the terminal after echoing a file under /tmp :) That was a
bad idea (to give internet a free terminal to "huck").

------
ucaetano
On the article: replace "Checkout all commands" with "Check out...". The first
is a noun, the second is a verb.

------
bechampion
grep cat df du ... not that complicated come on..

------
lambo_fanboy
its really handy, great work

