Rond 1996 liet een groepje studenten uit Praag, in het toenmalige Tsjecho-Slowakije, op een conferentie NetBeans zien als editor en algemene ontwikkel tool voor Java. James Gosling was hier dusdanig van onder de indruk dat het al snel deel werd van Sun Microsystems, waar het direct gratis en open source beschikbaar gemaakt werd.
Sun zag in NetBeans de mogelijkheid om aan “community building” te doen en Java te populariseren. Goede ontwikkeltools trekken immers ontwikkelaars aan en Java moest de meest gebruikte programmeertaal ter wereld worden. Met de overname van Sun door Oracle bleef die visie op NetBeans overeind. Sterker nog, NetBeans wordt ook intern bij Oracle steeds meer ingezet. Daarnaast wordt het gebruikt op universiteiten, scholen en bij veel bedrijven, van Boeing en de NAVO tot banken en kleinere organisaties.
Via NetBeans maakt Oracle nieuwe technologieën bekend. Denk hierbij bijvoorbeeld aan plugins voor de Oracle Cloud en Oracle WebLogic. Daarnaast organiseert Oracle ook activiteiten, waaronder NetBeans Days, als onderdeel van JavaOne, maar ook gewoon lokaal. De meest recente NetBeans Day werd gehouden in Utrecht, bij Oracle Nederland. Hierover gaat dit verslag.
Programma
Het programma was zeer divers. Zo kwamen in één dag de mogelijkheden van de editor zelf voorbij (Geertjan Wielenga) en verder: NetBeans als productieve JavaEE / HTML5 tool (Adam Bien), NetBeans en IoT (Timon Veenstra), NetBeans als Rich Client Platform [RCP] (Joris Snellenburg en Martijn Morrien), JDK 9 (Dalibor Topic), NetBeans en Python (Ralph Ruijs), NetBeans in het onderwijs (Pieter van den Hombergh) en hoe je NetBeans zelf uit kunt breiden door middel van het schrijven van plugins (Geertjan Wielenga). Dit kun je interpreteren als een voordeel of als een nadeel. Aan de ene kant was het een mooie gelegenheid om te ontdekken op welke manier je NetBeans nog meer in kunt zetten. Aan de andere kant is het natuurlijk de vraag hoe nuttig dat is wanneer je er in de praktijk niet mee in aanraking komt.
Sta je open voor iets nieuws (of eigenlijk iets ouds), kom dan vooral langs bij de volgende NetBeans Day!
NetBeans vs. IntelliJ
In de eerste sessie van Geertjan Wielenga, de productmanager van NetBeans, lag de nadruk vooral op de mogelijkheden van NetBeans als editor. Qua editor doet NetBeans eigenlijk al een tijdje niet echt meer onder voor een IDE als bijvoorbeeld IntelliJ. De standaard features (genereren van getters, setters, constructors, semantic moving, search everywhere, open recent(ly edited) files) zijn aanwezig. Autocomplete en quick fix werken zoals je dat verwacht en tegenwoordig is er zelfs een dark theme (voor alle Darcula fans). Ook alle mogelijkheden om fatsoenlijk te kunnen refactoren zijn aanwezig. Waar NetBeans wel in afwijkt, is dat een hoop commando’s niet out of the box met een shortcut komen. Aan de andere kant helpt search everywhere hier en de vraag is of er überhaupt veel mensen zijn die alle IntelliJ shortcuts uit hun hoofd kennen.
HTML5 support
Ook voor de fullstack developer biedt NetBeans uitkomst, vooral op het gebied van alles wat valt onder de HTML5 paraplu. Met een browser plugin voor chrome kun je live code editen in NetBeans waarbij de wijzigingen automatisch en real-time met je browser worden gesynchroniseerd. IntelliJ biedt deze functionaliteit ook, maar het was toch verrassend dat de plugin voor NetBeans een stuk vaker is gedownload (280.047 vs. 205.842). De HTML5 support in NetBeans is dan ook erg goed, aangezien NetBeans 8.1 de volledige focus op HTML5 had.
Opinionated IDE
NetBeans maakt heel duidelijk een keuze. Voor sommigen zal dit een kracht zijn, voor anderen een zwakte. De keuze van NetBeans is Java(EE) + HTML5. Ondersteuning voor Spring of andere talen is er wel (en in veel gevallen ook adequaat), maar vaak nog niet op het niveau van bijvoorbeeld een editor als IntelliJ. Werk je echter met de JavaEE / HTML5 stack, dan kun je verbazingwekkend productief zijn met NetBeans, zoals onder meer werd gedemonstreerd door Adam Bien.
Redenen voor hem om NetBeans te gebruiken, waren onder meer het installatiegemak (geen aparte plugins downloaden, zoals bij bijv. Eclipse), de native integratie met buildtools als Maven, Gradle, Grunt, Gulp, etc. (geen verschil tussen NetBeans en commandline), geen “IDE vervuiling” (er wordt geen tot nauwelijks NetBeans specifieke configuratie in je projectfolder opgeslagen), de intuïtieve integratie met applicatieservers (hier kunnen ze bij IntelliJ nog echt iets leren) en met name de productiviteit (alles wat je nodig hebt voor mainstream development is geïntegreerd). Daarnaast is NetBeans natuurlijk ook nog gratis.
Een interessante onthulling was dat hij ook geregeld Nightly Builds installeert en gebruikt (ook bij klanten!). Op deze manier kun je direct nieuwe features gebruiken en tegelijkertijd feedback leveren op de ontwikkeling van NetBeans. Bugs kun je direct vanuit je editor rapporteren en zijn vaak verbazingwekkend snel (de volgende dag) al opgelost. Zo demonstreerde hij ook alvast een aantal van de nieuwste HTML5 features, die hun officiële intrede nog moeten doen.
NetBeans als RCP
Na de sessie met de niet-vliegende drones, werd een ander aspect van de IDE belicht: NetBeans als Rich Client Platform. Allereerst waren er demonstraties van hoe NetBeans wordt ingezet voor onder meer real-time airplane monitoring bij de NAVO en voor het visualiseren van fotosynthese. Daarna werd bij een use case van een energieleverancier een zeer goed overzicht gegeven van de voordelen van NetBeans als RCP, maar ook de nadelen en “lessons learned”.
Conclusie
Al met al was het zeer interessant om een keer een dag mee te maken die volledig in het teken stond van een IDE. NetBeans Day was daarnaast zoals elke conferentie een mooie gelegenheid om weer nieuwe, interessante mensen te ontmoeten. Sinds ik mijn focus heb verlegd naar JavaEE heb ik inderdaad gemerkt hoe productief NetBeans kan zijn. En dit zeg ik als IntelliJ gebruiker en iemand die code kwaliteit en daarmee refactoring zeer hoog in het vaandel heeft staan. Het doet me ook afvragen of de bottleneck qua productiviteit tegenwoordig nog wel in de editor en daarmee in het besparen van een paar toetsaanslagen ligt. Wanneer de focus naast editor ook op native integratie met buildtools ligt, vind ik dat NetBeans daar een erg goede balans in heeft gevonden.
Toch nog een minpuntje, ik miste de workshop waarin je zelf onder begeleiding van bijvoorbeeld goeroes als Geertjan en Adam Bien met NetBeans aan de slag kon gaan. Wat de diversiteit in onderwerpen betreft, dit had zoals genoemd zowel positieve als negatieve kanten. Zelf was ik minder geïnteresseerd in lesgeven met NetBeans of NetBeans als RCP, maar aan de andere kant was het ook leerzaam om ook over die aspecten wat te weten te komen.
Sta je open voor iets nieuws (of eigenlijk iets ouds), kom dan vooral langs bij de volgende NetBeans Day en probeer NetBeans gewoon eens een tijdje.
NetBeans Day Utrecht