Drupalとは?
オープンソースで開発されているCMS(Contents Managements System)です。
公式サイト
特徴としては、セキュリティ性が高い、拡張性があるなどです。
ただ、その代わり学習コストが高いというデメリットはあるようです。
実力はすでに世界的に認められており、アメリカのホワイトハウス、NASAなどはDrupalによって構築され、運用されています。
※2017年12月からホワイトハウスはWordPressに変更したそうです・・・ www.publickey1.jp
オーストラリアの公的機関などはすべてDrupalで構築されているようです。
オーストラリア連邦政府 (英語) オーストラリア総督府 (英語) オーストラリア首相府 (英語) 開発言語はPHP、フレームワークはSymfonyです。
Drupalの盛り上がり Drupalはオープンソースソフトウェアです。
GitHub
また、世界各国でコミュニティが活発に活動しています。 * Drupal Summit(Tokyo) * Drupal Summit(Pacific North West)
WordPressとの比較
CMSと銘打っているので、同じくシェア率が高いWordPressをと比較します。
一概に総合的にどちらが優れている、劣っているということはないと考えています。
シェアという面で見たら、圧倒的にWordPressの方が高いです。
上記の結果からも、Webデザイン専門の企業に入ったとしても、WordPressの案件を任せれることが多いと思います。
なので書籍やWeb上での参考資料のヒット率などはWordPressの方が上ですね。
対して、Drupalは参考書籍などが圧倒的に少ない。
資料も英語がとても多いです。
日本人としては、英語の資料というところでハードル高く感じますよね(汗
ただ、Drupalは大型の案件にも対応することができるらしく、そういったところでWordPressとの差別化を行えると考えています。
実際に、日本の大手はDrupalをコアにして大規模なシステム開発を始めているようです。
Drupalを触ってみて感じたこと
プログラマとして抱いた違和感
1つ目はCMSを銘打っていること。
DrupalはCMSと銘打っているものの、サーバー側の開発による拡張性、汎用性はすでにCMSの域を超えている印象です。
なので、勉強し始めた当初は全体像を把握しにくく、「Drupalはなんでもできるが故に何ができるのかがわからない」のような印象でした。
しかし勉強していくに従って、CMSではなく、高度なWebアプリケーション・フレームワークだと考えれば、スッと話が入ってくるようになりました。
2 つ目は、PHPやsymfonyの機能がDrupalの機能と混同されているような記事が散見されることです。
Drupalは2015年にメジャーアップデートされ、メジャーバージョンが7 から8になりました。
今、最新とされているのはDrupal8です。
Drupal8から内部のロジックも大幅に変わったようで、プログラミング言語は変わらないのですが、PHPのフレームワークであるSymfonyを基礎にして開発されたようです。
Symfonyにはいくつかの特徴があり、(割愛しますが)その中でもTwigというテンプレートエンジンが使用されています。
SymfonyはデフォルトでTwigを採用しているので、Controllerからの値渡しなどはTwigを利用していルはずです。
さて、ここでDrupal8リリース後に散見されたブログ記事が、Drupal8はTwigを採用したことで、より簡単にview側のロジックを描きやすくなったというものです。
そうじゃないでしょ!
Twigを採用しているのは、Symfonyであって、Drupalではないんではないでしょうか!!!
というね。すごい細かい違和感。
どうでもいっちゃどうでもいいんです。はい。
Drupalのつよみ
Drupalは高度なWebアプリケーションフレームワークという点は強いなと思います。
すでにある程度のデザインやデータの流れは決まっているので、基本的に決まった状態で開発すれば、ほとんどずれることなく開発することができるのではないでしょうか?
私自身、Webアプリケーションフレームワークを利用してRubyやPHPを用いて開発しているのですが、オブジェクト指向やら、ファイルの置き場所やら、人によって考えが違ったり、リポジトリごとにルールがあったり面倒臭い。
Drupalならそれらを考えずに開発できるのではないでしょうか?
なんなら、数年前、Ruby on Railsというフレームワークが現れ、Webアプリ業界を席巻しました。
開発速度や、サーバー側のリソースなど時代の風も後押ししたこともあり流行し、他の言語にもRailsの思考を参考にしたフレームワークができるほどでしたね。
DrupalはそのRailsが引き起こしたブームをもう一度起こすような存在なのかなと思います。
なんならDrupalはWebアプリケーションフレームワークであるSymfonyの上に構築されているのですから、さらに一段上という概念が生まれたということですかね。
結果、CMSとして利用することも可能であれば、サーバー側のロジックを組み込みシステムのコアとして利用することも可能です。
来たる、IoT時代に備えてAPIサーバーとしての活躍も期待できるそうです。
学習コストは高い
初学者が勉強するのであれば一般的なWebの知識に加えて、PHP、Symfony(Drupal8)、Drupalの知識が必要になってくるんですかね。
Drupal自体の操作の仕方も必要なので、学習コストは高い方だと思います。
特に難しいのが、PHPとSymfony、Drupalの境目をどう区別する点ですかね。
また、初学者がDrupalに特化してしまうと、Drupalしかできないエンジニアになってしまうのでは?という心配をしてしまうこと。杞憂ですかね。
まとめ
うん。Drupal面白いんじゃないかな。
Drupalを勉強し始めてそろそろ1年。
プライベートで少しずつなので、まだ全然勉強は進んでいませんがこれからも引き続き本ブログを運営していきながら知見をためていきたいなと考えています。
足元では、開発環境も整っており、オリジナルのテンプレートを作成するなどもいいですね。