Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Czyli ułomny język to plus. Lepiej używać bibliotek napisanych przez innych, żeby zamaskować ograniczenia języka. W javie od zawsze tak jest - lambd nie było, to biblioteka retrolambda i jeszcze z 5 innych, kolekcje biedne to Google zrobił Guava Collections itd itp itd. Tak można bez końca.
Czemu plus? To, że jest inaczej niż w C# to nie zbrodnia. Nowe bajery powinny być po to, by rozwiązać jakiś konkretny problem, a nie kopiować składnię z C# dla samego kopiowania.
Adnotacjami Lomboka da się załatwić dużo więcej niż same propertiesy - Lombok generuje buildery, konstruktory, hashCode, equalsa, toStringa itp itd Do tego też chciałbyś ekstra składnię czy może już nie, bo C# takiej nie ma?
Mam wrażenie, że dla C#-owców jedynym słusznym kierunkiem rozwoju Javy jest upodabnianie jej do C#-a. Jak coś jest inaczej to jest źle.
ok to wszysttko się zgadza, ale te ułomności to pewien kompromis. Dla biznesu i ludzi którzy decydują w co władować korporacyjne miliony, nie jest najważniejsze czy dany język ma taki czy taki ficzer tylko pewna przewidywalność samego języka , dostępności programistów itp. Przykładowo:
Czemu plus? To, że jest inaczej niż w C# to nie zbrodnia. Nowe bajery powinny być po to, by rozwiązać jakiś konkretny problem, a nie kopiować składnię z C# dla samego kopiowania.
Adnotacjami Lomboka da się załatwić dużo więcej niż same propertiesy - Lombok generuje buildery, konstruktory, hashCode, equalsa, toStringa itp itd Do tego też chciałbyś ekstra składnię czy może już nie, bo C# takiej nie ma?
Mam wrażenie, że dla C#-owców jedynym słusznym kierunkiem rozwoju Javy jest upodabnianie jej do C#-a. Jak coś jest inaczej to jest źle.
To nie jest "coś inaczej". To niezależne osoby dopisały te biblioteki, żeby niedociągnięcia i braki samego języka były chociaż trochę mniej uciążliwe. Tak jest z Lombokiem, tak było z Retrolambda, tak jest z Guavą itd itp
Niedociągnięć w każdym języku można znaleźć co najmniej miliard. Tobie nie podoba się brak propertiesów, komuś innemu na propertiesach w ogóle nie zależy, ale chciałby coś innego. Nawet gdyby propertiesy były to i tak klasy usiane byłyby automatycznie wygenerowanymi equalsami, toStringami itd, więc i tak byłoby dziadostwo. Lombok załatwia sprawę kompleksowo, nie jest półśrodkiem.
Możesz rozjaśnić o co chodzi z Guavą? Jak dla mnie to biblioteka jak wiele innych, np Apache Commons: https://commons.apache.org/ - te też są niby dowodem na ułomność Javy? A może do biblioteki standardowej Javy wrzućmy miliard klas, każdy będzie miał coś dla siebie.
Retrolambda natomiast wygląda mi raczej na ciekawostkę niż sensowne podejście. Wsteczna kompatybilność w Javie polega na tym, że można przestarzały (ale działający, więc cenny) kod odpalić na nowych wersjach Javy. Odpalanie nowego kodu Javowego na przestarzałych wersjach Javy moim zdaniem mija się z celem, no chyba że u kogoś upgrade Javy jest tak bolesny, że woli kombinować jak koń pod górę.
Odpalanie nowego kodu Javowego na przestarzałych wersjach Javy moim zdaniem mija się z celem, no chyba że u kogoś upgrade Javy jest tak bolesny, że woli kombinować jak koń pod górę. okey racja, ale kiedy istnieje cały wielki ekosystem napisany w Java 1.6 a biznes nie wyraża zgody na przejście na Java 10 albo chociaż Java 8 to byłoby fajnie móc pisać w nowym stylu. Ten problem rozwiązuje Kotlin..
Michał Sikora
Trochę nie rozumiem tego ataku na Retrolambdę. Czasami upgrade jest bolesny, bo biznes nie pozwala. Czasami jest niemożliwy, bo ekosystem nie pozwala. Na Androidzie Retrolambda była przez długi czas zbawieniem, bo nie trzeba było pisać Pana Tadeusza w kodzie. Teraz na szczęście jest Kotlin albo desugar/D8, ale i tak Retrolambda była/jest bardzo użyteczna i przydatna.
To, że istnieją lepsze alternatywy nie znaczy, że Lombok jest kiepski. No chyba, że ktoś jedną klasę adnotuje Lombokiem, Hibernatem, Springiem, JAXB i innymi rzeczami naraz - wtedy adnotacje Lomboka pogarszają sprawę. Ale to nie wina Lomboka, że ludzie robią klasy do wszystkiego.
Michał Sikora
Mam podobnie. Lombok fajnie, fajnie, ale kiedy na niego patrzę to jak z obrazka. Wolę już trochę więcej kodu samemu napisać i korzystać z AutoValue, jeżeli nie można np. z Kotlina.
Post zamienił się w konflikt C# vs. Java :) To ja dołożę swoje jako początkujący uczący się programista :) Poznaje C# (asp.net mvc, Entity Framework, Linq) i Jave(Spring Hibernate itp.) Do wyboru języka jest mam parę kryteriów
Ogłoszeń o prace. W mojej okolicy w ostatnim czasie przeważa minimalnie Java. C# trochę mniej, ale jest jedno ale. Większość na Jave to utrzymanie aplikacji - co z tego, że jest Java 9, 10 i niedługo 11, jak z tego nie skorzystam przy utrzymaniu czy rozbudowie systemu? W C# ogłoszeń nie wiele mniej z tą różnicą, że do nowych projektów (np. nowy system dla jednego z banków).
IDE. C# to VS 2017, a Java IntelliJ (ultimate) Jedno i drugie jest spoko, ale przyjemniej pracuje mi się w VS. Lepiej mi się je ogarnia. Jest chyba bardziej ustawne i chyba bardziej uporządkowane.
Sam język. Jak ktoś słusznie zauważył C# to taka udoskonalona Java
Jakbym zatrudnial kotlinowca to liczylbym, ze zatrudniam doswiadczonego java deva co poznal kotlina. Oczekiwalbym tez, ze sie taki lubi uczyc i nie zatrzymal w rozwoju.
vpiotr
@jarekr000000: zdefiniuj pojęcie "programista idący w ilość ofert". Taki co lubi mieć wybór i oferty dostosowane do potrzeb?
Mnie by interesowal Kotlin ale troche sie obawiam, ze np. zdechnie za 2 lata i stanie sie dlugiem publicznym. Ale na chwile obecna Kotlin raczej zostanie z nami na dlugo.
@vpiotr no właśnie wybór dużej ilości w tym przypadku szczególnie niekoniczenie oznacza komfort. Java to jednak dużo starego syfu, ja przyznaję, że nawet ten syf lubię naprawiać, ale mam wrażenie, że jestem wyjątkiem. Co więcej w tym konkretnym przypadku (Kotlin), jęsli firma zaczyna w 2018 nowe projekty w Javie, a nie Kotlinie to od razu słabo świadczy o podejściu do technologii.
Smiga. Chociaz u mnie cos sie w Intellij przycielo po zmianie na Java 10 i musialem zrebootwac IDE bo wczesniej gdy chcialem uzyc tej nowej konstrukcji z var wyskakiwal blad ze IDE nie wie co to jest.
Czy Java 10 szybciej kompiluje programy względem wersji Java 8?
Czy programy napisane z książki Java 8 skompilują się poprawnie pod Java 10?
Jak wgrać Java 10 pod Linux Mint 18.3?
goto
, a Java nie. Koniecznie trzeba dodać goto do Javy :-)karolinaagoto
pozwala nadawać pętlom etykiety