# NetBeans

O NetBeans IDE é um ambiente de desenvolvimento integrado gratuito e de código aberto para desenvolvedores de software nas linguagens Java, JavaScript, HTML5, PHP, C/C++, Groovy, Ruby (sem suporte oficial a partir da versão 7), entre outras. O IDE é executado em muitas plataformas, como Windows, Linux, Solaris e MacOS. Além disso, é usado como base de uma série de software científico de missão crítica em grandes organizações em defesa, aeroespacial, logística e pesquisa, como Boeing, Airbus Defense and Space, NASA e NATO.

## História

O NetBeans foi iniciado em 1996 por dois estudantes tchecos na Universidade de Charles, em Praga, quando a linguagem de programação Java ainda não era tão popular como atualmente. Primeiramente, o nome do projeto era Xelfi, em alusão ao Delphi, pois a pretensão deste projeto era ter funcionalidades semelhantes aos IDEs então populares do Delphi que eram mais atrativas por serem ferramentas visuais e mais fáceis de usar, porém com o intuito de ser totalmente desenvolvido em Java.
Em 1999, o projeto já havia evoluído para uma IDE proprietário, com o nome de NetBeans DeveloperX2, nome que veio da ideia de reutilização de componentes que era a base do Java. Nessa época, a empresa Sun Microsystems havia desistido de sua IDE Java Workshop e, procurando por novas iniciativas, adquiriu o projeto NetBeans DeveloperX2 incorporando-o a sua linha de softwares.
Por alguns meses, a Sun mudou o nome do projeto para Forte for Java e o manteve por um bom tempo como software proprietário. Porém, em junho de 2000, a Sun disponibilizou o código fonte do IDE NetBeans, tornando-o uma plataforma OpenSource. Mais tarde, com a aquisição da Sun Microsystems pela Oracle em 2010, tornou-se parte da Oracle. Ao longo de sua história na Sun Microsystems e Oracle, o NetBeans foi gratuito e de código aberto; e foi alavancado pelo seu patrocinador como um mecanismo para impulsionar o ecossistema Java para a frente.
Em 2016, durante o JavaOne, a Oracle propôs contribuir com o NetBeans IDE como um novo projeto de código aberto dentro da Incubadora Apache, chamado Apache NetBeans (incubating). Entre diversas razões, mudá-lo para um local neutro, como o Apache, com seu modelo de governança forte, é suscetível de levar a um aumento no número de contribuições de várias organizações. Os principais desenvolvedores virão de uma série de organizações, incluindo a Oracle, que continuará seu investimento no NetBeans.

## Recursos

A IDE NetBeans auxilia programadores a escrever, compilar, depurar e instalar aplicações, e foi arquitetada em forma de uma estrutura reutilizável que visa simplificar o desenvolvimento e aumentar a produtividade, pois reúne em uma única aplicação todas estas funcionalidades. Totalmente escrita em Java, mas que pode suportar qualquer outra linguagem de programação que desenvolva com Swing, como C, C++, Ruby e PHP. Também suporta linguagens de marcação, como XML e HTML.
O NetBeans fornece uma base sólida para a criação de projetos e módulos, possui um grande conjunto de bibliotecas, módulos e APIs (Application Program Interface, um conjunto de rotinas, protocolos e ferramentas para a construção de aplicativos de software) além de uma documentação vasta — inclusive em português — bem organizada. Tais recursos auxiliam o desenvolvedor a escrever seu software de maneira mais rápida. A distribuição da ferramenta é realizada sob as condições da SPL (Sun Public License), uma variação da MPL (Mozilla Public License). Esta licença tem como objetivo garantir a redistribuição de conhecimento à comunidade de desenvolvedores quando novas funcionalidades forem incorporadas à ferramenta.
Atualmente, está distribuído em diversos idiomas; e isto tem o tornado cada vez mais popular, facilitando o acesso a iniciantes em programação e possibilitado o desenvolvimento de aplicativos multilíngue.
Como o NetBeans é escrito em Java, é independente de plataforma, funcionando em qualquer sistema operacional que suporte a máquina virtual Java (JVM).
Alguns dos seus principais recursos são:
* Editor de código fonte integrado, rico em recursos para aplicações Web (Servlets e JSP, JSTL, EJBs) e aplicações visuais com Swing que é uma API (Interface de Programação de Aplicativos) Java para interfaces gráficas. A API Swing procura desenhar por contra própria todos os componentes, ao invés de delegar essa tarefa ao sistema operacional, como a maioria das outras APIs de interface gráfica trabalham;
* Visualizador de classes integrado ao de interfaces, que gera automaticamente o código dos componentes de forma bem organizada, facilitando assim o entendimento de programadores iniciantes;
* Suporte ao Java Enterprise Edition, plataforma de programação de computadores que faz parte da plataforma Java voltada para aplicações multicamadas, baseadas em componentes que são executados em um servidor de aplicações;
* Plugins para UML (Unified Modeling Language - Linguagem de Modelagem Unificada) não proprietária de terceira geração, e desenvolvimento remoto em equipes; interface amigável com CVS ou Concurrent Version System (Sistema de Versões Concorrentes) é um sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente, mantendo-se suas versões antigas e os logs de quem e quando manipulou os arquivos;
* CSS, algumas funcionalidades para editar folhas de estilos como destaques, recursos de autocompletar, análise de código;
* Ajuda local e on-line;
* Debug apurado de aplicações e componentes;
* Autocompletar avançado; total suporte ao ANT, ferramenta de automatização da construção de programas e TOMCAT, servidor de aplicações Java para web;
* Integração de módulos;
* Suporte a Database (banco de dados), Data view e Connection wizard, que são os módulos embutidos na IDE; geração de Javadoc: a ferramenta permite a geração automática de arquivos javadoc em HTML a partir dos comentários inseridos no código, além de recursos que facilitam a inclusão de comentários no código;
* Atalhos para copiar linhas inteiras de código.