c++ vs. java... was hat zukunft



  • virtuell Realisticer schrieb:

    pale dog schrieb:

    .filmor schrieb:

    Was war an rüdigers Post falsch? Wenn du dich einzig und allein an dem Wörtchen "leider" aufhängst ist dir nicht zu helfen. Der Rest war neutral und sachlich.

    das posting enthält eindeutig flamewar-verdächtige passagen.
    ich finde, als mod. sollte man mit sowas zurückhaltender sein.

    Ich finde nicht, dass man, nur weil man Mod ist, seine Meinung nicht kundtun darf.

    doch, aber mit dem nötigen taktgefgühl.
    ein mod sollte flamewars dämpfen und nicht anheizen.
    🙂



  • Artchi schrieb:

    Oder gibt es regelmäßig in Java-Foren c++-vs-java-Threads? Siehste! 😃

    Keine Ahnung - ich bin so selten in Java Foren unterwegs 😉

    pale dog schrieb:

    CStoll schrieb:

    pale dog schrieb:

    CStoll schrieb:

    C++ und Java haben die selben Wurzeln...

    das stimmt doch gar nicht.

    Und wie erklärst du dir dann die ähnliche Syntax, die von beiden Sprachen verwendet wird?

    willst du alle sprachen mit C-ähnlicher syntax in einen topf werfen?

    Technisch nicht, aber syntaktisch schon. Und daß Java viele syntaktische Strukturen von C/C++ abgekupfert hat, kann es nicht leugnen - und das meinte ich mit "die selben Wurzeln".

    PS: Was die geforderte Neutralität von Mods angeht (ich weiß, ich könnte da etwas voreingenommen wirken, weil ich selber einer bin): Jeder von uns hat das Recht auf seine Meinung - und darauf, sie auch äußern zu dürfen. Und wenn die Namen "C++" und "Java" im selben Thread auftauchen, ist es meiner Erfahrung nach (leider) nur eine Frage der Zeit, bis dieser sich zu einem Flamewar entwickelt.

    PPS: Aber könnten wir uns wieder dem eigentlichen Thema widmen?



  • Welchem Thema? 😃



  • Hab ich vergessen 🕶 Aber im Thread-Titel steht etwas von "c++ vs. java... was hat zukunft", also nehmen wir einfach das als Thema.



  • c++ vs. java... was hat zukunft

    java hat zukunft im web, da hier viele betriebssysteme zum einsatz kommen, vor allem im öffentlichen

    c++ auf zielsystemen sprich programe, wie zB spiele, werden aus gründen der performance in c++ entwickelt, unter anderm nur wegen den einbau möglichkeiten von assembler!

    ps wie kann c++ die selbe "wurzel" wie java hben wenn c++ die "wurzel" von java ist [klassen + vererben mit einbezogen!]?!



  • java verliert aber zunehmend grund gegen ruby und python

    ich selbst setze für alle webprojekte python und javascript ein,
    da man ganz einfach mehr mit weniger code schafft

    die sucess-stories geben mir recht (es werden immer wieder java projekte in python/ruby überführt, und alle freuen sich das sie nur 10-20% der loc, bei ähnlichem speed und wesentlich geringerem speicherbedarf haben



  • SammyRukka schrieb:

    Außer vielleicht, daß man in Java sich an O0 halten muß.

    Aua.



  • Tim schrieb:

    SammyRukka schrieb:

    Außer vielleicht, daß man in Java sich an O0 halten muß.

    Aua.

    dolormin is ein gutes schmerz(bekämpfungs)mittel
    xD

    [hab mir eben den rest durch gelessen, ich geh mir mal nen dolormin einschieben, lol]



  • LinkeT schrieb:

    ps wie kann c++ die selbe "wurzel" wie java hben wenn c++ die "wurzel" von java ist [klassen + vererben mit einbezogen!]?!

    Java ist keine Weiterentwicklung von C++ (als Weiterentwicklung könnte man eventuell C++/CLI oder C# ansehen) - die haben vielleicht einige Konzepte und Syntax-Elemente aus C++ übernommen, aber im Kern ist Java etwas eigenständiges.



  • CStoll schrieb:

    LinkeT schrieb:

    ps wie kann c++ die selbe "wurzel" wie java hben wenn c++ die "wurzel" von java ist [klassen + vererben mit einbezogen!]?!

    Java ist keine Weiterentwicklung von C++ (als Weiterentwicklung könnte man eventuell C++/CLI oder C# ansehen) - die haben vielleicht einige Konzepte und Syntax-Elemente aus C++ übernommen, aber im Kern ist Java etwas eigenständiges.

    der syntax, sowie diverse keywords ist von c++ "kopiert" das als "wurzel"



  • Tim schrieb:

    SammyRukka schrieb:

    Außer vielleicht, daß man in Java sich an O0 halten muß.

    Aua.

    Kannst Du Deinen Medizinbedarf auch begründen? Außer, daß ich das 'O' nicht erwischt habe?
    Dass man das schon koennen sollte und das dann auch einigermassen bei C++ durchhalten kann, steht ausser frage (deshalb auch die Klammer), aber die OO-Möglichkeiten werden von Java ja wohl eindeutig besser gestellt, oder nicht?



  • class MyMath
    {
        stataic public final int add(int a, int b)
        {
             return a + b;
        }
    }
    

    Die Benutzung von add ist natürlich seeeehr OO. Vorallem das ich native primitive Datentypen habe, zwingt mich seeehr nach OO zu programmieren. 😃 🤡



  • @pale dog
    Ich finde nicht, das mein Posting ein höheres Flame-Potential hat, als die anderen. Außerdem wie sollte man bitte bei diesem Thema entspannen? Ist doch klar, dass das zu einem Flamewar wird. Das einzige was hilft wäre schließen. Vielleicht könnte man aber mal einen vernünftigen FAQ-Beitrag entwerfen für die "Was ist besser C++ oder *"-Threads

    LinkeT schrieb:

    der syntax, sowie diverse keywords ist von c++ "kopiert" das als "wurzel"

    Java orientiert sich imho nicht sonderlich stark an C++. Die vielen Gemeinsamkeiten kommen eher dadurch das beide Sprachen sich an C orientiert haben.

    SammyRukka schrieb:

    Tim schrieb:

    SammyRukka schrieb:

    Außer vielleicht, daß man in Java sich an O0 halten muß.

    Aua.

    Kannst Du Deinen Medizinbedarf auch begründen? Außer, daß ich das 'O' nicht erwischt habe?
    Dass man das schon koennen sollte und das dann auch einigermassen bei C++ durchhalten kann, steht ausser frage (deshalb auch die Klammer), aber die OO-Möglichkeiten werden von Java ja wohl eindeutig besser gestellt, oder nicht?

    Man kann niemanden zu einem Konzept zwingen und nur weil ich die Leute dazu zwinge Funktionen in "Klassen" zu schreiben heißt das nicht, dass der Code auch Objekt Orientiert wird.

    Genauso wie man in einer Programmiersprache die nicht auf OOP ausgelegt ist OO programmieren kann, kann man in einer Sprache die einem OOP aufzwingen möchte kein OO programmieren.

    Siehe zB die ganzen Math-Sachen aus Java. Das sind ja aus C++-Sicht nichts anderes als Funktionen in einem Namespace. OOP wäre dagegen wohl eher 4.sqrt();



  • Ok, wenn das die Beurteilungsgrundlage ist, dann habt ihr natürlich recht.
    Ich habe in den letzten 6 Jahren allerdings etwas mehr als nur Additionen programmiert, vielleicht bin ich damit überqualifiziert 🙂

    Für eine Versicherungstechnik würde ich übrigens auch kein Java benutzen, sondern C/C++, aber sehr wohl für die Architektur, die darauf aufbaut, Workflow, Persistenz, GUI, MVC what ever.

    Ist immer schade, wenn ein Beitrag auf einen Satz reduziert wird und halbwahr widerlegt.
    Und wer noch niemals in Smalltalk programmiert hat, der hat auch noch niemals mit reinem OO zu tun gehabt. *ablenken tun* :p

    oops: da kam ein neuer Beitrag dazwischen...

    Man kann niemanden zu einem Konzept zwingen und nur weil ich die Leute dazu zwinge Funktionen in "Klassen" zu schreiben heißt das nicht, dass der Code auch Objekt Orientiert wird.

    Genauso wie man in einer Programmiersprache die nicht auf OOP ausgelegt ist OO programmieren kann, kann man in einer Sprache die einem OOP aufzwingen möchte kein OO programmieren.

    Fein! Das wollte ich mit meiner Klammer ausdrücken.
    Es ist nur immer gefährlich, wenn jemand der seit 10 Jahren C programmiert und vor 4 Jahren ++ dazugenommen hat, dann meint er könnte (sorry, klingt gehässig) OO und über Java urteilen, nur weil er HelloWorld auf den Bildschirm bekommen hat.
    Aber die eigentliche Frage war ja, ob es sich lohnt, sich mit Java zu beschäftigen und dem ist auf jeden Fall so, mathematische Berechnungen und verfügbare IDEs hin- oder her.
    Isch abe fertig 😃 .



  • darthdespotism schrieb:

    - Java ist, und bleibt darauf ausgelegt interpretiert zu werden. Selbst wenn man Java in Maschienencode übersetzt, was ja möglich ist, dürfte es einem _guten_ C++ - Programm an performance hinterherhinken

    Soweit die (hoffentlich soweit korrekten) Tatsachen.

    In den meisten Fällen wird das stimmen, auch wenn man mit irgendwelchen Gedankenspielchen Fälle konstruieren kann, in denen Java von der Performance her theoretisch im Vorteil sein sollte. Du formulierst das allerdings als eine ziemlich absolute Aussage mit großer Dramatik. Diese Relevanz wird das in den meisten Fällen nicht haben. Der Unterschied ist IMHO nicht sooo groß. Hast Du diesbezüglich quantitative Vorstellungen? Oder hast Du mehr eine allgemeine Assoziation "C++ -> schnell" und "Java -> lahm"? Wenn man sich genauer klar gemacht hat, wie groß der Unterschied eigentlich ist, muss man sich auch überlegen, was einem der Performancevorteil wert ist.

    Mit C++ kann man sehr effizient arbeitende Programme schreiben. Man hat auch sprachliche Möglichkeiten, sehr elegante Programme zu schreiben. Aber was will man letztendlich eigentlich haben? Eleganten Code? Wer bezahlt einen dafür? Ein 20% schnelleres Programm? Dafür bezahlen einen bestimmt Leute. ...in ganz bestimmten Bereichen. Für den Großteil der Programme ist die Performance nicht sooo relevant, dass es auf 20% ankommt. ...oder meinetwegen 50%. Außerdem sollte einem bei theoretischen Performancebetrachtungen immer klar sein, dass die Realität nicht dem theoretischen Idealfall entspricht. In der Realität werden Programme von Menschen geschrieben und die holen nunmal nicht 100% raus. Genausowenig wie sie fehlerfreie Programme schreiben. In der Realität hat man oft nichtmal selbst direkten Einfluss auf performancekritischen Code, weil man bestimmte Frameworks nutzt, die von anderen zur Verfügung gestellt werden.

    Bei Java wird es nicht angestrebt, in diesen beiden Bereichen - der absoluten Performance und den umfassensten Sprachmöglichkeiten - die absolute Nr. 1 zu sein. Wer das ohne Einschränkung braucht, der sollte lieber zu C++ greifen. Bei Java spielt es mehr eine Rolle, dass dem Entwickler viele Entscheidungen einfach gemacht werden sollen. Man soll leicht, schnell und effektiv damit programmieren können. Aus diesem Grund ist die Sprache im Vergleich zu C++ einfacher gehalten. Aus diesem Grund wird eine große Standardbibliothek mitgeliefert. Und aus diesem Grund sind auch die Werkzeuge (IDEs usw.) für Java ausgereifter. Das macht den wesentlichen Vorteil von Java aus, der in der Wirtschaft auch oft sehr relevant ist.



  • Gregor schrieb:

    ....

    Danke!



  • rüdiger schrieb:

    @pale dog
    Ich finde nicht, das mein Posting ein höheres Flame-Potential hat, als die anderen. Außerdem wie sollte man bitte bei diesem Thema entspannen?

    na, einfach locker bleiben 🙂
    ok, ein wenig kann ich euch c++ fans schon verstehen.
    wenn man mitbekommt, wie im laufe der jahre eure lieblingssprache langsam ins abseits gedrängt wird (und gerade Java 'der erzfeind' hat damit angefangen!), dann kann's schon frustrierend sein und vielleicht erklärt das auch, warum c++ fans ganz besonders auf java so allergisch reagieren.
    ich weiss zwar nicht, was auf Java-boards so abgeht, aber ich möchte wetten, dass es dort viel-viel weniger flamewars gibt, wenn mal einer nach 'C++' fragt...



  • rüdiger schrieb:

    OOP wäre dagegen wohl eher 4.sqrt();

    Zahlen als Objekte? Als Perfektion der objektorientierten Programmierung? Naja, ich weiß nicht so ganz, was das soll? Warum sollte man das machen? Letztendlich ist das ja sogar eine philosophische Frage...

    Also: Warum betreibt man überhaupt OOP? Da wird einem ganz oft gesagt, dass das Denken mit Objekten mehr dem menschlichen Denken entspricht, als das Denken in Funktionen oder Prozeduren oder so so. Und es geht um die Beherrschung von Komplexität. Wie ist das jetzt mit Zahlen? Behandelt der Mensch Zahlen in seinen Gedanken wie Objekte? Kleinkinder machen das: Wenn man denen das Zählen beibringen möchte, dann koppelt man Zahlen dabei nicht ohne Grund an konkrete Objekte. Da wird nicht 1,2,3 gezählt, sondern 1 Apfel, 2 Äpfel, 3 Äpfel. Ok, Entwickler sind aber in den seltensten Fällen Kleinkinder und haben im Allgemeinen Zahlen von konkreten Objekten abstrahiert. Das betrifft auch die Menschheit im Allgemeinen. Hat man in der Antike noch mit Strecken gerechnet, so stellt die enorme kulturelle Leistung, Zahlen hiervon zu abstrahieren, eine Grundlage dar, die viel Fortschritt ermöglicht hat. Man muss sich nur mal überlegen, was es heißt, Zahlen als konkrete Entitäten von Strecken zu sehen. Da gibt es dann plötzlich Unterschiede der Art "die selbe Strecke vs. die gleiche Strecke". ...es dürfte sogar oft unmöglich sein, bestimmte Gleichheiten zu erkennen.

    In meinen Gedanken unterscheide ich nicht zwischen unterschiedlichen Entitäten der "5". Es gibt da keinen Unterschied zwischen Referenzgleichheit und Wertegleichheit in meinen Gedanken. 5 ist 5 und niemals "eine andere 5". 5 wird auch niemals erzeugt: 5 hat schon immer existiert und wird auch immer existieren. 5 hat keinen Lebenszyklus. 5 hat auch keinen Zustand.

    Wenn ich an Objekte denke, dann verbinde ich aber solche Eigenschaften damit. Nicht immer alle, aber immer einige. Insofern ist es für mich persönlich nicht unbedingt einleuchtend, warum man es anstreben sollte, Zahlen in Programmiersprachen wie Objekte zu behandeln. ...nur weil man das für 100% OOP hält?



  • pale dog schrieb:

    ...
    wenn man mitbekommt, wie im laufe der jahre eure lieblingssprache langsam ins abseits gedrängt wird (und gerade Java 'der erzfeind' hat damit angefangen!), dann kann's schon frustrierend sein und vielleicht erklärt das auch, warum c++ fans ganz besonders auf java so allergisch reagieren.
    ich weiss zwar nicht, was auf Java-boards so abgeht, aber ich möchte wetten, dass es dort viel-viel weniger flamewars gibt, wenn mal einer nach 'C++' fragt...

    Kann vielleicht auch eher daran liegen, dass hier immer frustrierte Javafans auftauchen, die nicht verkraften, dass ihre Sprache immer noch nicht "den großen Bruder C++ verdrängt hat" .... weswegen sie das Gegenteil als ewiges Mantra wiederholen (in der Hoffnung, dass es dadurch endlich wahr werden möge).
    Ist ja auch blöd, wenn es Leute gibt, die einen gar nicht darum beneiden, dass man auf dem "Hiptrain" sitzt .... sondern lieber schnell ankommen.
    😃

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Ist ja auch blöd, wenn es Leute gibt, die einen gar nicht darum beneiden, dass man auf dem "Hiptrain" sitzt .... sondern lieber schnell ankommen.

    "Hiptrain"? Meinst Du, Java stellt nur einen vorübergehenden Hype dar? Für die IT-Branche dauert dieser Hype schon enorm lange an, heh? Ich könnte ja verstehen, wenn Du das 1997 gesagt hättest, aber inzwischen ist es schon 10 Jahre später und Java ist immer noch enorm wichtig. Java hat sich in vielen Bereichen etabliert und ist längst kein Hype mehr.


Anmelden zum Antworten