#72 - 15.12.2021 godz. 18:00
#72 Bare metal Java
Java, a tak naprawdę JVM, cieszy się zasłużoną sławą platformy nieprzyjaznej dla sprzętu, a co za tym idzie, nikt poważny (oprócz Apache Kafka, Elastic, Cassandra i Neo4j) nie będzie budował baz danych, kolejek i innych rozwiązań gdzie „mechanical sympathy” jest kluczowe.
Garbage collector, spekulujący JIT, brak kontroli nad „object layout”, fatalne wsparcie (głównie przez brak abstrakcji) dla funkcji nowoczesnych procesorów i systemów operacyjnych. I do tego jeszcze JNI (kto tam był to wiem o czym mówię). O implementacji IO nawet przez szacunek do samych siebie, nie wspominam.
Celem tej prezentacji jest odczarowanie tych mitów i pokazanie jak wiele wysiłku ostatnio idzie ostatnio w uczynienie JVM bardziej przyjaznego dla sprzętu.
Będzie o API których są jeszcze w fazie inkubacji (choć niektóre jeszcze nie dojrzały do tego, a niektóre są już stabilne). API których, być może nigdy w życiu nie zobaczycie, a które będą w przyszłości stanowić fundament baz danych, czy kolejek.
Zaczniemy od Unsafe, by nadać rys historyczny. By potem pokazać, foreign memory access, czyli jak bezpiecznie pracować z pamięcią poza stertą oraz foreign functions interface, czyli jak wywołać C z Java (i w drugą stronę).
Wszystko polane sosem niedziałających przykładów i przekłamanych micro benchmarków i OpenJDK skompilowanego na pięć minut przed prezentacją.
ZAREJESTRUJ SIĘOd ponad 20 lat w branży IT, jako administrator baz danych, programista, architekt, manager i „inżynier od spraw katastrof”. Brałem udział w małych, średnich i nonsensownie dużych projektach, prowadzonych zgodnie zasadami „waterfall”, Agile oraz przy braku jakichkolwiek metodyk, z tym samym zawsze skutkiem. Co doprowadziło mnie do wniosku, że nieważne co robisz tak długo, jak robisz to dobrze, w najprostszy z możliwych sposobów i używasz właściwych narzędzi, które wykonają pracę za ciebie. W międzyczasie dałem się porwać ideą TDD oraz Software Craftmanship, do granic możliwości wyeksploatować tak piękne w swej prostocie pomysły jak REST i NoSQL, by potem porzucić je, by zgłębić tajniki „system thinking” i zachwycić się siłą jaką niesie z sobą „metafora” i odkryć, że rządzą nami te same prawa „natury”. Niepokorny wyznawca kościoła JVM, badacz bytecode’u i JIT oraz wszelkiej maści parserów, interpreterów i kompilatorów. Na co dzień walczący o lepszą wydajność w Neo4j. Od czasu do czasu można usłyszeć moje niskiej jakości żarty na temat architektury na konferencjach w Polsce. W wolnych chwilach trener w http://symentis.pl i autor bloga na http://geekyprimitives.wordpress.com/ oraz samozwańczy dyktator w radach programowych konferencji CoreDump, SegFault, JDD oraz 4Developers.
Nie zapomnij się zarejestrować!
ZAREJESTRUJ SIĘ