1. Foren
  2. Kommentare
  3. Software-Entwicklung
  4. Alle Kommentare zum Artikel
  5. › Java: Nicht die Bohne…

Popularität hat andere Gründe

Am 17. Juli erscheint Ghost of Tsushima; Assassin's Creed Valhalla und Watch Dogs Legions konnten wir auch gerade länger anspielen - Anlass genug, um über Actionspiele, neue Games und die Next-Gen-Konsolen zu sprechen! Unser Chef-Abenteurer Peter Steinlechner stellt sich einer neuen Challenge: euren Fragen.
Er wird sie am 16. Juli von 14 Uhr bis 16 Uhr beantworten.
  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


  1. Popularität hat andere Gründe

    Autor: Wulf 26.05.20 - 12:26

    Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C) und die Programmierung ist umständlich (im Vergleich zu Python). Gerade in den Anfangsjahren, vor JIT-Zeiten, war es auch ziemlich langsam. Auch heutzutage dürfte ein sorgfältig geschriebenes C-Programm mit aktuellem Compiler Java immer in Punkto Tempo+Speicherbedarf schlagen.

    Aus meiner Sicht waren zwei Entscheidende Gründe, wie sich Java überhaupt so stark verbreiten konnte:
    * Sponsoring: Als ich Anfang der 2000er an die Uni gekommen bin, hatten wir da überall brandneue Sun-Sparcs stehen, und in den Lehrplänen war Java etabliert worden. In einer Vorlesung war auf einer alten Folie noch irgendwas mit C, die hat der Prof ganz schnell und kommentarlos weggeklickt. C wurde totgeschwiegen. Ich vermute das hatte was mit der Hardware zu tun, die von Sun dahingestellt wurde. Und wenn an den Unis Java gelehrt wird, ist klar, dass auch die Firmen umsteigen, weil man plötzlich viele Entwickler auf dem Markt hat, die Java können.
    * Java-Plugin im Browser: Plötzlich konnte man aktiven Code auf Webseiten packen, das ging aber nur mit Java bzw. mit dem damals noch vollkommen untauglichen javascript. Auch und gerade deshalb haben java+javascript die heutige Verbreitung erreicht. Hätte es stattdessen ein Erlang-Browserplugin gegeben, dann würde heute niemand mehr über Java reden, dann würden wir alle Erlang machen. (Ersetze Erlang durch irgendeine andere Sprache)

  2. Re: Popularität hat andere Gründe

    Autor: SchrubbelDrubbel 26.05.20 - 12:41

    Wulf schrieb:
    --------------------------------------------------------------------------------

    > Aus meiner Sicht waren zwei Entscheidende Gründe, wie sich Java überhaupt
    > so stark verbreiten konnte:
    > * Sponsoring:
    > * Java-Plugin im Browser

    Eben, und jetzt geht das ganze rückwärts. Sunhardware spielt keine Rolle mehr und JRE ist aus den Browsern geflogen.
    Java ist genau so ein Übel wie Flash und Silverlight.

  3. Re: Popularität hat andere Gründe

    Autor: \pub\bash0r 26.05.20 - 12:52

    Ich glaube nicht, dass es so "einfach" ist. Java hat mMn auch viel durch die Lehrbuch-OOP Implementierung gepunktet. Somit war das für die Lehre interessant.
    Code zu haben, den du zwischen verschiedenen Geräten teilen kannst - besonders JavaME - war jetzt auch nicht gerade irrelevant. In dem Bereich ist es ja auch heute noch verbreitet (SIM Karten ...).

    Die JVM ist schon beeindruckend. Man sehe sich nur die Benchmarks an. Allerdings sind ihre Eigenschaften nicht sonderlich optimal für Kubernetes & Co. Dran wiederum wird aber mit AOT Compiling in Form der GraalVM/SubstrateVM gearbeitet.

    Auch die Entwicklungswerkzeuge sind erstklassig. Es gibt nicht viele Sprachen/Frameworks, bei denen man sich unproblematisch an eine Live-Instanz ranhängen und debuggen kann. Die JVM bringt halt schon ziemlich viel in einem Paket mit.

    Persönlich bevorzuge ich Sprachen, die von vornherein nativ kompilieren auch mehr, aber ich streite nicht ab, dass die JVM und ihr Tooling Umfeld Charme hat.

  4. Re: Popularität hat andere Gründe

    Autor: Gundel Gaukeley 26.05.20 - 12:53

    Sehe ich anders. Über Sponsoring an Unis kann ich wenig sagen, zu meiner Zeit war noch C die Sprache der Wahl. C ist eine hardwarnahe Sprache, wenn man Softwareparadigmen lehren möchte, dann ist eine hardwarenahe Sprache das falsche Pferd. Pascal war aus diesem Grund mal eine Weile populär, danach ein wenig Modula-2 oder Oberon, da die alle aus dem universitären Bereich kamen. Als Java kam war das für die damalige Zeit ideal, es war High-level genug, trotzdem syntaktisch nicht weit von C entfernt.

    Das mit Java im Browser war damals tatsächlich eine interessante Sache und zusammen mit der Plattformunabhängigkeit waren das zwei Gründe, warum Java - zumindest bei den Projekten, an denen ich damals Ende der 90er beteiligt war - zum Zug kam.

    Kotlin gefällt mir persönlich viel besser. An Java hat mich immer die Geschwätzigkeit gestört. Bin dann auf Scala gestoßen, das fand ich super - bis auf die Tatsache, dass es bockschwer zu durchschauen ist. Kotlin ist eine Melange aus beiden und das würde ich heute verwenden, wenn ich nicht schon auf was anderes umgestiegen wäre.

  5. Re: Popularität hat andere Gründe

    Autor: MancusNemo 26.05.20 - 13:01

    Als Basis zum allgemeinen Lernen von Programmiersprachen hat es sich durchgesetzt. Man schwört auf die Strenge Syntax. Auf C zu wechseln scheint keine Kunst zu sein, sondern soll wohl in 2 Wochen bis 6 Monaten erlernbar sein. Also warum nicht? Aber ja ansonsten spielt Java keine Rolle mehr, zumindest im Privatbereich, da ist Java bis auf ein paar Spezalprogramme von den Rechnern geflogen, weil es auch zu einfach dann war die Kiste zu infizieren, weil ein veraltets JRE installiert war u.a. Also JRE Portable machen oder nur für diese Anwendung erlauben und das Thema war dann auch schon vor ein paar Jahren gegessen... Jedenfalls im Privatgebrauch ist Java praktisch bis auf 2 Programme die ich kenne und machmal bei Kunden sehe ausgestorben.... Niemand ist mehr so irre und setzt (privat) auf Java... viel zu Lahm und Ram fressend.

    Das sich das für Smartphones noch nicht rumgesprochen hat wundert mich schon... aber gut man muss mit leben. Denn Android ist ein verkapptes Java. Damit lässt sich dann der Akku- und Ramhunger erklären... Eine Seuche die wir nie wieder los werden anscheint.

    Im Server und buissnesbereich mag das alles ganz anders aussehen.

  6. Re: Popularität hat andere Gründe

    Autor: CHU 26.05.20 - 13:08

    Wulf schrieb:
    --------------------------------------------------------------------------------
    > Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C) und die
    > Programmierung ist umständlich (im Vergleich zu Python).

    Ja, ein hoch optimierter C-Code ist sicher ein paar Prozente schneller. Aber da hast eben nur ein X11-UI unter Unix, oder MFC unter Windows, oder GTK unter Linux oder Cocoa unter Apple. Und du lernst 4 UI-Systeme in parallel. Oder geht es nur um's rechnen? Da nimmt man sowieso Fortran.

    Und wenn du wirklich so extrem zeitkritische Funktionen hast, kannst du die auch in C implementieren und per native call aufrufen.

    Und umständlich... das kommt ja auch auf die IDE drauf an. Ob ein Projekt aus 300 Klassen in java oder in Python übersichtlicher ist... schwer zu sagen. Java und Python vergleichen sich schon nicht so richtig, weil python erstmal dynamisch typisiert ist.

    > Gerade in den Anfangsjahren, vor JIT-Zeiten, war es auch ziemlich langsam. Auch
    > heutzutage dürfte ein sorgfältig geschriebenes C-Programm mit aktuellem
    > Compiler Java immer in Punkto Tempo+Speicherbedarf schlagen.

    Ja, Benchmarks laufen in Java langsamer... Aber reale Anwendungssituationen bestehen wahrscheinlich zu 90% auf warten was der User tut. Das Warten kann Java genau so schnell wie C.

    > Aus meiner Sicht waren zwei Entscheidende Gründe, wie sich Java überhaupt
    > so stark verbreiten konnte:
    > * Sponsoring: Als ich Anfang der 2000er an die Uni gekommen bin, hatten wir
    > da überall brandneue Sun-Sparcs stehen, und in den Lehrplänen war Java
    > etabliert worden. In einer Vorlesung war auf einer alten Folie noch
    > irgendwas mit C, die hat der Prof ganz schnell und kommentarlos
    > weggeklickt. C wurde totgeschwiegen. Ich vermute das hatte was mit der
    > Hardware zu tun, die von Sun dahingestellt wurde. Und wenn an den Unis Java
    > gelehrt wird, ist klar, dass auch die Firmen umsteigen, weil man plötzlich
    > viele Entwickler auf dem Markt hat, die Java können.

    Ich war damals einer der ersten an meiner Uni, der Java kannte. Ich wollte, nachdem ich Basic und Pascal schon kannte, endlich mal C lernen. Also Netscape aufgemacht und nach einem C-Compiler für Windows (daheim) und die Sparcs (Uni) gesucht. Gähnende Leere. Doku? Fehlanzeige. Nicht so Java. Kostenlos, umfangreiches Tutorial ("The Java Turorial", direkt von Sun geliefert, immer aktuell, keine irreführenden Fehler), Laufzeiten für alle Systeme, portable Programme, sogar mit UI. Einfach großartig.

    Und Lehre an der Uni... es geht nicht darum, make, precompiler, includes, linker und LD_PRELOAD bis in alle Kleinigkeiten zu verstehen. Es geht (in den Grundlagen) um die Konzepte des Algorithmierens, die Abblidung der Algorithmen in die Progammiersprachen verschiedener Paradima (OOP, Funktional, etc.pp.) und weiter Komplexität und Berechenbarkeit. Der ganze C-Schnickschnack ist da einfach nur überflüssiger Ballast.

    > * Java-Plugin im Browser: Plötzlich konnte man aktiven Code auf Webseiten
    > packen, das ging aber nur mit Java bzw. mit dem damals noch vollkommen
    > untauglichen javascript. Auch und gerade deshalb haben java+javascript die
    > heutige Verbreitung erreicht. Hätte es stattdessen ein Erlang-Browserplugin
    > gegeben, dann würde heute niemand mehr über Java reden, dann würden wir
    > alle Erlang machen. (Ersetze Erlang durch irgendeine andere Sprache)

    Tatsächlich gab es auch andere Browser-Plugins in der selben Zeit: Flash!
    Trotzdem hat bei komplexen Programmen (so sie denn im Browser laufen sollten) dann doch meistens Java gewonnen, weil man am Ende auch schnell aus einem Applet eine richtige Application machen konnte. (Ja, es gab auch einen standalone Flash-Player, der war aber noch seltener als das Erlang-Browserplugin.)

    Vor 25 Jahren war schon irgendwie klar, dass sich Computer immer weiter verbreiten werden. Doch der Markt war noch wesentlich bunter: MIPS, Sparc, PowerPC, SGI, Alpha, x86 (und das waren nur die CPUs!)
    Mit C war es der reinste Alptraum plattformübergreifend zu programmieren. Eine chaotische #ifdef-orgie.
    (Ja, es gibt Ansätze. Aber die sind irgendwann am Limit, weil es eben doch wieder nur Aufsätze sind.)

    Das "write once, run anywhere"-Versprechen, was Java gemacht hat, war für viele sicher ein großes Argument. Ein fertiges JAR-File funktioniert einfach. Eine exe ruft schlimmstenfalls (noch heute) nach einer fehlenden DLL.


    Ein wichtiger Grund, wieso sich Java so weit verbreitet hat, ist die überdurchschnittlich gute Doku (da kann eine pydoc nicht mithalten), bestenfalls die PHP-Doku reicht da noch halbwegs ran.

  7. Re: Popularität hat andere Gründe

    Autor: pythoneer 26.05.20 - 13:12

    Das Java Marketing von damals sucht bis heute seinesgleichen. Ich kann mich noch gut daran erinnern – so etwas hat man seit damals selten wieder gesehen. Ein wenig hat mich C#'s Marketing daran erinnern aber was Sun damals abgespult hat war schon besonders – gerade auch im Hinblick darauf, dass es Sun wirtschaftlich schon nicht mehr so gut ging. Und dann noch mal so viel Geld in die Hand zu nehmen um eine Programmiersprache zu pushen – schon beeindruckend.

    https://www.theregister.co.uk/2003/06/09/sun_preps_500m_java_brand/

  8. Re: Popularität hat andere Gründe

    Autor: AnMaPi 26.05.20 - 13:26

    Wulf schrieb:
    --------------------------------------------------------------------------------
    > Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C) und die
    > Programmierung ist umständlich (im Vergleich zu Python). Gerade in den
    > Anfangsjahren, vor JIT-Zeiten, war es auch ziemlich langsam. Auch
    > heutzutage dürfte ein sorgfältig geschriebenes C-Programm mit aktuellem
    > Compiler Java immer in Punkto Tempo+Speicherbedarf schlagen.

    Das C (und C++) schneller als Java ist, war nicht nur vor X Jahren so, sondern wird Prinzip bedingt immer so bleiben. Dabei spielt es fast keine Rolle ob man jetzt sorgfältiges oder schlampiges C schreibt (schlampiges dürfte sogar noch schneller sein, dafür aber ganz andere Probleme haben als die Performance ;))

    C (und C++), Java und Python haben miteinander eigentlich gar nichts zu tun. Alle drei bedienen völlig unterschiedliche Nischen (wohlgemerkt, jeweils sehr große Nischen :)). Die Kunst ist die richtige Sprache für das jeweilige Projekt einzusetzen oder bei größeren Projekten sinnvoll zu mischen.



    1 mal bearbeitet, zuletzt am 26.05.20 13:29 durch AnMaPi.

  9. Re: Popularität hat andere Gründe

    Autor: Wulf 26.05.20 - 13:26

    CHU schrieb:
    > Und du lernst 4 UI-Systeme in
    > parallel. Oder geht es nur um's rechnen? Da nimmt man sowieso Fortran.

    Desktop-Anwendungen in Java sind nicht mehr relevant. Java läuft im Backend, auf Telefonen und auf SmartCards, wovon Backends wohl mit Abstand das Wichtigste sein dürften. Ich prognostiziere, dass in 10 Jahren Java auf dem Mobiltelefon keine große Rolle mehr spielen wird. Aber Backend-Software lässt sich nicht mal eben so ersetzen, wie man an Cobol sieht.

    Die einzige Java-Desktop-Anwendung die ich nutze ist JOSM (OpenStreetmapEditor), und läuft auch tatsächlich stabil und schnell.


    > Und wenn du wirklich so extrem zeitkritische Funktionen hast, kannst du die
    > auch in C implementieren und per native call aufrufen.

    Könnte man, aber glaube nicht, dass das viel getan wird.

    > Ja, Benchmarks laufen in Java langsamer... Aber reale Anwendungssituationen
    > bestehen wahrscheinlich zu 90% auf warten was der User tut. Das Warten kann
    > Java genau so schnell wie C.

    Siehe oben: Java läuft im Backend.

    Ich betreue eine Backend-Anwendung, die als Microservice in Docker läuft. Insgesamt so 12 Gigabyte RAM-Bedarf
    für die ganzen java-VMs.
    Würde man das resourcensparend programmieren, wäre kein Server für 5k¤ nötig der auch noch paar viel Strom zieht (Klima!), sondern es würde auch auf einem raspberry pi laufen.
    Und von diesen Servern gibt's über 100. Man hätte eine halbe Million Euros an Hardwarekosten sparen können und stattdessen mehr Entwickler bezahlen können.

  10. Re: Popularität hat andere Gründe

    Autor: captain_spaulding 26.05.20 - 14:23

    Wulf schrieb:
    --------------------------------------------------------------------------------
    > Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C)

    Java mit C zu vergleichen ergibt wenig Sinn.
    C ist für Java-Domänen wie Web-Backend eben überhaupt nicht geeignet, da kann es so schnell sein wie es will. Da braucht man eine sicherere Sprache und da sind die Alternativen zu Java eher C#, Go, Rust. Und die letzteren sind noch zu neu.
    C ist eigentlich nur noch für hardwarenahe Programmierung interessant, für alles andere zu unsicher.

  11. Re: Popularität hat andere Gründe

    Autor: wasdeeh 26.05.20 - 14:24

    MancusNemo schrieb:
    --------------------------------------------------------------------------------
    > Als Basis zum allgemeinen Lernen von Programmiersprachen hat es sich
    > durchgesetzt.

    Lauter alte Säcke hier. :)

    Sorry, aber da wurde es in weiten Teilen schon längst von Python (und leider immer öfter JS) abgelöst.

  12. Re: Popularität hat andere Gründe

    Autor: Dino13 26.05.20 - 14:28

    Wulf schrieb:
    --------------------------------------------------------------------------------
    > Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C) und die
    > Programmierung ist umständlich (im Vergleich zu Python). Gerade in den
    > Anfangsjahren, vor JIT-Zeiten, war es auch ziemlich langsam. Auch
    > heutzutage dürfte ein sorgfältig geschriebenes C-Programm mit aktuellem
    > Compiler Java immer in Punkto Tempo+Speicherbedarf schlagen.
    >
    > Aus meiner Sicht waren zwei Entscheidende Gründe, wie sich Java überhaupt
    > so stark verbreiten konnte:
    > * Sponsoring: Als ich Anfang der 2000er an die Uni gekommen bin, hatten wir
    > da überall brandneue Sun-Sparcs stehen, und in den Lehrplänen war Java
    > etabliert worden. In einer Vorlesung war auf einer alten Folie noch
    > irgendwas mit C, die hat der Prof ganz schnell und kommentarlos
    > weggeklickt. C wurde totgeschwiegen. Ich vermute das hatte was mit der
    > Hardware zu tun, die von Sun dahingestellt wurde. Und wenn an den Unis Java
    > gelehrt wird, ist klar, dass auch die Firmen umsteigen, weil man plötzlich
    > viele Entwickler auf dem Markt hat, die Java können.
    > * Java-Plugin im Browser: Plötzlich konnte man aktiven Code auf Webseiten
    > packen, das ging aber nur mit Java bzw. mit dem damals noch vollkommen
    > untauglichen javascript. Auch und gerade deshalb haben java+javascript die
    > heutige Verbreitung erreicht. Hätte es stattdessen ein Erlang-Browserplugin
    > gegeben, dann würde heute niemand mehr über Java reden, dann würden wir
    > alle Erlang machen. (Ersetze Erlang durch irgendeine andere Sprache)

    Das Problem mit deinem Kommentar ist dass du anfängst Java eine Objektorientierte Programmiersprache mit C einer Prozeduralsprache zu vergleichen. Ich finde es furchtbar wenn Menschen glauben dass sie jedes Problem mit dem gleichen Tool lösen können. Know your tools.
    Zu deinem Prof, es ist an der Uni eh schon schwer die erste Programmiersprache richtig zu lernen und dann soll man die Konzepte von zwei gänzlich unterschiedlichen Sprachen verstehen und verarbeiten?
    Und nein Erlang würden wir nicht verwenden denn das ist wiederum eine funktionale Programmiersprache. Aber das ganze zeigt wie wenig du wirklich davon verstehst.

  13. Re: Popularität hat andere Gründe

    Autor: Dino13 26.05.20 - 14:30

    captain_spaulding schrieb:
    --------------------------------------------------------------------------------
    > Java mit C zu vergleichen ergibt wenig Sinn.
    > C ist für Java-Domänen wie Web-Backend eben überhaupt nicht geeignet, da
    > kann es so schnell sein wie es will. Da braucht man eine sicherere Sprache
    > und da sind die Alternativen zu Java eher C#, Go, Rust. Und die letzteren
    > sind noch zu neu.
    > C ist eigentlich nur noch für hardwarenahe Programmierung interessant, für
    > alles andere zu unsicher.

    Wobei Go zB eine Sprache ist die explizit dafür geschaffen wurde um Nebenläufigkeiten so einfach wie möglich zu haben und dadurch effektiver eine große Menge an Daten zu verarbeiten. Mit der Sprache kann man natürlich viel mehr machen.

  14. Re: Popularität hat andere Gründe

    Autor: captain_spaulding 26.05.20 - 14:36

    Kann man schon vergleichen. Man kann auch in C Objektorientiert programmieren. Genauso in Java prozedural.
    Was soll das für eine Anforderung sein die sagt "wir brauchen unbedingt eine prozedurale Sprache"?

  15. Re: Popularität hat andere Gründe

    Autor: Dino13 26.05.20 - 14:43

    captain_spaulding schrieb:
    --------------------------------------------------------------------------------
    > Kann man schon vergleichen. Man kann auch in C Objektorientiert
    > programmieren. Genauso in Java prozedural.
    > Was soll das für eine Anforderung sein die sagt "wir brauchen unbedingt
    > eine prozedurale Sprache"?

    Also wie man mit C objektorientiert programmiert, darauf bin ich wirklich gespannt.

  16. Re: Popularität hat andere Gründe

    Autor: AnMaPi 26.05.20 - 14:53

    captain_spaulding schrieb:
    --------------------------------------------------------------------------------
    > Wulf schrieb:
    > ---------------------------------------------------------------------------
    > -----
    > > Java braucht viel zu viele Resourcen (z. B. im Vergleich zu C)
    >
    > Java mit C zu vergleichen ergibt wenig Sinn.
    > C ist für Java-Domänen wie Web-Backend eben überhaupt nicht geeignet, da
    > kann es so schnell sein wie es will. Da braucht man eine sicherere Sprache
    > und da sind die Alternativen zu Java eher C#, Go, Rust. Und die letzteren
    > sind noch zu neu.

    Rust würde ich hier nicht als Mitspieler in der "Java Domäne" nennen, damit tut man sich bei den typischen Anwendungsfällen überhaupt keinen Gefallen. Ich würde hier Kotlin noch mit aufführen (wobei auch das unter die Kategorie "zu neu") fällt.

    Rust ist eine Alternative zu C und C++ und den damit verbundenen Anwendungsfeldern.

    > C ist eigentlich nur noch für hardwarenahe Programmierung interessant, für
    > alles andere zu unsicher.

    Unsicher ist relativ, Du kannst davon ausgehen, dass sehr sehr viele Dinge in C und C++ entwickelt sind, die ein wesentlich größeres Schadenspotenzial haben, als das bei typischen Java Anwendungen der Fall ist.

    Sprich, Sicherheit ist hier nicht nur wichtig, sondern durchaus auch möglich zu erreichen. Gerade mit "Modernem C++" erübrigen sich viele Themen die gemeinhin als "Unsicher" gelten.

  17. Re: Popularität hat andere Gründe

    Autor: AnMaPi 26.05.20 - 15:02

    Es geht, die Frage ist nur, ob man das auch machen will. Ein Buch dazu:

    Object-oriented Programming in ANSI-C - Axel Schreiner

  18. Re: Popularität hat andere Gründe

    Autor: captain_spaulding 26.05.20 - 15:36

    AnMaPi schrieb:
    --------------------------------------------------------------------------------
    > Rust würde ich hier nicht als Mitspieler in der "Java Domäne" nennen, damit
    > tut man sich bei den typischen Anwendungsfällen überhaupt keinen Gefallen.
    Kommt drauf an wie hoch die Anforderungen an Sicherheit und Performance sind.

    > Rust ist eine Alternative zu C und C++ und den damit verbundenen
    > Anwendungsfeldern.
    Ja, das auch.

    > Unsicher ist relativ, Du kannst davon ausgehen, dass sehr sehr viele Dinge
    > in C und C++ entwickelt sind, die ein wesentlich größeres Schadenspotenzial
    > haben, als das bei typischen Java Anwendungen der Fall ist.
    Die meiste Software ist in C/C++ geschrieben, aber das liegt auch daran dass es keine besseren Alternativen gab als diese Software geschrieben wurde. Dass C trotzdem oft noch für sowas benutzt wird liegt an bodenständigen Argumenten wie:
    - Unsere Programmierer können nur C.
    - Die Codebasis ist schon C.
    - Es gibt kein MISRA für Rust.

    > Sprich, Sicherheit ist hier nicht nur wichtig, sondern durchaus auch
    > möglich zu erreichen. Gerade mit "Modernem C++" erübrigen sich viele Themen
    > die gemeinhin als "Unsicher" gelten.
    Das hört man schon seit Jahren. In der Praxis ist C/C++ Software voll von Buffer Overflows und Race Conditions.
    Es hat schon seinen Grund warum führende IT-Firmen Rust ausprobieren. Obwohl die sich eigentlich gute C-Programmierer leisten könnten...

  19. Re: Popularität hat andere Gründe

    Autor: Wulf 26.05.20 - 16:01

    Dino13 schrieb:
    --------------------------------------------------------------------------------
    > Also wie man mit C objektorientiert programmiert, darauf bin ich wirklich
    > gespannt.

    int main(void) {
    int x; /* x ist ein Objekt */
    }

    Soviel zur Kurzfassung, wenn man sich an die Definition von Objekten im C-Standard hält.

    Was man in C machen kann und was auch üblicherweise getan wird, ist mit Strukturen zu arbeiten. Und dann werden Funktionen definiert, die auf diesen Strukturen arbeiten:

    struct foo {
    int x;
    };
    void foo_add(struct foo *self, const struct foo *a) {
    self->x += a->x;
    }

    Nur weil der Aufruf dann foo_add(tmp, blubb); ist anstatt tmp.add(blubb); oder tmp += blubb;
    heißt das nicht, dass das nicht objektorientiert ist.


    In Wikipedia "Objektorientierte_Programmierung#Konzepte" (Ich darf keine Links posten...) stehen einige Dinge, die OOP bedeuten kann.
    Abstraktion: obiger Code benutzt Klassen.
    Datenkapselung: Pack die struct-Definition in einen privaten Header.
    Feedback: Kann man machen, wenn man unbedingt will.
    Persistenz: check.
    Polymorphie: Wird teilweise gemacht, z. B. indem als erstes Element der Struct der Typ steht.
    Vererbung: Das wird in C tatsächlich ziemlich hässlich.

    Es gibt sicher einen ganzen Haufen anderer Features, die man in C nur mit großen Schmerzen implementieren kann, z. B. Exceptions. aber das ändert nichts daran, dass C im Grunde eine objektorientierte Programmiersprache ist.

  20. Re: Popularität hat andere Gründe

    Autor: captain_spaulding 26.05.20 - 16:06

    Dino13 schrieb:
    --------------------------------------------------------------------------------
    > Also wie man mit C objektorientiert programmiert, darauf bin ich wirklich
    > gespannt.

    GObject ist z.B. objektorientiert und in C geschrieben:
    https://de.wikipedia.org/wiki/GObject

  1. Thema
  1. 1
  2. 2
  3. 3

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. Hays AG, Mannheim
  2. NOVO Data Solutions GmbH & Co. KG, Bamberg
  3. Continental AG, Hannover
  4. Allianz Deutschland AG, Stuttgart

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)


Haben wir etwas übersehen?

E-Mail an news@golem.de