[Self-interest] Toward Declarative Programming

Russell Allen mail at russell-allen.com
Thu Apr 23 01:33:03 UTC 2020


> On 22 Apr 2020, at 10:38 pm, Adam Spitz <adam.spitz at gmail.com> wrote:
> With that said, I've spent the past few years learning about Haskell and functional programming and type theory and category theory and proofs and various other things that I used to consider icky, and I like it very much. I'm convinced that it's usually a very good idea to avoid imperativeness and mutation as much as possible, and I'm convinced that there's a huge amount of value in the kinds of mathematically-precise abstractions (functors, monads, algebraic data types, etc.) that are used in those kinds of languages, and I'm convinced that type systems are much much more-useful and less-awful than I believed back when the only typed languages I knew were C++ and Java. I wouldn't be happy going back to a dynamically-typed imperative language like Self (though I do desperately miss the Self environment). 


I haven’t dealt with Haskell and family all that much, but the feeling I get is that the difference between its approach and Self is at least partially that Haskell focuses on the written syntax and ‘compile time’ and Self on the interacting world and ‘run time'.  The is, Self programming is always interacting with something messy and existing, like being a vet, and Haskell is like being a watchmaker, creating an intricate and often beautiful static creation which is then wound up and left to tick.

So Self ends up producing morphic, and Haskell ends up producing Pandoc (which is fabulous btw - I use it all the time)

Is there a way to get the best of both worlds?

Russell




More information about the Self-interest mailing list