Interesuję się tworzeniem aplikacji internetowych. Dość dobrze znam środowisko LAMP (Linux Apache MySQL PHP). Stworzyłem już sporo różnego rodzaju projektów, począwszy na systemie templejtów, a skończywszy na prostym CMS-ie do newsów. Niedawno słyszałem dość dużo o technologi JEE (Java Enterprise Edition): czy warto się jej uczyć? Co tak naprawdę może mi ona dać?
Roman
Technologia JEE jest ostatnio coraz bardziej znaną platformą do tworzenia aplikacji webowych. Przyczynia tego jest zwiększająca się popularność Javy, prostota jej składni oraz prawdziwa obiektowość. Niestety, nauka poprawnego tworzenia aplikacji w JEE wymaga poświęcenia niewspółmiernie większej ilości czasu, w porównaniu do nauki PHP. Spowodowane jest to zupełnie inną architekturą platformy, jej wielowarstwowością i różnorodnością technologii.
Oczywiście na samym początku wystarczy nauczyć się tylko JSP (Java Server Pages), podstaw tworzenia servletów, interfejsu jdbc. Wystarczy to w zupełności do tworzenia aplikacji internetowych. Jednak kod napisany w ten sposób będzie mniej czytelny niż jego odpowiednik w PHP, a co się z tym wiąże trudniej będzie go utrzymać.
Prawdziwa moc Javy ujawnia się wtedy, gdy poznamy kilka dodatkowych technologii, dzięki którym można tworzyć wielowarstwowe, zaawansowane aplikacje webowe.
Gdy opanuje już Pan podstawy, to polecałbym zapoznać się z następującymi technologiami:
- Java Server Faces – dodatkowe rozszerzenie tagów JSP umożliwiające wykorzystywanie gotowych komponentów webowych, a także pisanie swoich znaczników,
- Hibernate – za pomocą tej technologii można stworzyć mapowanie relacyjno-obiektowe dla dowolnej bazy danych,
- Spring – dzięki temu kontenerowi IoC (Inversion of Control) wykorzystamy dependency injection, czyli wstrzykiwanie zależności przez kontener,
- EJB – Enterprise Java Beans – pozwoli na tworzenie rozproszonych komponentów biznesowych.
Jak widać, JEE to cały zbiór różnego rodzaju narzędzi i platform umożliwiających tworzenie aplikacji internetowych. Nauka wszystkich technik zajmuje dużo czasu. Jeżeli w przyszłości nie chce zajmować się Pan tworzeniem zaawansowanych aplikacji webowych, to z pewnością wiedza ta do niczego się nie przyda. Pisanie aplikacji w JEE zajmuje dużo czasu. Ich testowanie jest powolne. Za każdym razem wymaga kompilacji kodu, a następnie zrobienia tzw. deploya na serwerze. W przypadku PHP wystarczy zmodyfikować kod, a rezultat będzie od razu widoczny. Dzieje się tak dlatego, że PHP jest językiem interpretowanym, a Java kompilowana jest do bytecodu.
Jak wspomniałem, JEE używane jest najczęściej w dużych systemach CRM, CMS lub ERP. Nad takimi aplikacjami pracuje najczęściej spora grupa programistów. Ma to swego rodzaju uzasadnienie w fakcie, że JEE jest technologią rozproszonych komponentów, które budują strukturę wielowarstwową. Dzięki temu, każdy programista może niezależnie tworzyć swoją część systemu.
Mam nadzieję, że w jakiś sposób pomogłem Panu w podjęciu decyzji. Jeżeli jest Pan studentem informatyki, to nauka JEE jest jak najbardziej na miejscu. Według mnie w zastosowaniach o których wspomniałem wcześniej Java będzie zyskiwała coraz większą popularność. (TG)