高性能
Cranelift JITコンパイルにより、LuaJITやNode.js V8に匹敵する性能を実現。
純粋なSmalltalk
モダンな利便性を備えたクラシックなSmalltalk構文。すべてがオブジェクト、すべてがメッセージ。
バッテリー同梱
JSON、YAML、TOML、CSV、HTTP、SQLite、正規表現など。PostgreSQL、Redis、Excel、Git、DataFrame、圧縮、暗号化はプラグイン対応。
ポータブル
実行ファイル1つ。プラグインは任意。
コード手術の実例
"JavaScriptソースから全ての関数呼び出しを抽出"
| 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.
].
外科手術について詳しく見る。
Smalltalk-80ではない
Lambda Smalltalkは従来のSmalltalk-80実装ではありません:
- イメージなし - 永続イメージではなく、ソースファイル(
.st) - GUIなし - コマンドライン中心、MorphicやMVCなし
- IDEなし - お好みのエディタを使用(VSCode拡張あり)
- ファイルベース - ライブ環境ではなく、スクリプトとモジュール
グラフィカル環境のSmalltalk-80が必要なら、SqueakやPharoを参照してください。
Lambda SmalltalkはCLIツール、サーバーレス、スクリプティング向けに設計されています。イメージベースのワークフローなしで、Smalltalkの優雅さを活用したい場面に。