Zgodovina Nette
Začetki Nette segajo v leto 2004, ko je njegov avtor David Grudl začel iskati primerno ogrodje, v katerem bi lahko pisal aplikacije, saj čisti PHP za to ni več zadostoval. Nobena od takrat dostopnih rešitev mu ni ustrezala, zato je postopoma začel orisovati značilnosti novega ogrodja, ki je kasneje dobilo ime Nette.
Takrat še niso obstajala sodobna ogrodja, kot so Symfony, Laravel ali Ruby on Rails. V svetu Jave je bil standard ogrodje JSF (JavaServer Faces), v konkurenčnem .NET pa ASP.NET Webforms. Oba sta omogočala gradnjo strani z uporabo ponovno uporabljivih UI komponent. Njihove načine abstrakcije in poskuse ustvarjanja stanja nad brezstanjnim protokolom HTTP s pomočjo sej (session) ali t.i. postbacka je David smatral za napačne in v osnovi nedelujoče. Povzročali so številne težave uporabnikom in iskalnikom. Na primer, če ste shranili povezavo, ste kasneje pod njo presenečeno našli drugo vsebino.
Sama možnost sestavljanja strani iz ponovno uporabljivih UI komponent je Davida fascinirala, dobro jo je poznal iz Delphija, takrat priljubljenega orodja za ustvarjanje namiznih aplikacij. Všeč so mu bili trgi z odprtokodnimi komponentami za Delphi. Zato je poskušal rešiti vprašanje, kako ustvariti komponentno ogrodje, ki bi nasprotno delovalo v popolnem sozvočju z brezstanjnim HTTP. Iskal je koncept, ki bi bil prijazen do uporabnikov, SEO in razvijalcev. In tako se je začel rojevati Nette.
Ime Nette je nastalo po naključju v kopalnici, ko je avtor zagledal posodo z gelom za britje Gillette, obrnjeno tako, da se je videlo samo llette.
Sledile so tisoče ur raziskovanja, razmišljanja in prepisovanja. V prašni garaži v vasi nekje za Brnom so nastajali prvi obrisi prihodnjega ogrodja. Osnova arhitekture je postal vzorec MVC, ki ga je takrat uporabljalo danes že pozabljeno PHP ogrodje Mojavi in je kasneje postal popularen zaradi pompa okoli Ruby on Rails. Eden od virov navdiha je bilo celo nikoli objavljeno ogrodje phpBase Honze Tichýja.
Na avtorjevem blogu so se začeli pojavljati članki o prihajajočem Nette. Šalili so se, da gre za vaporware. Potem pa je oktobra 2007 na praški konferenci PHP Seminar David javno predstavil Nette. Mimogrede, iz te konference se je leto kasneje razvil WebExpo, kasneje ena največjih IT konferenc v Evropi. Že takrat se je Nette ponašal s številnimi izvirnimi koncepti, kot so omenjeni komponentni model, dvosmerni usmerjevalnik (router), specifičen način povezovanja med presenterji itd. Imel je obrazce, rešeno avtentikacijo, predpomnjenje itd. Vse se v Nette uporablja v prvotnem konceptu še danes.
V Nette se namesto izraza controller uporablja presenter, ker naj bi bilo v kodi preveč besed, ki se začnejo na con (controller, front controller, control, config, container, …)
Konec leta 2007 je David Grudl objavil tudi kodo in tako je luč sveta ugledala različica Nette 0.7. Ogrodje je takoj pritegnilo ogromno pozornosti. Okoli njega se je oblikovala navdušena skupnost programerjev, ki se je začela vsak mesec srečevati na dogodku Posobota. V skupnosti so bile številne današnje osebnosti, na primer Ondřej Mirtes, avtor odličnega orodja PHPStan. Razvoj Nette je hitro napredoval in v naslednjih dveh letih sta izšli različici 0.8 in 0.9, kjer so bili postavljeni temelji skoraj vseh današnjih delov ogrodja. Vključno z AJAX odrezki (snippets), ki so za 14 let prehiteli Hotwire za Ruby on Rails ali Symfony UX Turbo.
Ena bistvena stvar pa je v takratnem Nette manjkala. Dependency injection vsebnik (DIC). Nette je uporabljal t.i. service locator in namen je bil preiti prav na dependency injection. Kako pa takšno stvar zasnovati? David Grudl, ki takrat ni imel izkušenj z DI, je šel na kosilo z Vaškem Purchartom, ki je DI uporabljal približno pol leta. Skupaj sta razpravljala o temi in David je začel delati na Nette DI, knjižnici, ki je popolnoma spremenila način razmišljanja o načrtovanju aplikacij. DI vsebnik je postal eden najuspešnejših delov ogrodja. In kasneje je povzročil nastanek dveh spin-offov: formata Neon in knjižnice Schema.
Premik na dependency injection je zahteval precej časa in na novo različico Nette se je čakalo nekaj let. Zato je, ko je končno izšla, nosila kar številko 2. Različica Nette 1 torej ne obstaja.
Nette je leta 2012 z različico 2.0 začel svojo moderno zgodovino. Prinesel je tudi Nette Database, katerega del je bilo tudi izjemno priročno orodje za delo s podatkovno bazo, danes imenovano Explorer. To knjižnico je prvotno programiral Jakub Vrána, sosed Davida Grudla in avtor priljubljenega orodja Adminer. Njenega nadaljnjega razvoja se je nato za tri leta lotil Jan Škrášek.
Leta 2014 je izšel Nette 2.1, kmalu zatem pa Nette 2.2. Kako je to mogoče? Različica 2.2 je bila enaka kot različica 2.1, le razdeljena na dvajset ločenih paketov. V svetu PHP se je uveljavilo orodje Composer in spremenilo način pojmovanja ustvarjanja knjižnic. Nette tako ni bil več monolit in se je razdelil na manjše neodvisne dele. Vsak s svojim repozitorijem, sledilnikom težav (issue tracker) in lastnim tempom razvoja ter različicami. V Nette tako ni treba prihajati do absurdov, običajnih v monolitnih ogrodjih, ko izide nova različica paketa, čeprav se v njem ni nič spremenilo. Sama razdelitev Git repozitorijev je zahtevala več tednov priprav in stotine ur strojnega časa.
Nette se je uvrstil tudi na odlično 3. mesto v svetovni anketi o najboljšem PHP ogrodju, ki jo je organizirala revija Sitepoint.