High Performance
Cranelift JIT compilation delivers performance comparable to LuaJIT and Node.js V8.
Pure Smalltalk
Classic Smalltalk syntax with modern conveniences. Everything is an object, everything is a message.
Batteries Included
JSON, YAML, TOML, CSV, HTTP, SQLite, regex, and more. PostgreSQL, Redis, Excel, Git, DataFrame, compression, and encryption via plugins.
Portable
One executable. Plugins optional.
Code Surgery in Action
"Extract all function calls from JavaScript source"
| grammar source matches |
grammar := Grammar from: '
call: IDENT "(" args? ")"
args: arg ("," arg)*
arg: IDENT | NUMBER | STRING
IDENT: /[a-zA-Z_]\w*/
NUMBER: /\d+/
STRING: /"[^"]*"/
%ignore /\s+|./
'.
source := File read: 'app.js'.
matches := Grammar findAll: grammar in: source.
matches do: [:m |
('Found: ', (m at: 'text')) printNl.
].
Learn more about Code Surgery.
Not Smalltalk-80
Lambda Smalltalk is not a traditional Smalltalk-80 implementation:
- No image - Source files (
.st), not a persistent image - No GUI - Command-line focused, no Morphic or MVC
- No IDE - Use your editor of choice (VSCode extension available)
- File-based - Scripts and modules, not a live environment
If you want Smalltalk-80 with a graphical environment, see Squeak or Pharo.
Lambda Smalltalk is designed for CLI tools, serverless backends, and scripting - tasks where you want Smalltalk's elegance without the image-based workflow.