JavaRush /Blog Java /Random-PL /Przerwa kawowa #68. Szczera opinia o Javie i jej ekosyste...

Przerwa kawowa #68. Szczera opinia o Javie i jej ekosystemie. Trzy nowe narzędzia Java do rozważenia w 2021 r

Opublikowano w grupie Random-PL

Szczera opinia o Javie i jej ekosystemie

Źródło: Dev.to OK, przyznaję, że moim głównym językiem jest C#. Ale to jest moja bezstronna opinia na temat Javy i otaczającego ją ekosystemu. Używałem polecenia bash w Javie dość często, widząc wszystkie jego wady. Na przykład Java nie ma żadnych właściwości, natywnie nie ma żadnych zdarzeń, żadnych struktur, żadnego przeciążania operatorów, a do czasu Java 10 nie było żadnego wnioskowania, więc nie ma „var”. Wszystko jest w C#! Użyłem także basha dla Java ze względu na brak LINQ, var i wyliczeń. A mimo to sporo piszę w Javie, zwłaszcza gdy tworzę aplikacje na Androida, ale też do innych rzeczy. Mój pierwszy projekt był także w Javie! Tak więc w piątkowy wieczór, ze względu na pilność, musiałem pisać w Javie przez kilka godzin bez przerwy. I zgadnijcie, co odkryłem? STRUMIEŃ! Przerwa kawowa #68.  Szczera opinia o Javie i jej ekosystemie.  Trzy nowe narzędzia Java do rozważenia w 2021 r. - 1Najwyraźniej Java 8 wprowadziła wątki! A ja nie miałam o tym pojęcia! Dla tych, którzy nie wiedzą, Streams jest implementacją LINQ w języku Java. Odkryłem również, że Java 10 ma funkcję wnioskowania o typie, więc Java ma teraz funkcję var! Nie mogę uwierzyć, jak bardzo przestarzała jest moja wiedza, ale szczerze mówiąc, był ku temu powód. Te dwie rzeczy zrobiły ogromną różnicę w moim myśleniu! Czy wiesz, że Java zawsze sprawdza wyjątki, a C# nie? Przyznam, że bardzo brakuje mi tej funkcji w C#! Tak, nie ma żadnych struktur, właściwości itp., Ale cholera, jest elegancko! Myślę, że Java z założenia zmusza programistę do pisania bardziej niezawodnych aplikacji. Podczas gdy w świecie .NET jest to w dużej mierze pozostawione uznaniu programisty. Niektórzy programiści lubią te ograniczenia, inni wolą swobodę. Chociaż oba języki są dość bezpieczne, Java ma oczywiście niewielką przewagę. Dlaczego więc duże firmy wolą Javę? Myślę, że już znam odpowiedź! Najbardziej frustruje mnie to, że… w większości przykładów kodu, które widzisz w Internecie, te zaawansowane funkcje nie zawsze są używane… Myślę, że jeśli nowy programista Java zobaczy „var” napisane w całej bazie kodu , on oszaleje! A co ze streamami? Co to są strumienie? Programiści Java uwielbiają pętlę For! Tak naprawdę nawet pętle foreach są dość rzadkie w świecie Java (i być może jest ku temu powód: pętla For jest znacznie bardziej zoptymalizowana). Ale to nie są złe cechy! Pójdę dalej i powiem, że te funkcje są niesamowite! Naprawdę boli mnie, gdy piszę aplikacje na Androida i zauważam, że prawie nigdzie w interfejsie API Androida nie używa się wyliczeń! I to jest sprawiedliwe, bo Android został napisany wiele lat temu. Najbardziej irytuje mnie to, że za każdym razem, gdy muszę użyć funkcji Aktywność dla wyników w Androidzie, muszę używać stałych, na przykład: int PICK_IMAGE_FROM_GALLERY = 3000 Bracie, to jest szaleństwo! A jednak ludzie na całym świecie zaczęli to akceptować. I nawet ja. W Javie brakuje także natywnej implementacji zdarzeń! Gdyby tylko miał zdarzenia i delegatów takich jak C#... (Hej, twórcy języka Java, jeśli to czytacie, musicie dodać zdarzenia! A jeśli już je macie lub pracujecie nad nimi, dajcie mi znać ). Teraz powiem ci, co może być największą wadą ekosystemu Java. DOKUMENTACJA!!! Zaśmiecona i nieprzydatna dokumentacja na stronie internetowej Oracle wygląda na głupią i przestarzałą na poziomie z 2007 roku. Nie zawsze zawiera przykłady kodu. Jeśli zaczniesz szukać stosunkowo nietypowej funkcji lub metody API, znajdziesz nudną definicję, deklarację, argumenty, do jakiego pakietu ona należy - i tyle. Myślę, że to absurd. Nie uważacie, że to absurd? Brak fragmentów kodu? Dlatego my, programiści, musimy w dużym stopniu polegać na forach takich jak StackOverflow lub innych witrynach programistycznych, takich jak TutorialsPoint... Czasami są one naprawdę pomocne, podając dobre przykłady kodu pokazujące tę funkcję, ale innym razem nie są one zbyt przydatne. Polecam porównanie dokumentacji Microsoftu w C# z dokumentacją Oracle w Javie... Niebo i ziemia! Nie wierzysz mi? Idź i sprawdź: Oracle i Microsoft. Dokumentacja na stronie Microsoftu wygląda pięknie! Mają nawet tryb ciemny! My, programiści, szalejemy na punkcie trybu ciemnego. A co z dokumentacją Oracle? Jak mówiłem, w 2007 r. Może wtedy nie było trybu ciemnego? Chcę więc powiedzieć, że Java jest niesamowita! Jednak język ten bardzo cierpi z powodu przestarzałej dokumentacji. Są to głównie stare dokumenty i stare podręczniki, które nie podkreślają tak bardzo potrzebnych nowych funkcji, takich jak wątki, zmienne i wyliczenia. Obecnie ludzie mówią, że Java zaczyna być przestarzała i zostanie zastąpiona przez Kotlina, ale ja się z tym nie zgadzam. Bo nawet jeśli to prawda, to długo jej nie zastąpi. To zajmie wiele, wiele lat. Pamiętacie, że Scala też próbowała to zastąpić? Co z tego wynikło? Java nadal rządzi całym ekosystemem JVM. Chociaż przyznaję, że Scala bardzo różni się od Javy, przede wszystkim funkcjonalnością. A teraz nareszcie... jeszcze jedna rzecz, która wywołuje we mnie więcej emocji niż cokolwiek innego w świecie Java. To jest uzyskanie JDK. Dlaczego tak trudno jest pobrać JDK? Mam na myśli to, że jeśli potrzebuję JDK, prosta wyszukiwarka Google wskaże mi witrynę Oracle, wchodzę tam i znajduję potrzebną wersję JDK. Jak dotąd wszystko jest stosunkowo łatwe, ale aby to pobrać, muszę się zarejestrować. Dlaczego miałbym utworzyć konto w Oracle, a następnie co tydzień zajmować się ich pocztą e-mail, zamiast po prostu pobierać pakiet JDK? Pamiętaj, że Java jest oprogramowaniem typu open source od pierwszego dnia! W przeciwieństwie do języka C#, który dopiero niedawno stał się oprogramowaniem typu open source, w 2015 r. Więc jestem już sfrustrowany i przechodzę na drugą stronę w wynikach wyszukiwania Google. Wskazuje mi stronę OpenJDK. Znajduję tam JDK i klikam „pobierz”. Ale (niespodzianka!) udostępniają linki do implementacji JDK z innych stron! Wśród stron jest ta przeklęta Oracle, ale jest też link do strony Red Hata. Tak, Red Hat jest świetny, jest jednym z pionierów firm open source na świecie. OK, idę na ich stronę internetową! Ściągnę to stamtąd! Klikam ten link, znajduję wersję JDK, której szukam, i wiecie co? Ja też muszę się tam zarejestrować... (dramatyczna pauza) To jest po prostu smutne... Pieprzyć to! Co jest nie tak z tymi ludźmi? W końcu poddaję się i instaluję Chocolatey (to coś w rodzaju apt-get, ale dla Windows. Myślę, że to pierwszy szeroko rozpowszechniony i używany menedżer pakietów dla Windows). Więc po tym wszystkim muszę napisać proste polecenie w PowerShellu, takie jak: choco install jdk-1.8. I robię to! (jeśli jesteś programistą C#, wiesz, jak łatwo jest uzyskać .Net SDK za pomocą zaledwie 2-3 kliknięć, bez rejestracji lub czegoś podobnego). Podsumowując moją długą tyradę: Java to świetny język programowania. Jest piękny, niezawodny i ma (moim zdaniem) najlepsze IDE na świecie - dobrze znaną IntelliJ IDEA od JetBrains. Dodatkowo Java ma bardzo pomocną społeczność oraz duży i zróżnicowany ekosystem. I mówię to - programista C#... Ale musimy zaktualizować dokumentację. Przykłady kodu. API. Musimy ułatwić zdobycie JDK. Ogólnie rzecz biorąc, Java zmierza we właściwym kierunku, jej popularność mogła ostatnio nieco ucierpieć, ale to nie sprawi, że Java zniknie. Od wielu lat znajduje się na szczycie list najlepszych języków świata! Cały czas korzystam z języka Java i nadal będę to robić w przyszłości.

Trzy nowe narzędzia Java do rozważenia w 2021 r

Źródło: OpenSource Pomimo popularności Pythona, Go i Node.js, które w ostatnich latach są aktywnie wykorzystywane do realizacji projektów związanych ze sztuczną inteligencją, uczeniem maszynowym i Kubernetesem, technologie Java w dalszym ciągu odgrywają kluczową rolę w rozwoju aplikacji korporacyjnych. Według Developer Economics w trzecim kwartale 2020 roku na całym świecie było 8 milionów programistów Java dla przedsiębiorstw. Przerwa kawowa #68.  Szczera opinia o Javie i jej ekosystemie.  Trzy nowe narzędzia Java do rozważenia w 2021 r. - 2Język programowania Java istnieje już od ponad 25 lat i jest stale aktualizowany. Pojawiają się nowe narzędzia i struktury, które mogą wzmocnić Twoje aplikacje i karierę. Zdecydowana większość platform Java została stworzona w celu implementacji długotrwałych procesów o dynamicznym zachowaniu, zaprojektowanych do działania na serwerze lub maszynach wirtualnych. Zmieniło się to w 2014 roku wraz z pojawieniem się kontenerów Kubernetes. Obecnie największymi wyzwaniami związanymi z uruchamianiem Java na platformie Kubernetes są: optymalizacja wydajności aplikacji poprzez zmniejszenie zużycia pamięci, przyspieszenie czasu uruchamiania i reakcji oraz zmniejszenie rozmiaru plików.

Trzy nowe frameworki i narzędzia Java

Programiści Java zawsze szukają najprostszych sposobów integracji popularnych narzędzi i projektów open source ze swoimi aplikacjami Java. Nowe, wysokowydajne narzędzia znacznie zwiększają produktywność programowania i zachęcają więcej firm i indywidualnych programistów do korzystania ze stosu Java. Dzisiaj porozmawiamy o trzech nowych frameworkach i narzędziach Java:

Kwarc

Quarkus jest przeznaczony do tworzenia mikrousług w chmurze i aplikacji bezserwerowych. Charakteryzuje się krótkim czasem uruchamiania, małym rozmiarem zestawu rezydentnego (RSS) i dużą gęstością pamięci na platformach orkiestracji kontenerów, takich jak Kubernetes. Według dziewiątego rocznego raportu JRebel, wykorzystanie Quarkus wśród programistów Java wzrosło o 6% (mniej niż 1% rok wcześniej). Micronaut i Vert.x wzrosły odpowiednio do 4% i 2% (w zeszłym roku - o ok. 1%).

Zaćmienie JKube

Dzięki Eclipse JKube programiści Java tworzą obrazy kontenerów w oparciu o aplikacje Java oparte na chmurze, korzystając ze strategii kompilacji Docker, Jib lub Source-To-Image. Narzędzie generuje także manifesty Kubernetes i OpenShift w czasie kompilacji i usprawnia działanie narzędzi do debugowania, monitorowania i rejestrowania.

Mikroprofil

MicroProfile rozwiązuje problemy związane z optymalizacją architektury korporacyjnej mikroserwisów Java bez konieczności wprowadzania nowych frameworków czy refaktoryzacji całych aplikacji. Ponadto specyfikacje MicroProfile (np. Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) nadal ewoluują zgodnie z implementacją Jakarta EE.

Wniosek

Trudno powiedzieć, które frameworki lub narzędzia Java są najlepsze dla programistów Java dla przedsiębiorstw. Dopóki istnieją możliwości ulepszenia stosu Java i przyspieszenia rozwoju przedsiębiorstw, możemy spodziewać się pojawienia się nowych frameworków, narzędzi i platform. Sprawdź je i przekonaj się, czy mogą ulepszyć Twoje aplikacje Java w 2021 roku.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION