Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

- slow startup

- no pipe/redirection mechanism

- high overhead in version/library control(pyenv, venv)



- no support for one liners because of python syntax - commands too verbose. a line with two lambda expressions would look terrible

(All my personal preference, obviously. But I'd rather have any other language than python, even lua)


Lua? Really? My first go-to complaint about Lua is exactly that same one - poor support for lambda-style programming for expressive one-liners.


When I said I'd even take lua over python, that's only if I was forced to pick a high level language for a shell. Lua is really easy to conjure up higher level algos, like javascript can.

But I'm not convinced any high level language is a viable replacement for bash. It would have to be more functional than bash whilst still having good support for standard unix tools.

One very interesting idea I found was a macro library for racket that turns s-expressions from deeply nested structures into a much flatter representation. Lisp might be a good option with toy with because of flexibility like that.

https://www.reddit.com/r/Racket/comments/mands9/fluent_unix_...


So, you want Scsh, then?


> But I'd rather have any other language than python, even lua

seriously? lua shell won't even evaluate bare expressions


I think you mean luajit shell?

  $ lua5.3
  Lua 5.3.3  Copyright (C) 1994-2016 Lua.org, PUC-Rio
  > 2*3
  6

  $ rlwrap luajit
  LuaJIT 2.1.0-beta3 -- Copyright (C) 2005-2017 Mike Pall. http://luajit.org/
  JIT: ON SSE2 SSE3 SSE4.1 AMD fold cse dce fwd dse narrow loop abc sink fuse
  > 2*3
  stdin:1: unexpected symbol near '2'
  > =2*3
  6


Criminally slow startup (10 seconds on my system). Incredibly ponderous tab complete too. How is this even possible!? Non-starter as a shell for me.


Mostly agree, though if you need piping and redirection, you can use Python for that:

file_list = !ls

delete_me = b[0]

!rm {delete_me}

Though it can't fit into a single statement due to a greedy '!'




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: