Skip to content

Instantly share code, notes, and snippets.

@distransient
Last active August 29, 2015 14:25
Show Gist options
  • Save distransient/0dcc8c40fc1030ed282d to your computer and use it in GitHub Desktop.
Save distransient/0dcc8c40fc1030ed282d to your computer and use it in GitHub Desktop.
Requirements for a managed applications environment revolving around a common assembly/bytecode

feature wish list:

  • Memory management natives built in, rust-like lifetimes, garbage collection annotations, as well as manual memory access methods.
  • Concurrency and parallelism implemented in the environment, not in the language, where it is just made accessible
  • Common function and method interface, languages implement how they handle these interfaces so that cross-calling between pure functional and imperative languages is more possible.
  • Platform-independent api for accessing the system. each application lives within a sandbox in this system, however.
  • Simplicity and style guidelines are important in how the system develops and grows. develop with a "less is more" community statement; be frugal but useful, too.
  • Two formats for storing bytecode, one in plaintext the other a binary file. Have support for sourcemapping bytecode.
  • A nice, simple way to debug programs, as well as some sort of proof assistant stuff?
  • Minimal runtime and memory usage, implementation by transpiling to c-- would provide simple low level optimizations as well as a sizeable number of target architectures .
  • A sizeable type interface featuring dependent types, all the cool stuff. Maybe based on hindley-milner?

language implementation wish list:

  • Simple lisp/impure fp lang with dynamic typing (as well as a dsl for frp).
  • Pure fp lang with hindley-milner style type interface (haskell-like).
  • Low level modern static lang such as rust.
  • A c-like scripting language in the spirit of go, lua, javascript.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment