Live data from Hacker News

Closh – Bash-like shell based on Clojure

github.com

71–80 of 138 posts

Re: Closh – Bash-like shell based on Clojure

#72
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).

Same here. I've been using Fish with Fisherman and the pure theme. Very fast.

Re: Closh – Bash-like shell based on Clojure

#73
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…

Elvish author here, I am glad that you like it. Feel free to drop me questions :)

Re: Closh – Bash-like shell based on Clojure

#74
post #53
post #38

Earlier quoted context omitted.

scsh is awesome, although I don't believe it was intended to be used interactively. eshell[0] is another one. Has a few warts, but is generally pretty cool. Someday I'd like to write one in Common Lisp. Just haven't gotten a round tuit yet. [0] https://www.gnu.org/software/emacs/manual/html_mono/eshell.h...

Scsh runs in a modified scheme48 repl - no problems with interactive use, though I've not run it as an actual login shell, though perportedly that works

I mean more that it's not ergonomic for interactive use. Typing:

    (run/string (| (ps aux) (grep foo) (grep -v grep))
is quite a bit more of a pain than:

    ps aux | grep foo | grep -v grep
Or at least I think so.

It's really meant for providing a nice Lispy interface to POSIX, and at that I believe it succeeds.

Re: Closh – Bash-like shell based on Clojure

#75
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…

> Nice, I've been waiting for a good modern shell to replace ZSH.

I think xonsh is a good modern shell to replace bash/zsh/*sh. The only two issues are: 1) it has the stupidest name ever with an even more stupid pronunciation, 2) it's great, it's going toward a great direction, but it fails in one of your key areas for what makes a good shell: speed, it's very slow.

But regarding speed, please tell me how you find most shells to be too slow? Most of the time you're in shell you're not even doing shell stuff, you are rather using tools like ls and find and grep, etc. For the almost 2 decades I've been using bash, it never felt "slow" to me. xonsh feels slow, but at least the python-esque of it makes it a pleasure to use (except where you hit areas where it doesn't work well... I hope that improves over time though)

Re: Closh – Bash-like shell based on Clojure

#76
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.

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.

Re: Closh – Bash-like shell based on Clojure

#77
post #44
post #40

Earlier quoted context omitted.

I use Spacemacs and have the following in inside my .spacemacs in the dotspacemacs/user-config functions: (require 'cider) (setq cider-cljs-lein-repl "(do (require 'figwheel-sidecar.repl-api) (figwheel-sidecar.repl-api/start-figwheel!) (figwheel-sidecar.repl-api/cljs-repl))") Then I just use figwheel to manage my cljs projects (I think this is the default now for reagent and luminus projects, it's also the default fo…

Whoa, awesome. That was super helpful. I'm also a spacemacs user, but my pain was mostly for non-browser Cljs. I should have specified, you're right: developing browser Cljs is pleasant because of figwheel :)

I also use figwheel for Android development via React Native. It seems to work pretty well.

Re: Closh – Bash-like shell based on Clojure

#78
post #40
post #39

Earlier quoted context omitted.

What does your development environment look like? Every time I bail on a Cljs project it's because tooling is worse than for Clj.

I use Spacemacs and have the following in inside my .spacemacs in the dotspacemacs/user-config functions: (require 'cider) (setq cider-cljs-lein-repl "(do (require 'figwheel-sidecar.repl-api) (figwheel-sidecar.repl-api/start-figwheel!) (figwheel-sidecar.repl-api/cljs-repl))") Then I just use figwheel to manage my cljs projects (I think this is the default now for reagent and luminus projects, it's also the default fo…

This configuration is tremendously slow for me for some reason. Looks like Chrome put a tab "to sleep" when it loses focus. That leads to long freezes while you type anything in cljs file. Am I missing anything?

Re: Closh – Bash-like shell based on Clojure

#79
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.

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.

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.

Re: Closh – Bash-like shell based on Clojure

#80

Earlier quoted context omitted.

It's a highly performant platform, based on a rapidly evolving language that's easy to understand. As such it's largely democratised server/shell programming to millions of users and web developers who could have been turned off by more advanced syntaxes and programming concepts. These people have created millions of open source packages which now dwarf most other communities, and the platform has unlocked an incredi…

Is this satire?

It'd better be.
Post reply on HN