Skip to content
Sam Estep edited this page Nov 7, 2022 · 18 revisions

Quench

A programming language. Goals/plans (in no particular order):

  • scratch my itch to make a programming language
  • garbage collected
  • immutability
  • steal Clojure's awesome philosophy of focusing on open data
  • probably don't use namespaced map keys
  • bless JSON
  • refinement types
  • make backward compatibility easier
  • rapid code reloading development style, in the spirit of Common Lisp's REPL-driven development but without some of the drawbacks
  • make package management easier
  • target JavaScript so it can be used everywhere you'd want to use a garbage-collected language
  • maybe figure out some way to do threads too
  • tackle the tradeoff between abstraction and understandability
  • make testing pleasant to do, while acknowledging the realities of testing
  • allow reasoning about the world at multiple levels of certainty, as opposed to Haskell's blunt IO monad
  • metaprogramming
  • declarative, like Haskell's function declarations and unlike Lisps imperatively defuning
  • easy to make tools for
  • well-integrated with editors
  • easy to try in the browser
  • Linux scripting
  • use generative property-based testing to fill in the gaps and help out the refinement type system

Other possible goals:

Things that exist:

  • differentiable programming
  • probabilistic programming?
  • the Unison programming language
Clone this wiki locally