Skip to content

Instantly share code, notes, and snippets.

@ajhyndman
Last active May 21, 2025 17:25
Show Gist options
  • Select an option

  • Save ajhyndman/91b1306dc44c2486ae570643260ac58c to your computer and use it in GitHub Desktop.

Select an option

Save ajhyndman/91b1306dc44c2486ae570643260ac58c to your computer and use it in GitHub Desktop.
Next Gen Frontend Language Wishlist

MUST

  • secure by default

  • immutable data (only)

    • number
    • text
    • list
    • tuple
    • dictionary (or some other struct?)
    • NO null (use unit instead)
  • first class functions

  • lambdas

  • sound type system

  • algebraic effects

  • pattern matching

  • module system

    • explicit import/export
    • support circular imports
  • NO classes

  • NO prototypes

  • friendly syntax

    • familiar to JS or python developers
    • identifiers with spaces (!)
    • partial application
    • named parameters
  • memory management: automatic reference counting?

SHOULD

  • single (decimal) number type

  • play nice with bundlers

  • legacy JS interop

    • channels?
    • unsafe blocks?
  • testing library?

  • package manager ecosystem

  • support spaces in variable names

  • learn from erlang execution model?

COULD

  • syntax features
  • React bindings
  • compile to JS
  • compile to WASM
  • TypeScript interop
    • generate .d.ts interfaces
    • infer types from TypeScript sources
  • traits or typeclasses (?)
  • pretty-printer

https://www.youtube.com/watch?v=NPB34lDZj3E

@sritchie

Copy link
Copy Markdown

Hey Andrew!

I'm not sure if the best way to write you, so I'll comment on this most recent gist of yours and try something else if this doesn't work.

Steven Wittens has made me a maintainer of Mathbox, and I've recently completed a push to get Mathbox2 upgraded to modern three.js and a proper modular architecture.

I'm preparing to publish threestrap, mathbox and shadergraph to npm, and it looks like you are the current owner of the mathbox package on npm: https://gitgud.io/unconed/mathbox/-/issues/10

I'm happy to go through the process you linked on the ticket: https://docs.npmjs.com/policies/disputes

but I figured writing you first would be the easiest.

Here's the current state, now all in ES6 javascript vs coffeescript, ready to be transferred to the gitgud repo: https://github.com/mentat-collective/mathbox2

Cheers!

@ajhyndman

Copy link
Copy Markdown
Author

Hi @sritchie! The recent updates to mathbox look really cool.

Yes, I'm happy to transfer ownership of the mathbox npm package. I'll try reaching out to you by email to coordinate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment