Was kommt nach der Objektorientierung?



  • Xin schrieb:

    Hätte man die Energie, die man in Java gesteckt hätte in C++ gesteckt und in deren Libs und Frameworks, wären wir schon deutlich weiter - imho.

    naja, java ist doch auch nur ein programm. ich denke c++ hat sich relativ unabhängig entwickelt.

    btw. ich könnte fast kotzen, wenn ich eine library nutzen muss, die in c++ designed ist. für anwendungen und große software - okay, aber für eine lib die entweder total exotisch, extrem klein, oder aus mögl. vielen anderen sprachen aufgerufen werden soll? total ungeeignet!



  • kellerkindanwärter schrieb:

    Xin schrieb:

    Hätte man die Energie, die man in Java gesteckt hätte in C++ gesteckt und in deren Libs und Frameworks, wären wir schon deutlich weiter - imho.

    naja, java ist doch auch nur ein programm. ich denke c++ hat sich relativ unabhängig entwickelt.

    Hätte man weniger Zeit damit verschwendet, den Leuten eine billige Programmierausbildung in Java als "modern" zu verkaufen und stattdessen C/C++ geschliffen, wären wir imho weiter.

    kellerkindanwärter schrieb:

    btw. ich könnte fast kotzen, wenn ich eine library nutzen muss, die in c++ designed ist. für anwendungen und große software - okay, aber für eine lib die entweder total exotisch, extrem klein, oder aus mögl. vielen anderen sprachen aufgerufen werden soll? total ungeeignet!

    Und hier hätten wir schon einen Punkt, an dem man hätte schleifen können, denn das Object-Format ist imho das erste, wo man hätte ansetzen können. Niemand verlangt schließlich, dass C-Compiler nach .o kompilieren müssen.

    Hat man aber nicht. Man hat sich mit Java des Problems entledigt und sich einfach einen Sack voll neuer, moderner Probleme aufgeladen, die bereits gelöst waren.



  • Xin schrieb:

    ...Und hier hätten wir schon einen Punkt, an dem man hätte schleifen können

    für meinen geschmack ist c++ schon verschliffen. der stein hat einfach zu viele facetten!



  • Fast2 schrieb:

    Tut mir leid, dass das jetzt aus dem Gesprächsfluss heraussticht, aber ich dachte, ich hätte es schon gestern abgesendet, allerdings hatte ich dabei nur auf Vorschau geklickt.

    Feriuko schrieb:

    Die Symbolkraft endet an der Tastatur.

    Solange ich da nicht die speziellen Unicodesymbole direkt und per default mit einem Tastendruck eintippen kann, werden Symbole für eine Programmiersprache keine Chance haben.

    Ein kleines bisschen Hoffnung habe ich ja schon, dass sich endlich mal alternative Tastenbelegungen zumindest so weit verbreiten, dass ingendwann wenigstens mehr als 30% der Computernutzer überhaupt davon wissen, dass es die gibt …
    http://neo-layout.org/

    Das neo Layout ist ein alter Hut und es wird sich niemals durchsetzen.

    Wenn eine Sekräterin eine Arbeitsstelle suchst, was meinst du, wird sie vorfinden?
    Natürlich QWERTZ/Y und das wird sie auch als Tippse können müssen.

    Der Einzelne Freak mag sein Layout umstellen, aber 99 % der Masse macht es nicht und die Tastaturen bleiben bei einem aufgedrcukten QWERTZ/Y Layout.

    Dazu kommen dann noch die tausende von Programmen, die QWERTZ/Y als gegeben hinnehmen und darauf ihre Shortcuts optimieren.
    Bei manchen Programmen darf man die Shortcuts nichtmal verändern und bei denen wo man es kann, ist ein großer Teil nur umständlich und eine Insellösung.

    Solange man hier also nicht global über das OS auf das NEO Layout umstellen und trotzdem gute Shortcuts (hier entscheidet dann die Position der Taste, nicht das, was ausgegeben wird, wenn draufgedrückt wird) haben kann, sind die Chancen für das NEO Layout = 0.

    Insofern ist das ne Illusion und dann müßte der einzelne ja noch umlernen wollen.
    Ich kann mit QWERTZ/Y recht schnell tippen, die speziellen Symbole die NEO bieten würde, habe ich zwar nicht, aber das umschreibt man einfach durch Text oder vergleichbarem.
    Auch Matheprogramme machen das so, z.b. SQRT anstatt das Quadratwurzelzeichen.

    Insofern hat NEO eigentlich keine Chance, es bleibt eine Insellösung und wer es nutzen will, der hat es sehr umständlich und muss alles und jedes Programm daran anpassen.



  • Xin schrieb:

    Mit großem Marketing ("Java ist sicher, weil es keine Zeiger hat") wurde das Java-Konzept gehypt und als den Gral der IT dargestellt. Ich habe Java nachdem ich es gelernt habe (2000) sofort für tot erklärt. Und auch wenn das natürlich gerade in Zeiten des Java-Hypes belächelt wurde und doch heute, wo Java weiterhin stark im Rennen ist, ist der Hype vorbei und C++, das von der damaligen Mehrheit für tot erklärt wurde, davon unberührt. Es findet eine Rückbesinnung statt zu nativen Code, zu den Möglichkeiten, die C++ schon in den 90ern bot.

    Das sehe ich nicht so.

    Inzwischen dringt Java auch in Bereiche vor, wo man aus Performancegründen immer noch auf C++ setzte.

    Und eines ist ganz klar, die Entwicklung in Java ist wesentlich günstiger, die Programmierer kosten weniger und meistens setzt sich das günstigere System durch und nicht das Qualitativ* bessere.

    * Wobei es hier bei C++ dann schon auf die Anwendung und die Umsetzung ankommt, wenn man von Qualitativ sprechen möchte, denn so pauschal kann man das nicht sagen.
    Vorteile hat C++ z.B. natürlich nach wie vor im Resourcenverbrauch und wenn das ein Maßstab für Qualität ist, dann ist C++ natürlich keine schlechte Wahl.
    Sind die Programmierer aber Stümper, dann dürfte Java die bessere Wahl sein.

    Es wurde viel Zeit verwendet, Java beizubringen, was C++ schon kann.

    Hätte man die Energie, die man in Java gesteckt hätte in C++ gesteckt und in deren Libs und Frameworks, wären wir schon deutlich weiter - imho.

    C++ ist eine gewachsene Sprache, die natürlich ihre Altlasten mit sich bringt und die können dann auch stören.

    Wenn wir also von "Wünsch dir Was" sprechen wollen, dann würde ich eher sagen: Würde die gesamte IT Branche auf eine von Grund auf moderne neue Sprache (z.B. D) umschwenken und die Zeit in entsprechende Libs und Frameworks stecken, dann könnten wir Java und C++ zu den Akten legen und bestenfalls nur noch für Nischenlösungen (z.b. Plattformunabhängigkeit auf Binärebene) benötigen.

    Aus so einer Sicht ist also auch C++ nicht die erste Wahl.
    Die Sprache ist ein gewachsene Monstrum, ich muss nicht erwähnen, wie lange es dauert, bis ein Programmierer wirklich gut darin geworden ist.



  • Feriuko schrieb:

    Inzwischen dringt Java auch in Bereiche vor, wo man aus Performancegründen immer noch auf C++ setzte.

    ...und zieht sich gleichzeitig aus ihrem Umfeld zugunsten anderer Sprachen, darunter auch C++, wieder zurück.

    Auf dem Mac gehört Java inzwischen schon nicht mehr zur Standardinstallation, was ich durchaus bemerkenswert finde.

    Feriuko schrieb:

    Und eines ist ganz klar, die Entwicklung in Java ist wesentlich günstiger, die Programmierer kosten weniger und meistens setzt sich das günstigere System durch und nicht das Qualitativ* bessere.

    Richtig. Der Punkt ist hier, dass sich die günstigen Programmierer langfristig nicht bezahlt machen. Schon mal ein Programm gesehen, was Exception-Ping-Pong spielt? Eine Java-Designschwäche, die mir schon offensichtlich war, als ich Java vor 11 oder 12 Jahren lernte. Das ist heiter zu debuggen. Den Java-Programmierer braucht man um den Bug einzubauen, aber das Match beenden soll dann bitte der C++-Programmierer.
    Ich habe schon als Java-Entwickler gearbeitet.

    Feriuko schrieb:

    Sind die Programmierer aber Stümper, dann dürfte Java die bessere Wahl sein.

    In diesem Satz sind wir uns einig und da steckt soviel Wahrheit drin, dass ich nicht einfach löschen wollte. 🙂

    Feriuko schrieb:

    Wenn wir also von "Wünsch dir Was" sprechen wollen, ... Aus so einer Sicht ist also auch C++ nicht die erste Wahl.

    Und auch hier sind wir uns einig.

    Java und C# zeigen nur eins deutlich: Alle warten auf die Generation nach C++. C++11 ist ein Weg in diese Richtung, aber die Altlasten bleiben. Java und C# beweisen, dass der Wunsch so groß ist, dass man sogar bereit ist, komplett neue Infrastruktur zu akzeptieren und aufzubauen.

    Also... das Wunschkonzert ist eröffnet. 🙂



  • Xin schrieb:

    Mit großem Marketing ("Java ist sicher, weil es keine Zeiger hat") wurde das Java-Konzept gehypt und als den Gral der IT dargestellt. Ich habe Java nachdem ich es gelernt habe (2000) sofort für tot erklärt.

    Ich habe die Anfangszeit von Java nicht mitbekommen. Als ich mir das das erste mal angeschaut habe, habe ich nicht verstanden, warum alle von Java reden, wo Applets doch völlig uninteressant sind. War eine komplett falsch Einstellung von mir.
    Ich seh die Stärken von Java vor allem im J2EE Bereich, und das ist ein sehr wichtiger Bereich, wo C++ schon mal überhaupt keine Chance hat. Wer schreibt denn Webanwendungen und Portale in C++? Und auch wenn man kein Fan von Webanwendungen ist (bin ich auch nicht), so muss man ganz objektiv feststellen, dass sie auch viele Vorteile und ihre Daseinsberechtigung haben. Da hat sich in Java seit 2000 auch sehr viel getan. Davon, dass Java die IT Welt zurückgeworfen hat, kann jedenfalls keine Rede sein. Ich würde eher behaupten, sie hat die IT-Welt sehr weit vorangebracht, weil sehr viele wichtige Architekturpatterns aus der Java Welt kommen.
    Solche Grundsatzdiskussionen führen zu nichts. Beide Sprachen (und dutzende anderer auch) haben ihre Nischen. Ich arbeite jetzt mit C++ und bin damit glücklich. Es ist aber eine große Firma und eine sehr große Software, die seit 20 Jahren entwickelt wird. Früher habe ich in einer kleinen .NET Firma gearbeitet (dasselbe hätten wir auch in Java machen können) und da hätte C++ so überhaupt nicht gepasst, egal wie sehr man das verbessert hätte. Mit C++ hätten solche Firmen einfach überhaupt keine Chance, und die Kunden ebenfalls, weil sie dann wesentlich mehr Geld für wesentlich schlechtere Software ausgeben müssten.



  • Xin schrieb:

    Java und C# zeigen nur eins deutlich: Alle warten auf die Generation nach C++.

    ich nicht, mir ist es total egal, da ich die freie wahl hab! hätt ich die nicht, würde ich mich entweder damit abfinden, oder mir eine neue beschäftigung suchen (evtl. eher das letztere 😉 ).

    was eig. mit obj-c? wer von euch würde das verwenden, wenn es keine iXXX produkte gäb 😕


  • Administrator

    Xin schrieb:

    Java und C# zeigen nur eins deutlich: Alle warten auf die Generation nach C++. C++11 ist ein Weg in diese Richtung, aber die Altlasten bleiben. Java und C# beweisen, dass der Wunsch so groß ist, dass man sogar bereit ist, komplett neue Infrastruktur zu akzeptieren und aufzubauen.

    Das glaubst du doch selber nicht? Die Leute verwenden C#, weil sie tatsächlich C++ verwenden wollen? 😕
    Meinst du vielleicht nicht eher, dass C# bereits die Generation nach C++ ist? 🤡

    Es sind einfach unterschiedliche Einsatzzwecke für C++, C# und Java. Wobei sich noch eher C# und Java konkurrenzieren. Ja, eine Zeit lang war ein Hype um Java da und man hat probiert überall Java einzusetzen. Aber ich glaube, dass sich das langsam am beruhigen ist. Jede Sprache hat seine bevorzugten Anwendungsmöglichkeiten. DIE ABSOLUTE SPRACHE gibt es nicht und auch C++ wird das nie werden.

    Im übrigen, meinst du wirklich, wenn die Leute damals nicht Java entwickelt hätten, dass alle Ressourcen automatisch in die Entwicklung von C++ gesteckt worden wäre? Das ist doch etwas utopisch? Wenn Java nicht entwickelt worden wäre, dann wäre halt etwas anderes gekommen. Die Ressourcen wären aber nicht auf wundervolle Art und Weise in die Entwicklung von C++ geflossen.

    Grüssli



  • nach der Objektorientierung kommt meine Rente 🤡



  • Xin schrieb:

    Feriuko schrieb:

    Inzwischen dringt Java auch in Bereiche vor, wo man aus Performancegründen immer noch auf C++ setzte.

    ...und zieht sich gleichzeitig aus ihrem Umfeld zugunsten anderer Sprachen, darunter auch C++, wieder zurück.

    Bezüglich C++ sind das nur Ausnahmen, bei noch einfacheren Scriptsprachen magst du recht haben.
    Bei Android wird fast nur in Java entwickelt und neu in Auftrag gegebene Entwicklungen sind meist auch Java.

    Auf dem Mac gehört Java inzwischen schon nicht mehr zur Standardinstallation, was ich durchaus bemerkenswert finde.

    Das ist allerdings politisch bedingt, nicht technisch.

    Das sind Machtspiele zwischen Apple und (Oracle + Google (wegen Android))

    Feriuko schrieb:

    Und eines ist ganz klar, die Entwicklung in Java ist wesentlich günstiger, die Programmierer kosten weniger und meistens setzt sich das günstigere System durch und nicht das Qualitativ* bessere.

    Richtig. Der Punkt ist hier, dass sich die günstigen Programmierer langfristig nicht bezahlt machen. Schon mal ein Programm gesehen, was Exception-Ping-Pong spielt? Eine Java-Designschwäche, die mir schon offensichtlich war, als ich Java vor 11 oder 12 Jahren lernte. Das ist heiter zu debuggen. Den Java-Programmierer braucht man um den Bug einzubauen, aber das Match beenden soll dann bitte der C++-Programmierer.
    Ich habe schon als Java-Entwickler gearbeitet.
    [/QUOTE]
    Die Programmierer sind günstiger, weil eben mehr Leute brauchbar in Java programmieren können als in C++.
    Das hängt einfach damit zusammen, wie lange ein Programmierer braucht die Sprache brauchbar zu können.
    Und da ist Java eindeutig schneller gelernt als C++.

    Feriuko schrieb:

    Wenn wir also von "Wünsch dir Was" sprechen wollen, ... Aus so einer Sicht ist also auch C++ nicht die erste Wahl.

    Und auch hier sind wir uns einig.

    Java und C# zeigen nur eins deutlich: Alle warten auf die Generation nach C++. C++11 ist ein Weg in diese Richtung, aber die Altlasten bleiben. Java und C# beweisen, dass der Wunsch so groß ist, dass man sogar bereit ist, komplett neue Infrastruktur zu akzeptieren und aufzubauen.

    Also... das Wunschkonzert ist eröffnet. 🙂

    Ja, da stimme ich dir zu.
    Aber ich denke, damit sich da ein C++ Ersatz durchsetzt, müßte die Branche zusammenarbeiten und das tut sie leider nicht.
    MS macht mit C# ihr Ding und Oracle mit Java.

    Und D ist weit davon entfernt, von der Branche gepushed zu werden.



  • Mechanics schrieb:

    Das wohl nicht, aber ich denke, die Software ist mittlerweile auch wesentlich umfangreicher und die Anforderungen wesentlich höher als früher. Ich würde vorsichtig behaupten, dass es eine Explosion der Komplexität gegeben hat.

    Was Du beschreibst, sehe ich gerade als Teil des Problems: Die mögliche Verbesserung der Qualität ist zu Gunsten der Quantität fallen gelassen worden. Die durch neue Werkzeuge und Methoden erreichbare
    Verbesserung ist durch einen entsprechenden Zuwachs an Funktionalität kompensiert worden. Man wird weiterhin erst davon ausgebremst, dass die Komplexität das bisherige Maß der Unbeherrschbarkeit erreicht.

    Natürlich gibt es auch in anderen technischen Disziplinen scheiternde Projekte. Aber die exorbitant hohe Quote von scheiternden Projekten und geliefertem Schrott gibt es fast nur in der IT. (Mir fallen sonst nur noch von Politikern gemanagte Bauprojekte und Banken ein.) Die Anzahl von gescheiterten Brücken-, Tunnel- oder Schiffsbauten liegt in deutlich anderen Regionen, obwohl auch hier ähnliche Komplexitäten erreicht werden.

    Ciao, Allesquatsch



  • Allesquatsch schrieb:

    Die Anzahl von gescheiterten Brücken-, Tunnel- oder Schiffsbauten liegt in deutlich anderen Regionen, obwohl auch hier ähnliche Komplexitäten erreicht werden.

    tja, vllt. sollten kellerkinder sich mal in anderen bereichen betätigen 🤡



  • Allesquatsch schrieb:

    Natürlich gibt es auch in anderen technischen Disziplinen scheiternde Projekte. Aber die exorbitant hohe Quote von scheiternden Projekten und geliefertem Schrott gibt es fast nur in der IT. (Mir fallen sonst nur noch von Politikern gemanagte Bauprojekte und Banken ein.) Die Anzahl von gescheiterten Brücken-, Tunnel- oder Schiffsbauten liegt in deutlich anderen Regionen, obwohl auch hier ähnliche Komplexitäten erreicht werden.

    Früher war es normal, dass Gebäude im Bau einstürzen, weil man noch nicht viel von Statik wusste. Man hatte keine guten Werkzeuge. Große Projekte waren lange nur mit massiven menschlichen Verlusten zu realisieren.
    Die IT ist viel jünger als die Baukunst, es wird noch experimentiert und Rückschläge werden als notwendiges Übel hingenommen. Dazu kommt vielleicht noch, dass Computer für die meisten Menschen magisch sind. Eine Holzhütte bauen, ein Loch graben und ein Papierschiff falten kann jeder, nicht aber ein Betriebssystem installieren. Es fehlt der breiten Masse an Grundkenntnissen.
    In der Politik und im Finanzwissen ist das ähnlich. Kaum jemand kennt sich aus, man lässt die Mächtigen einfach machen. "Die wissen schon, was sie tun."



  • Feriuko schrieb:

    Und eines ist ganz klar, die Entwicklung in Java ist wesentlich günstiger, die Programmierer kosten weniger und meistens setzt sich das günstigere System durch und nicht das Qualitativ* bessere.

    Feriuko schrieb:

    Vorteile hat C++ z.B. natürlich nach wie vor im Resourcenverbrauch und wenn das ein Maßstab für Qualität ist, dann ist C++ natürlich keine schlechte Wahl.
    Sind die Programmierer aber Stümper, dann dürfte Java die bessere Wahl sein.

    Feriuko schrieb:

    Aus so einer Sicht ist also auch C++ nicht die erste Wahl.
    Die Sprache ist ein gewachsene Monstrum, ich muss nicht erwähnen, wie lange es dauert, bis ein Programmierer wirklich gut darin geworden ist.

    Ich denke, dass hierin auch eine der Hauptursachen liegt, dass die Ergebnisqualität nicht im gleichen Maße gewachsen ist wie die Werkzeugqualität.
    Der Mensch - hier ein nicht ausreichend qualifizierter Entwickler - bleibt limitierende Faktor, obwohl das Werkzeug noch viel Potenzial geboten hätte.

    Schlussendlich kommt der Durchschnittsautofahrer mit einem Golf GTI von der Stange sicherlich schneller über eine Rennstrecke als mit einem Formel 1 Boliden, den er maximal auf der Zielgeraden unter Kontrolle hat.

    Von daher teile ich die Ansicht, dass Programmiersprachen wie C oder C++ für viele Entwicklerteams nicht die Sprache der Wahl ist.

    Ciao, Allesquatsch



  • also ich schau wenn nichts anderes läuft 😉 die schnäppchenhäuser... da wird einem architekt, oder mindestens ausgebildeten handwerker sicher auch mal ganz anders!

    wenn ich jetzt an die software denke, waren bis vor nicht zu langer zeit alles amateure und wenn dann noch die rasante technische entwicklung hinzukommt, was fachkräfte regelmäßig zu amateuren macht... *kaboom*



  • Ui, soviel Gegenwind und doch nichts Neues.

    Mechanics schrieb:

    Ich habe die Anfangszeit von Java nicht mitbekommen.

    Ich schon. Und der damals gestreute Schwachsinn wird heute von vielen noch für voll genommen. Weil er teilweise immernoch unterrichtet werden.

    Dass Java keine Pointer besitzt und deswegen sicher ist oder dass Runtimefehler besser als Fehler beim Kompiliervorgang sind, das stand früher auf Suns Website. Das ist Schwachsinn im Quadrat, aber das haben Java-Buch Autoren abgeschrieben und was gedruckt ist, ist bekanntlich wahr. Das lesen Lehrer und unterrichten das. Mir hat man das auch beigebracht, blöderweise konnte ich da schon über 10 Jahre programmieren, weswegen ich das sehr deutlich in Frage gestellt habe und von Anfang an nicht mitgehypt habe. Die Schüler und Studenten lernen das dann. So etwas ist prüfungsrelevant. Und falsch.
    Und dann posten sie es in Foren, um mir zu erklären, dass C++ gefährlich ist und Java sicher, wo es die nächste Generation von zukünftigen Nachplapperern erfährt.

    Mechanics schrieb:

    Ich seh die Stärken von Java vor allem im J2EE Bereich, und das ist ein sehr wichtiger Bereich, wo C++ schon mal überhaupt keine Chance hat. Wer schreibt denn Webanwendungen und Portale in C++?

    Witzigerweise habe ich heute eine ähnliche Diskussion im Reallife gehabt, wo mir gesagt wurde, dass C++ in genau diesem Bereich ein Revival erfährt. Ich meinte dazu, dass eben dieser Bereich eher von ASP und JSP abgedeckt wird. Einen Haken hatte meine Argumentation: Sie schrieb Webanwendungen in C++ und ich schreibe Webanwendungen in C++.

    Wir beide schaffen es nicht unsere Server mit einem einzelnen anfragenden Rechner auszulasten. Bei PHP reichen wenige Anfragen pro Sekunde.
    Schonmal die Reaktionszeit von Sharepoint-Servern bewundert?

    Webanwendungen in C++... was für eine selten dämliche Idee... wer schreibt denn Webanwendungen und Portale in C++? :->

    Mechanics schrieb:

    weil sehr viele wichtige Architekturpatterns aus der Java Welt kommen.

    Welches? Eins würde mir reichen.

    Mechanics schrieb:

    Mit C++ hätten solche Firmen einfach überhaupt keine Chance, und die Kunden ebenfalls, weil sie dann wesentlich mehr Geld für wesentlich schlechtere Software ausgeben müssten.

    Ab einer gewissen Softwaregröße geht an C++ derzeit kein Weg vorbei, da keine Sprache an die Qualität der semantische Analyse von C++ heranreicht. Faktisch ist das der Grund, warum ich C++ programmiere: Weil ich nur mit dem besten Werkzeug die Qualität meiner Algorithmen garantieren kann. Ich kann in C++ garantieren, dass ich gewisse Fehler nicht kompilieren kann. In Java kann ich garantieren, dass diese Fehler kompiliert werden und zur Laufzeit Berechnungen verfälschen oder das Programm zum Absturz bringen.

    Unsere Definition von "schlechtere Software" scheint nicht die gleiche zu sein 😉

    Dravere schrieb:

    Das glaubst du doch selber nicht? Die Leute verwenden C#, weil sie tatsächlich C++ verwenden wollen? 😕
    Meinst du vielleicht nicht eher, dass C# bereits die Generation nach C++ ist? 🤡

    C# ist im Vergleich zu C++ ein Witz, im Vergleich zu Java ein guter Fortschritt.
    Eine Generation nach C++ ist mir nicht bekannt.

    Dravere schrieb:

    DIE ABSOLUTE SPRACHE gibt es nicht und auch C++ wird das nie werden.

    Soweit sind wir uns einig. Bedauerlicherweise ist C++ aber das Werkzeug, das am nächsten dran ist.

    Dravere schrieb:

    Im übrigen, meinst du wirklich, wenn die Leute damals nicht Java entwickelt hätten, dass alle Ressourcen automatisch in die Entwicklung von C++ gesteckt worden wäre? Das ist doch etwas utopisch? Wenn Java nicht entwickelt worden wäre, dann wäre halt etwas anderes gekommen. Die Ressourcen wären aber nicht auf wundervolle Art und Weise in die Entwicklung von C++ geflossen.

    Sie sind nicht in C++ geflossen. Wäre nur ein Zehntel davon bei C++ gelandet, hätte das locker gereicht.

    Was C++ fehlt ist das Standard-Framework drumherum. Da wo Boost ansetzt.

    C++ hat viele Frameworks, nur dafür muss man Google bemühen. In Java sind die Grundlagen standardisiert. Inzwischen auch mehrfach. Vieles ist obsolete. Eigentlich ist es da inzwischen genauso chaotisch, aber es heißt Standard. Und wenn man einen Standard hat, dann weiß man wo man dran ist. Sofern zwischenzeitlich keiner die JVM aktualisiert. Deswegen installiert man besser die JVM mit, auf der man sich sicher ist, dass das eigene Programm läuft... auch das war Standard, bei allen Firmen, bei denen ich gearbeitet habe und die Java einsetzen.
    Ein Standard-Muster, um den wechselnden Java-Standards entgegen zu wirken.

    Feriuko schrieb:

    Bezüglich C++ sind das nur Ausnahmen, bei noch einfacheren Scriptsprachen magst du recht haben.
    Bei Android wird fast nur in Java entwickelt und neu in Auftrag gegebene Entwicklungen sind meist auch Java.

    Da bekomme ich ganz andere Trends mit.
    Insbesondere den Trend, Java Anwendungen einzustampfen und in anderen Sprachen zu reimplementieren. Java hält sich tapfer, weil es Lehrsprache ist und viele ohne einen besseren Plan die Ausbildungsstätten verlassen und dann tun, was sie am besten können. Java.
    Die wenigsten haben gelernt ernstzunehmend zu programmieren.

    Oder meinst Du ein Bachelor oder Master der Informatik kann programmieren, weil er den Bachelor oder Master gemacht hat? Oder ein ITA?
    95% davon rennen los und tun, was sie schonmal gesehen haben.
    Die C++ler unter ihnen bekommen aber wenigstens solange einen auf den Deckel, bis sie anständiges C++ programmieren. Die Java-Jungs sind schneller "brauchbar", die müssen nicht lernen, was man in Java nicht formulieren kann. Sie müssen es also auch nicht denken können. Und sie denken es auch nicht, die meisten können sich nichtmals vorstellen, dass es noch mehr gibt, als sie denken können.

    Feriuko schrieb:

    Auf dem Mac gehört Java inzwischen schon nicht mehr zur Standardinstallation, was ich durchaus bemerkenswert finde.

    Das ist allerdings politisch bedingt, nicht technisch.

    Ja, das ist richtig. Und man kann es auch nachinstallieren, was ich kürzlich tat, um ein altes Programm mit häßlicher Oberfläche zu starten. Auf einem Mac bei dem seit Lion nicht aufgefallen war, dass kein Java installiert war.

    Feriuko schrieb:

    Die Programmierer sind günstiger, weil eben mehr Leute brauchbar in Java programmieren können als in C++.
    Das hängt einfach damit zusammen, wie lange ein Programmierer braucht die Sprache brauchbar zu können.
    Und da ist Java eindeutig schneller gelernt als C++.

    Irrtum. Man lernt Konzepte in Programmiersprachen zu formulieren, wenn man programmieren lernt. In Java lassen sich wichtige Konzepte nicht formulieren, die die Zuverlässigkeit von Software optimieren. Für ein "Hello World" braucht man das nicht. Das braucht man erst, wenn die Software so groß ist, dass es teuer wird, sie in semantisch stärkeren Sprachen zu reimplementieren und deswegen macht das keiner. Na, nicht keiner, es gibt auch Firmen, die sich die Qualität leisten wollen und von genau denen höre ich, dass Java-Programme eingestampft und reimplementiert werden.

    Die Sprache definiert das Denken des Entwicklers. Entwickler, die sichernde Konzepte nicht denken können, sind billig, aber nicht brauchbar. Ich habe nicht nur als C++-Entwickler mit Java-Entwicklern gearbeitet, ich habe auch Java-Entwicklern C++ beigebracht. Es ist wirklich erstaunlich, welche Vorstellungen Java-Entwickler entwickeln.
    Bemerkenswert war der Satz, den ein Java-Entwickler dann mal zu mir äußerte: "Jetzt habe ich auch verstanden, was ich letztes Jahr geschrieben habe."

    Auf meine Frage, wieso man mich als besser bezahlter C++ Entwickler für Java einsetzt wurde mir gesagt "C++ Entwickler wissen was sie tun."
    Der Umkehrschluss dürfte Dir zu verstehen geben, wie derjenige "Java-Entwickler" und "brauchbar" zusammenbringt.

    Java verdanken wir eine Generation Entwickler mit einem vollwertigen Halbwissen und dem gesunden Selbstvertrauen, an der Spitze der Programmiertechnologie zu stehen. Zufriedene Mitarbeiter mit günstigeren Personalkosten, eine Win-Win-Situation. 😉

    Feriuko schrieb:

    Also... das Wunschkonzert ist eröffnet. 🙂

    Ja, da stimme ich dir zu.
    Aber ich denke, damit sich da ein C++ Ersatz durchsetzt, müßte die Branche zusammenarbeiten und das tut sie leider nicht.
    MS macht mit C# ihr Ding und Oracle mit Java.

    Und D ist weit davon entfernt, von der Branche gepushed zu werden.

    D ist vergleichsweise langweilig und kein großer Fortschritt.

    Die Zukunft liegt in den 1990ern, bevor ein Java-Hype sie unterbrach.



  • habt ihr schon mal auf die uhr geschaut? ich werd mir jetzt schön einen von der palme wedeln und dann ab ins betti 🕶



  • Ich verfolge die Diskussion mit Interesse, und hab mal eine Zwischenfrage. 🙂

    Xin schrieb:

    Dass Java keine Pointer besitzt und deswegen sicher ist oder dass Runtimefehler besser als Fehler beim Kompiliervorgang sind, das stand früher auf Suns Website.

    Im Ernst? Das ist ja so extrem dämlich, dass man sich das kaum vorstellen kann. Wie kommt jemand drauf, dass es gut ist, Fehler spät, häufig und beim Kunden zu finden statt früh, einmal und direkt bei sich? Findest du das irgendwo auf archive.org? Ich will mal laut lachen. 😃



  • Dobi schrieb:

    Xin schrieb:

    Dass Java keine Pointer besitzt und deswegen sicher ist oder dass Runtimefehler besser als Fehler beim Kompiliervorgang sind, das stand früher auf Suns Website.

    Im Ernst? Das ist ja so extrem dämlich, dass man sich das kaum vorstellen kann. Wie kommt jemand drauf, dass es gut ist, Fehler spät, häufig und beim Kunden zu finden statt früh, einmal und direkt bei sich? Findest du das irgendwo auf archive.org? Ich will mal laut lachen. 😃

    1. Java hat intern natürlich Pointer. Was Java nicht hat, ist Pointer-Arithmetik. Ich persönlich habe die auch noch nicht vermisst. Du kannst in Java nicht einfach auf irgendwelche Speicherbereiche zugreifen, die nicht genau dafür vorgesehen sind. Du kannst nichtmal Arraygrenzen überschreiten, ohne dass eine Exception geschmissen wird.

    2. Keine Ahnung, wo das mit den Laufzeitfehlern gegenüber den Compilezeitfehlern herkommt. Aber eigentlich kann es sich nur auf Typsicherheit beziehen. In Java hatte man vor der Einführung von Generics in die Sprache nur dynamische Typsicherheit. Jetzt hat man zusätzlich auch statische Typsicherheit. Ich hatte eigentlich nie Probleme damit, dass die statische Typsicherheit fehlte. Eine "ClassCastException" ist zur Laufzeit praktisch nie geflogen. Aber die dynamische Typsicherheit ist durchaus auch sehr wichtig. Die Frage ist, ob Du von allem den Typ zur Compilezeit kennst. Braucht man dynamische Polymorphie? Wenn man sie in einer Sprache anbietet, dann sorgt man zumindest besser auch für dynamische Typsicherheit.

    Im Übrigen gibt es jede Menge Sprachen, die die Typsicherheit noch lockerer sehen als Java sie damals gesehen hat: Alle dynamisch typisierten Sprachen, zum Beispiel Python.

    2a. Was allerdings definitiv der Fall ist, ist, dass Laufzeit-Fehlermeldungen in Java wesentlich aussagekräftiger als in nativ compilierenden Sprachen sind. Es werden mehr Informationen und Checks in die Laufzeit übernommen, so dass in Fehlermeldungen meistens sofort die genaue Stelle im Code ersichtlich ist, die für den Fehler verantwortlich ist. Debugging von Java Code ist unglaublich einfach und angenehm.


Anmelden zum Antworten