[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)