NetBeans

NetBeans（ネットビーンズ）とは、オラクル（買収以前はサン・マイクロシステムズ、以下同）を中心としたコミュニティにより開発されている、オープンソースの統合開発環境 (IDE) である。Java/PHP/C言語/C++/JavaScript/Groovy等のいくつかのプログラミング言語に対応している。NetBeans Platformを利用して開発されており、様々なモジュールを組み込むことが可能である。NetBeansの特徴の一つであるGUIエディタ (Project Matisse) もその一つである。

 概要 
ほぼ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コミュニティで活躍している。

 サン・マイクロシステムズの買収 
2010年の1月にオラクルがサン・マイクロシステムズを買収した。元々オラクルはJavaの統合開発環境JDeveloperを開発しており、サン・マイクロシステムズのNetBeansとはライバル製品のため、経営戦略により消えるのではないかと危惧された。しかしオラクルはJDeveloperを置き換える計画はないとしている。また、NetBeansをJavaエコシステムの重要要素と見なしており、Java開発に使用するIDEの選択肢を開発者が持ち続けることは重要であると考えているとし、開発を継続するとしている
FAQ - OracleのJava開発ツール（最終更新日2010年1月27日）。

2010年1月27日のOracle + Sun Strategy Update Webcastにおいて、OracleがNetBeans IDEを今度の計画のなかでどう位置づけているかが発表されたNetBeansはJava開発のままいく - Oracle マイナビニュース。発表されたスライドショーから関係する部分を抜き出すと
 NetBeans IDEはJava開発向けの軽量IDEとしての位置づけを継続していく
 Java EE6、Java ME、スクリプト言語へ注力
 モバイル開発環境やスクリプト言語へのフォーカスを強める
となっており、従来の方針をそのまま継続する形となっている。

オラクルはまたEclipseへの投資を継続する方針も表明している。IDEにはそれぞれ一長一短があり、多様であるべきとの考えからである。

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

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

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

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

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

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

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

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

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

 対応オペレーティングシステム 
IDE自体がJavaで書かれていることから、Java VMを搭載したオペレーティングシステム上で動作が可能である。

なお公式にサポートしているオペレーティングシステムは、以下のものである。
 Microsoft Windows 7 Professional
 Microsoft Windows Vista SP1
 Microsoft Windows XP Professional SP3
 Ubuntu 9.10（12.04推奨）
 Solaris 11 Express
 Mac OS X v10.6 Intel（Mac OS X Lion推奨）

その他、Oracle Enterprise Linux 5、Ubuntu 8.x および 10.04、Red Hat Enterprise Linux など、ほかのさまざまなLinuxディストリビューションで動作することも確認されている。またFreeBSDのportsコレクションにも組み込まれている。

 ライセンス 
NetBeansのコードの大部分は、Common Development and Distribution License (CDDL) とGNU General Public License v2 (GPLV2) のデュアルライセンスの下でソースコードを公開している。CDDLは、Mozilla Public License (MPL) をベースとしたOSI承認ライセンスの一つである。

Apacheソフトウェア財団への寄贈後はApache License 2.0に一本化された。

 関連製品 
 Java Studio Creator - サンが開発したNetBeansベースの無償の統合開発環境。VBに慣れたプログラマでも取り込めるようウェブGUI開発をDreamweaverを使うような感覚で容易に行うことができる。
 JDeveloper - オラクルが開発したJavaの統合開発環境。

 ねこび〜ん 

ねこび〜ん は NetBeans のキャラクター。

カネウチカズコにより作成され、日本コミュニティを介して提唱されたマスコットキャラ。猫とNetBeansをかけあわせたもの。Creative Commons 表示-継承 2.1 日本ライセンスされているNetBeans ねこび〜ん。

2008年2月27日、仙台のグループ「東北デベロッパーズコミュニティ」の設立総会後に行われた懇親会・二次会で、カネウチカズコが見せたキャラクター画像を見て、「NetBeansのキャラクターが欲しい」という話となり、ここからねこび〜んが誕生するきっかけとなった設立総会レポート 東北デベロッパーズコミュニティ, 2012年7月27日閲覧「ねこび〜ん」を応援しましょう！ 東北デベロッパーズコミュニティ, 2012年7月27日閲覧グッズ売上げを義援金として寄付させていただきました ねこび〜ん, 2012年7月27日閲覧。

イベントでの利用やグッズ制作にも多数使われるようになっているNekoBean NetBeans Wiki。

 注釈 

 出典 

 一次資料 

 外部リンク 

NetBeans
 ：公式ウェブサイト
 NetBeans 日本語サイト
 NetBeans.jp NetBeans 日本コミュニティー
 PlanetNetBeans.org プラネットNetBeans

ねこび〜ん
 ja:NetBeans ねこび〜ん
 ねこび〜んファンサイト

Category:Java開発ツール
Category:統合開発環境
Category:オープンソースソフトウェア
Category:2000年のソフトウェア
Category:フリーUMLツール
Category:Apacheソフトウェア財団
Category:オラクル
Category:サン・マイクロシステムズ
Category:Common Development and Distribution Licenseを利用するソフトウェア
Category:Javaでプログラムされた自由ソフトウェア