NetBeans

概要

ほぼ100%Javaで書かれている統合開発環境である。バージョン4.0以降は、Java仮想マシン自体の大幅な高速化もあって、ネイティブな環境との速度差は感じないとされる。
このソフトウェアはJavaを開発しているオラクルが開発していることから、最新版のJavaにいち早く対応できるという利点がある。Java SE 5.0が登場した際には他のIDEに先んじて、新機能であるジェネリックやアノテーションに対応した。またGUI開発はNetBeansがJava IDEの中で秀でており、「フリーデザイン」によるコンポーネントの配置などの優れた機能を持つ。
NetBeansは始めから多言語に対応しており日本語などの多くの言語をインストール直後から利用可能である。
パッケージによって異なるが開発できる言語として、Java・JavaScript・PHP・C/C++・Groovyがある。またWebアプリケーションを動作させるのに必要なApache Tomcat・GlassFishといったアプリケーションサーバが同封されているパッケージもあるため、別途インストールすることなく利用できる。
Java IDEとして既に広く使われているEclipseと比較されることが多い。現状、シェア、多機能性、プラグインの豊富さは、Eclipseに一日の長がある。NetBeansは3.51までJava Look&Feelを使用していたため、特にWindowsユーザーに受け入れられにくかったようである。3.6でLook&FeelをSystemLook&Feelに変更したことにより、ユーザーが増加しはじめた。

沿革

4.0からJava SE / EEのリファレンス的な開発環境としての側面が強まっている。5.5からは、WebサービスやパーシスタンスAPI等に対するスムーズな開発を可能にしており、UMLやJSFのビジュアル開発なども取り込まれた。
6.0ではRubyやJavaScriptのサポート、プロファイラの統合、ビジュアルWebJSFと通常のWEBプロジェクトの統合、Swingアプリケーションフレームワーク、そして大幅なエディタの見直しやレスポンスの改善などがあげられる。Java言語以外のサポート、複数バージョンのTomcatサーブレットコンテナや各種アプリケーションサーバの対応など標準機能でカバーする範囲が広がったのが特徴である。また、使用者の利用するパッケージを選択できるインストーラもいままでになかったものである。
6.1では新たに暫定版ではあるもののPHP対応がされた。また、Rubyの更なるサポート、JavaScriptの本格サポートなどJava以外の言語の対応が充実したのも特徴である。また、標準API以外のサポートは珍しいのだが、Spring2.5がWebプロジェクトのフレームワークとしてサポートされた。JSR311 としてRESTful Web サービスもサポートされ、Javaの最新技術も引き続き先行搭載されていくようである。バージョン管理システムとしてMercurialが標準サポートされたが、これはNetBeans自体のバージョン管理にMercurialを使うようになったためだろう。
6.5では新たに暫定版ではあるもののPythonに対応した。またPHPが正式に標準対応した。そのほかJavaScriptのフレームワークにも対応し、prototype.js、jQueryなどをすぐに設定し使用することが可能になり、それぞれのフレームワークに合わせた補完も効くように強化された。NetBeansのJavaは標準API以外のサポートが比較的珍しいのだがHibernateがサポートされ、HQLを即座に試せるようになっている。データベースの扱いが強化され、データの編集にSQLをうたなくても容易に行えるようになった。
6.4以前は英語版から一ヶ月程度遅れてML(多言語)版が登場するのが普通であったが、6.5以降では同時リリースされている。
6.7ではJIRA と Bugzillaといった課題追跡に対応した。また、継続的インテグレーションツールであるHudsonとの統合機能も追加された。プロジェクトの形式として従来のAntベースのもののほかにMaven2が標準でサポートされた。あわせてPHPUnit、Selenium、Ruby のリモートデバッグ、C / C++でのプロファイリングなどがサポートされたこともあり、品質向上のための機能が大幅に強化されたのが本バージョンでの最大の特徴である。
その後7.0でPythonとRubyのサポートが外され、7.1でJavaFXとCSS3のサポートが追加された。7.2ではパフォーマンスチューニングが中心であったが、Amazon Elastic Beanstalk等クラウドリソースへの対応（7.2.1でOracle Cloudの対応も追加された）やSubversionがリリースに組み込まれる等の新機軸もある。
7.3では新しいJavaScriptエンジン、組み込みWebkitブラウザ、FirefoxやChromeとの連携、そしてHTML5やCSS3への対応強化等、Webアプリケーション開発を中心とした大型の変更が予定されている。
なお、オラクルがサポートしているわけではないが、Scalaも動作する。こちらはScala開発チームが公式のプラグインをリリースしている。

歴史

NetBeansは、1996年に始まったチェコの学生によるプロジェクトであるXelfiにその源流を持つ。XelfiはJavaで書かれた最初のIDEであり、1997年に最初のプレリリースが行われている。やがてXelfiは、チェコの実業家Roman Stanekの支援を得て、ネットワーク環境を前提としたJava Beansコンポーネント開発用のIDEとして開発が進められることになった。この基本構想が、NetBeansの名前の由来となっている。NetBeansの名を冠した最初のリリースは、1999年である。
この1999年は、NetBeansにとって重要な年であった。より良いJava開発環境を求めていたサンが、NetBeansと契約。サンは、その後別のツールであるForteを獲得したが、ForteではなくNetBeansをForte for Javaの名の下にリリースを行った。これは当時の知名度を優先したビジネス判断であった。しかし、ほどなくNetBeansの名は復活し、現在に至っている。なお、Xelfiに関わったメンバーの多くは、現在もNetBeansコミュニティで活躍している。

Apacheソフトウェア財団への寄贈

2016年、オラクルはNetBeansのApacheソフトウェア財団への寄贈を提案し、プロジェクトはApache Incubatorに登録された。2019年にはApache Incubatorを脱し、トップレベルプロジェクトに昇格した。

NetBeansの機能

NetBeansの主要な機能は以下の通りである。

プラグイン

標準で必要な機能が多く提供されているが、プラグインにより追加機能を使用することができる。NetBeansコミュニティーや多くのベンダーから提供されている。

ビルドツール

JavaのビルドにApache Antが標準となっており、コンパイル作業が楽に行える。

コード支援

クラス・変数・関数等のコード支援があり、開発者の手助けをしてくれる。また、JavadocにJava SEのAPI日本語ドキュメントを指定すればクラスやメソッドのコード補完中に小窓が現れて日本語の説明文を読むことができる。

リファクタリング

リファクタリングにより安全にクラス名・メソッド名・変数名の変更等が行える。

データベース管理

JDBCドライバーを使うことで、データベース管理システムに接続することができ、データ操作が行える。

バージョン管理システム

バージョン管理システムとして、CVS・Mercurial・Subversionの3つが利用できる。

xUnit

ユニットテストにxUnitであるJUnitやPHPUnitが使用することができる。

ライセンス

NetBeansのコードの大部分は、Common Development and Distribution License (CDDL) とGNU General Public License v2 (GPLV2) のデュアルライセンスの下でソースコードを公開している。CDDLは、Mozilla Public License (MPL) をベースとしたOSI承認ライセンスの一つである。
Apacheソフトウェア財団への寄贈後はApache License 2.0に一本化された。

ねこび〜ん

ねこび〜ん は NetBeans のキャラクター。
カネウチカズコにより作成され、日本コミュニティを介して提唱されたマスコットキャラ。猫とNetBeansをかけあわせたもの。Creative Commons 表示-継承 2.1 日本ライセンスされている。
2008年2月27日、仙台のグループ「東北デベロッパーズコミュニティ」の設立総会後に行われた懇親会・二次会で、カネウチカズコが見せたキャラクター画像を見て、「NetBeansのキャラクターが欲しい」という話となり、ここからねこび〜んが誕生するきっかけとなった。
イベントでの利用やグッズ制作にも多数使われるようになっている。