# NetBeans

NetBeans is an integrated development environment (IDE) for Java. NetBeans allows applications to be developed from a set of modular software components called modules. NetBeans runs on Windows, macOS, Linux and Solaris. In addition to Java development, it has extensions for other languages like PHP, C, C++, HTML5, and JavaScript. Applications based on NetBeans, including the NetBeans IDE, can be extended by third party developers.

## History

NetBeans began in 1996 as Xelfi (word play on Delphi), a Java IDE student project under the guidance of the Faculty of Engineering and Technology at Charles University in Prague. In 1997, Roman Staněk formed a company around the project and produced commercial versions of the NetBeans IDE until it was bought by Sun Microsystems in 1999. Sun open-sourced the NetBeans IDE in June of the following year. Since then, the NetBeans community has continued to grow. In 2010, Sun (and thus NetBeans) was acquired by Oracle Corporation. Under Oracle, NetBeans had to find some synergy with JDeveloper, a freeware IDE that has historically been a product of the company, by 2012 both IDEs were rebuilt around a shared codebase - the NetBeans Platform. In September 2016, Oracle submitted a proposal to donate the NetBeans project to The Apache Software Foundation, stating that it was "opening up the NetBeans governance model to give NetBeans constituents a greater voice in the project's direction and future success through the upcoming release of Java 9 and NetBeans 9 and beyond". The move was endorsed by Java creator James Gosling. The project entered the Apache Incubator in October 2016.

## NetBeans IDE

NetBeans IDE is an open-source integrated development environment. NetBeans IDE supports development of all Java application types (Java SE (including JavaFX), Java ME, web, EJB and mobile applications) out of the box. Among other features are an Ant-based project system, Maven support, refactorings, version control (supporting CVS, Subversion, Git, Mercurial and Clearcase).

### Modularity

All the functions of the IDE are provided by modules. Each module provides a well-defined function, such as support for the Java language, editing, or support for the CVS versioning system, and SVN. NetBeans contains all the modules needed for Java development in a single download, allowing the user to start working immediately. Modules also allow NetBeans to be extended. New features, such as support for other programming languages, can be added by installing additional modules. For instance, Sun Studio, Sun Java Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems are all based on the NetBeans IDE.

### License

NetBeans IDE is licensed under the Apache License 2.0. Previously, from July 2006 through 2007, it was licensed under Sun's Common Development and Distribution License (CDDL), a license based on the Mozilla Public License (MPL). In October 2007, Sun announced that NetBeans would henceforth be offered under a dual license of the CDDL and the GPL version 2 licenses, with the GPL linking exception for GNU Classpath. Oracle has donated NetBeans Platform and IDE to the Apache Foundation where it underwent incubation and graduated as a top level project in April 2019.

## Other products

In an October 2016 interview with Gabriela Motroc, Oracle Vice President Bill Pataky stated that Oracle has a number of products that depend on NetBeans.
* Oracle Developer Studio, a commercial C, C++, Fortran and Java development environment is 100% based on NetBeans
* Oracle JDeveloper, an end-to-end development for Oracle's technology stack takes major subsystems from NetBeans
* Oracle JavaScript Extension Toolkit, a modular, open source toolkit based on modern JavaScript, CSS3 and HTML5 design and development principles uses NetBeans as its preferred IDE

## Integrated modules

These modules are part of the NetBeans IDE:

### NetBeans Profiler

The NetBeans Profiler is a tool for the monitoring of Java applications: It helps developers find memory leaks and optimize speed. Formerly downloaded separately, it is integrated into the core IDE since version 6.0. The Profiler is based on a Sun Laboratories research project that was named JFluid. That research uncovered specific techniques that can be used to lower the overhead of profiling a Java application. One of those techniques is dynamic bytecode instrumentation, which is particularly useful for profiling large Java applications. Using dynamic bytecode instrumentation and additional algorithms, the NetBeans Profiler is able to obtain runtime information on applications that are too large or complex for other profilers. NetBeans also support Profiling Points that let developers profile precise points of execution and measure execution time.

### GUI design tool

Formerly known as project Matisse, the GUI design-tool enables developers to prototype and design Swing GUIs by dragging and positioning GUI components.
The GUI builder has built-in support for JSR 295 (Beans Binding technology), but the support for JSR 296 (Swing Application Framework) was removed in 7.1.

### NetBeans JavaScript editor

The NetBeans JavaScript editor provides extended support for JavaScript, Ajax, and CSS.
JavaScript editor features comprise syntax highlighting, refactoring, code completion for native objects and functions, generation of JavaScript class skeletons, generation of Ajax callbacks from a template; and automatic browser compatibility checks.
CSS editor features comprise code completion for styles names, quick navigation through the navigator panel, displaying the CSS rule declaration in a List View and file structure in a Tree View, sorting the outline view by name, type or declaration order (List & Tree), creating rule declarations (Tree only), refactoring a part of a rule name (Tree only).
The NetBeans 7.4 and later uses the new Nashorn JavaScript engine developed by Oracle.

## NetBeans IDE download bundles

Users can choose to download NetBeans IDE bundles tailored to specific development needs. Users can also download and install all other features at a later date directly through the NetBeans IDE.

### NetBeans IDE Bundle for Web and Java EE

The NetBeans IDE Bundle for Web & Java EE provides complete tools for all the latest Java EE 6 standards, including the new Java EE 6 Web Profile, Enterprise Java Beans (EJBs), servlets, Java Persistence API, web services, and annotations. NetBeans also supports the JSF 2.0 (Facelets), JavaServer Pages (JSP), Hibernate, Spring, and Struts frameworks, and the Java EE 5 and J2EE 1.4 platforms. It includes GlassFish and Apache Tomcat.
Some of its features with Java EE include:
* Improved support for CDI, REST services and Java Persistence
* New support for Bean Validation
* Support for JSF component libraries, including bundled PrimeFaces library
* Improved editing for Expression Language in JSF, including code completion, refactoring and hints

### NetBeans IDE Bundle for PHP

NetBeans supports PHP since version 5.6. The bundle for PHP includes:
* syntax highlighting, code completion, occurrence highlighting, error highlighting, CVS version control
* semantic analysis with highlighting of parameters and unused local variables
* PHP code debugging with xdebug
* PHP Unit testing with PHPUnit and Selenium
* Code coverage
* Symfony framework support (since version 6.8)
* Zend Framework support (since version 6.9)
* Yii Framework support (since version 7.3)
* PHP 5.3 namespace and closure support (since version 6.8)
* Code Folding for Control Structures (since version 7.2 dev)

### NetBeans IDE Complete Bundle

Oracle also releases a version of NetBeans that includes all of the features of the above bundles. This bundle includes:
* NetBeans Base IDE
* Java SE, JavaFX
* Web and Java EE
* Java ME
* C/C++
* PHP (Version 5.5 and later)
* asd
* Apache Groovy
* GlassFish
* Apache Tomcat
Official Ruby support was removed with the release of 7.0.

## Localization

NetBeans IDE is translated into the following languages:
* Brazilian Portuguese (BR), as of 5.5
* Japanese (JP), as of 3.4
* Simplified Chinese (ZH-CN)
Community translations of the IDE are also available in the following languages:
Community translations :
| Language | Platform | Java SE (IDE) | All |
| Afrikaans | As of 6.9 | No | No |
| Albanian | As of 5.5 | No | No |
| Azerbaijani | No | No | No |
| Catalan | As of 6.7.1 | As of 6.7.1 | As of 6.9.1 |
| Czech | As of 6.0 | No | No |
| Dutch | Yes | Yes | No |
| Filipino | As of 6.9 | No | No |
| French | Yes | Yes | No |
| Galician | Yes | Yes | As of 6.8 |
| German | As of 5.5 | As of 5.5 | No |
| Greek | As of 6.9 | No | No |
| Hindi | As of 6.9 | No | No |
| Indonesian | As of 5.5 | No | No |
| Italian | Yes | Yes | No |
| Korean | As of 5.0 | As of 5.0 | No |
| Lithuanian | As of 6.9 | No | No |
| Romanian | As of 6.8 | No | No |
| Russian | As of 5.0 | As of 6.9.1 | |
| Serbian | As of 6.9 | No | No |
| Spanish | As of 5.5 | As of 5.5 | No |
| Swedish | Yes | Yes | No |
| Traditional Chinese | Yes | Yes | No |
| Turkish | Yes | Yes | No |
| Vietnamese | As of 6.9 | No | No |