
Show HN: Janetsh – A new system shell - andrewchambers
https://github.com/andrewchambers/janetsh
======
sdegutis
> _A new system shell that uses the Janet[1] programming language_

Why have I never heard of Janet before? This ticks every single box so far on
my Perfect Lisp Language (and possibly Perfect Language) check list, the
language I've been looking for for years but couldn't find.

[1] [https://janet-lang.org](https://janet-lang.org)

~~~
molteanu
Haha. I haven't heard of it either. I though that this was a toy project or
something. Seems like it's real business. What don't you like about the other
Lisps, like Common Lisp, for example? What boxes still remained unticked?

Janet discussion:
[https://news.ycombinator.com/item?id=19179963](https://news.ycombinator.com/item?id=19179963)

------
akhilcacharya
> while also supporting the things we love about sh.

This is great! Are there any other shells like this? I like the idea of
something backwards compatible with bash.

~~~
314
Oilsh has focused more on backwards compatibility. This approach of adding a
small functional language is interesting. The author seems to have done an
elegant job with the syntax. Adding this to my list of things to download and
play with.

------
hestefisk
Very neat. Will give this a spin and perhaps a port for FreeBSD if interested?

~~~
andrewchambers
If you are up for it, currently it may be a tad difficult to get running, but
I am certainly willing to provide assistance.

In the future I hope it will support mac/freebsd/openbsd/linux and be easy to
install and use.

------
convolvatron
I have a project that uses free unparsed text with evaluated sexpressions
mixed in. I understand that alot of people just dont like sexpressions...but
otherwise is anyone really bothered by this style of allowing arbitrary junk
at the top level?

~~~
ljm
I think it’s fine, it’s like you’re saying that every expression is implicitly
wrapped in a ‘()’ itself, so the syntax is redundant at the top level in a
shell.

Not sure I’d appreciate it outside of a shell.

~~~
andrewchambers
Yeah, the shell implicitly adds () in janetsh, but it doesn't do it for you
when you are writing scripts.

------
codetrotter
Why did they subtract one from (length all-files) in the gif?

~~~
314
There is a blank line from find captured in the array. I think it is to remove
it from the count.

~~~
andrewchambers
That is right, I also just wanted to show you can do some basic calculation
easily inline.

------
kissgyorgy
you lost me on the second bracket :D

~~~
andrewchambers
lisp may be as ugly as bash, but it much more principled and composable.

------
teilo
Does it use the flow of time as a lotion?

~~~
jedieaston
How’s the cactus compatibility?

~~~
lintuxvi
Wat?

~~~
smsx
I believe these are references to The Good Place[1], although I don't usually
expect to see pop-culture references as top level comments on HN.

[1]:
[https://en.wikipedia.org/wiki/The_Good_Place](https://en.wikipedia.org/wiki/The_Good_Place)

~~~
Crestwave
To be fair, it _is_ named after the character from that show. It doesn't
really add much to the discussion to post references here, though.

