W dniu dzisiejszym rządzi JetBrains – zarówno ciąg dalszy tematu The State of Developer Ecosystem 2021, jak i nowa wersja Intellij IDEA. A jako bonus – świetny, niedeprymujący zbiór materiałów dla mniej doświadczonych Javowców.
1. The State of Developer Ecosystem 2021 z punktu widzenia JVM
Przy okazji sobotniej edycji, miałem okazję przedstawić Wam ogólne wyniki The State of Developer Ecosystem 2021 – raportu, który powstał na podstawie ankiet przeprowadzonych w grupie ponad trzydziestu tysięcy programistów. W dzisiejszym przeglądzie postanowiłem wejść nieco głębiej, i zobaczyć jak prezentują się w nim Java, Scala oraz Kotlin. Okazało się bowiem, że każdy z języków miał swój własny zestaw pytań, a zebrane przez JetBrains dane przynoszą sporo interesujących liczb.
Polećmy klasyką i zacznijmy od Javy. Tutaj pobawię się i zrobię lekkie porównanie z niedawno przedstawianym przez nas raportem snyk.io, przyglądając się na ile oba źródła są zbieżne. Pierwszą różnicę można zauważyć już przy wykresie używanych wersji Javy – dane ze snyk.io sugerują sporo szybszą adopcje nowszych Javy (JDK 11 zdobył w nim 60%, w porównaniu do 42% w raporcie JetBrains). Z drugiej strony, twórcy Intellij wykazują większą o ponad dziesięć procent popularność Gradle (38% vs 49%). Ciekawe jest jednak, że według obu raportów popularność samego IDE jest w zasadzie identyczna, oscylując w okolicach ~75%. Pokazuje to dominację, jaką JetBrains zdobyło na tym rynku. W raporcie znajdziecie również sporo ciekawego w kontekście użycia poszczególnych bibliotek i frameworków.
Następnie przyglądnijmy się Kotlinowi. Pierwszym ciekawym aspektem, który z pewnością przyciąga uwagę, jest użycie tego języka na poszczególnych platformach. O ile początkowo kojarzył się on wyłącznie z Androidem, o tyle ostatnio coraz śmielej poczyna też sobie na backendzie. Już ponad połowa użytkowników Kotlina używa go do tworzenia aplikacji serwerowych, co robi wrażenie, ale nie można mówić tutaj o jakimś potężnym skoku. Z ciekawości sprawdziłem sobie poprzednią edycję raportu i wynika z niej, że 47 procent programistów przyznawało się do używania języka do tworzenia aplikacji webowych. Wzrost więc jest, ale ciężko mówić tu o jakimś olbrzymim skoku. Ciekawy jest też przegląd bibliotek, gdzie zdecydowanie rządzą oficjalne rozwinięcia biblioteki standardowej – kotlinx.courutines i kotlinx.serialization. Ankieta kotlinowa sprawia wrażenie nieco uboższej w detale w porównaniu do tej javowej – zwłaszcza w porównaniu do Kotlin Census, oficjalnego corocznego podsumowania rozwoju języka przygotowywanego przez JetBrains. Prawdopodobnie najciekawsze detale dostaniemy w jego edycji na rok 2021.
Ostatnim językiem, który załapał się do tegorocznego The State of Developer Ecosystem 2021 jest Scala. Ponownie jest w nim kilka ciekawych statystyk. które przyciągnęły nasze oczy. Według respondentów JetBrains w ekosystemie wciąż króluje ostatnie wydanie Scali 2 – 2.13 jest regularnie używana przez 61% respondentów, w porównaniu do 10%, którzy używają Scali 3 (aczkolwiek zakładam, że ta dopiero się rozpędza). Z pewnością niezwykłą popularnością cieszy się Akka – używa jej dokładnie połowa respondentów, zaś Spark i Cats zajmują odpowiednio drugie i trzecie miejsce (z wynikami 33 i 27%). Jednak to, co robi chyba największe wrażenie to przegląd IDE – aż 98%(!) programistów Scali deklaruje używanie narzędzia od JetBrains. Oczywiście, ankieta z pewnością jest w jakimś stopniu skrzywiona ze względu na fakt, że firmie po prostu łatwiej było dotrzeć do swoich własnych użytkowników.
A jak już o samym Intellij mowa…
Źródło
- The State of Developer Ecosystem in 2021 Infographic
- Kotlin Programming – The State of Developer Ecosystem in 2021 Infographic
- Java Programming – The State of Developer Ecosystem in 2021 Infographic
- Scala Programming – The State of Developer Ecosystem in 2021 Infographic
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Nowa wersja Intellij IDEA wraz z pluginem Scalowym i dużymi zmianami we wsparciu dla Kotlina
Jak widzieliśmy z ankiet stworzonych przez firmę produkującą Intellij IDEA, Intellij IDEA to najpopularniejsze IDE dla JVM, w zasadzie niezależnie od wybranego języka. Dlatego też korzystając z okazji, że w zeszłym tygodniu ukazała się jego najnowsza wersja, przyglądnijmy się temu, co ma ona do zaoferowania programistom.
Pomimo, że główną zapowiedzią releasu jest statyczna analiza całego projektu bez ówczesnej kompilacji całości, z mojej perspektywy jest to istotny, ale tylko kolejny dodatek do i tak już świetnie działającego silnika IDE. Rzeczą która szczególnie przykuła moją uwagę jest zaś… możliwość ustawienia konkretnych akcji podczas zapisu pliku. Jest to funkcja, którą przed laty używałem jeszcze w Eclipse, ale ze względu na sposób działania Intellij (automatycznie zapisującego każdy plik), twórcy bardzo długo się wzbraniali przed jego dodaniem (niech za historię haków i pluginów posłuży ten wątek StackOverflow). Nowa edycja przynosi też ulepszoną edycję Async profilera, a także lepsze zarządzanie zależnościami zarówno Mavena, jak i Gradle. Lepsze wsparcie dostały również Quarkus, Micronaut i Ktor, a fanom Jakarty EE udostępniono narzędzia ułatwiające migrację z projektów Java EE na jej otwartą edycję. Pomniejszych zmian jest oczywiście znacznie więcej, ale to już odsyłam zainteresowanych do pełnych Release Notes.
Nowa wersja IDE jest także kamieniem milowym, jeśli chodzi o sposób dostarczania nowych funkcji edytora dla Kotlina. Historycznie istniał specjalny plugin, który dostarczał wsparcie języka JetBrains dla wszystkich zainteresowanych. Firma postanowiła to jednak zmienić (co pewnie nie umknęło uwadze na
szych czytelników, bo wspominaliśmy o tym przy okazji przeglądu roadmapy języka). Wraz z edycją 2021.2, wsparcie Kotlina jest domyślnie dostarczane każdemu – i poza ulepszonym debuggerem i poprawkami związanymi z performance, jest to jedyna duża zmiana. Widać, że większość mocy przerobowych poszła w kierunku nowego cyklu releasowego, co pewnie jest dobrym ruchem ze strony twórców Intelli i tylko wzmocni pozycje ich języka na rynku (np. podgryzając Scalę).
Bo wiecie, co ciągle istnieje? Plugin do Scali. I on również otrzymał swoją kolejną edycję. Każdy, kto go zainstaluje w Intellij, automatycznie dostanie też wsparcie dla Kotlina w formie trojańskiego konia. Nie oznacza to jednak, że wspomniane rozszerzenie zostało potraktowane po macoszemu, co to to nie. Nowy Scala Plugin to bowiem lepsze wsparcie dla nowiutkiej Scali 3, ale też wygodniejsza integracja z sbt oraz możliwość użycia działającego w tle kompilatora języka w celu lepszego wykrywania błędów (bowiem system typów Scali okazuje się być czasem za skomplikowany dla analizatora Intellij)
Źródło
- IntelliJ IDEA Ultimate – the IDE for productive Spring development.
- Improved IDE Performance, Better Debugging Experience, and More for Kotlin in Latest IntelliJ IDEA | The Kotlin Blog
- IntelliJ Scala Plugin 2021.2 Is Out! | The Scala Plugin Blog
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Szukacie materiałów wprowadzających do Javy? Dzięki nam już nie musicie
Kojarzycie Awesome Lists? Jest to święcąca parę lat temu swoje tryumfy (choć ciągle niezwykle popularna) inicjatywa agregowania linków dotyczących konkretnego tematu w formie githubowgo repo, gdzie każdy może dodać PullRequesta ze zmianami. Tego typu listy stanowią zwykle świetny zbiór materiałów, aczkolwiek wiąże się z nimi pewien problem. Otóż o ile dla osoby, która ma już trochę doświadczenia i wie czego szuka, główne awesome-java jest nieocenionym ze względu na społecznościową kuracje źródeł, o tyle ktoś zaczynający przygodę z językiem lub też próbujący “wskoczyć” z bycia żółtodziobem na nieco wyższy poziom, widząc takie “ostateczne” źródło może być mocno przytłoczony.
Dlatego też, mimo że zdajemy sobie sprawę, iż nasz newsletter jest czytany raczej przez bardziej doświadczone osoby, to stwierdziliśmy, że warto podzielić się znaleziskiem, które odkryliśmy na dev.to. The Curated List of Ultimate Java Resources, bo tak się nazywa, raczej nie powinna być nazwana “Ultimate” – ale stanowi to raczej zaletę, a nie wadę. Stworzona bowiem została przez
Neha Soni, która obecnie jest stażystką w firmie FICO. Pewnie będą wśród nas buce (taka branża), którzy stwierdzą “czego można się nauczyć od interna”. Sugeruje jednak spojrzeć na tę listę z innej strony – ze względu na to, że stworzona ona została przez osobę z nieco mniejszym doświadczeniem, w odróżnieniu od wszelkich “awesomów” stanowi idealny punkt wejścia dla osób początkujących. Nie raz zadawane jest mi pytanie, jakie źródło poleciłbym osobie chcącej wejść w temat Javy. Od dzisiaj z czystym sumieniem podrzucał będę powyższego linka. Was też zachęcam do zapoznania się z nim – jest to ten typ materiału, który bardzo chciałbym dostać na początku kariery. Wierzę, że dzieląc się nim pomożecie niejednej osobie.
Źródło
- akullpp/awesome-java: A curated list of awesome frameworks, libraries and software for the Java programming language.
- The Curated List of Ultimate Java Resources
- awesome-list · GitHub Topics · GitHub
Pamiętajcie, żeby spróbować Vived, jeśli chcesz otrzymywać tego typu treści spersonalizowane pod Ciebie!