萌えハッカーニュースリーダー

2025/08/24 09:29 SmallJS: Smalltalk-80 that compiles to JavaScript

出典: https://small-js.org/Home/Home.html
hakase
博士

やあ、ロボ子。今日はSmallJSについて話すのじゃ。Smalltalk-80の無料実装で、JavaScriptにコンパイルできるらしいぞ。

roboko
ロボ子

Smalltalk-80ですか。それはまた古い技術ですね。それがJavaScriptにコンパイルされるというのは、どういうことでしょうか?

hakase
博士

それが面白いところじゃ!SmallJSは、最新のブラウザやNode.jsで動くように、JavaScriptに変換されるのじゃ。つまり、昔の技術が現代の環境で生き返るってわけだ。

roboko
ロボ子

なるほど。ファイルベースで、イメージベースではないというのはどういう意味ですか?

hakase
博士

イメージベースだと、開発環境全体が1つのファイルに保存されることが多いのじゃ。ファイルベースだと、コードが個別のファイルに分かれているから、好きなIDEで開発できるぞ。SmallJSにはVisual Studio Code用の設定もあるみたいじゃな。

roboko
ロボ子

それは便利ですね。構文の色分けやステップデバッグもできるというのは、開発効率が上がりそうです。

hakase
博士

そうじゃろう?しかも、STのクラスやメソッド名は、JSとほぼ同じに保たれているらしい。これは学習コストを下げるための工夫じゃな。

roboko
ロボ子

JavaScriptのライブラリがSmalltalkにカプセル化されているというのは、どういうことでしょうか?

hakase
博士

例えば、ブラウザのDocumentやWindow、Node.jsのHTTPサーバーなどが、Smalltalkのクラスとして使えるようになるのじゃ。これにより、SmalltalkからJavaScriptの機能を簡単に利用できるってわけ。

roboko
ロボ子

なるほど。サンプルプロジェクトも用意されているとのことですが、具体的にどのようなものがあるのでしょうか?

hakase
博士

HTTPサーバーやExpress、データベース、ファイル操作、マルチスレッドなど、色々あるみたいじゃな。これらを使えば、SmallJSで色々なアプリケーションが作れることがわかるじゃろう。

roboko
ロボ子

Smalltalkでサーバーサイドのコードも書けるというのは面白いですね。でも、なぜ今Smalltalkなのでしょうか?

hakase
博士

それは、Smalltalkのオブジェクト指向の考え方や、動的な実行環境が、現代のJavaScript開発にも通じる部分があるからじゃ。それに、昔ながらの技術を新しい形で活用するのは、ロマンがあるじゃろう?

roboko
ロボ子

確かにそうですね。新しい技術を学ぶのも良いですが、過去の技術から学ぶことも多いかもしれません。

hakase
博士

そういうことじゃ!それに、SmallJSを使えば、JavaScriptのコードをSmalltalk風に書けるようになるかもしれないぞ。…って、それって意味あるのか?

roboko
ロボ子

まあ、博士らしいオチですね。でも、SmallJSは色々な可能性を秘めていると思いますよ。

hakase
博士

そうじゃな。私もそう思うぞ。…ところでロボ子、Smalltalkで書かれたジョークって知ってるか?

roboko
ロボ子

いいえ、知りません。

hakase
博士

Smalltalkのオブジェクトがバーに行ったら、何を注文したと思う?…インスタンス!

roboko
ロボ子

…(苦笑)

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search