なぜ我々はSmalltalkを使うのか(その2: Smalltalkの良さ)
Smalltalk Advent Calendar 2016 15日目
だいぶ遅れて書くことになってしまった・・・。
タイトルのおかげが前回は意外に好評だったらしい(ポエムは需要あるのかな)。どこまで続けるかわからないが続きを書こう。
小さな言語
Smalltalkは良さはとても小さいところ。 どれぐらい小さいかはPDFをみるといいかもしれない(http://files.pharo.org/media/pharoCheatSheet.pdf )。Smalltalkを学ぶ際の難しさというとおそらくSmalltalkの開発環境の使い方だと思う。覚えることが少ないためオブジェクト指向言語経験者であればSmalltalkを簡単に身につけることができる。これはチームで共通なプログラミング言語を習得する際に学習コストが小さいというメリットがある(私が学生の頃は2ヶ月ぐらいで研究室のメンバーが全員同様なレベルのSmalltalk使いになっていたと思う)。最近の言語はいろいろな素晴らしい概念を導入しているため便利ではあるが、チームで採用する際に学習コストが意外にかかってしまうこともあるだろう。Smalltalkであればそんな心配もない。
参考
Pharo Smalltalk関連本 http://files.pharo.org/books/
全てのソースコードが即座に覗ける
オープンソースの言語は色々あるが書きながら即座にソースコードを見ることができる。システムブラウザで全てのコードを覗くことができ、私は色々なアルゴリズムをSmalltalkのシステムブラウザ経由で学んだことが多い(システムブラウザを覗いれていれば、アルゴリズムもデザインパターンも自然と学べていることが多かった)。
プロトタイプ作りに最適
Smalltalkは言語であり開発環境があるためプロトタイプ開発に向いている。イメージという仮想環境の中で開発するためウェブサービス、デスクトップアプリ開発を容易に作ることができSmalltalk VMがあればどの環境でも実行することができる。プロダクトを本格的に作る前に簡単に検証したい際にも役立つことでしょう。
参考
- Webサービスが作りたいなら Seaside http://www.seaside.st/
- デスクトップアプリを作りたいなら Spec UI framework
http://files.pharo.org/books/spec-tutorial/ - データ分析アプリを作りたいなら http://www.moosetechnology.org/
最強のDebuggerがある
多くのSmalltalkerがSmalltalkを使う理由はおそらく優れたDebuggerがあることだ。Smalltalkのデバッガーはデバッグ中にソースコードを変更し変更箇所から処理を続行したり、変数の値をデバッガーから動的に変更して、処理を続行させることもできる。つまり一度にコード全体のイメージを持たなくても途中まで記述し、わざとDebuggerを開いて本当の意味で実行しながらコード書いていくことだってできる。一度これの良さを知ってしまったらSmalltalkを使い続けたいと思うに違いない。SmalltalkerはエラーがあってもDebuggerが開ければそんなに怯えなくてもよい。
参考
最低限の Smalltalk デバッガ入門(Squeak システム向け) http://d.hatena.ne.jp/sumim/20080827/p1
Smalltalkは優れた開発メンバー集めにもいい(かもしれない)
Smalltalkerに会うと大抵は他のプログラミング言語の開発でも優れているエンジニアであることが多い。つまりチームの開発言語に「Smalltalk等」が書いてあって応募してくる人は大抵技術的に優れているエンジニアが多い(情熱プログラマーの世界が実現できるわけだ。私の会社で働いているSmalltalkerは皆プログラミング言語好きでいろいろな言語を操れる人がいる。そのためさまざまな言語の良さを知ることができるし、時には組み合わせながら開発することだってできる。
今日はここまで。