Java lernen sinnlos?
-
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?
-
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, versehenes geeht ja um C++
-
+fricky schrieb:
Rhabarber
http://de.wikipedia.org/wiki/Generische_Programmierung
http://de.wikipedia.org/wiki/Generative_Programmierung
-
^^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.
-
C++ wird nur noch in Nischenanwendungen verwendet, wie beispielsweise MS Office, OpenOffice, Adobe Reader, Firefox, IE, KDE, Thunderbird, Java.
Das klingt irgendwie wie Ironie.