先日リリースされたElixir 1.5は、開発者エクスペリエンスに数多くの改善点がある。開発者エクスペリエンスの最初の改善点は、ElixirのインタラクティブなシェルであるlExの中に見ることができる。例えば、
- 変数名とユーザインポートの自動補完が可能になった。
- モジュール内のすべての関数とマクロをリストする
exports/1
など多数の新機能に加えて、Erlang/OTP 20実行時のブレークポイントがサポートされた。具体的には、break
によるブレークポイントのセットと、そのブレークポイントがヒットした現在位置をwhereami
で表示することが可能になる。
さらに、次のことが可能になった。
- モジュール内での子プロセスの管理方法の指定。
@impl
属性を使用してコールバックを明示的にマークすることによる、コードの可読性向上とエラー検出の支援。- アトム、変数、関数名でのUTF-8の使用。
Elixirの開発者兼メンテナであるJosé Valim氏に、Elixirの現在の状況について話を聞いた。
あなたは現在、Elixir開発にどのように関わっているのですか?
Elixirの支援企業であるPlataformatecでのR&Dディレクタの業務の一環として、Elixirにフルタイムで関与しています。しかし実際にやっていることは、これとはまったく違います。Elixir Teamは私自身を含めて5名の開発者で構成されていて、同言語の開発とメンテナンスを担当しています。それ以外にも、言語開発の歴史を通じて、リポジトリには580人以上のコントリビュータを抱えています。
去年1年間のElixir開発がどのようなものだったか、簡単に説明して頂けますか?
2014年9月に1.0に到達して以降は、言語的には安定しています。つまり、改善がインクリメンタルであると同時に、開発エクスペリエンスの改善やElixirを実務に使用している企業が発見したギャップの解決が中心である、という意味です。
業界やオープンソースプロジェクトへのElixirの普及状況については、どのように思っていますか?
採用状況を測るのは常に難しいものですが、コミュニティや業界の間では一貫してかなりの成長が確認できています。現在では米国や欧州で複数のElixirカンファレンスが開催されているだけでなく、ラテンアメリカやアジアでも年次イベントが行なわれています。私もちょうど、ElixirConf US 2017から帰ったばかりです。ワシントン州ベルビューで、600人が参加しました。3年前の最初のElixirConf USに登録した参加者の5倍です。
コミュニティの成長は、ElixirとErlangのエコシステム用のパッケージマネージャであるhex.pmからも分かります。5,000を越えそうなパッケージが、すでに総計で1億2千万以上ダウンロードされているのです。
業界では、PhoenixやNervesといったフレームワークが、それぞれWebと組込みの分野でのElixirの普及を支援する存在になっています。Plataformatecもまた、Elixirを実務で使用している、あるいは計画しているユーザからのコンサルティング業務要求やソフトウェア開発要求において関心が高まっています。これらの経験の多くを近々刊行予定の“Adoptinhg Elixir”という書籍にまとめる予定です。この本では、これらの経験を深く掘り下げると同時に、Elixirを採用した企業の経験談を世界中から紹介する予定です。
言語としては今後、どのような方向に進化していくのでしょうか?
先日のElixirConf US 2017で行なった基調講演で、Elixirが今後、いかにして生産性や保守性、信頼性を念頭に置いた発展を続けるかを説明しました。特に次のバージョンでは、企業やコミュニティが使用するコードスタイルを統一するためのCode Formatterが導入される予定です。Elixirに特性試験(property testing)の思想を導入する作業も行なっています。開発者が意図を持って設計し、完全にテストされたソフトウェアを書く上で役に立つでしょう。
この記事を評価
- 編集者評
- 編集長アクション