フリーソフトウェアGNU30周年と開発環境、開発ツールの歴史を振り返る:安藤幸央のランダウン(66)(2/3 ページ)
GNU誕生から30年が経った2013年。ソフトウェア開発の環境/ツールはどのように変化していったのだろうか。簡単に振り返りつつ未来を予想する。
1970年代
1972年:「C言語」登場
1979年:「N-BASIC」が搭載された「PC-8001」が発売
PC-8001は当時の定価で16万8000円で、4MHzの8bit CPU、16Kbytesのメモリ、画面グラフィックスは160×100ドット8色表示でした。
長いプログラミングになるとソースコードをプリンタで打ち出して確認したりデバッグしたり、プログラミングそのものを紙にペンで書きながら考えるということもありました。
1980年代
1981年:「PC-8801」登場
1982年:『マイコンBASICマガジン』(ベーマガ)創刊
当時雑誌に印刷された「BASIC」のソースコードや、マシン語の16進数のコードを打ち込んだ思い出がよみがえる人も居るかもしれません。
1983年:「MSX」登場
1987年:「Perl」誕生
Perlは実用性を重視したテキスト処理に長けたプログラミング言語でした。
このころは、まだテキストエディタでソースコードを打ち込んで(プログラミング言語によっては)コンパイル、実行という環境が主流でした。環境によっては、フルスクリーンエディタではなく、1行ずつプログラムを書いては編集するという場合もありました。
1990年代
1991年:「Microsoft Visual Basic」登場
1995年:「Java」誕生
このころから既存のライブラリやAPI(Application Programming Interface)群を適切活用するという流れが顕著になってきました。SDK(Software Development Kit)や、テストツール、ビルドツールなどの環境も整ってきました。
デスクトップアプリケーション向けの統合開発環境が数多く登場し(「Borland JBuilder」「WebGain VisualCafe」「IBM VisualAge for Java」など)、統合開発環境(画面設計ツール、デバッガ、ステップ実行)が当たり前に使える環境になりつつも、旧来のテキストエディタ、コンパイル、ビルド環境を好む人も居ました。
1996年:「Ruby」1.0正式版登場
1997年:「Microsoft Visual Studio 97」登場
1998年:「Microsoft Visual Studio 6.0」登場
1998年:「J2EE」発表
エンタープライズ向けや、商用向けの大規模開発が一般的になりました。
1998年:「JUnit」1.0登場
2000年代
開発の大規模化に伴うフレームワークの進化や、既存の資産を活用するというコンポーネントプログラミングの推進、設計や多人数での開発のためUMLツールの台頭など、開発を手助けする周辺環境が整ってきます。
2000年:「Ant」登場
2000年:「Subversion(SVN)」登場
テストツール、ビルドツールの充実、バージョン管理ツールも当たり前のように使われてきます。
2001年:「@IT」創刊
2001年:統合開発環境「Eclipse」がオープンソースに
2002年:「Microsoft Visual Studio .NET」登場
2003年:Apple Xcode登場
2005年:「Git」の開発開始
2005年:「Eclipse 3.1」リリース
Eclipseは、このころからJava開発に広く使われるようになりました。また、Javaに限らず、多用なプログラミング言語に対応した開発環境として親しまれるようになります。その一方、「遅い」「メモリ食い」などといった不評も目立つようになりました。
2005年:「Ruby on Rails」1.0リリース
このころから、Railsのみならず、Perl、Python、PHP、JavaScriptといったLL(Lightweight Language、軽量プログラミング言語)やスクリプト言語がWeb用途で活用すべく、再び脚光を浴びます。
2006年:「Amazon EC2」(ベータ版)発表
2008年:「iPhone 3G」登場
2008年:「GitHub」登場
2009年:開発環境と運用環境の双方の連携を考慮した「DevOps」という考え方がこのころ、初めて登場
アジャイルや、テスト駆動開発、プロトタイピングといった、限られた人的リソース、限られた予算やスケジュールでできる限り品質の高いソフトウェアプロダクトを素早く作り上げるかといった、手法やプロセスにも興味を持ち、取り入れる人やチーム、企業が増えてきました。
2010年代〜現在
スマートフォンも含め、Webを活用するユーザーや分野が増加しました。各種のWebシステムの増加や複雑化に伴い、デプロイツールや、テスト環境、本番環境などといった運用における信頼性や可搬性、人的ミスの排除といった考えも重要になってきました。
SOA(Service Oriented Architecture:サービス指向アーキテクチャ)の台頭で、「プログラマが仕事がなくなるかも?」といわれた時期もありましたが、現実はそうなっていません。
2011年:オープンソースの継続的インテグレーションツール「Hudson」から「Jenkins」が別プロジェクトとしてフォークされる
PaaS勃興により、大規模なサーバ資産を持たずとも、多くのユーザーを抱えたWebのサービスを提供できるようになりました。また、GitHubが流行し、テクノロジー企業の就職選抜の資料として使われる場面も出てきました。
いわゆる「ノマドスタイル」と呼ばれるカフェやコワーキングスペースでノートパソコン一台で仕事するケースや、仲間や外部からの協力を得、助け合いならがら進めるソーシャルコーディング、開発側と、運用側の連携が密になり、よりスピード感を増したDevOps、「Vagrant」「Chef」などによるインフラ環境構築自動化ツールも便利に、実用的になってきました。
「避けることのできるミスを減らし、開発のスピードを上げていく」「自動化できるところは極限まで自動化し、人間にしかできないコーディングに集中する」流れはこれからも止まらず、ますます勢いを増していくことでしょう。
ツールや仕組みを活用し、品質の高いソフトウェアプロダクトを、素早いスピードで作り上げるために、日々現場では工夫と試行錯誤が続いているのです。
本稿執筆時、Xcodeはバージョン5、Visual Studioはバージョン2012(2013が11月11日にリリース予定)Eclipseはバージョン4.3と、どの陣営も莫大な開発費用を投入して、開発ツールそのものを開発しています。
Copyright © ITmedia, Inc. All Rights Reserved.