F# and C# are typed scripting languages. F# is quite similar to python in script form (.fsx), and has OCamls expressiveness, exhaustive pattern matching, and type inference. That results in highly expressive, terse, and ergonomic domain code.
> Isn't a waste to essentially reinterpret an entire program that may be run 5000 times a day?
This is a dated prejudice that I shared.
To get started coding with AI I made a dozen language comparison project for a toy math problem. F# floored me with how fast it was, nearly edging out C and Rust on my leaderboard, twice as fast as OCaml, and faster than various compiled languages.
Compiling could in principle be fastest, if we had compilers that profiled hours of execution before optimizing code, and only then for "stable" problems. No one writes a compiler like this. In practice, Just In Time interpreters are getting all the love, and it shows. They adapt to the computation. My dated prejudice did not allow for this.
Isn't it a waste to run a test suite for a program that would run 1M times a day in production?
The key adjective here is successfully run. You want to detect any errors as early as possible. Ideally even at the early stages of writing the script, when a typechecker is already able to point at certain errors, and thus help avoid missteps in further design.
I script with Rust via cargo-script, it works great. Scripting is a task for when you want to achieve something in one file instead of a full blown application. It is not about the language, you can script in C or assembly if you so chose.
That just moves the question to "why is this one being shared" then. I don't think "because the authors didn't know better than to avoid sharing it like 'most of us'" is a particularly good answer.
The why: because Lua, Python, JavaScript, Janet, etc lack many or all these features. And each of these features is known to make life easier for a human programmer.
Looking through that list of features, Ruby (the dynamic language I know best) has all but 1 built-in (and the other can be added with Gems). I'm guessing Python probably has them all too (but I don't know Python that well). They're pretty common. So the why still isn't clear.
The main Ruby implementation is also fairly easy to embed. It's just not easy to embed multiple MRI ruby instances in a single application, and it's also a lot bigger than mruby.
Is Lily intended to be (or could it be used as) a statically-typed alternative to Lua?
Personally I'm happy with dynamic typing for scripting - but I suspect many people would welcome a statically-typed option, and there don't seem to be many available.
The Luau author is always on the official Lua mailing list, and it has twice as many stars, so it seems likely to win the long term popularity contest.
Also it looks like[1] Luau is the official Roblox Studio scripting language, and is baed on Lua 5.1 (possibly LuaJIT?) which means it's behind mainstream Lua.
Not sure which Lua versions the others are based on.
I would like to understand the motivations for building another programming language when in fact, firstly, a lot of code is being written by Claude and the like, and secondly, the existing languages and low level options like C, Assembly have become more accessible now thanks to AI coding tools.
I have no knowledge of lily, but a good reason could be for example that you can do `: print(v)`, but need braces for a multi-line block. Or that braces are the difference between creating a new scope and not. It's not necessarily just syntax for the sake of it.
January 2026 might be the month of langs created to be used by AI. Usually the chief concern is saving on tokens, prompted by context window anxiety. (This completely disregards the fact that agents thrash the context window by doing wrong things, then attempting to fix them; or by reading unrelated stuff; or by calling unhelpful tools; etc)
Interesting take, because I think precisely the opposite. Coding agents let us produce a lot of code, code that we need to read and review. That means we need languages optimized for code generation by AI, and code review by humans.
Not a language, but we are having very good success using https://brannn.github.io/simplex/ for autonomous one-shot workflows. It seems to be a very high-fidelity input for LLMs.
Yet another programming language. Why not invest the time into fixing other languages? Is it really so important to have _that_ keyword and not having _that_ `;`? There are enough languages for probably all tasks.
reply