-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Sam Estep edited this page Nov 7, 2022
·
18 revisions
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
defun
ing - 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:
- bidirectional programming
- incremental programming
- make performance analysis easier?
Things that exist:
- differentiable programming
- probabilistic programming?
- the Unison programming language