はじまりのSmalltalk その2
少し時間が空いたので、念のためにかいておくと、ぼくはSmalltalkを、考えるためのツール、あるいはノートをとるためのツールとしてつかいたいとかきました。
よりくわしくかくと、Smalltalkを、とくに考えるためのツールとして使って行きたいと考えています。
考えるためのツール、ということばも、ちょっと抽象的ですね。
より具体的にすると、自分で問いを見つけたり、その問いの答えを探したりするために、コンピュータをつかう手段として、「プログラミング」を使いたいと思っています。
そして、数多あるプログラミング言語や開発環境の中で、このSmalltalkが自分のツールとして魅力的、と感じているワケです。
*
これは、つい最近バージョンアップしたばかりのPharoというSmalltalkの画面です。Appleシリコンに対応したこのバージョン、まだダウンロードしたばかりなので殺風景ですが、ご容赦を。
真ん中に開いている窓で表示されているのは、Smalltalkのシステムブラウザです。
上段に4つの窓が横にならび、下に大きなひとつの窓。このパターンをみたら、それはSmalltalkと思って、まずまちがいありません。
この画面すべてがPharoの世界。デスクトップもシステムブラウザも、ここに見えていませんがテキストエディタや他の窓も、窓の中のものもすべて、Pharoが用意したものです。もちろん、デスクトップやシステムブラウザ、それ以外の窓の見かけだけでなく、機能を変えることもできます。
macOSの上でSmalltalkを使うのは、macOSでたとえばLinuxやWindowsなど別のOS環境をつくっているのと、基本同じだと、ぼくは理解しています。
Smalltalkがおもしろいのは、たとえばこの画面のようなある瞬間の情況をすべて保存し、たとえばこのあと、ぼくが大きなミスをしたときに、そのミスが起きる前のこの情況に巻き戻すことがかんたんにできるしかけが用意されていることですが、今の段階では、余談ですね(笑)。
*
Smalltalk はプログラミング言語の名前として使われることもありますが、プログラミングをする環境 (IDE、統合開発環境) であり、OSの役割も担える機能をもっています。
コードをかく言語の機能だけでなく、その言語をコンパイルするなどして実行する機能、コードにバグがあってうまく動かないときに、そのバグを修正する機能、コードがつくろうとするたとえば窓や図形、グラフなどを描く機能など、アプリ+OSの機能をSmalltalkはひととおり備えています。
皆さんがよく知っているツールでいうと、テキストエディタのVS Codeが備えている機能にLinuxやWindows、macOSのようなOSで使える描画機能も加わった環境をイメージするといいでしょうか。
そうそう。ChromeやEdge、Firefoxなどのウェブブラウザがもっと似ていますね。
「似ている」とかきましたが、Smalltalk好きのぼくからみると、Smalltalkが1970年代に実現した機能に倣って(もちろん、たとえばUnixなどそれ以外のOSやソフトウェアの影響も強く受けながら)、今のOSやブラウザなどの環境がつくられたとぼくは予想しています。
*
最初のSmalltalkが誕生したのが1972年ですから、もう50年以上たっていますが、Smalltalkは今も現役で活躍しています。これも、おもしろいところ。
これほど長い寿命のプログラミング開発環境は、少ないはずです。
たとえば、今、ワリと古めでメジャーなプログラミング言語をみると、C言語の発表が1972年でSmalltalkと同い年。C++は1983年でSmalltalkより11歳年下の39歳。Pythonが(意外と古くて)1991年で31歳。JavaやJavaScript(中身はJavaとちがうので、ややこしいですよね)は1995年生まれの27歳です。
ぼくのようなおっさんの方は身にしみているというか、実感していると思いますが、プログラミング言語の入れ替わりは、少なからず激しい。
そういう中で、長生きしている。もちろん新しくて人気のある言語や開発環境が使われる頻度にはかないませんが、40年以上も活発に開発がつづき今も現役として活躍しているのは、Smalltalkに長く使いつづけることができる「何か」があるから、というのがぼくの予想です。
まずそこに、ぼくは興味をもっているワケです。


