The Lobster Programming Language Lobster is a programming language that tries to combine the advantages of static typing and compile-time memory management with a very lightweight, friendly and terse syntax, by doing most of the heavy lifting for you. While it is a general purpose language, its current implementation is biased towards games and other graphical things, with plenty of “batteries included” functionality. Lobster is Open Source (Apache v2 license) and can be found on github. Online copy of the full documentation. Features Features have been picked for their suitability in a game programming language, and in particular to make code terse, quick to write and refactor. It is meant to not hold you back to get an idea going quickly. Language Static typing that feels almost as easy to write as dynamic typing thanks to “Flow-Sensitive Type-Inference and Specialization”. Compile time reference counting / lifetime analysis / borrow checker. Lightweight Blocks / Anonymous Functions that make any function using them look identical to built-in control structures. Vector operations (for math and many other builtins). Unified overloading & dynamic dispatch, in & outside classes, supporting specialization. Immutable “inline” structs (zero overhead). GIL-less, race-less distributed memory model multi-threading. Python-style indentation based syntax with C-style flavoring Implementation Choose between running directly using the convenient JIT, or compilation to C++ for extra speed. Reference Counting with cycle detection at exit, 95% of reference count ops removed at compile time thanks to lifetime analysis. Fully graphical debugger (inspect stack traces, modify variables etc). Dynamic code loading. Relatively fast (order of magnitude faster than Python, significantly faster than Lua (benchmark), not yet a C competitor, but can be eventually) and economical (low overhead memory allocation) Easy to deploy (engine/JIT exe + compressed bytecode file) Modularly extendable w...
First seen: 2025-08-28 17:30
Last seen: 2025-08-28 21:30