Wpis z mikrobloga

@Krolik:

Ok, wszystko fajnie, a kiedy wreszcie nie będzie zamulać?


Nie zamula od 1997 kiedy wprowadzono JIT

@mcnight95

ktoś jeszcze tego używa przy nowych projektach? xD


No tak mniej więcej większość firm o skali internetowej. Oprócz tego w Javie i innych językach na JVM pisze się soft, który jest niezbędny do działania tego typu systemów, np. Kafka, Hadoop, Spark, Cassandra, Elastisearch, Flink, Solr itd wszystko korzysta z JVM

@Werdna

No ce
@LazyInitializationException: Nie są szybsze. Te mikrobenchmarki Techempower nie mają nic wspólnego z wydajnością w realnym świecie.

JaVa NiEUmIe PrOsTyCh PęTli FoR na SsE/AvX


SSE to był tylko pierwszy z brzegu przykład. Ten JIT (a dokładniej HotSpot, bo Java formalnie nie ma JITa) na który tak się powołujesz ma siłę optymalizacji mniej więcej taką jak GCC 2.x z okolic roku 2000 w trybie -O2. Tak ze 20 lat do tyłu względem współczesnych
@LazyInitializationException: Tak, bo firmy nigdy nie polegają na hajpie i reklamie, a Sun/Oracle nigdy nie wciskał Javy do płatków śniadaniowych.

Tak się składa że jestem częścią teamu jednego z tych projektów które wymieniłeś. Gdyby można było zacząć od nowa, to nigdy nie zostałaby wybrana Java. Ale nikt nie przepisze miliona linii kodu, więc tak to się kręci.

Topowe firmy na świecie zarabiające miliardy dolarów nie wiedzą co robią.


Zabawne jest, że
Ale nikt nie przepisze miliona linii kodu, więc tak to się kręci.


@Krolik: Zazwyczaj nie trzeba nic przepisywać. Wystarczy kompatybilność z interfejsami. Jest np. Redpanda, który jest kompatybilny z Kafką.

Zabawne jest, że wymieniłeś kilka firm, które zaczęły development swoich produktów ponad dekadę temu (w tym Hadoop - to już dinozaur) i te dla Ciebie są autorytetem a inne, znacznie większe robiące *nowsze* produkty o znacznie większej skali już nie. Do
Pewne rzeczy się implementuje w językach bliższych hardware'owi i dobrze o tym wiesz.


@LazyInitializationException: dotyczy to w szczególności systemów baz danych czyli właśnie systemów, które wymieniłeś.

Wybór Javy do budowy systemu baz danych albo systemu kolejkowego jest receptą na to aby taki system był ograniczony wydajnością CPU a nie we/wy. Właśnie dlatego że Java zamula.

Zobacz co Redpanda ma w podtytule projektu:

Redpanda is a streaming data platform for developers. Kafka
@LazyInitializationException:

Kafka, Hadoop, Spark, Cassandra, Elastisearch, Flink


Oprócz Sparka, to w każdej dużej firmie w której pracowałem wycofywano się z używania tych technologii, albo to rozważano. Istniało to tylko ze względu że zaczęto tego używać dawno temu i nie tak łatwo się z tego wyplątać.
@mcnight95: W każdej dużej firmie w której pracowałem to aktywnie korzystano z tych technologii i nikt nie myślał o wycofywaniu się z nich. No ale może nie były to wystarczająco duże firmy, przychody miały w okolicach 20 mld eur rocznie. Ciekawy jestem czym rozważano by zastąpić Kafkę, Sparka, Flinka i Elasticsearch?
@LazyInitializationException: Kafke można zastąpić przez RedPanda, Elastic przez MeiliSearch, Cassandre przez Datastax Astra (w chmurze) lub Scylle a Sparka/Hadoopa na ogół można zastąpić jednym prostym programem w C działającym na 5-letnim kompie, a zdarza się że i Excel daje radę. Widziałem duże i bardzo poważne firmy używające Sparka do analizy 100 GB danych gdzie czas wykonania analizy szedł w dni (tymczasem cały dataset można było zmieścić na jednym SSD i przetworzyć
Kafke można zastąpić przez RedPanda


@Krolik: No nie można właśnie, bo RedPanda to nie jest reimplementacja kafki w C++ tylko to inny broker mający kompatybilne API. RedPanda ma gorszą, restrykcyjną licencję. Jest zoptymalizowany do innego rodzaju obciążenia i w wielu przypadkach Kafka jest po prostu szybsza https://jack-vanlightly.com/blog/2023/5/15/kafka-vs-redpanda-performance-do-the-claims-add-up

Zaawansowane funkcje typu tiered stoarage wymagają płatnej licencji. Replikacja w RedPanda jest gorsza. W Kafce replikacja jest asynchroniczna i ma wbudowany mechanizm odzyskiwania i