Portál AbcLinuxu, 30. dubna 2025 13:11
Framework Spring asi javistům nemusím představovat; v posledních týdnech se okolo něj dějí poměrně zajímavé věci, které dost zřetelně odhalují vztah komerčních investorů k open-source softwaru. Hezky to koresponduje s tématem zprávičky o open source jako business modelu, takže by to mohlo zajímat i ty (ne)šťastné, již Javou nejsou dotčeni. Aneb – co všechno ještě je open source?
Spring je open-source J2EE aplikační framework šířený pod licencí Apache 2.0. Mezi open-source softwarem však zaujímá poněkud výstřední postavení – zrodil se totiž z knížky. V roce 2002 vydal Rod Johnson knihu Expert One-on-One J2EE Design and Development, v níž nejen že popsal své zkušenosti s problémy při tradičním J2EE vývoji, ale také uveřejnil 30 tisíc řádek zdrojového textu frameworku Interface21, jehož se na začátku dalšího roku chopila početná komunita vývojářů v čele s Rodem Johnsonem a Juergenem Hoellerem.
Spring se dočkal vydání verze 1.0 v prvním čtvrtletí roku 2004, ale ještě předtím se stal velmi oblíbeným a široce rozšířeným nástrojem. Verze 2.0 vyšla ve druhé polovině roku 2006 a přibližně o rok později současná verze 2.5. Již delší dobu tedy jde o jeden z nejpoužívanějších produktů na J2EE trhu a do konce tohoto roku se očekává přinejmenším prvni milestone verze 3.0.
Vývoj Springu byl od počátku zastřešován firmou Interface21, která se snažila adoptovat běžný obchodní model založený na open source, totiž poskytování podpory, školení, konzultantské služby apod. Těžko odhadovat, o jak úspěšné podnikání šlo, ale hrozné to asi nebylo, když se dařilo Spring rozvíjet a vytvářet kromě něj jakožto jádra i další produkty. Ostatně, okolo Springu se od začátku motali samí chytří hoši, takže kvalita vždycky byla nadprůměrně vysoká.
Jen tak mimochodem, zdrojové texty Springu bych beze studu doporučil k samostudiu na téma jak vypadá dobrý kód. Tady rozhodně neplatí to, co pro lecjaké open-source céčkové matlanice, totiž že jejich zdrojové texty jsou vskutku zdrojovými kódy.
Popularita rostla závratnou rychlostí, používá se v bankovním sektoru, v letectví, lékařství. Jeho existenci berou na vědomí velcí hráči, IBM, Oracle i Bea (která už dnes jako taková neexistuje, byla koupena právě Oraclem) jej certifikují pro provoz na svých aplikačních serverech. Open source! Bylo by s podivem, kdyby si toho nevšimli investoři na poli softwarového průmyslu.
Firma Interface21 se přejmenovala na SpringSource a minulý rok (a letos znovu) získala od investorů poměrně slušné peníze na rozvoj projektů, které vypadají, že by možná mohly docela slušně zatřást technologiemi, které se v enterprise Javě používají.
Rod Johnson a lidi kolem Springu vůbec se jaksi z podstaty věci vždycky vymezovali proti těžkotonážním řešením od Sunu, jejichž použití bylo pro programátory, řekněme, značně nesnadné. Tato řešení měla i podstatné nedostatky z pohledu softwarové architektury. Zafungovala zde celkem slušná zpětná vazba, Java EE 5 v tomto směru urazila značný kus cesty (viz např. JPA značně ovlivněné Hibernatem, dalším extrémně populárním open-source projektem) a o připravované šesté verzi se dokonce Rod vyjádřil, že to dělá správně.
Klíčovým slovem je zde totiž modularita. A tímto oslím můstkem jsem se dostal k hlavnímu tématu. V rámci Springu již dlouhou dobu existuje integrace s OSGi pod jménem Spring Dynamic Modules. A když chlapci ve SpringSource přemýšleli, jak přinést zpátky peníze svým chlebodárcům, přišla velice vhod. Jedna věc byla totiž jasná: budeme muset postavit vlastní aplikační platformu, framework nestačí. Tak firma SpringSource koupila firmu Covalent, podstatného to přispěvatele různých projektů Apache Foundation, najmě populárního webového serveru Apache HTTPd a servletového kontejneru Apache Tomcat, jejich know-how dala dohromady se svým a vznikla SpringSource Application Platform. První div, který vlastně není ještě až tak divný a nikoho moc nenaštve: S2AP se bude distribuovat (kromě komerční licence) pod GPL.
Kromě toho se pilně pracuje na dalších nezbytných součástech takové aplikační platformy (např. sledování a správa či vývojářské nástroje), ta je také zanedlouho přejmenována na Spring dm Server, ale ta největší pecka přichází až 17. září: je oznámena nová maintenance policy pro Spring, jejíž podstatou je to, že zkompilovaná stabilní vydání budou volně poskytována pouze 3 měsíce po první stabilní verzi v řadě. Poté budou k disposici pouze platícím zákazníkům SpringSource, ostatní si je budou muset zkompilovat sami ze zdrojových textů. A aby to nebylo tak jednoduché, v repozitáři po uplynutí zmíněných tří měsíců již vydání nebudou značkována, takže si člověk bude muset zkompilovat trunk.
Důvody jsou snadno k nalezení a nepřekvapí. Zvedla se obrovská vlna nevole, vyjádření různých lidí lze snadno dohledat, vzniká dokonce projekt Free Spring, jehož cílem je binární vydání k určitým revizím z repozitáře vytvářet. Na české javovské scéně kupodivu ticho po pěšině, což mi přijde dost zvláštní. Řada lidí oznamuje, že Spring odepsali; já je chápu a začínám se poohlížet po alternativách. Dependency Injection i základní AOP zvládneme s Google Guice, webových frameworků jsou všude celé haldy (Wicket je velmi chladný a vládnoucí), deklarativní transakce snad taky má ještě někdo jiný (Seam?)… ale, proboha, co s tou hromadou kódu, která Spring už používá?
Cítím se podveden. Sice jsem do Springu nepřispěl ani řádkou kódu, do fóra jsem se sice registroval, ale bůhví, jestli jsem tam něco napsal, vím ovšem jistě, že jsou lidi, kterým jsem Spring představil právě já a snad jsem i svým drobným tutoriálem (ze kterého jsou mimochodem prakticky beze změny převzaty druhý a třetí odstavec tohoto zápisku) trochu přispěl k popularitě, kterou Spring zaslouženě má. Investoval jsem do učení spoustu času, a bavilo mě to. Mám teď svoje znalosti zahodit?
7. října ovšem přichází další oznámení, že pod vlivem zpětné vazby od komunity bylo původně velmi striktní rozhodnutí přehodnoceno. Binární vydání budou poskytována bez jakékoli tříměsíční lhůty. Není mi jasné, zda se bude jednat o stejná vydání, jaká budou poskytována platícím zákazníkům, ale to se ukáže záhy. Tato vydání budou volně poskytována do doby, než se další řada dostane do stádia release candidate, což považuji za poměrně férové a jsem prozatím uklidněn. Zdrojové texty sice vždycky byly, jsou a budou volně dostupné, ale kompilovat si vlastní verzi z repozitáře je pro produkční prostředí prostě šílenství. A proto semínko pochybností zůstává: co když…?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.