C,C++,C#,Java,



  • Michael E. schrieb:

    net: Und dann redest du noch von Vererbung? Ich nenne das gucken, was es gibt, und von allem das beste rauspicken.

    das finde ich nicht verwerflich. viel alberner finde ich, dass ms mit .NET java komplett nachgebaut hat.

    btw: dass java-programme weniger komplex und daher leichter lesbar sind ist ja wohl tatsache. man gucke sich nur mal beispielcodes für design patterns in beiden sprachen an. obwohl...mittlerweile hat sun ja auch eingesehen dass sie bei java zuviel weggelassen haben und bauen das nach und nach wieder ein (generics/templates, enums, einfacheres debugging usw.)



  • deswegen hat er Java nicht erfunden und auch keine Ahnung davon<<

    *gähn*



  • In der offiziellen Java-Doku von Sun steht übrigens auch noch
    "...we designed java as closely to c++ as possible..."
    "...the oo facilities of java are essentially those of c++..."
    "...the major difference of java and c++ lies in ...."

    man beachte den SINGULAR, was bedeutet, daß Sun selbst nur EINEN
    größeren Unterschied sieht.

    Das ist jetzt aber endgültig meine letzte Erwiderung auf die lächerliche
    Behauptung, Java stamme nicht von C++ ab.
    adios.



  • Hörst du eigentlich zu?

    Optimizer schrieb:

    Ja. Sun versucht ja btw. auch seit dem Anbeginn, C++ Programmierer zu bekehren. Da ist eine oberflächliche Ähnlichkeit, wie z.B. gleiche Syntax auch vorteilhaft. Ich find die C-Syntax gut, kann aber nicht ausschließen, dass es Raum für Verbesserungen gegeben hätte.
    Sun hat natürlich erstmal ein paar C-Ähnlichkeiten gehalten. Java hat sich aber inzwischen weiterentwickelt.

    kingruedi schrieb:

    Der Autor des Textes auf den du anspielst, hat Java nicht erfunden. Der arbeitet eben bei SUN, deswegen hat er Java nicht erfunden und auch keine Ahnung davon ob Java von C++ abstammt.

    Werbemanager (unregistriert) schrieb:

    Das ist marketing! Würdest du sagen, dein Produkt hat mit C++ nichts zu tun, wenn deine Zielgruppe C++ Programmierer sind?

    Außerdem ist der Fall für mich klar. Wir haben dich jetzt 3mal um Argumente oder Beispiele gebeten, aber du bringst keine. Stattdessen suchst du ständig irgendwelche tollen Links raus. Im Internet kann ich alles finden. Da find ich auch die Information, dass der Mond aus grünem Käse besteht. Genauso, wie du auf der Sun-Seite auch Aussagen finden wirst, dass C++ und Java total anders sind.

    Eigene Argumente hast du eh nicht, weil du mit hoher Wahrscheinlichkeit gar nicht genug Erfahrung mit beiden Sprachen hast.

    Das ist jetzt aber endgültig meine letzte Erwiderung auf die lächerliche
    Behauptung
    ,

    Und mit Arroganz bist ja aber dafür reichlich gesegnet. Komisch dass alles so lächerlich von uns ist, obwohl du als einziger bisher keine Argumente gebracht hast. Ach was soll's, Zeitverschwendung...

    *musik aufdreh*
    *Brothers everywhere
    raise your hands into the air
    we're warriors, warriors of the World

    Like thunder from the sky
    swore to fight and die
    we're warriors, warriors of the World
    ...*



  • und nie vergessen, daß java eigentlich oak ist. erst damit erklären sich die ganzen design-entscheidungen und sind mit diesem hintergrund auch gar nicht mehr komisch oder exotisch, sondern hochgradig sinnvoll, zielstrebig und schlicht geil.

    http://www.engin.umd.umich.edu/CIS/course.des/cis400/java/java.html



  • Hast du das mit "C/C++ Sprachfamilie" auf Seite 6 schon gelesen? Sowas magst du doch. 😉 ⚠
    😃 👍



  • Optimizer schrieb:

    Hast du das mit "C/C++ Sprachfamilie" auf Seite 6 schon gelesen? Sowas magst du doch. 😉 ⚠
    😃 👍

    also in dieser dosis liebe ich es. aber wer weiß. vielleicht sind ja fortran und algol bald so vergessen, daß wir in einer basic- oder cobol-familie offizell in lehrbüchern stehen?



  • "...we designed java as closely to c++ as possible..."
    Heißt? Sie haben versucht Java C++-ähnlich zu machen für einen leichteren Umstieg. Da steht aber nicht, wie ähnlich sie es dann tatsächlich geschaft haben. Das kann ja immernoch bedeuten, wir haben es zwar versucht, aber überhaupt nicht hinbekommen, weil die Unterschiede zu groß waren.

    "...the oo facilities of java are essentially those of c++..."
    Die oo Anlagen von PHP sind im Grunde auch die von C++. Die von Eiffel ebenfalls. 😕

    "...the major difference of java and c++ lies in ...."
    Dieses Zitat sagt jetzt absolut gar nichts.
    Vielleicht heißt der Satz ja vollständig "Der größte Unterschied zwischen Java und C++ liegt in der grundlegenden Philosphie.

    Allerdigns glaube ich auch, das bei der Entwicklung von Java am stärksten auf C++ geachtet wurde. Aber das beudetuet ja nicht, das das Ergebnis ähnlich sein muss. Man kann ja viele Dinge auch schlecht finden und anders machen. Stell dir mal vor, die Java-Entwickler hätte an C++ die Synthax gestört. und Jetzt würden wir schreiben:

    public class Car:
       protected var color : String
    
       public def getColor () : String
          return color
    
       Constructor (color : String)
          this.color = color
    

    Es wäre doch immernoch Java, nur eben mit 'ner etwas anderen Synthax.



  • Helium schrieb:

    Synthax



  • gibts eigentlich keinen c++ compiler der code für 'ne java-vm ausspuckt? also 'nen ada-compiler gibts jedenfalls



  • Einen standardkonformen C++ Compiler kann es nicht geben, weil du in Java-Bytecode schlichtweg nicht alles machen darfst.



  • Optimizer schrieb:

    Einen standardkonformen C++ Compiler kann es nicht geben, weil du in Java-Bytecode schlichtweg nicht alles machen darfst.

    warum nicht? irgendwelche pointer-sachen usw. könnte man doch simulieren
    macht doch mickeyweich auch mit seinem managed c++



  • Nein, machen die nicht. Das .Net Framework erlaubt solchen Code, die JVM aber nicht. Und sowas kann man schlecht simulieren, willst du die "simulierte" Adresse eines Objekts zurückgeben?



  • Optimizer schrieb:

    willst du die "simulierte" Adresse eines Objekts zurückgeben?

    kommt drauf an. machbar wär das sicherlich. vielleicht könnte man auch echte äääh vm-relative adressen nehmen. wenn der programmierer dann einen fehler macht stürzt es eben ab wie ein ganz normales fehlerhaftes java-programm. das könnte man bestimmt hinkriegen. vielleicht baut mal einer mit dem lcc einen c-compiler für java 😋



  • net schrieb:

    vielleicht baut mal einer mit dem lcc einen c-compiler für java 😋

    und wie soll man damit sinnvoll die Java Plattform nutzen?



  • Shade Of Mine schrieb:

    und wie soll man damit sinnvoll die Java Plattform nutzen?

    ob das sinnvoll ist, ist eine ganz andere frage, hehe, aber als spassprojekt wär's doch was: endlich keine bösartigen buffer overflows in c unc c++ programmen mehr



  • Optimizer schrieb:

    Nein, machen die nicht. Das .Net Framework erlaubt solchen Code, die JVM aber nicht. Und sowas kann man schlecht simulieren, willst du die "simulierte" Adresse eines Objekts zurückgeben?

    warum simuliert? reinterpret_cast von irgendwas nach zeiger lassen wir der einfachheit 0 werden. so zur sicherheit.
    und sonst sind zeiger das, was in java in der vm soezifikation reference genannt wird.
    http://java.sun.com/docs/books/vmspec/2nd-edition/html/Overview.doc.html#37906
    ich seh da jetzt keinen dringenden bedarf, anzunehmen, es sei unmöglich, c++ nach java-vm zu compilieren.



  • Hmmmmm die ganze Pointerarithmetik stell ich mir relativ unmöglich vor. Stell dir vor, du merkst dir die Adresse von etwas und der GC verschiebt das Objekt dann. Die JVM hat keinen unmanaged Heap, du kannst nicht Objekte von der GC ausschließen. Das .Net Framework hat sowohl nen verwalteten als auch nen klassischen Heap.

    Die ganze Adressrechnerei müsste aus diesem "C++" IMHO raus, oder hast du da ne konkrete Idee?



  • Wir können's ja noch einfacher machen: Nimm die Adresse von etwas und speicher sie in nem int. Sobald der GC das Objekt entfernt hat, versuch wieder, über die Adresse, darauf zuzugreifen...
    IMHO hat das schon ein paar handfeste Gründe, dass es in C++/CLI so "Referenzen" wie in C# und Java gibt. Mit normalen Pointern kommst du da nicht hin. Die Repräsentation von ner Referenz ist intern auch anders (nämlich Pointer auf Pointer, damit der GC leichter verschieben kann).



  • Optimizer schrieb:

    Hmmmmm die ganze Pointerarithmetik stell ich mir relativ unmöglich vor.

    die ist in c++ auch nur definiert in bereichen, die auf einmal allokiert wurden.
    edit: es geht nicht darum, C abzubilden. das klappt nicht. C++ ist Java näher als C.


Anmelden zum Antworten