Java a Java EE

0

Czy moze mi ktos naswietlic czy dobrze mysle. Java SE to podstawy jezyka, ten caly rdzen plus jakis swing a EE to webowe sprawy? Czy uczac sie np z książki java podstawy corstmana poznam SE a dopiero pozniej frameworki potrzebne do EE? Czy moze od razu isc z marszu w enterprise edition?

0

Jest jeszcze nowa JavaFX do aplikacji nie tylko desktopowych, Java EE to (krowa)nadzbiór, sporo do nauki. Unikaj książek gdzie autor nadal poświęca 150 stron o apletach.

0

Java EE to zbiór technologii, które mogą być przydatne w aplikacjach tworzonych dla przedsiębiorstw. Możesz tworzyć aplikacje webowe nie znając kompletnie Javy EE.

0

Jest jeszcze nowa JavaFX do aplikacji nie tylko desktopowych

Ale Oracle chyba porzuciło JaveFX, teraz jakiś tam Gluon to rozwija - http://gluonhq.com/

3

JavaEE, w której programuję już od ponad pietnastu lat (nadal) to zbiór technologii rozwiązujący wiele problemów, które występowały w latach 90tych XX wieku, w sposób, który był uznawany za dobry w XX wieku. (np rozproszone transakcje + 2 phase commit).
Większość rozwiązań JavaEE jest w zasadzie bezużytecznych od Javy 8 (a nawet wcześniej). Bo są prostsze i lepsze biblioteki w Javie.

Jeśli chcesz zostać COBOLOwcem XXI wieku - dużo pieniędzy w zamian za postępujące odmóżdżenie, to jest to ścieżka godna polecenia.

Inaczej zostań po prostu przy Javie.

0

Ja słyszałem opinie, że owszem stara Java EE była super toporna, ale ostatnie 2-3 wersje zbliżyły się, upodobniły się do Springa. To nie moja opinia, tylko zasłyszana.

0
Wybitny Szczur napisał(a):

Ja słyszałem opinie, że owszem stara Java EE była super toporna, ale ostatnie 2-3 wersje zbliżyły się, upodobniły się do Springa. To nie moja opinia, tylko zasłyszana.

To jest prawda. Oba frameworki od jakiegoś czasu oferują mniej więcej to samo (spring daje większy wybór). JavaEE masz jakby wszystko powybierane za Ciebie - ale raczej brak poważnych ograniczeń. W obu napisze obecnie szybko i sprawnie aplikacje webowe itp., które są zupełnie beznadziejne, mają brzydki kod i beznadziejne (albo przynajmniej niewiarygodne testy). Jako smaczek oba frameworki są nieprzystosowane z gruntu do funkcjonowania w trybie non blocking, który na wiosnę 2017 całkowicie zdominuje modę męską i żeńską w kategorii Java i WEB.

0

To co niby zamiast Springa?
Przecież Spring to nietrudna technologia i dosyć "logiczna"

0

@jarekr000000 - Znaczy się ciągną za sobą stare rozwiązania, które już nie pasują do dzisiejszych standardów. Ale mimo tego Java wciąż jest na "salonach Enterprise" i nie traci swojej pozycji.

scibi92 napisał(a):

To co niby zamiast Springa?

Jest Play, Struts, Vaadin, Grails, Lift i kilka innych frameworków.

Przecież Spring to nietrudna technologia i dosyć "logiczna"

No nie wiem co do końca masz na myśli, "nietrudna" w porównaniu do czego? Jest coś bardziej rozbudowane wśród web-frameworków? :)

0

Przecież to co wymieniłeś to głównie jakieś javowe frontendy...

mi przychodzi na myśl tylko ratpack i lagom.

implementacja RESTEasy używana w Java EE jest również non blocking.
A Spring ma AsyncRestTemplate.

0

Spring Framework nie zmusza się do używania wszystkich komponentów. Owszem może na początku jest sporo nauki ale:
1)Podstawa - Spring IoC - nie jest jakiś super cięzki. Jak korzystać z boota już masz podstawowe konfiguracje, a jak nie to i tak dużo konfiguracji nie trzeba
2)ORM - zarządzanie transakcjami i Spring Data JPA - większośc podstawowych operacji na BD masz zdefiniowanych przez samego springa. Mozesz dorobić customowe implementacje jeśli taka potrzeba i często wystarczy dodać metodę w interfejskie z odowiednią adnotacją query :D
3)Web - jak robisz REST to naprawdę lajt, wystarczą odpowiednie adnotacje
4)Security - jest troche trudny być może ale security takie jest

0

Ja bym chcial tylko by Spring Boot uruchamial sie tak szybko jak Ratpack ;)

Security nie jest trudne, chyba, że robisz coś niestandardowego.

Jarek za chwile udowodni Ci, że IoC to zło wcielone i szatan.

0

Ja mam jeszcze 2 pytania:

  1. Czy JavaEE po prostu zawiera w sobie te rozwiązania do których można dojść używając po prostu Spring, Hibernate itd ?

  2. Czy jeżeli opanuję wiadomości zawarte w Java Podstawy + Java Techniki zaawansowane Hortsmanna i do tego technologie jak Spring Hibernate REST SQL to mogę się rozglądać za robotą ? Czy muszę jeszcze coś o Java EE doczytać ?

Javy uczę się od niedawna i nie mogę pojąć o co chodzi z tą javą "zwykłą", a javą EE. Czy ucząc się jednej umiem od razu drugą czy po prostu uczę się fundamentów pod EE ?

0

Ja polecam vert.x

0

slayer - "zwykła" to Java Core czy inaczej Java SE

0

https://en.m.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition

java se to podstawowa skladnia
java ee to zestaw komponentow do rozwiazan typu enterprise z serwerami aplikacji na czele.

0

Sama Java EE to tez ustandaryzowane podejscie i jej implementacje komponentow musza byc zgodne ze specyfikacjami opisanymi w JSR.

0
Wielki Orzeł napisał(a):

Czy moze mi ktos naswietlic czy dobrze mysle. Java SE to podstawy jezyka, ten caly rdzen plus jakis swing a EE to webowe sprawy? Czy uczac sie np z książki java podstawy corstmana poznam SE a dopiero pozniej frameworki potrzebne do EE? Czy moze od razu isc z marszu w enterprise edition?

Uwaga: to poniżej to moja osobista opinia nie poparta badaniami naukowymi. O konkretne statystyki proszę pytać gdzie indziej.

Jave SE (język i parę głównych pakietów) warto znać niezależnie od tego w jaką ścieżkę pójdziesz.
Przerób z komputerem jakieś 1-2 książki zanim uderzysz do pracodawcy.

JEE to co innego - nie zawsze jest niezbędne, ale znając to środowisko najłatwiej znajdziesz pracę (najwięcej pasujących ofert).
A to za sprawą standaryzacji - niezależnie jakiego stosu używa pracodawca, jeśli używa JEE i Ty go znasz to w miarę do siebie pasujecie.

Podobnie jest ze stosem Spring - jeśli go poznasz w większości (MVC niekoniecznie).

Natomiast jeśli chodzi o technologie "XXI wieku" to tutaj zaczyna się mozaika - praktycznie nie ma dwóch pracodawców z tym samym zestawem technologii.
To co dla jednego jest odkryciem stulecia, inny ledwo słyszał gdzieś na korytarzu konferencji dla programistów.
Więc jeśli nauczysz się jakiegoś nowoczesnego środowiska, to owszem, super Ci się będzie pracować - o ile znajdziesz odpowiednią ofertę.

Gdy zdobędziesz jakieś tam doświadczenie to pracodawca widząc, że pracowałeś z kilkoma stosami nie będzie już wymagał żebyś umiał dokładnie to co on ma - założy że łatwo się wdrożysz.

Jak wyglądają statystyki używanych narzędzi w środowisku Java w 2016r:
http://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/

0

Java EE też można się spokojnie uczyć w domu z książek ?

0

vpiotr dobrze to podsumował.

slayer9 napisał(a):

Java EE też można się spokojnie uczyć w domu z książek ?

Jak wystarczy Ci motywacji i czasu :)

Masz za darmochę dokumentację ORACLE + sporo rzeczy na YT i pewnie setki innych źródeł. Jest jeden polski kurs EE na jednej stronie (nie wiem czy można dawać linki) połączony z AngularJS (kurs za grosze!), w dużej księgarni na literę H. masz książki Pana Kiciora, są jeszcze wykłady z EE na kilku uczelniach polskich (aczkolwiek nie widziałem tych do "siódemki", raczej starsze wersje).

0

Właściwie to JEE to taki "interface".
Powiedzmy że masz JPA - jest to standart ORM dla Javy.
Hibernate to implementacja JPA (było też dużo rozszerzeń ale część to już porzucają), a Spring to alternatywa dla JEE ktora zawiera też dużą część JEE, np. Spring Data JPA. No i Spring tez korzysta ze serwletów a servlet to core JEE :)

0

Jak wystarczy Ci motywacji i czasu :)

To brzmi tak trochę.. mało zachęcająco. W ogóle jak to wygląda pod kątem czasu ? Ile zajmuje ogarnięcie EE do stopnia umożliwiającego znalezienie pracy ? Tyle co Java SE od zera + Spring, mniej czy więcej ?

Jest tu w ogóle ktoś kto znalazł robotę bez ruszenia Javy EE ?

3
Wielki Mleczarz napisał(a):

Jarek za chwile udowodni Ci, że IoC to zło wcielone i szatan.

To akurat proste - wystarczy spojrzeć na
http://www.asciitable.com/

I - w systemie ósemkowym = 111
o - w systemie dziesiętnym = 111 (Przypadek?, nie sądze)

a C to trzecia litera alfabetu

(111 + 111 ) *3 - no i masz

0
slayer9 napisał(a):

Java EE też można się spokojnie uczyć w domu z książek ?

Nie wiem czy "spokojnie" ale ogólnie da radę - tyle że nie same książki ale również własne projekty typu PoC i kursy video.

1
slayer9 napisał(a):

Jest tu w ogóle ktoś kto znalazł robotę bez ruszenia Javy EE ?

Praca to inna sprawa. Pieniądz nie śmierdzi, a nawet jak trochę - to szukasz biura z przysznicem i jest ok.
I jeśli potrzebujesz do CV to uczysz się javaEE lub Spring na minimum, łapiesz pracę - i mam nadzieje, że doczekasz czasów, kiedy to całkiem zemrze i zaczniesz pisać normalnie.

Samemu, dla siebie, do robienia aplikacji - już nie warto.

1

Nie wiem skąd takie uprzedzenie do Springa.
A Spring według mnie jest łatwą technologią, jest dużo modułów to prawda ale żeby napisac jakiś projekt taki jak RESTowe CRUD API nie trzeba dużo wysiłku

Zacznij od tego:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html
Na górze jest XML ale stosuje się teraz Java config

0

Co do springa i JavaEE i ich non blocking REST. Proszę spróbujcie to zobaczycie jak ładnie nie działa (chyba, że nie używacie wewnątrz ficzerów z frameworku - wtedy ma szansę).

A tu ciekawa rzecz:
https://www.quora.com/Which-is-better-Play-Framework-or-Spring-MVC-How-should-I-decide-what-to-use/answer/Yevgeniy-Brikman

Z czego jeden punkt widzę jako najbadziej istotny:

Functional programming. Spring is built around a bunch of mutable objects, annotations, XML configuration files, and other magic. This seems OK at first, until something goes wrong; or you need to do something slightly custom; or you have a large app and can't follow all the places that side effects are happening. In short, most Spring MVC apps are a giant ball of Spaghetti. On the other hand, Play is built around a functional programming core. Just about everything is a function that returns a value, and they make excellent use of the type system (not only type-safe classes, but also type-safe routes, templates, build system, and more) which makes it much easier to reason about the code, compose and reuse pieces of your app, debug problems, plug in custom behavior, and so on.

Żeby było śmieszniej - Play też już chyba powoli przestaje być modny (jednak kobyła).

1

Play nie może wyjść z mody bo nigdy nie był modny :D

0

"Samemu, dla siebie, do robienia aplikacji - już nie warto." - dlaczego? - tk 33 minuty temu

Zgaduje: pewnie dlatego, że są lepsze technologie, w których pracuje się wygodniej lub/i szybciej uzyskuje pożądany efekt. Nie mówiąc o nowych trendach (mikroserwisy, reaktywne programowanie, etc.).

Nie wiadomo jak będzie z Javą za 5 czy 10 lat. Może zdechnie, a może zaskoczy wszystkich nowymi rozwiązaniami. Trudno gdybać.
PHP był już kompletnie na dnie, a frameworki MVC (Zend, Symfony, Laravel) dały mu drugie życie. Może coś "wskoczy" do Javy, co da jej takiego "kopa" że przez kolejne 15 lat będzie na topie.

2
slayer9 napisał(a):

Ja mam jeszcze 2 pytania:

  1. Czy JavaEE po prostu zawiera w sobie te rozwiązania do których można dojść używając po prostu Spring, Hibernate itd ?

Jeżeli będziesz używał Hibernate to praktycznie będziesz też używał JEE bo z tym całym Hibernate to jest tak, że jest sobie pewna specyfikacja opisująca jak ma działać system ORM o nazwie Java Persistence API (w skrócie JPA). Hibernate powstał na bazie tych specyfikacji - to znaczy jest biblioteką wykonaną według pewnej instrukcji (specyfikacji). Ta instrukcja jest częścią JEE, więc właściwie to korzystasz z JEE.

Nie oznacza to jednak, że podczas pisania w Springu i Hibernate dobrze poznasz JEE ponieważ Springowe aplikacje zazwyczaj wykorzystują część tego co oferuje JEE. Nikt Cię nie zmusza do łączenia Springa z technologią EJB (jedna z kluczowych technologii JEE), więc jeżeli nie będziesz stosował EJB (bardzo często jest to zupełnie słuszne podejście) w aplikacjach Springa to trudno mówić o znajomości JEE.

Dodam, że to też nie jest tak, że Spring to taki okrojony JEE. Po prostu pisząc w Springu natrafisz na coś z JEE oraz na rozwiązania alternatywne (oferowane przez Springa) w stosunku do JEE. Ponadto w Springu znajdziesz też elementy, których w JEE nie ma (JEE z tego co wiem nie wspiera portali społecznościowych typu Facebook a Spring zdaje się, że wspiera). Znajdziesz tez elementy, które rozszerzają to co jest w JEE (np. Spring Data JPA dostarcza repozytoria - czyli rozszerza w pewnym stopniu to co oferuje JPA).

slayer9 napisał(a):
  1. Czy jeżeli opanuję wiadomości zawarte w Java Podstawy + Java Techniki zaawansowane Hortsmanna i do tego technologie jak Spring Hibernate REST SQL to mogę się rozglądać za robotą ? Czy muszę jeszcze coś o Java EE doczytać ?

Jezeli bedziesz w stanie napisac przy uzyciu Springa i/lub Javy EE użyteczną aplikację to możesz próbować. Mozesz sobie zrobisz jakis serwis internetowy z prostym CMSem na przykład. Szczególnie użyteczne w sytuacji kiedy nie masz własnej storny internetowej - może później służyć jako portfolio gdzie będziesz umieszczał informację o innych projektach :)

slayer9 napisał(a):

Javy uczę się od niedawna i nie mogę pojąć o co chodzi z tą javą "zwykłą", a javą EE. Czy ucząc się jednej umiem od razu drugą czy po prostu uczę się fundamentów pod EE ?

Java SE i Java EE to zbiór technologii (właściwie to bardziej ich specyfikacji). Zerknij sobie na te diagramy:

https://i.stack.imgur.com/T2QZK.png

http://blog.arungupta.me/wp-content/uploads/2013/10/javaee7-pancake.png

Pierwszy z nich opisuje w skrócie JSE drugi JEE. Chcesz zrobić kalkulator na desktopy? Wez sobie JSE, użyj modułu Math (biblioteka matematyczna) i np. Swinga (biblioteka do budowania GUI). A może wolałbyś zrobić kalkulator w formie strony internetowej? Wtedy możesz ponownie wziąć to co oferuje JSE (prostokącik Math) oraz np. JSF (biblioteka do budowania interfejsu użytkownika, który ma działać w przeglądarce internetowej) z pakietu JEE. Możesz też nie robić interfejsu użytkownika w JEE i skorzystać np. z alternatywnych systemów szablonów i połączyć to ze Springiem czy czymś innym.

1 użytkowników online, w tym zalogowanych: 0, gości: 1