W dniu dzisiejszym mamy dla Was trochę dywagacji o tym, jak w kwestii tego, co dzieje się na świecie wygląda sytuacja Kotlina. Oprócz tego – trochę o rekrutacji jako Java Dev do „największych”, a także o pierwszych proposalach do JDK 19.
1. Co dalej z Kotlinem?
Od tematów wojennych nie uciekniemy pewnie jeszcze długo – tym razem zaś padło na Kotlina.
JetBrains, jego twórcy, są czeską firmą, ale posiadającą masę powiązań z Rosją (od osoby założyciela, po wiele ważnych osób tam pracujących). W zeszłym zeszłym tygodniu firma wydała komunikat o całkowitym zatrzymaniu wszystkie prac R&D na terenie Rosji i fani Kotlina zaczęli się nieco denerwować. Nie jest tajemnicą, że nazwa języka pochodzi nie od ketchupu (hehe, takie śmieszne!), a od wyspy Kotlin, znajdującej się niedaleko Petersburga, a wielu z jego twórców (w tym BYŁY lead projektu, Andrey Breslav) jest Rosjanami. Nic więc dziwnego, że społeczność zaczęła się trochę denerwować.
Tak naprawdę na ten moment brakuje konkretnych ogłoszeń, ale JetBrains zapowiedziało już relokacje najważniejszych osób w firmie do siedziby głównej w Czechach. Sprint wygląda, jakby się im trochę wysypał, ale nawet na Githubie jakaś praca się ciągle odbywa. Należy też pamiętać, że nawet w wypadku objęcia JetBrains pełnym embargiem, Kotlin powinien się wywinąć. Aktualnie, pomimo faktu, że język jest w dalszym ciągu rozwijany głównie przez ludzi pracujących w JetBrains, to oficjalnie stoi za nim fundacja, w której zarządzie oprócz czechów zasiada także Google – był to dla nich warunek, aby rozważać uczynienie języka oficjalnym rozwiązaniem na potrzeby Androida, właśnie na wypadek wydarzeń których jesteśmy świadkami na świecie w tej chwili. W zarządzie miejsca są podzielone po równo (dwie osoby z Google, dwie osoby z JetBrains).
I to właśnie poziom inwestycji ze strony Google sprawia, że raczej o Kotlina można być spokojnym. Oczywiście, absolutnie nie sugeruje, że pod auspicjami samych JetBrainsów stałaby się mu krzywda, ale należy pamiętać, jak bardzo mocno uzależniony jest cały ekosystem Androida, najpopularniejszego języka operacyjnego na świecie, właśnie od Kotlina. Dodatkowo, ostatnio olbrzymie zasoby poszły do stworzenia Compose, alternatywnej metody tworzenia interfejsu użytkownika Androida, który jest całkowicie zależny od Kotlina i kompilatora Kotlin. Dodatkowo, oprócz Google również wiele wiele frameworków internetowych (Spring Boot, Micronaut, Quarkus) i asynchroniczne środowisko uruchomieniowe, takie jak vert.x, posiada wsparcie Kotlina.
Także jeśli gdziekolwiek zobaczycie pogłoski o śmierci, to trochę jak z Markiem Twainem – “pogłoski o jego śmierci są mocno przesadzone”. Słabszy ekosystem mógłby się wywrócić, ale na Androidzie 160 tys. aplikacji korzysta z Kotlina – jest to 22% wszystkich aplikacji. Dodatkowo, aż 50% wszystkich nowych apek już posiada komponenty Kotlinowe. Według mnie, najgorsze, co może językowi grozić, to taktyczny fork.
Źródło:
- JetBrains’ Statement on Ukraine
- https://youtrack.jetbrains.com/agiles/153-120/current
- Kotlin · GitHub
- Kotlin Contributors
- Kotlin – Android SDK statistics | AppBrain
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Jak wygląda rekrutacja na programistę Javy w FAANG?
Czy zastanawialiście się kiedyś, jak wygląda rekrutacja na programistę Javy do FAANGa (Facebook, Apple, Amazon, Netflix, Google)? Jeżeli tak, to na pewno zainteresuje Was fakt, że wątek ten poruszył jeden z użytkowników javowego subreddita /r/java, dzięki czemu rozpoczęła się dyskusja, która co prawda jest dość chaotyczna i śmieszkowa, ale przynosi sporo interesujących informacji.
Przykładowo, okazuje się (choć nie była to wiedza tajemna), że samo postawienie pytania jako “Jak wygląda rekrutacja programisty Javy do FAANG” jest ciut błędnie postawione – większość z firm nie rekrutuje pod jeden specjalny język, a raczej pod ogólną sprawność w kodowaniu (co samo w sobie jest tylko częścią całego procesu). Co ciekawe, z wypowiedzi wynika, że od tej reguły są wyjątki. Jeden z wypowiadających podzielił się wspomnieniami o tym, jak rekruterzy z Apple pytali go min. o jego znajomość Garbage Collectora czy zarządzania pamięcią w JVMie. Jak więc widać, nawet jeśli ogólną zasadą jest brak pytań specyficznych dla języka, to i od tej reguły są wyjątki.
Oczywiście, nie oznacza to, że na rekrutacji do największych nie przydaje się znajomość programowania, wręcz przeciwnie. O ile nie jest wymagana biegłość w konkretnym języku, o tyle w jakimś konkretnym powinniśmy dość dobrze “wymiatać”. Stąd też powtarzającą się poradę było “rozwiązuj zadania z Leet Code, poziom Medium/Hard” – rekruterzy w firmach BigTechowych koniecznie chcą zobaczyć, z jakimi problemami jesteś w stanie sobie poradzić.
Ogólnie, rekrutacja do Big Tech to temat rzeka, i jeżeli chcecie pociągnąć temat dalej, polecam bardzo publikację z bloga Pragmatic Engineer, która zbiera porady (i dodatkową lekturę) zarówno pod kątem kodowania na rekrutacji, jak i tak zwanego System Designu. A jeżeli dalej Wam będzie mało, to zapraszam do app.vived.io – treści dotyczące rozwoju kariery zawsze należały do najpopularniejszych u nas w appce i znajdziecie ich tam całkiem sporo.
Źródła
- Preparing for the Systems Design and Coding Interview – The Pragmatic Engineer
- https://www.reddit.com/r/java/comments/t83woj/faang_software_engineer_questions_with_java_what/
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Do JDK 19 (raczej) trafi wsparcie procesorów RISC-V
JDK 18 już za płotem, premiera w kolejnym tygodniu! Dlatego też już niedługo powinniśmy spodziewać się wysypu informacji o tym, co pojawić ma się w JDK 19 jesienią (jeżeli jakiejś jesieni należy się w ogóle spodziewać). Już teraz pojawiają się zresztą pierwsze proposale JEPów, które powinny trafić do tego wydania. W zeszłym tygodniu zapowiedziano min. że (prawdopodobnie, to proposal) zobaczymy w nim port JDK na procesory z rodziny RISC-V. Temat już kiedyś poruszaliśmy, ale teraz nareszcie pojawiły się konkrety, kiedy zobaczymy Javę na systemy Linux wspierającą tą architekturę procków – ETA (estimated time arrival) już tej jesieni.
Czym RISC-V nie jest gotowym procesorem, a raczej zbiorem modelem programowym procesora (z angielskiego ISA) opartego o filozofię dostarczania ściśle wyspecjalizowanego zestawu instrukcji (reduced instruction set computer – RISC właśnie). Cytując Wikipedię:
W kontraście do większości ISA, RISC-V może być swobodnie używany w dowolnym celu, umożliwiając każdemu projektowanie, produkcję i sprzedaż czipów i oprogramowania RISC-V. Chociaż nie jest pierwszą otwartą architekturą ISA ma duże znaczenie, ponieważ został zaprojektowany z myślą o nowoczesnych skomputeryzowanych urządzeniach, takich jak ogromne chmury obliczeniowe, wysokiej klasy telefony komórkowe i najmniejsze systemy wbudowane.
Sam z zainteresowaniem obserwuje RISC-V i mam nadzieje, że spełni ona pokładane w niej nadzieje. Jeśli chodzi o rynek procesorów, nie ma chyba bardziej gorącego tematu (no, może poza kolejnymi iteracjami M1).
Na razie to tyle jeśli chodzi o JDK 19, ale spodziewam się, że wraz z premierą Javy 18 uwaga społeczności skupi się właśnie na nadchodzących funkcjonalnościach.