3 ms·
- slow startup - no pipe/redirection mechanism - high overhead in version/library control(pyenv, venv)
by ducktective 6y ago
- slow startup
- no pipe/redirection mechanism
- high overhead in version/library control(pyenv, venv)
- spicybright 6y ago- 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)
- Pxtl 6y agoLua? Really? My first go-to complaint about Lua is exactly that same one - poor support for lambda-style programming for expressive one-liners.
- spicybright 6y agoWhen 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_style_pipes_and_lambda_shorthand_to/ https://www.reddit.com/r/Racket/comments/mands9/fluent_unix_...
- jhgb 6y agoSo, you want Scsh, then?
- CraneWorm 6y ago> But I'd rather have any other language than python, even lua seriously? lua shell won't even evaluate bare expressions
- boogies 6y agoI 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
- musingsole 6y agoMostly 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 '!'
- herjazz 6y agoCriminally slow startup (10 seconds on my system). Incredibly ponderous tab complete too. How is this even possible!? Non-starter as a shell for me.