Live data from Hacker News

Closh – Bash-like shell based on Clojure

github.com

91–100 of 138 posts

Re: Closh – Bash-like shell based on Clojure

#91
post #79

Earlier quoted context omitted.

Could not agree less. It's not totally bad, but for sure not good. I prefer: * compile to native binaries * many ways to do concurrency (instead of async all the way) * a serious language (not created-in-10-days JS) Node is really step back for me, coming from Ruby and the JVM.

JavaScript looks nothing like the “created in 10 days” version to which you speak. I would highly suggest you take an uncomfirmation(?) biased look at the language as it is now. Asyncs simplicity is arguably a reason why it’s a good platform to build off of. I agree I would rather have a single binary, and node may not be the best platform for shells on this point.

> JavaScript looks nothing like the “created in 10 days” version to which you speak.

It has improved, sure. But not only in the direction that makes me happy. But you cannot undo some bad design choices, without it becoming a different language.

> I would highly suggest [...]

I write JS at times. It hurts badly. Not everyone feels it. Maybe coming from PHP or Perl it does not even hurt that much. But after writing some Haskell and Elm lately, the pain got more intense.

> Asyncs simplicity is arguably a reason why it’s a good platform to build off of.

Not having choices is never a good thing in my book. And I do not think that JS does async particularly well. So much line noise when it comes to working with promises.

No fan here.

Re: Closh – Bash-like shell based on Clojure

#92

Earlier quoted context omitted.

This needs freakin' Node.js. Yeah, that's an old sentiment. I used to echo the same thing, but it's worth coming to terms with the fact that node is a pretty good platform to build on.

It may be old, but it's good and true. There are zero things I want my shell to do which depend on as much tooling as Node provides. I want a compiled native binary with as few dependencies as possible for the shell I'm going to use in single-user mode with very few resources available.

Hi five grandpa! Pepperidge farm remembers :)

Re: Closh – Bash-like shell based on Clojure

#93

Earlier quoted context omitted.

Rash? Rust Already SHell (There's already a "RuSH" made with Ruby). Oh. https://github.com/redox-os/ion CLASH - Common Lisp Again SHell? Oh. http://www.cliki.net/CLISP-Shell Doh! https://docs.racket-lang.org/rash/index.html Someone put OO in my Linux shell! https://virtualizationreview.com/articles/2017/06/01/how-to-...

There's also "oh shell", written in Go but exposing a Scheme-like language: https://github.com/michaelmacinnis/oh

or you could go with SCSH, an actual scheme shell: https://scsh.net/

Re: Closh – Bash-like shell based on Clojure

#94
post #29

Nice, I've been waiting for a good modern shell to replace ZSH. Fish just wasn't enough of an improvement for me to abandon ZSH. This is an area where most open-source developers have avoided, as it's a "solved" problem, but it really isn't. I'm currently waiting on Elvish [1] to mature. It's written in Go [2], but they're developing a new language on top of it for shell scripting, which I tried for a week. It's a ni…

I'm a big fan of fish, particularly with omf. Though honestly it has some performance issues, particularly if your prompt line calls something that could take some time to resolve (such as git status or a du).

I've been having big performance issues with tab completion. Also, I just don't find the language to be that much better than bash, and writing in fish means i can't share my shell scripts with any coworkers. I've been writing everything in bash lately even though i still use fish.

Re: Closh – Bash-like shell based on Clojure

#95
post #50

Call me old. But I want my shell to be a tight binary, preferably distributed (at some point) by major distros. This needs freakin' Node.js. I'm more looking in the Rust/Haskell/OCaml direction for a hip bash/zsh replacement.

on a related note there's Upterm https://github.com/railsware/upterm which is a terminal emulator in node. I've found it pretty sucky for running fish shell in but i think it's ok for bash and zsh

Re: Closh – Bash-like shell based on Clojure

#96
post #3

Author here, thanks for posting. The project is still very early in the development and there is a lot of work to be done to make it ready for daily use. I would appreciate any feedback. What are the less known features of existing shells you really like? What things would you change about existing shells if you could?

I think this kind of shell has the best features of something like PowerShell -- the ability to work with real data structures -- but combined with Clojure's opinionated minimalism about those data structures, the result seems more useful.

One other thing that Clojure has, however, which may be a problem here, is a strong emphasis on precise namespacing. That seems a like a serious problem for day to day use of this kind of shell. Pedantically namespacing all the interesting library functions I want to use would get old fast.

Re: Closh – Bash-like shell based on Clojure

#97
post #91

Earlier quoted context omitted.

JavaScript looks nothing like the “created in 10 days” version to which you speak. I would highly suggest you take an uncomfirmation(?) biased look at the language as it is now. Asyncs simplicity is arguably a reason why it’s a good platform to build off of. I agree I would rather have a single binary, and node may not be the best platform for shells on this point.

> JavaScript looks nothing like the “created in 10 days” version to which you speak. It has improved, sure. But not only in the direction that makes me happy. But you cannot undo some bad design choices, without it becoming a different language. > I would highly suggest [...] I write JS at times. It hurts badly. Not everyone feels it. Maybe coming from PHP or Perl it does not even hurt that much. But after writing so…

i'm with you @cies JS has had some of its edges smoothed out but it's not a great language and its answer to parallelism and concurrency is crap IMNSHO. And i'm someone who came from perl way back in the day.

Re: Closh – Bash-like shell based on Clojure

#98
post #62
post #50

Call me old. But I want my shell to be a tight binary, preferably distributed (at some point) by major distros. This needs freakin' Node.js. I'm more looking in the Rust/Haskell/OCaml direction for a hip bash/zsh replacement.

Racket's RaSH is heading there. I have to say I have been using BASH, SED and AWK less. They are great tools but in the end it is getting easier and easier to get things done with a Macro in Racket for me.

what are you thoughts about not being able to share your nifty shell hacks with others? (because so few use RaSH)

Re: Closh – Bash-like shell based on Clojure

#99
post #62

Earlier quoted context omitted.

Racket's RaSH is heading there. I have to say I have been using BASH, SED and AWK less. They are great tools but in the end it is getting easier and easier to get things done with a Macro in Racket for me.

what are you thoughts about not being able to share your nifty shell hacks with others? (because so few use RaSH)

Not worried. If that was everyone's thoughts we all would be using Perl, Java and PHP :)

Re: Closh – Bash-like shell based on Clojure

#100

Earlier quoted context omitted.

I'm a big fan of fish, particularly with omf. Though honestly it has some performance issues, particularly if your prompt line calls something that could take some time to resolve (such as git status or a du).

I've been having big performance issues with tab completion. Also, I just don't find the language to be that much better than bash, and writing in fish means i can't share my shell scripts with any coworkers. I've been writing everything in bash lately even though i still use fish.

That's basically my biggest problem with fish. If I could get 99% of the functionality with near complete language incompatibility with bash, that would be ideal.
Post reply on HN