Software Alternatives & Reviews

Ante: A low-level functional language

MLton Chicken
  1. 1
    MLton is an open-source, whole-program, optimizing Standard ML compiler
    Pricing:
    • Open Source
    If you’re fine with tracing GC (which depends on the situation, of course), Standard ML is a perfectly boring language (that IIUC predated and inspired Caml) and MLton[1] is a very nice optimizing compiler for it. The language is awkward at times (in particular, the separate sublanguage of modules can be downright unwieldy), and the library has some of the usual blind spots such as nonexistent Unicode support (well, not every language WG is allocated a John Cowan). Speaking of, Scheme can also be a delightful unexciting <i>static</i> language; consider for example the C-producing implementation Chicken[2]. The pattern-matching / algebraic-datatype story was still rather unsatisfying last I checked, but there are other situations where it shines—it’s complementary to SML in a way. You’re not going to be writing a kernel or a real-time renderer in either (though I’m certain people have taken that as a challenge), they son’t afford the flashy EDSLs of Tcl, Ruby, or Racket, and I can’t say I can prototype in them like I do in Python or sh+tools, but there is a comfortable middle ground where they fit well. (I hear others use Go in what seem like the same places, but to me it feels so thin and devoid of joy that I can’t really compare.) The FFI tools in both of the mentioned implementations are excellent, though not quite at the “type in C declarations” level of LuaJIT and D. [1] http://mlton.org/ [2] https://call-cc.org/.

    #Programming Language #OOP #Generic Programming Language 5 social mentions

  2. A portable and efficient cross-platform Scheme implementation that compiles to C.
    If you’re fine with tracing GC (which depends on the situation, of course), Standard ML is a perfectly boring language (that IIUC predated and inspired Caml) and MLton[1] is a very nice optimizing compiler for it. The language is awkward at times (in particular, the separate sublanguage of modules can be downright unwieldy), and the library has some of the usual blind spots such as nonexistent Unicode support (well, not every language WG is allocated a John Cowan). Speaking of, Scheme can also be a delightful unexciting <i>static</i> language; consider for example the C-producing implementation Chicken[2]. The pattern-matching / algebraic-datatype story was still rather unsatisfying last I checked, but there are other situations where it shines—it’s complementary to SML in a way. You’re not going to be writing a kernel or a real-time renderer in either (though I’m certain people have taken that as a challenge), they son’t afford the flashy EDSLs of Tcl, Ruby, or Racket, and I can’t say I can prototype in them like I do in Python or sh+tools, but there is a comfortable middle ground where they fit well. (I hear others use Go in what seem like the same places, but to me it feels so thin and devoid of joy that I can’t really compare.) The FFI tools in both of the mentioned implementations are excellent, though not quite at the “type in C declarations” level of LuaJIT and D. [1] http://mlton.org/ [2] https://call-cc.org/.

    #Programming Language #OOP #IDE 5 social mentions

Discuss: Ante: A low-level functional language

Log in or Post with