(この記事は長いので前半と後半に分けました)
対象範囲に関する決議
たっぷりと議論した結果、イニシアチブの対象範囲を単に「Web サービス」の部分だけに縮小し、「レイアウト、ブロック、関連 UI」の部分はひとつの別個な取り組みとして分離するということで全員の意見が一致した。
さらに言えば、PSR-0 や統一プラグイン システム(Unified Plugin system)といったいくつかの取り組みは、そもそも WSCCI イニシアチブに多少は関連しているというだけで、たまたま、ここに該当することになってしまったものだ。これらの作業は全般的なフレームワーク コミュニティーの取り組みの一部として継続される予定だ。
アーキテクチャー
Drupal コアが標準で Web サービスをサポートできるような基底構造を整えるうえで、さまざまな Symfony2 コンポーネントがどう役立つかという点について、ファビエンは膨大な見識を披露してくれた。本質的な意味で、WSCCI チームが目指そうとしていたことのほとんどは、理論上、すでに Symfony2 のなかに実装されていた。いくつかの実装の詳細部分は僕たちがイメージしていたのとは違っていたが、最終的な結果は僕たちが達成しようとしていたものとそっくりだった。そのため、その結果に向かって進む速度を上げるひとつの方法として、Drupal 内部でいくつかの Symfony2 コンポーネントを利用するのがベストだ、という点で僕たちは意見が一致した。
メリット
これらの変更からくる具体的な利点をいくつか挙げてみる。
- 第一級の「REST 市民」(a first-class REST citizen)である基底フレームワーク。これは Web サービスの開発がしやすくなること、より効率的になることを意味する。「配管系統」はすでに用意されているからだ。HTML ページは REST サービスの顕著なケースだ。
- コア システムはフルに REST 化される(REST-fied)ことになるので、既存の API を改善してネイティブに RESTful な形で Drupal コンテンツを出せるようになるだろう。たとえば、僕たちの現在の AJAX システムは REST の標準に合っていないが、そうした変更を行うことで標準に合うよう整理することができる。
- これは逆に、Drupal 同士のコミュニケーション、コンテンツ ステージング、コンテンツ シェアリング、そして多数の他の関連タスクがやりやすくなるということでもある。
- 広く使われているライブラリーとテクニックを使用することで、Drupal は新しい開発者たちにとってアプローチしやすいものになる。
なぜ、これが重要なのか?
Drupal は、ますますパワフルなシステムへと進化するにつれて、ますます複雑になってきた。開発を始めるのはかつてほど容易ではない。その傾向が続いていくことについて多くの開発者たちが気をもんでいる。複雑性の管理は多くのソフトウェア プロジェクトが直面するチャレンジだが、それに応じるひとつのアプローチは、標準化されたパターンとコンポーネントを使うことだ。
PHP 4 に対する長期間のサポートのためと、いくつかの独特なニーズもあって、Drupal は標準化されたパターンとコンポーネントをフルに活用していない。使われているカスタム コードの複雑さ、そして、非標準のアーキテクチャー。Drupal は初めてという開発者たちが入ってこようとしても、このふたつが一緒になって障壁を作っている。経験を積んだ開発者、初心者のどちらに対してもだ。
そうこうしているうちに、僕たちの周りで Web は常に変わっている。Web サービスとモバイルはかつてないほど重要だ。そして、それはより柔軟なページとレイアウトの機能性に対するニーズを伴っている。全般的な意味でいう今の PHP システムおよび Web システムの最前線へと Drupal を持っていくため、Drupal の機能群を刷新するには今がいい時だという感じがする。
Drupal の「コア配管系統」を変更するのはこれらのニーズに応えるためだが、そうすることは、より広く理解されている現在のテクニックとライブラリーを使ういい機会でもある。仲間のオープンソース コミュニティーの成果を利用すること。それによって、よりパワフルで、より柔軟で、より学習しやすいシステムを構築するためのこうした変更をゼロから自分たちでやるよりも少ない時間で一歩先に進めるわけだ。
これらの変更は大きなものに見えるかもしれないし、いくつかは実際に大きい。それでも、僕たちはそれらがちょうどいいバランスをとるだろうと信じている。それは、Drupal の設計とアーキテクチャーを強化することと、新しい世代の開発者たちに力を与えるような、より現代的、標準的でよく検証されたコードとテクニックに向かっていくことの間のバランスだ。読者のみんなも僕たちと同じようにワクワクしていたらいいなと願っている。