Folgen

"Die Server-Software ist in Java geschrieben und wird mit Apache Maven verwaltet. [...] Auf einem Server installiert wird das Corona-Warn-Backend als Docker-Image."

Ahhhhhhhhh! /o\ Immerhin benutzen sie PostgreSQL als Datenabank. Aber ahhhh /o\
Ich denk die wollen Performance? Warum schreiben sie es nicht in Erlang oder so?

heise.de/newsticker/meldung/Co

@clerie weil kein Mensch Erlang kennt oder kann.

Java lernt halt jeder Dulli...

Man will ja dass es von vielen getragen werden kann. und nicht an einigen wenigen scheitert.

Und außerdem kann Java schon auch performant geschrieben sein... so wie man Erlang auch beschissen schreiben kann...

@clerie Es geht nicht darum performant zu schreiben, sondern skalierbar. Das geht in quasi allen Sprachen, wenn man es vernünftig macht. Kommt ein Load-Balancer davor und dann kannst du halt nodes hoch fahren.

@clerie
Ich will Java nicht in Schutz nehmen, aber die JVM ist eine gute, performante Plattform für Server Anwendungen. Natürlich wäre der Code in Scala, clojure oder Kotlin vermutlich eleganter, für Java ist es aber am einfachsten, Entwickler zu finden. Server Anwendungen auf der JVM sind in den meisten Benchmarks konkurrenzfähig zu anderen Plattformen.

@vbrandl
Dass Java doch irgendwie ganz performant sein soll, habe ich auch schon öfter gehört. Aber Java ist für mich immer noch der RAM-Fresser schlecht hin und wenn ich dran denke, wie viele Erlang-Klumpen ich mit den selben Ressourcen mit wesentlich mehr Durchsatz betreiben kann, kann ich sie in der Hinsicht nicht verstehen. Dass es billige Devs gibt hingegen schon. Aber anscheinend hat sich niemand so richtig Gedanken um die Betriebskosten später gemacht.

@clerie
Der (mehr oder weniger einmalige) overhead der JVM fällt bei wenigen connections ins Gewicht. Wenn dein Server ausgelastet ist, ist der Speicherverbrauch pro connection aber akzeptabel. Not good, but not terribly bad.
Man darf natürlich nicht mit manuellem memory management (Rust, C, C++) vergleichen, im Vergleich mit anderen GC Sprachen ist es aber akzeptabel.
Java wird dieses Jahr 25 Jahre alt. Der JIT Compiler wurde also 25 Jahre optimiert und getweakt. Das ist nicht zu unterschätzen.

@clerie
Dass Erlang/BEAM ggf. schneller sind und weniger RAM brauchen glaube ich gerne.
In dieser speziellen Situation ist time to market aber wichtiger als performance.
Und in der Theorie wird die App ja nur für absehbare Zeit benötigt. Ob man jetzt für 1-2 Jahre ein paar GB mehr RAM braucht fällt nicht so stark ins Gewicht.
Außerdem kann man mir der Graal VM native Binaries bauen und den Speicherverbrauch reduzieren, sollte das zum Problem werden.

@clerie
Ich will eigentlich nur sagen: Kritik an Java aus sprechtheoretischer Sicht ist gerechtfertigt (verbose, implizite null Referenzen, what ever)
Die JVM an sich ist aber nicht zwingend eine schlechte Wahl: battle tested, ausgearbeitetes Tooling für debugging, deployment, großes und brauchbares ecosystem für alle möglichen Probleme ist alles schon da.

Melde dich an, um an der Konversation teilzuhaben
fem.social

Eine Mastodon-Instanz gehostet im Thüringer Wald von FeM e.V.