[HN Gopher] A Tour of Hell - Shell scripting Haskell dialect
___________________________________________________________________
A Tour of Hell - Shell scripting Haskell dialect
Author : kreyenborgi
Score : 57 points
Date : 2024-09-30 08:22 UTC (2 days ago)
(HTM) web link (chrisdone.com)
(TXT) w3m dump (chrisdone.com)
| pvsnp wrote:
| I've wanted many things from shell but never to write Haskell in
| Shell. This turned something relatively naturally expressible
| into something so complex that requires type theory
| sinkasapa wrote:
| There is no reason why one has to enjoy a haskell-like syntax
| over Bourne shell syntax but I think you're wrong about the
| tool. The author states that "It should have no abstraction
| capabilities (classes, data types, polymorphic functions,
| etc.)." Granted, there may be types but without those
| abstractions, I don't think you need to know much of anything
| about type theory.
| jonotime wrote:
| How was this page generated? I have a marp presentation
| (https://github.com/jonocodes/awesome-keyboards) that I would
| like to have shown on a single page like this with the notes
| expanded.
| cryptonector wrote:
| I really like this page, with slides on the left and blog on
| the right.
| chongli wrote:
| Interesting but not a great piece for anyone not into functional
| language design. A pretty deep dive into the "how" while
| completely ignoring the "why."
| rwmj wrote:
| Or indeed the "what". Did he ever show an example of what the
| shell scripts look like? I couldn't see it.
| simonmic wrote:
| The first link takes you to the home page, which links to
| examples; probably a better starting point.
|
| https://chrisdone.github.io/hell
| tmoertel wrote:
| Chris discusses the rationale in his blog post at
| https://chrisdone.com/posts/hell/
| chongli wrote:
| Thanks for this! I read that but I'm still not convinced.
| Quote:
|
| _They lean far too heavily on sub processes to do basic
| things._
|
| I thought this was the whole point of a unix scripting
| language! Most of the scripts I'm writing are not interactive
| REPLs or string-parsers, they're glue code for batch-invoking
| commands on files. Stuff like converting a bunch of FLAC
| files into MP3 with lame or avi video files into mkv with
| ffmpeg.
|
| What bash offers me is very terse command invocation and
| powerful filename globbing, including regexp substitution.
| Scripts like this are generally not intended to be used more
| than once or twice, and so a type system like Haskell
| provides is irrelevant here. If you're writing something
| that's going to be iterated on and maintained for years then
| you're writing an application, not a script.
| simonmic wrote:
| As a haskeller, and shell scripter, I find this a refreshing and
| exciting experiment. Much of the goodness of haskell, but with a
| much tighter focus and smaller scope. No imports, language
| pragmas, packages or build tools needed; all of the building
| blocks listed on one short page,
| https://chrisdone.github.io/hell/api. More platform independent,
| robust, and regular than shell. Potentially a nice learning
| language / stepping stone to haskell itself.
|
| It's quite verbose right now, and I don't see much networking API
| yet, but it's just starting. I could see it easily growing into
| something very nice.
___________________________________________________________________
(page generated 2024-10-02 23:00 UTC)