Hejka. Pisałem w Javie w wersji 11 w 2022. Roku. Potem przesiadłem się na Kotlina (dalej spring, dalej backend). Po dwóch latach muszę wrócić do Javy (rynek lepiej płaci, komercyjny projket, lepsza oferta). Jakieś rady? Linki? Komentarze? Życiowe szpilencje/uszczypnosci? Wsio dozwolone, Just Give (AI piszę Givenchy, nie wiem ocb) me something. Co powinienem wiedzieć, uczyć się/bać się. W kotlinie przyzwyczaiłem się do programowania funkcyjnego (w sensie nie filozoficznym, ale pisania kodu).
Java - return of the programmer
- Rejestracja: dni
- Ostatnio: dni
- Postów: 832
Myślisz że przez 1.5r - 2 lata coś się znacząco zmieniło?
Sprawdź różnice między jdk11 -> 17 -> 21 i wsio
- Rejestracja: dni
- Ostatnio: dni
- Postów: 756
Powinieneś bać się, że może zastać cię Java 6 zamiast 21
- Rejestracja: dni
- Ostatnio: dni
- Postów: 832
Czemu ktoś miałby siedzieć na 6 zamiast 8 (która może być realnym przypadkiem)?
No dobra, jakiś nie zaktualizowany WebSphere itp.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 756
Piję do tego, że autor nigdzie nie wspomniał, że projekt z lepszą kasą ma Javę > 11.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 832
No być tak moze że dlatego lepsza kasa że Java starsza niż 8.
Zwracam honor.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 17
Faktycznie, precyzuje, java 21, dlatego się cykam, kompletnie stanąłem na praktyce 11 + teoria 17.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 756
Ok, to odpowiadając - ostatnio zrobiłem sobie takie odświeżenie wiedzy, która zatrzymała się na Javie 8. Poza rekordami i pattern matchingiem, to zmiany są niewielkie. Jak przysiądziesz wieczór-dwa to ogarniesz.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 96
Prawie jak @jarekr000000 :P

- Rejestracja: dni
- Ostatnio: dni
Megadeth napisał(a):
Faktycznie, precyzuje, java 21, dlatego się cykam, kompletnie stanąłem na praktyce 11 + teoria 17.
Spokojnie, dużo cię nie ominęło, w zasadzie pattern matching i rekordy, mniej więcej tak to wyglądało:
java 14 - wprowadzenie rekordow, pattern matching na instanceof
java 15 - poprawka rekordów, poprawka pattern matching instanceof, sealed classed
java 16 - poprawka rekordów, poprawka pattern matching instanceof, poprawka sealed classes
java 17 - pattern matching na switch, poprawka sealed classes
java 18 - poprawka pattern matching na switch, przejście na utf-8
java 19 - record patterns, virtual threads, poprawka pattern matching na switch
java 20 - poprawka record patterns, poprawka virtual threads
java 21 - poprawka pattern matching na switch, poprawka record patterns, poprawka virtual threads, string templates
java 22 - poprawka string templates, możesz teraz dać kod przed super
opiszon napisał(a):
Myślisz że przez 1.5r - 2 lata coś się znacząco zmieniło?
Sprawdź różnice między jdk11 -> 17 -> 21 i wsio
Jakie jdk11 -> 17 -> 21
Java 8 ma support do 2030 i tego się będziemy trzymać
- Rejestracja: dni
- Ostatnio: dni
- Postów: 10227
Jeśli pisałeś w Javie 2 lata temu to możesz spokojnie wrócić do pracy, i będzie wszystko git.
Owszem, są zmiany w języku ale nie duże. Pomiędzy Java 11 a 22 dochodzą w zasadzie tylko recordy (nic szczególnego), lepszy switch (znany jako pattern matching) i interpolacja stringów (znane jako string templates), też nic specjalnego.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 111
Kolega wyżej ładnie podsumował, ale smutne tldr; jest takie że od Javy 8 nie nastąpiła żadna znacząca rewolucja w tym języku.
Parę syntax sugars, trochę optymalizacji niskopoziomowych - nic czego byś się nie nauczył w trakcie kodowania jeśli znasz jdk8/11
Project Jigsaw wydawał się nieść jakąś rewolucje, ale chyba dużo się nie pomyle jeśli napisze, że dziś mało kto z tego mocno korzysta.
Osobiście wróciłem do jdk17 po kilku latach przerwy, również programując w Kotlinie, i byłem wręcz zaskoczony jak mało się zmieniło (a przecież prawie wszystko jest też wstecz kompatybilne)
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: XML Hills
kiedys_mialem_lepszy_brzuch napisał(a):
Kolega wyżej ładnie podsumował, ale smutne tldr; jest takie że od Javy 8 nie nastąpiła żadna znacząca rewolucja w tym języku.
czego oczekiwałeś?
jedna z rewolucji to virtual threads, aczkolwiek nie jest to jeszcze dokończone (problemy z synchronized) i spopularyzowane. z tym, że virtual threads to nie jest stricte rewolucja w języku na poziomie dodatków w składni, tylko rewolucja polegająca na tym, że kod asynchroniczny / współbieżny jest znacznie prostszy, bo odpada sklejanie future'ów.
aktualizacja:
są early access buildy looma, które naprawiają problem z synchronized https://jdk.java.net/loom/ i jest draft jepa na wrzucenie tego do głównej gałęzi javy: https://bugs.openjdk.org/browse/JDK-8337395 JEP draft: Adapt Object Monitors for Virtual Threads. obstawiam, że w przyszłym roku będzie to dostępne w oficjalnych buildach javy (bez konieczności dodawania eksperymentalnych opcji do wywołania jvma). obstawiam też, że nawet jak poprawka wejdzie to nie nastąpi żadna 'rewolucja'. po prostu w dużych ekosystemach nastawionych mocno na wsteczna kompatybilność, zmiany są zawsze stopniowe i systematyczne, a nie gwałtowne. to samo dotyczy wszelkich innych potencjalnych 'rewolucji'.
składniowo jest np. local variable type inference od javy 10. java 21 wprowadza https://openjdk.org/jeps/440 JEP 440: Record Patterns.
Project Jigsaw wydawał się nieść jakąś rewolucje, ale chyba dużo się nie pomyle jeśli napisze, że dziś mało kto z tego mocno korzysta.
mało kto korzysta prawdopodobnie z powodu chęci zachowania pełnej kompatybilności z javą 8 (która nadal jest szeroko stosowana) i jednocześnie braku chęci utrzymywania dwóch wariantów bibliotek (zmodularyzowanej i nie). dopiero jak java 8 przestanie się komercyjnie liczyć to będzie sens pchania się w modularyzację bibliotek (3rd party). natomiast sam jdk, jvm, biblioteka standardowa, etc są od 'początku' (tzn. od javy 9) zmodularyzowane i można z tego korzystać, np. mogąc sobie skroić jvmkę z tylko tymi modułami, ale to na razie tylko teoretyczna zaleta (bo w praktyce jeszcze nie wykorzystywana w znaczący sposób). aczkolwiek, z drugiej strony, powoli wchodzą zmiany, które mogą uatrakcyjnić moduły dla przeciętnych programistów: https://openjdk.org/jeps/476 JEP 476: Module Import Declarations (Preview)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 17
Hejka. Dziękuję za responsowe odpowiedzi, dałbym like'y, ale coś mi wyskakuje iż nie mogę bo e maila nie potwierdziłem. W każdym razie psychicznie czuje się lepiejz dziękuję, faktycznie zlukalem na spokojnie zmiany i wydaje się proste. Niech karma będzie wami idk, or sth..... nie jestem najlepszy w podziękowaniach xd