Interessante Berichte (keine News)

  • Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

    Netter Talk rund um invokedynamic, der schön erzählt

    • wie invocation auf der JVM funktioniert,
    • warum private Methoden nicht wie andere Methoden aufgerufen werden sondern wie Konstruktoren,
    • warum Inlining so wichtig ist,
    • warum man invokedynamic will selbst wenn man nicht JRuby nutzt, und
    • wie man die Mechanismen auch nutzen kann ohne Compilerbauer zu sein der von Hand Bytecode erzeugt.

    Einmal editiert, zuletzt von oreissig (7. April 2016 um 18:10)

  • Ist das schlimm, wenn ich von der Aufzählungsliste nur mit den Begriffen JVM, private Methoden und Konstruktor und Bytecode was anfangen kann bzw den Inhalt des Talks nicht kapiere?


  • Ist das schlimm, wenn ich von der Aufzählungsliste nur mit den Begriffen JVM, private Methoden und Konstruktor und Bytecode was anfangen kann bzw den Inhalt des Talks nicht kapiere?


    Wenn du mit den von dir genannten Begriffen was anfangen kannst, dann schau doch mal rein. Der erklärt den Rest eigentlich ganz gut. Ist selbst dann interessant wenn man selbst vielleicht nie in Java/für die JVM programmieren wird.

    Einmal editiert, zuletzt von oreissig (7. April 2016 um 18:24)


  • Ist das schlimm, wenn ich von der Aufzählungsliste nur mit den Begriffen JVM, private Methoden und Konstruktor und Bytecode was anfangen kann bzw den Inhalt des Talks nicht kapiere?


    Sagt halt das du von Entwicklung wenig bis keine Ahnung hast.



    Ich bin froh, dass ich keine JVM mehr einsetzen muss heutzutage, also ja.


    Warum sollte man heute keine JVM mehr einsetzen?

    Effiziente VM für verschiedene Sprachen. V8 ist auch nicht besser (eher sogar viel langsamer).

    Java, .NET, LLVM (clang) & co nutzen auch alle IR.

    die CLI-Programmevon Java mit ihrer antiken CLI-UX und völlig veraltete Software (gerne in Kombination mit Unfähigkeit [Verständnis, Überblick] von Ops) sind Probleme die heute noch verbreitet ist. Diese sind aber nicht das Problem einer Sprache sondern des Ökosystemes.

    Das Ökosystem hingegen von Java ist durchaus sehr erwachsen, relativ Businessorientert als auch „in einem guten Zustand“, was man von anderen Sprachen nicht behaupten kann.


  • Sagt halt das du von Entwicklung wenig bis keine Ahnung hast.

    Finde das bemerkenswert, wie schnell im WHF mal wieder Beleidigungen fallen, wenn jemand bestimmte Begriffe nicht einordnen kann.



    Warum sollte man heute keine JVM mehr einsetzen?

    Das Problem ist, dass Java-Programme langsam sind und sich optisch null in die Desktopumgebung integrieren. Das ist Java aus Endanwendersicht. Dass die Sprache da drunter ganz gut ist, bestreite ich doch gar nicht. Aus Endanwendersicht ist Java halt ne ruckelnde hässliche Oberfläche, die jede Menge RAM klaut. Dazu hat Java immer wieder Sicherheitslücken. Ich setze Java genau wie Flash nur ein, wenn es unbedingt notwendig ist. Auf dem Desktop ist das nunmal nen Relikt der 90er.

  • Die JVM ist halt ne echt gute Runtime für langlaufende Prozesse. Die Startupzeit kommt nicht gegen CRuby oder so an, aber dafür holt sie deutlich was an performance raus. Wenn man nicht gerade fefe ist und sämtliche Software in C schreibt ist die JVM so mit das beste was man serverseitig nehmen kann.

  • Also Cisco ASDM ist sowas von arschlahm auf einem Core i5 mit 8 GB RAM und sonst läuft nichts auf der Maschine. Kenne Java nur als Performance- und Sicherheitsproblem, eine andere Seite von Java durfte ich leider noch nicht kennen lernen.

  • Die 90er rufen an... Sie wollen ihre Vorurteile zurück.

    Leider nicht, ist immernoch so. Letztens mal JDownloader angetestet. Was musste ich sehen? Ruckelndes scrollen und eigene Dateiauswahldialoge statt den standardmäßigen meiner Desktopumgebung. Ist auch bei anderen Java-Programmen so. Am schlimmsten ist aber, dass mein gesetztes GTK- und QT-Theme gekonnt ignoriert ist und Java strikt sein eigenes Design durchdrückt. Null Integration. Und das soll die Zukunft sein?

  • Okay, mir ist gerade was eingefallen, wo Java gut funktioniert:
    Android und der ELK-Server (also Elastic Search, Logstash und Kibana), das funktioniert soweit vernünftig, dass man nicht fluchen muss, sobald man was damit zu tun hat.

  • Jaja, Java hat seine Zukunft nicht in GUI-Apps auf dem Desktop, das behauptet auch niemand. Da funktioniert auch die Prämisse "write once, run anywhere" einfach nicht, weil die GUIs spätestens mit ihren Paradigmen plattformabhängig sind.

    Und dass Applets Scheiße sind brauchen wir denke ich nicht zu diskutieren. Darum drehen sich in meiner Wahrnehmung die meisten Sicherheitsprobleme. Der Rest fällt in die Kategorie "Bytecode kann aus der JVM ausbrechen", was zwar Kacke ist, aber auch nicht schlimmer als wenn man stattdessen direkt nativen Code schreibt.



    Noch ein paar Worte zur Performance:

    C-Programme sind so schnell, weil sie komplett statisch zu nativem Code übersetzt werden und die Ausgangssprache vom Abstraktionsniveau mehr oder weniger dem entspricht, wie CPUs eh funktionieren. Das ist effizient und für manche Aufgaben notwendig, aber im Allgemeinen mehr Pain als Nutzen damit zu entwickeln.
    Schon C++ ist langsamer als nacksches C, weil man dort plötzlich dinge wie virtuelle Methodenaufrufe implementieren muss.

    Deswegen gibts so abgefahrene Sprachen wie Perl oder Ruby oder Python oder PHP, die dem Programmierer ganz andere Abstraktionen erlaufen. Keine davon lässt sich (ohne signifikante Einschränkungen) einfach so in ein natives Binary übersetzen, die brauchen ihre dynamische Runtime.

    Die einzige halbwegs hippe Sprache die überhaupt noch nativen Code erzeugt und dabei versucht vom Abstraktionsniveau merklich über C++ hinauszugehen ist Rust, und selbst die schaffen das nur indem sie die Semantik von vornherein krass einschränken.
    EDIT: gibt noch so paar funktionale Sachen wie Haskell, aber deren Durchbruch steht ja auch noch bevor *räusper*

    Die JVM ist eben auch eine Runtime. Ja die ist langsamer als gut optimierter C-Code, das ist aber nicht der Vergleich. Die Wettbewerber heißen Ruby MRI, (C)Python, HHVM, V8, etc. Da kann man die JVM immer noch dafür kritisieren, dass sie allein ne Sekunde zum starten braucht, während andere da 100x schneller sind. Das erkaufen sie sich aber typischerweise durch einen JIT Compiler, der schlechteren Code erzeugt. Von nix kommt nix.

    Also ja, wenn ihr Betriebssystemkernels oder 3D-Engines schreibt, nehmt C(++). Wenn ihr GUI-Apps bauen wollt, nehmt was auch immer eure Plattform euch vorschreibt (Objective-C, C#, Java/Dalvik). Wenn ihr ein besseres bash wollt für interaktive Benutzung in der Shell, nehmt Python. Für viele viele Szenarien ist die Performance der JVM aber verdammt gut.

    Einmal editiert, zuletzt von oreissig (7. April 2016 um 19:30)

  • Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Windows Subsystem for Linux Overview

    Sehr schöner, kurzer Überblick von Microsoft wie das WSL intern funktioniert. Wie schon klar war, handelt es sich um Kernel-Treiber die Linux System-Calls übersetzen oder implementieren (also nichts, was die OpenSource-Community hätte machen können). Interessantes Detail: Die Linux-Prozesse sind als Pico-Prozesse implementiert. Wer das nicht weiss, Pico-Prozesse sind eine Art Container (von bevor Container cool waren) aus Zeiten wo Microsoft mal Windows als Library-OS implementiert hat ("DrawBridge"), was auch unter Barrelfish lief. Kurzum: Das Windows Subsystem for Linux basiert in Teilen auf Technologie, die von damals stammt als Microsoft mal sein eigenes WINE geschrieben hat (das ist Verschwörungstheorie von mir, aber ich vermute dass die Drawbridge auch mal mit Linux haben laufen lassen, dass es mal auf Barrelfish lief ist öffentlich).

    Einmal editiert, zuletzt von gandro (24. April 2016 um 10:44)

  • PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!