Elm 0.14に際して思ったこと

Elm 0.14がリリースされました。

今回のリリースには後方互換性が保たれない、大きな変更が含まれてます。 これによりHaskellとの違いが大きくなったため、もはや「Haskellベースの言語」という表現はふさわしくないかも知れません。

ところで、このような大きな変更は、メジャーな言語では、Rubyが2007年に1.9.0で、Pythonが2008年に3.0で行っていますが、その評価は対照的です。 Rubyでは1.9.0のことはもはや話題にもなりませんが、 Pythonでは未だに「2.xと3.xのどちらを使って開発すべきか」「2.x系の開発を続行するべきか」のような記事が書かれます。

私はこんな記事こんな記事を書くほどPython好きだったので、Pythonが移行の失敗例のように語られるのは悲しいです。

両者の明暗が別れた理由としてよく言われるのは、

  • Rubyは本格的な普及の前に大きな変更をした。Pythonは2008年当時すでに主要なLinux内部やGoogle App Engineで使われ、かなり普及していた。
  • RubyはいわゆるWEB系で使われていたためライフサイクルが短かった。PythonはWEB系以外でも使われており、簡単に移行できなかった。*1

などがありますが、個人的には、

  • RubyではRuby on Railsを使うユーザーが多く、Ruby on Railsが旧バージョンを切り捨てれば、ユーザーも新バージョンに映らざるをえない
  • Rubyの方が元々アグレッシブで非互換性バッチコイなのユーザーが多い?(多かった?)。

のような理由もあると思います。

いずれにせよ、Elmは普及にはまだほど遠い段階なので(そもそも1.0以前ですし)、0.14での変更はElmの進化に良い影響を与えることと思います。

*1:私自身、仕事では未だに時々RHEL5.x向け製品のメンテナンスをしてますし。RHEL5.xのPythonは2.4系です。