僕がcloud9を使い始めたのはまだWebプログラマーとして駆け出しの頃、Railsチュートリアルで紹介されていたのがきっかけでした。Windowsの経験しかなかったので、環境構築一切不要で開発が始められるのは非常に魅力的で、それから2年ほど一人SEをやっていたときも基本はcloud9を使っていました。モバイル機としてChromebookを使っていたこともあり、ブラウザですべてが完結する点も気に入っていました。
しかし、その後転職しエンジニアとして開発チームにジョインした際、この「環境構築不要」というメリットはそのまま「環境構築の経験がない」というデメリットに変わってしまったのです。幸い、前職でAWSでのインフラ構築などもやっていたので、CentOSを立ち上げてLAMP環境を作れるくらいのことは出来たのですが、もしそうした経験がなかったら…と怖くなってきました。
そこで今回は、将来ITエンジニアを目指す人向けに、クラウドIDEを最初の開発環境に選ぶメリットと、クラウドIDEをメインの開発環境として使い続けるデメリットをご紹介します。
メリット
環境構築不要で始められる
なんだかんだ言って、初心者が独学でWebアプリなりを作ろうとしたとき、入門書を買ってきて最初の50ページは環境構築に費やす…みたいなのは辛いです。最速でHello World!できる手段として現在採りうる最良の手段がクラウドIDEだと思っています。
低スペックのPCでもなんとかなる
「プログラミングを始めるためにパソコンを買いたいけど、どれを買ったらいいか分からない」というケースは結構多いと思いますが、自分が以前ぶち当たったケースとして「どれを買ったらいいか分からないから一番安いのを買った」→スペックが低くてIDEがまともに動かない、ということがありました。
その点、クラウドIDEなら最悪Androidタブレットにキーボードつけたレベルでも動きますし、動かすまでの金銭的なハードルは非常に低いのではないかと思います。
作って壊せる
初心者にありがちなのが「色々やっているうちにわけわからなくなってしまって最初からやり直したい」です。クラウドIDEは環境の破棄も再構築も1クリックでできるので、安全なサンドボックスとして活用できます。
利用環境を選ばない
基本的に最新のブラウザが入っていればどんなPCでも動くので、外出中にトラブルが発生してもとりあえずその辺のネットカフェに入ればいつものIDEで開発をスタートできます。
デメリット
環境構築のノウハウを知らないままになってしまう恐れがある
初めに書いた通りです。ITエンジニアの仕事はコーディングだけとは限らず、インフラ周りも含めた環境構築も仕事のうちに含まれることが多いです。また、ローカル環境構築のためにDokerやVirtualbox、Vagrantなどの利用が推奨されている場合、(後述しますが)クラウドIDE上ではその辺のツールは利用できないため、余計な手間がかかる場合があります。
Dockerなどの仮想環境は基本的に使えない
セキュリティの関係で、DockerやVirtualboxなどの仮想化技術は基本的に利用不可です。上記でも触れましたが、参加したチームがDockerを利用してローカル開発環境を構築しているなどの場合にはクラウドIDE単独では構築できません。
スペックが低い
例えばcloud9のVMはメモリ1GB、CPU1コアと非常に低スペックです。データ移行などの重たいタスクには使えないので、AWSなどでハイスペックなサーバを別に立てて処理する必要があります。
クラウドIDE特有のクセに翻弄される可能性がある
入門書片手に開発を進めていく場合、記述は基本的にローカル環境を用いる前提になっていますので、開発用サーバを立ち上げる際はたいていhttp://localhost:8000
などで立ち上げることが多いと思いますが、クラウドIDEではこのアドレスが使えず、IDE側で指定されたIP、ポートを使うことになります。
また、入門書ではツールのインストールはGUIベースで説明されていますが、クラウドIDEではGUI実行環境が用意されていないので、すべてコマンドラインで実行する必要があります。
おわりに
個人的にクラウドIDEはすごく未来を感じる分野ですし、特に教育方面で今後活用されていくといいなと思っているのですが、クラウドIDE「だけ」で開発するのはまだまだハードルが高いです。サブスクリプションが充実して、VMを使えたり、ハイスペックな開発サーバを用意できたりすればまた違ってくるのかもしれませんが…今後に期待しましょう。