Shell
Orbitz - orbitz - May 30, 2006The other day, araujo suggested Erlang might make a good shell. Shell as in, bash. Hrm, I thought, maybe…
I don’t think Erlang would be flexible enough to make a decent shell. Take something like this:
for i in *; do echo $i; done
What would the Erlang equivalent look like?
lists:map(fun(X) -> print([X]) end, ls())
I just don’t see it? I should hope it doesn’t look like that but I don’t know. On the other hand, I seem to have it pretty set in my mind that Common Lisp would make an excellent shell language. A few people have told me that CL would probably be too verbose and not work out well but, I don’t know, it just seems so succinct and powerful. You could make a lot of macros to make your life easier. I sent an email to the Lisp At Light Speed blog dude to get his opinion but I figured I’d post it here too to see if anyone has any thoughts.
What I have in mind is basically an interactive shell, using Common
Lisp as its programming language. For instance something like:
for i in *; do echo $i; done
Might look like:
(loop for i in (ls) do (print i))
The second thing I would love to see is Monad/Powershell. Rather
than using text to pass data around, uses lists/objects/etc. (ls)
for instance gives a list of file objects to iterate over, and you
can extract things like the size and permissions and what not.
This raises a question though. In order to do this, just about every
standard program becomes obsolete. For instance, why use 'cut' when
you can simply split a string with a CL function. However some
things would still be very useful, such as ls, or grep, but these
now need to communicate via objects rather than just text, so those
will have ot be rewritten. In which cause it seems like they could
simply be packages and loaded into the shell, meaning you don't
have to deal with program startup times or what not. Is this a lot
of work to rewrite all of these programs, and does it mean that we
cannot usefully use third party programs that people write? You
can always drop down to using strings as communication I suppose.
That is the basic idea. So far a few people have suggested that
sexprs really aren't any better for this sort of thing. sexpr's
won't be any better than say…bash. Someone suggested that Factor
might be a better language for this. But it seems to me, with
Common Lisps powerful macro system, you can easily make most
operations incredibly simple? The most useful aspect would be using
objects to communicate. But even if this is a lot of work to
accomplish, it seems to me that simply using CL as a shell programming
language seems like it would be nice. Am I wrong here? Am I missing
something?
If CL would make a poor langauge, what would make a good language? Riastrach has suggested Factor. I don’t know enough about factor to say that but I think I like CL better for this.
All I know is:
This is not the answer
Categories: Blogs Orbitz
Comments
No comments so far, you could be the first.Add comment
Erlang on Twitter
» stackfeed (StackOverflow): Erlang: unmarshalling variable length data fields in binary stream: I’m creating an Erlang application that need… http://t.co/0yDGJWz7
» tugocof (Bilski Storer): Viola Tricolor L. in Morphologischer, Anatomischer Und Biologischer Beziehung: Inaugural-Dissertation Zur Erlang… http://t.co/C4ojnX3h
» mickael (Mickaël Rémond): Hehe :)
RT @ostinelli spent the whole day in building an #ejabberd module. i just love this stuff. ^^_ #erlang
» darkproger (proger): RT @metabrew: If you use vim for #erlang, you might be interested in my rebar-friendly vimerl modifications: https://t.co/dSIKOs9p
» bipthelin (Bip Thelin): haven’t seen Hotline in a while RT “@github_erlang: hotline - Browser based Hotline client in Erlang http://t.co/mF50rC7D”
» erlang (Andreas Åkre Solberg): Mine bilder fra vakre Helgeland http://t.co/WNSNhNiw i min nye fancy bildefremviser
» github_erlang (GitHub Erlang): hotline - Browser based Hotline client in Erlang http://t.co/iLT9GmOG
» oki_dimas (Oki dimas mahendra ): Km wuching “@HammyDC: Bkan.. Aq dewa erlang.. RT @oki_dimas Bukan siluman “@HammyDC: Aq jdi yoko klo gtu..”
» tichise (Takuya Ichise): RT @AntiBayes: 【言語別業務時の服装】
・Clojure:全裸
・Scheme:全裸
・Gauche:全裸
・Prolog:全裸
・Scala:全裸
・Erlang:全裸
・C++:全裸
» mshiba64 (Masami Shibatani): ということで、ErlangのBit Syntaxに突入。language for distributed and concurrent programだからね。
Statistics
Number of aggregated posts: 10454
Number of comments: 1392
Most recent article: January 31, 2012
Latest comments
» nobelboy on OpaDo Data Storage: Feel free to add some Qs here or contact me offline, and I will see what I can work into…
» darrensy on The Twisted Matrix: This has been a great idea you have shared. covers for kindle
» jony on Principle Software Engineer at LonoCloud (Full-time): That provides will become a internet marketer of little kinds of expert methods developers developing strategy using Erlang/OTP. There will…