Böse Generizität



  • Moin,

    ich lese gerade auf einer Webseite [1]:

    Generizität für Java stößt bei vielen Programmierern auf Ablehnung. Der Grund ist C++. Die Art, wie Generizität in C++ mit dem Template-Mechnismus umgesetzt wird, ist berüchtigt für zahlreiche negative Eigenschaften.

    Öhm. Davon hatte ich vorher noch nie gehört. Nun gut, sicherlich ist die Implementierung der Generizität in C++ verbesserungswürdig (nobody’s perfect, after all) -- aber dieses vernichtende Urteil kann ich basierend auf meinem Wissensstand nicht so recht nachvollziehen. Das einzige, was ich in C++ vermisse, sind Constraints (Typenbeschränkungen -- oder gibt’s die etwa auch?).

    Könnte mir daher bitte jemand erklären, die "zahlreichen negativen Eigenschaften" erklären?
    ___
    [1] http://www.fh-wedel.de/~si/seminare/ws02/Ausarbeitung/1.genericjava/layout2.htm



  • Konrad Rudolph schrieb:

    Könnte mir daher bitte jemand erklären, die "zahlreichen negativen Eigenschaften" erklären?

    Die negative eigenschaft ist, dass Java es nicht hat. Deshalb muss es schlecht sein. Ist doch logisch, oder?

    Es gibt solche Hetzerei auch auf C++ seite über Java. Ignoriere soetwas.

    btw:

    Effizienz: GJ wird übersetzt, indem die Typinformation gelöscht wird. Keine parametrische Typinformation ist zur Laufzeit verfügbar. Der Code ist beinahe äquivalent zu Java Code der ohne Generizität arbeitet (d.h. auch genauso schnell bzw. langsam)

    Effizienz *lol*



  • Shade Of Mine schrieb:

    Konrad Rudolph schrieb:

    Könnte mir daher bitte jemand erklären, die "zahlreichen negativen Eigenschaften" erklären?

    Die negative eigenschaft ist, dass Java es nicht hat. Deshalb muss es schlecht sein. Ist doch logisch, oder?

    Es gibt solche Hetzerei auch auf C++ seite über Java. Ignoriere soetwas.

    Hmpf. Und da dachte ich, es sei wirklich etwas dahinter. War wohl naiv. 😉



  • Ach, die Seminare sind imho alle nicht so besonders, weder von den FH-Studenten noch von den IA-Schülern (zu denen ich auch gehöre) unserer FH/Schule. *ggg* (Hoffentlich liest das kein Dozent/Assistent und findet meinen Namen heraus *g*)
    Ne, aber ich halte manche Urteile (wobei ich das dort nicht als Urteil sehe, sondern als Feststellung, nachdem was recherchiert wurde) von einigen Studenten bzw. Schülern für etwas voreingenommen.
    2 Schüler haben in einem Seminar mal versucht die Unterschiede zwischen C#, Java und C++ darzustellen mitsamt Fazit. Ich habe von der Ausarbeitung nicht viel gehalten. Zumal die beteiligten Schüler wohl kaum alle 3 Sprachen konnten (bzw. die Bibliotheken gut genug kannten).

    Vellas



  • Das einzige, was ich in C++ vermisse, sind Constraints (Typenbeschränkungen -- oder gibt’s die etwa auch?).

    Typenbeschränkungen kennt C++ nicht von haus aus, man kann aber in der klasse oder funktion selber hinterher prüfmechanismen einbauen, die zur compilezeit bestimmte sachen austesten, wie zb ob T von U geerbt hat und andere späße.

    Könnte mir daher bitte jemand erklären, die "zahlreichen negativen Eigenschaften" erklären?

    die zahlreichen negativen eigenschaften sind, dass in c++ soviele dinge mit templates möglich sind, dass man zwar einige fehlende sprachfeatures emulieren kann, aber kein java-programmierer durchblickt 😉



  • otze schrieb:

    Das einzige, was ich in C++ vermisse, sind Constraints (Typenbeschränkungen -- oder gibt’s die etwa auch?).

    Typenbeschränkungen kennt C++ nicht von haus aus, man kann aber in der klasse oder funktion selber hinterher prüfmechanismen einbauen, die zur compilezeit bestimmte sachen austesten, wie zb ob T von U geerbt hat und andere späße.

    Uh, ich habe mal gerade gegooglet. Das ist ja "naughty" 🤡

    Wie sieht es denn mit der Compiler-Unterstützung aus? Schafft es z.B. der GCC wirklich, den im folgenden Artikel verwendeten Code bei der Kompilierung wegzuoptimieren?

    http://www.devx.com/cplus/10MinuteSolution/24908/1954?pf=true


Anmelden zum Antworten