10 ms·
Show HN: Nixar – New design of Linux command line
- askucher 11y agoI 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
- MrQuincle 11y agoInteresting. I am gonna try it in the coming days.
- mediumdeviation 11y agoSorry 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 11y agoIt 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.
- Lorkki 11y ago>'Joyable' is not an English word I honestly just assumed it was some new piece of web development jargon (like "RESTful") that I had somehow missed, and kept reading assuming it would somehow explain itself.
- ddalex 11y agoNice exercise. But for utility - I have been doing the same things 15 years ago with the standard shell tools: awk, grep, sort, tail, head, cat, tac. Nothing wrong with old tech.
- Gys 11y agoWritten 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).
- jdkanani 11y agoInteresting. 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.
- skimmas 11y agosite down, found this: https://github.com/askucher/nixar https://github.com/askucher/nixar
- insanebits 11y agoLooks 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 11y agoYou 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 11y agoThen how can you have "cat" and not "ls"?
- escherize 11y agoOh wow, rewriting cat.. that's definitely a mapping/affordance issue. I assumed cat was cat!
- escherize 11y agoThis 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.
- pnt12 11y agoHave you tried fish? I really like it, both to script and to use interactively. Some examples: http://fishshell.com/docs/current/tutorial.html#tut_loops http://fishshell.com/docs/current/tutorial.html#tut_loops http://fishshell.com/docs/current/tutorial.html#tut_command_substitutions http://fishshell.com/docs/current/tutorial.html#tut_command_...
- bananaoomarang 11y agoThe 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 11y agoIt'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.
- bananaoomarang 11y agoThis is true. I probably waste more time thinking about Bash than is useful
- masukomi 11y ago"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.
- jamescun 11y agoMaybe 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 11y agoI 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.
- jamescun 11y agoI agree. I could see this being, for lack of a better phrase, a gateway drug for some to the full power of the *NIX userland.
- rmsaksida 11y agoMost of these could be written as bash aliases, so not really a great win for node...
- dexen 11y agosc [1], the venerable text mode spreadsheet, has `pt' (transpose) command. And yes, it's a visual program, in that you operate on grid of cells. [1] http://www.linuxjournal.com/article/10699 http://www.linuxjournal.com/article/10699
- easytiger 11y agowhat is 'turn' ; their docs site is broken
- HelloNurse 11y ago'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.
- seqizz 11y agoWell, they closed the terminal after echoing a file under /tmp :) That was a bad idea (to give internet a free terminal to "huck").
- seivui 11y agoI 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 11y agoNot to mention dependencies it will make you install.
- mickgardner 11y agoThis is node.js? no. Golang/C/C++ I can handle, but I'm NOT installing node.js just for this.
- enibundo 11y agoExactly my thought. Apart from the fact that it doesn't add anything to my existent Tool-chain at the moment.
- martiuk 11y agoI don't know what it is with node.js but people seem to want to reinvent everything with it.
- archimedes_owl 11y agoHipster 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.
- Already__Taken 11y agonpm install myproject On mac, windows and anything nix + arm is a very compelling proposition. I'm not trying to say this is unique to node. It is what it is.
- easytiger 11y agoCV padding
- jessaustin 11y agoIt's possible that if this were the case for some other platform, that would be seen as positive.
- jeremy_wiebe 11y agoMaybe it's just that that's the tooling/language that the author knows. I've been guilty of writing a tool in the language I'm most familiar with whether the greater community thought it was a good idea or not.
- bechampion 11y agogrep cat df du ... not that complicated come on..
- kluck 11y agoI would really be interested in the Nixar commands beeing implemented as normal bash alias commands.
- interpol_p 11y agoSeems a bit buggy. I just tried `show` on a plist file and got <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleIconFile</key> (Actual contents obviously are): <dict> <key>CFBundleDevelopmentRegion</key> <string>English</string> <key>CFBundleIconFile</key>
- lambo_fanboy 11y agoits really handy, great work
- theknarf 11y agoIf 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
- reitanqild 11y agoTried to play my favourite game of "find the license" but couldn't. Anyone else found it?
- pas 11y agohttps://github.com/askucher/nixar/blob/master/package.json#L57 https://github.com/askucher/nixar/blob/master/package.json#L... seems to be MIT
- JustSomeNobody 11y agoI 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.
- ucaetano 11y agoOn the article: replace "Checkout all commands" with "Check out...". The first is a noun, the second is a verb.
- rolandukor 11y agoIn 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.
- jaxgeller 11y agoAnother example of Atwoods Law, 'any application that can be written in JavaScript, will eventually be written in JavaScript.'
- vezzy-fnord 11y agoThese are all basic CLI and text processing tools, so it's not something all that grandiose to do in Node.
- drinchev 11y agoIt 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
- racl101 11y agoDemo seems kinda slow, and the text harder to read. It does look nice I suppose, but I'm more interested in getting stuff done quickly.
- anonfunction 11y agoI'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.