Java lernen sinnlos?



  • byto schrieb:

    falsch ist.

    Stört dich, daß ich sagte, Javas anonyme Klassen könnten nicht auf den Scope der umliegenden Methode zugreifen? Du liegst richtig, das können sie, solange die Symbole final sind - aber deshalb unterstützt Java noch lange keine Closures. Was genau das war, was ich sagen wollte. Was du im Übrigen genau wußtest. Und bevor du mir weiter ausweichende Argumentation vorwirfst, wüßte ich wirklich gerne, welcher meiner Äußerungen du "Java [...] so schlecht sei, nur weils Sprachfeature XYZ nicht gibt." entnommen hast.

    Aber Hauptsache, wir haben noch ein bißchen polemisiert. Sind ja erst auf Seite einundzwanzig. 👍



  • auf Reflection, die gibt es in C++ nicht, eine der Dinge die ich in C++ vermisse, wie bereits gesagt

    Vermisse ich nicht in C++.

    smartpointer sind der inbegriff eines workarounds

    Nein, sind sie nicht, da man sich aussuchen kann, wo sie eingesetzt werden. Ich habe sie genau einmal sinnvoll fuer Objekte genau einer speziellen Klasse verwendet. Sonst brauchte ich sie nicht. Dank C++ hatte ich diese Freiheit.

    ML-, lisp-, scheme-, sonstwas-programmierer, ob er sich sowas wie C++ templates in seiner programmiersprache haben will

    Ich programmiere in Scheme. Dort hat man Macros. Sie sind nicht zu verwechseln mit denen in C oder C++. Nur der Name ist gleich.

    JIT-Optimierungen

    Ich halte es immernoch fuer die groesste Marketingluege bei C# oder Java. Ueberall liesst man sowas wie "prizipiell" oder "moeglich" (alles im Konjunktiv) , aber nirgends steht was konkretes.

    Kommt irgenwann mal ein anderes Beispiel fuer Op.ueberladung und Templates

    Zumindestens fuer Templates und Typsicherheit: http://www.boost.org/doc/libs/1_39_0/libs/mpl/doc/index.html

    Viele wären wahrscheinlich überrascht, wie selten man die Sicherheit und Performance statischer Typisierung bei vielen nicht-kritischen Programmaufgaben wirklich braucht

    Irgendeine Marsmission: Der eine rechnet mit Fuss, der andere mit Meter ... bang 10 Mrd. Doller im Arsch. Ich mags einfach, wenn der Compiler mir sagt, dass ich gerade Mist baue. Der Hoehenparameter haette einfach an die Einheit "Meter" bzw. "Fuss" gebunden werden koennen und schon wuerde dieser subtile Bug bei der Compilation gemeldet.

    nehme lieber das passende werkzeug für's jeweilige szenario, als'n leatherman oder 'swiss army knife' für alles

    Genau das spricht gegen Java.

    Ich wehre mich lediglich dagegen, dass Java angeblich so schlecht sei, nur weils Sprachfeature XYZ nicht gibt

    Java ist so schlecht, weil es versucht, etliche Sprachfeatures anzubieten ohne davon auch nur eins wirklich gut umzusetzen.

    Java füllt gewisse Lücken auf, die C++ nicht schließen kann oder will

    C++ erhebt garnicht den Anspruch alles abzudecken. Diese Luecke wurde schon von vielen anderen Sprachen besetzt.

    die C++ schliessen kann, ist verdammt klein. sie ist jetzt schon kaum wahrnehmbar und sie wird immer kleiner.

    Bloedsinn. C++ will niemals Haskell oder Prolog Konkurrenz machen. Skripting und Co. stehen auch nicht auf der Jagdliste von C++.

    Viele wären wahrscheinlich überrascht, wie selten man die Sicherheit und Performance statischer Typisierung bei vielen nicht-kritischen Programmaufgaben wirklich braucht

    Irgendeine Marsmission: Der eine Rechnet mit Fuss, der andere mit Meter ... bang 10 Mrd. Doller im Arsch. Ich mags einfach, wenn der Compiler mir sagt, dass ich gerade Mist baue.

    BOOST_FOREACH

    Das einzig Gute an Boost, was ich bisher kennengelernt habe, ist die MPL. Manche benutzen ja auch sowas wie boost::exit_status ... Auch sollte Boost als Bibliothek nicht herangezogen werden, um ueber C++ zu urteilen. Es ist eben nicht die Sprache.

    Und hier die ultimative Frage: Wer wuerde Java nutzen, wenn keine so umfangreiche Klassenbibliothek mitgeliefert werden wuerde? Wahrscheinlich niemand. Eine Klassenbibliothek kann niemals Maengel der Sprache ausgleichen, deswegen finde ich Java schlecht.



  • knivil schrieb:

    auf Reflection, die gibt es in C++ nicht, eine der Dinge die ich in C++ vermisse, wie bereits gesagt

    Vermisse ich nicht in C++.

    Würdest du Reflection in Java, C# oder Delphi vermissen?

    knivil schrieb:

    Ich halte es immernoch fuer die groesste Marketingluege bei C# oder Java. Ueberall liesst man sowas wie "prizipiell" oder "moeglich" (alles im Konjunktiv) , aber nirgends steht was konkretes.

    Da kann ich gerne nachhelfen: [1] [2]

    knivil schrieb:

    Viele wären wahrscheinlich überrascht, wie selten man die Sicherheit und Performance statischer Typisierung bei vielen nicht-kritischen Programmaufgaben wirklich braucht

    Irgendeine Marsmission: ...

    🤡



  • knivil schrieb:

    Und hier die ultimative Frage: Wer wuerde Java nutzen, wenn keine so umfangreiche Klassenbibliothek mitgeliefert werden wuerde? Wahrscheinlich niemand. Eine Klassenbibliothek kann niemals Maengel der Sprache ausgleichen, deswegen finde ich Java schlecht.

    Eine Gegenfrage: Wuerde irgendjemand C++ benutzen, mit den ganzen Templates, Macros, Op.uberladungen usw, wenn es nicht kompatibel zu C waere?

    Btw, http://www.boost.org/doc/libs/1_39_0/libs/mpl/doc/index.html empfinde ich als ein Versuch einem Fisch beibringen zu fliegen. Oder einfach ein "Proof of concept", der Art "Mit Templates brauche ich keine richtigen Sprachfeatures, ich kann mir alle selbst nachprogrammieren". Die arme Seele die sich damit rumplagen muss, anstatt einfach Matlab, Scheme oder Prolog zu benutzen.

    Ausserdem, ist es ein Beweis zu dem Standpunkt das C++ dir keine Sprachfeatures sondern Meta-Features bietet. Anstatt Lambdas und Dimensional Analysis in die Sprache zu integrieren (wo es hingehoert), bietet es dir die Moeglichkeit diese nachzubauen. Mit dem kleinen Nebeneffekt, dass jeder sie anderes Nachbaut und das man Library X nicht mit Library Y benutzen kann.



  • Eine Gegenfrage: Wuerde irgendjemand C++ benutzen, mit den ganzen Templates, Macros, Op.uberladungen usw, wenn es nicht kompatibel zu C waere?

    Ich würde mal behaupten sehr wenige, die heutzutage C++ wählen tun dies wegen C-kompatibelität.

    Btw, http://www.boost.org/doc/libs/1_39_0/libs/mpl/doc/index.html empfinde ich als ein Versuch einem Fisch beibringen zu fliegen. Oder einfach ein "Proof of concept", der Art "Mit Templates brauche ich keine richtigen Sprachfeatures, ich kann mir alle selbst nachprogrammieren". Die arme Seele die sich damit rumplagen muss, anstatt einfach Matlab, Scheme oder Prolog zu benutzen.

    Scheme macht mit Lispmakros doch genau das gleiche?

    Ausserdem, ist es ein Beweis zu dem Standpunkt das C++ dir keine Sprachfeatures sondern Meta-Features bietet. Anstatt Lambdas und Dimensional Analysis in die Sprache zu integrieren (wo es hingehoert), bietet es dir die Moeglichkeit diese nachzubauen. Mit dem kleinen Nebeneffekt, dass jeder sie anderes Nachbaut und das man Library X nicht mit Library Y benutzen kann.

    Du hasts erfasst, bis auf das "wo es hingehört", denn das war genau mein Punkt - die Sprache kann sich entwickeln ohne sich zu verändern und das hält sie am Leben. Bis sich andere spezialisertere Sprachen soweit etabliert haben, dass es eine gewisse Bibliotheksauswahl gibt sind sie schon wieder veraltet. Änderungen in der Sprache hinken dem Bedarf immer hinterher, Lambdas werden in C++ btw. auch integriert werden, genauso kommt boost.function in die Standardbibliothek, das heißt die Features werden in C++ ebenso integriert, aber man kann die Features eben schon vorher nutzen und sich seine eigenen bauen.
    Dass man Libraries nicht miteinander benutzen kann stimmt auch, aber in die Verlegenheit gekommen Bibliotheken so miteinander zu verbinden, hast du denn ein Beispiel wo es dich wirklich gestört hat?

    Wie gesagt, ich glaube niemand würde dir in deiner Beobachtung widersprechen, lediglich in der Deutung!



  • DEvent schrieb:

    Ich glaub C++ler schreiben die ganze Zeit nur irgendwelche mathematische Bibliotheken. Kommt irgenwann mal ein anderes Beispiel fuer Op.ueberladung und Templates?

    Boost Spirit



  • knivil schrieb:

    nehme lieber das passende werkzeug für's jeweilige szenario, als'n leatherman oder 'swiss army knife' für alles

    Genau das spricht gegen Java.

    ist dir Java schon zu sehr 'general purpose'? dann bist du wohl eher ein freund von spezialisierten programmiersprachen, ne?

    knivil schrieb:

    die C++ schliessen kann, ist verdammt klein. sie ist jetzt schon kaum wahrnehmbar und sie wird immer kleiner.

    Bloedsinn. C++ will niemals Haskell oder Prolog Konkurrenz machen. Skripting und Co. stehen auch nicht auf der Jagdliste von C++.

    ich meinte es umgekehrt: nicht dass c++ sich in fremden territorien breit macht, sondern dass c++ immer weiter ins abseits gerät. seine blütezeit ist längst vorbei und ein comeback wird es nicht geben. auch schönheitsreparaturen und aufputschmittel, wie der neue standard, werden keine wiedergeburt nach sich ziehen, sondern sich eher negativ auswirken.

    JustAnotherNoob schrieb:

    ... die Sprache kann sich entwickeln ohne sich zu verändern und das hält sie am Leben.

    'entwickeln ohne sich zu verändern'!? wie geht'n das?
    🙂



  • +fricky schrieb:

    knivil schrieb:

    die C++ schliessen kann, ist verdammt klein. sie ist jetzt schon kaum wahrnehmbar und sie wird immer kleiner.

    Bloedsinn. C++ will niemals Haskell oder Prolog Konkurrenz machen. Skripting und Co. stehen auch nicht auf der Jagdliste von C++.

    ich meinte es umgekehrt: nicht dass c++ sich in fremden territorien breit macht, sondern dass c++ immer weiter ins abseits gerät. seine blütezeit ist längst vorbei und ein comeback wird es nicht geben.

    Das sehe ich auch so, habe ich auch schon vor ein paar Jahren hier geschrieben. C++ wurde in den 90ern massiv in Gebieten eingesetzt, die die Fähigkeiten von C++ gar nicht brauchen. In denen auch die Fähigkeiten der Entwickler nicht ausreichen. Das sind genau die Gebiete, die heute Java bzw. C# einnehmen. Geschäftsanwendungen hauptsächlich. Dafür hat man früher (wenn nicht VB) die MFC ausgepackt, heute halt Swing oder was auch immer. C++ ist auf dem Rückzug in "seine" Nische. Wowereit.

    auch schönheitsreparaturen und aufputschmittel, wie der neue standard, werden keine wiedergeburt nach sich ziehen, sondern sich eher negativ auswirken.

    Hier muss ich widersprechen. Wenn du dir die Änderungen im neuen Standard anguckst, dann gehen diese ganz eindeutig nicht in die Richtung, den neuen Mainstream-Sprachen (s.o.) Konkurrenz zu machen, sondern die Gebiete, in denen sich C++ seit der STL, Boost usw. hervortut, zu stärken. C++ festigt sich gerade seine Nische. Ob die groß genug ist, kann ich nicht beurteilen, aber geben tut es sie.



  • Bashar schrieb:

    C++ festigt sich gerade seine Nische. Ob die groß genug ist, kann ich nicht beurteilen, aber geben tut es sie.

    ich kann diese nische nicht erkennen, was nicht heissen soll, dass es keine gibt. vielleicht befindet sie sich irgendwo auf dem gebiet der 'generativen programmierung', dort nimmt man aber gern spezialisierte tools, die direkt mit grafischen oder formalen schemata als input umgehen können (z.b. aus UML Java-klassen erzeugen oder aus logik-schaltbildern VHDL-code machen, usw). wenn es eine nische gibt, dann ist sie sehr klein. und letzen endes wird c++, wie bisher, für dinge verwendet werden, für die es geeignetere werkzeuge gibt.
    🙂



  • Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rha - barber Rhabarber



  • Zusammenfassung schrieb:

    Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rhabarber Rha - barber Rhabarber

    Oder auch einfach Rhabarberbarbara...



  • asc schrieb:

    Oder auch einfach Rhabarberbarbara...

    gibts was zu meckern? du hast doch mal selber erzählt, dass in deinem beruflichen umfeld verstärkt auf C# gesetzt wird, wo früher C++ angesagt war.
    🙂



  • +fricky schrieb:

    asc schrieb:

    Oder auch einfach Rhabarberbarbara...

    gibts was zu meckern? du hast doch mal selber erzählt, dass in deinem beruflichen umfeld verstärkt auf C# gesetzt wird, wo früher C++ angesagt war.
    🙂

    Quatsch Rhabarber Rhabarber Rhabarber!!!111



  • Was habt ihr gegen C??? Ich programmiere gern in C
    Edit: oh, versehen 😮 es geeht ja um C++





  • ^^danke für die unterstützung, aber die wiki-artikel findet bestimmt jeder leicht selber.
    🙂



  • +fricky schrieb:

    ^^danke für die unterstützung, aber die wiki-artikel findet bestimmt jeder leicht selber.
    🙂

    Durch die Namensähnlichkeit und teilweise Überdeckung der Inhalte, sind Verwechslungen programmiert. Dem wollte ich nur ein wenig entgegenwirken.



  • C++ wird nur noch in Nischenanwendungen verwendet, wie beispielsweise MS Office, OpenOffice, Adobe Reader, Firefox, IE, KDE, Thunderbird, Java. Daneben sind noch fast alle Spiele in C++ programmiert. Aber ein PC ist ja nicht zum spielen da.



  • volkard schrieb:

    Durch die Namensähnlichkeit und teilweise Überdeckung der Inhalte, sind Verwechslungen programmiert. Dem wollte ich nur ein wenig entgegenwirken.

    ok, nochmals dank.

    tntnet schrieb:

    C++ wird nur noch in Nischenanwendungen verwendet, wie beispielsweise MS Office, OpenOffice, Adobe Reader, Firefox, IE, KDE, Thunderbird, Java. Daneben sind noch fast alle Spiele in C++ programmiert.

    keine angst, das wird sich langsam ändern.
    🙂



  • Ach, es wird doch eh alles .NET, wenn erst mal Midori da ist, kann man umanaged code sowieso auf Win verabschieden. 😞


Anmelden zum Antworten