Haben die alten Widgets ausgesorgt?
-
Wo ist das ganze Drumrum zu C++, was andere Sprachen wie Java, PHP, C# usw haben? Wo sind die deutschen Fachzeitschriften, Blogs, Podcasts, Best-Practice-Artikel, gute Fachbücher sind ja auch rar gesät. C++ sieht von außen betrachtet nicht nach einer aktuellen modernen Sprache aus, sondern nach einem akademischen komplizierten Monster, eben weil das ganze Drumherum fehlt, was alle anderen Technologien haben. Ja ich glaub selbst Ruby hat eigene Fachzeitschriften. C++ wird doch den Einsteigern überhaupt nicht schmackhaft gemacht. Der Schrecken von C++ wird keinem Anfänger genommen. Das könnte anderes, sein wenn es viel mehr Artikel, Videos etc dazu geben würde. Das kann auch ein Grund sein, warum viele C++ nach ein paar Gehversuchen wieder in die Tonne kloppen.
Was haben die User anstelle? An uraltes Forum wie dieses hier, wo oft auch der letzte, der es gut mit C++ meint, auseinander genommen wird, weil er kein const correctnes oder sonst was genau eingehalten hat und nicht die 55 Tricks kennt wie man sich NICHT mit C++ das ganze Bein abschießt!
-
Was du schreibst geht jetzt plötzlich in eine ganz andere Richtung. Worum gings gleich wieder am Anfang? Ob man neue Projekte überhaupt noch in C++ anfangen würde, oder ob nur altes Zeugs damit gepflegt wird. Und meine Aussage war, dass auch bei neuen großen Projekten C++ immer noch erste Wahl wäre. Wie gut das Angebot an C++ Infos für Anfänger ist, hat damit nicht ansatzweise was zu tun.
-
Java hat bessere IDEs, du hast mehr Libs zur Auswahl und die sind auch moderner. Du hast ein(!) Binary. Du hast geile Buildsysteme wie sbt, gradle und mavenrepository. Keine Headerscheiße, größere Standardlib mit Netzwerk- und GUI-Unterstützung. Du kannst Code mit JVM-Sprachen austauschen etc.
Wer nicht bessere Gründe hat in C++ neue Projekte anzufangen als seine Vorliebe zu ihr, der arbeitet halt enorm unwirtschaftlich.L. G.,
IBV
-
NiceJava schrieb:
C++ sieht von außen betrachtet nicht nach einer aktuellen modernen Sprache aus, sondern nach einem akademischen komplizierten Monster, eben weil das ganze Drumherum fehlt, was alle anderen Technologien haben. Ja ich glaub selbst Ruby hat eigene Fachzeitschriften. C++ wird doch den Einsteigern überhaupt nicht schmackhaft gemacht. Der Schrecken von C++ wird keinem Anfänger genommen.
Das liegt aber auch an den ganzen Leuten, die immer wieder erzaehlen, wie schwer und fehleranfaellig C++ doch ist und darauf hinweisen, dass Java, Python, Actionscript (wegen Flash) oder HTML 5 die Programmiersprachen der Zukunft seien. Zum einen werden Neuling dadurch zu den vermeintlich zukunftssicheren Scriptsprachen gedraengt und zum anderen wird C++ schlecht geredet.
Kaum jemand weiss, dass memory leaks in C++ laengst der Vergangenheit angehoeren und die Loesung sogar umfassender als der Garbage collector ist. Von iteratoren, containern, generischen Klassen/Funktionen hat auch keiner Ahnung und von lambdas und asynch erst recht nicht.
-
IBV schrieb:
Java hat bessere IDEs, du hast mehr Libs zur Auswahl und die sind auch moderner.
Das stimmt jetzt nicht. Im Grunde fehlt fuer C++ nur eine plattformunabhaengige GUI-library, die eine weniger restriktive lizenz ist als Qt und einen guten GUI-designer bietet. Die meisten Libraries sind in C geschrieben und als C++-Programmierer hat man den Luxus, diese ohne Aenderung direkt in seinem Code verwenden zu koennen, was nach meiner Ansicht auch ueberhaupt der Grund fuer den damaligen Erfolg C++s ist.
-
Was die IDEs angeht, stimmt das teilweise. Visual Studio finde ich recht gut, hat aber auch einige Macken und ist natürlich eine Windows IDE. Die IDEs, die es für Linux gibt, finde ich nicht so toll. Muss aber sagen, dass ich mir den QtCreator noch nie genauer angeschaut habe. Was Java angeht... Eclipse und Netbeans sind zwar irgendwo gute IDEs, aber auch nicht so viel besser als Visual Studio und total lahm. Jetzt kann man Eclipse schon halbwegs bedienen, vor paar Jahren hat aber allein das Starten ab und zu mehreren Minuten gedauert. Und Eclipse ist zu undurchsichtig, ich hab schon sehr viel Zeit mit dem Untersuchen komischer Probleme verbracht, die von Eclipse automatisch verbrochen wurden.
Dass die Standardbibliothek gut ist, ist vor allem für kleine Projekte interessante. Hab ich schon vor Tagen geschrieben. Bei kleinen Projekten finde ich Java und C# (vor allem C#) auch besser. Bei großen Projekten relativiert sich das sehr schnell. Auch für C++ gibt es in allen Bereichen sehr gute Bibliotheken.
Und wenn man etwas abseits der Standard Enterprise Anwendungen braucht, gibt es für C++ viel bessere Bibliotheken, für die es dann bestenfalls mittelmäßige Java Wrapper gibt (VTK, OpenCascade, ITK). Würde mich sehr überraschen, wenn es für Java nativ irgendwas auch nur annähernd vergleichbares gibt.
-
Naja, Java mit Eclipse zu entwickeln ist eine ganz andere Welt als C++ mit VS.
Mein Eclipse hat sicherlich unter 10sec Startup-Zeit. Zum Teil Design - Eclipse ist extrem overengineert um so extrem dynamisch sein wie es nun mal ist - und zum anderen Teil dass Java erst warmlaufen muss bis die Hotspots von Hotspot (höhö) vergewaltigt wurden. Ab dann hat man 0.0 Lag bei Aktionen. Überhaupt nicht langsam. Compilezeiten sowieso minimal bis nicht existent.Zum anderen nimmt einem Eclipse gewaltig viel Arbeit ab. Man tippt etwas und lässt Eclipse den Rest erledigen wie zb Variablen erstellen, Klassen importieren etc.
-
Ich weiß nicht, was für einen Rechner du hast. Ich hab einen Core i7 mit 16GB RAM und SSD. Und trotzdem ist Eclipse bei mir nicht "schnell". Ich merke öfter mal, dass es mal eine Pause macht, z.B. beim Wechseln der Fenster, Gehe zur Deklaration usw. Und mit der Zeit wird es immer langsamer.
Mit Visual Assist hab ich auch einiges an Refactoring Funktionen für C++. Paar Ideen hätt ich vielleicht noch, was man da verbessern könnte, ist aber nichts dabei, was ich großartig vermissen würde. Kann man wunderbar damit arbeiten.
-
Auf der Arbeit einen i3, 12GB RAM und keine SSD.
Original Oracle Java?Bei C++ steigt meiner Erfahrung nach jede IDE irgendwann aus wenn man Unfug mit Templates treibt. Wenn man Java ähnlich aufgeräumt programmiert dann natürlich weniger.
Was mich freut ist dass Eclipse bei soetwas nie die Fassung verliert. Ist zwar eigentlich selbstverständlich aber bin in Java ein richtiger Stream-Junkie geworden weil es einfach Spaß zu Programmieren ist.
Habe ich immer im Vergleich zu C++ vermisst.Arrays.stream(new Integer[]{1, 2, 3, 4, 5}).filter(v -> v % 2 == 0).map(v -> v.toString()).collect(Collectors.toList()).size();
-
Mechanics schrieb:
Bei kleinen Projekten finde ich Java und C# (vor allem C#) auch besser.
und da du auch schriebst, dass nur 10% der Projekte wirklich mit vielen bis hundert Mann entwickelt werden, dann ist also Java/C# für 90% aller Softwareprojekte zu empfehlen. Toll, und solch eine Aussage von einem C++-Menschen.
Zum Thema mit zum C++-Auftritt in der Öffentlichkeit, der könnte wirklich schlechter kaum sein. Es entsteht nun einmal der Eindruck, das man C++ nur nimmt, wenn man gar keine andere Wahl hat und nicht weil es sich gut damit entwickeln lässt. Jetzt wo so viele neue Features zu C++ gekommen sind, wäre es doch an der Zeit dies auch mal an die Leute ran zutragen. Mit einer C++-Zeitschrift guten Büchern, Video und so weiter. Wo halt nicht nur die Funktonbeschreibung der Sprache im Mittelpunkt steht, sonder was und wie man was damit schustern kann. Das fast unerschöpfliche Meer der BestPractice-Beispielen fehlt total, so unter dem Motte, so schreibt man einen kleinen Webserver, oder so lässt sich eine CSV-Datei lesen und schreiben, oder so erstelle ich ein kleines Jump-and-Run, so erstelle ich Masken für eine Datenbankabfrage und schreibe Verifikatoren für die Textfelder, so setzte ich die Lib OpenCV und XYZ ein, so mache ich mir das Leben mit CMake leichter, so sind die Hürden mit Crossplattform-Geschichten zu meistern und so weiter und so fort. Die Themen geben Stoff für viele viele Jahre zu dem Thema und dabei kann man immermal ein Feature von C++ hervorheben und genauer erklären.
Einfach nur die Buchstaben und die Grammatik und Rechtschreibung einer Sprache zu lernen reicht doch nicht um tolle Bücher zu schreiben. Das ist ein Witz wie C++ an die Menschen ran getragen wird. Es fehlt das Ubuntu für die Massen. Eine Bühne, wo C++ dann das zeigen kann, was es auch sein kann, außer kompliziert und staubtrocken. Entwickeln soll Spaß machen und leicht von der Hand gehen, dann bleibt die Motivation für die Sprache auch lange erhalten. Voralem ist Programmieren auch was praktisches, was auch immer wieder mit praktischen Beispielen gezeigt werden sollte. Genau wie es mit bei Referenzen immer ernorm hilft zu jeder verdammten Funktion ein kleines Beispiel als Code mitzukommen. Verstehe ich den Text nicht, weil er einfach zu akademisch geschrieben ist, dann erkenne ich zu 99% aus dem Codeblock was diese und jene Funktion macht und das in ein paar Sekunden.
Ich werde mit jetzt den Spaß machen und mein Projekt mal in C++ umsetzen und weiterentwickeln. Und ja ich weiß wie die Sachen im Speicher funktionieren. Ich habe damals ein paar Jahre ausschließlich zu 100% in Assembler programmiert.
Aber ich hoffe, ich konnte hier nochmals klar machen, warum C++ den Ruf hat den es hat. Es liegt an euch Fachautoren, Verlegern und natürlich auch an Foren- und Blog-Betreibern diesen Ruf zu verändern.
-
NiceJava schrieb:
Aber ich hoffe, ich konnte hier nochmals klar machen, warum C++ den Ruf hat den es hat. Es liegt an euch Fachautoren, Verlegern und natürlich auch an Foren- und Blog-Betreibern diesen Ruf zu verändern.
Wenn du dich daran so störst, dann lerne halt C++ und ändere es selbst. :p Niemand wird hier etwas ändern, was er selbst gar nicht als Problem ansieht. Ich persönlich kann auch nicht so recht nachvollziehen was du sagst. Es gibt genügend best practice Bücher über C++.
Und hier deine C++ Webserver:http://www.adp-gmbh.ch/win/misc/webserver.html
http://www.dreamincode.net/forums/topic/207537-c-simple-web-server/
Andere C++ Tutorials:
http://www.dreamincode.net/forums/forum/48-c-tutorials/
http://www.c-plusplus.net/forum/f55
@Mechanics: Schon mal IntelliJ ausprobiert? Gibt es auch als kostenlose Community-Edition. Legt noch mal einen drauf was gute Java-IDEs angeht.
L. G.,
IBV
-
Wenn man fehlervermeidend programmieren will, ist es in C++ am einfachsten. Also für mich bei quasi jedem Programm.
NiceJava schrieb:
Es liegt an euch Fachautoren, Verlegern und natürlich auch an Foren- und Blog-Betreibern diesen Ruf zu verändern.
Sag doch mal bescheid, wenn der Gallileo-Verlag und Jürgen Wolf sich aus dem C++-Geschäft zurückziehen. Es gibt genug gute Bücher, aber sie gehen unter durch total falsche (anfangs gefakte) Amazon-Rezensionen.
Außerdem KANN es keine durchgängig anfängerfreundliche Sprache geben, denn das Programmieren selbst ist total kompliziert, fürchte ich. Versuche dahin wie der Java-GC rächen sich stets.
-
Ethon schrieb:
Ab dann hat man 0.0 Lag bei Aktionen.
Hm.. Wieviel Wochen muss Eclipse dafür laufen, dass es dort ankommt? Bei mir ist es nie soweit gekommen.
-
IBV schrieb:
NiceJava schrieb:
Aber ich hoffe, ich konnte hier nochmals klar machen, warum C++ den Ruf hat den es hat. Es liegt an euch Fachautoren, Verlegern und natürlich auch an Foren- und Blog-Betreibern diesen Ruf zu verändern.
Wenn du dich daran so störst, dann lerne halt C++ und ändere es selbst. :p Niemand wird hier etwas ändern, was er selbst gar nicht als Problem ansieht. Ich persönlich kann auch nicht so recht nachvollziehen was du sagst. Es gibt genügend best practice Bücher über C++.
Und hier deine C++ Webserver:http://www.adp-gmbh.ch/win/misc/webserver.html
http://www.dreamincode.net/forums/topic/207537-c-simple-web-server/
Andere C++ Tutorials:
http://www.dreamincode.net/forums/forum/48-c-tutorials/
http://www.c-plusplus.net/forum/f55
@Mechanics: Schon mal IntelliJ ausprobiert? Gibt es auch als kostenlose Community-Edition. Legt noch mal einen drauf was gute Java-IDEs angeht.
L. G.,
IBVJa, alles auf Englisch, da ist der Markt ja auch bedient. Jetzt kommt wieder der Spruch dass ohne Englisch nichts geht blablabla. Ist mir auch schon klar, aber für den Anfänger ist es wesentlich einfacher wenn er wenigstens in seiner Muttersprache lernen kann.
So wie es aussieht, bleibt dann halt C++ bei seinem schlechten Ruf, da niemand was ändern will auf dem deutschen Markt.
Eclipse und Netbeans rennt wie Sau bei mir unter einem i7 und auch mein Software-Renderer, den ich unter Java schreibe, macht keine Mucken. Das einzige unter OSX zieht mein Programm 50% CPU auf meinem i5 Macbook, unter Linux und Windows 3% auf einem i7 12GB Ram PC mit GTX760 und SSD. Ganz schlimm funktioniert Eclipse und auch Netbeans unter Mavericks und Yosemite, da habe ich schnell wieder auf Mountain Lion downgegradet. Aber wie gesagt unter Windows und XFCE unter Linux kann ich nicht meckern über die Performance.
-
NiceJava schrieb:
Ja, alles auf Englisch, da ist der Markt ja auch bedient. Jetzt kommt wieder der Spruch dass ohne Englisch nichts geht blablabla. Ist mir auch schon klar, aber für den Anfänger ist es wesentlich einfacher wenn er wenigstens in seiner Muttersprache lernen kann.
Also so kompliziert ist das Englisch dieser Fachbücher ja nun nicht, daß man davon groß behindert würde.
-
@NiceJava: Wie liest du eigentlich die Java Doc? Vieles gibt es nur in Englisch.
-
Ach komm, der musste ja jetzt kommen. Dann könnten man auch alle deutschen Posts, Fachartikeln, Bücher usw sein lassen. Es ist halt immer schwerer was in einer Fremdsprache was zu lernen und C++ ist schon schwer genug, im Vergleich zu den anderen heutig häufig eingesetzten Sprachen.
-
IBV schrieb:
@NiceJava: Wie liest du eigentlich die Java Doc? Vieles gibt es nur in Englisch.
Es geht doch nicht um mich, ich komme recht gut mit dem Fach-englisch klar. Aber ich habe halt genug Empathie und weiß auch noch aus meinen Anfangstagen, dass mir deutsche Artikel immer schneller einen Durchblick verschafft haben. Wenn man über einem gewissen Level raus ist, geht alles auch in English, aber gerade die ersten Schritte wäre was in der Muttersprache schon toll. Und wenn ich die Wahl habe zwischen einer englischen oder deutschen Ausgabe, dann wähle ich auch heute noch die deutsche, obwohl ich auch Wälzer in English habe.
Aber Englisch vs Deutsch wollte ich hier nicht diskutieren, nur den Fachartikelmangel auf Deutsch von C++ im Vergleich zu Java und Konsorten, den man durch die Bank weg beobachten kann.
Wenn man heute in die Welt des Programmierens einsteigt, egal ob an der Uni, in der Ausbildung oder auch als Hobby, dann spielt C++ wirklich keine große Rolle und das müsste ja nicht so sein.
-
NiceJava schrieb:
Wenn man heute in die Welt des Programmierens einsteigt, egal ob an der Uni, in der Ausbildung oder auch als Hobby, dann spielt C++ wirklich keine große Rolle und das müsste ja nicht so sein.
Das hat erstens nichts mit Fachbüchern zu tun, schließlich ist C++ älter als Java, zweitens kommt es auf das Gebiet drauf an. An meiner FH ist zwar bei C und Java der Schwerpunkt, aber bei den C-Vorlesungen haben wir einen C++ Crashkurs bekommen, weil andere Profs das in ihren Vorlesungen voraussetzen. Ich habe das jetzt in drei Vorlesungen gebraucht: Bildverarbeitung, Computergrafik und Multimedia. Und bei meiner Werkstudententätigkeit (Bildverarbeitung) brauche ich das auch und deswegen sehe ich mich nun gezwungen, C++ professionell zu lernen. Irgendwelche Kochbücher helfen mir da übrigens nicht weiter, die es übrigens sehr wohl gibt, auch auf Deutsch. Guck mal bei amazon. Da gibt es Bücher bei denen man C++ mit Spieleprogrammierung lernt. Oder Schrödingers Katze lernt C++ usw. Alles da...
L. G.,
IBV
-
NiceJava schrieb:
Mechanics schrieb:
Bei kleinen Projekten finde ich Java und C# (vor allem C#) auch besser.
und da du auch schriebst, dass nur 10% der Projekte wirklich mit vielen bis hundert Mann entwickelt werden, dann ist also Java/C# für 90% aller Softwareprojekte zu empfehlen. Toll, und solch eine Aussage von einem C++-Menschen.
Ich bin kein C++ Mensch. Ich habe länger C# programmiert als C++, und privat auch viel mehr. Ich habe auch mehrere "größere" Projekte in Java gemacht. Ich bin weitgehend neutral, was C++/C#/Java angeht. Ich argumentiere hier vor allem Pro C++, weil deine Anschauung aus meiner Sicht falsch ist. Ich brauche ja nicht für Java zu argumentieren, das kennst du ja schon gut und den entsprechenden Arbeitsmarkt auch.
Und ja, ich würde bei 90% der Programme vielleicht C# oder Java bevorzugen. Und? Das ist für mich keine religiöse Diskussion, wie du das anscheinend siehst. Ich habe nie gesagt, C++ wäre die beste Sprache der Welt, die für alle Problemstellungen perfekt geeignet ist. Wenn du einsiehst, dass man Browser, CAD Systeme, Videoschnittprogramme und sehr vieles mehr auch heute noch From Scratch am besten in C++ und nicht in Java schreiben würde, dann sind wir uns vielleicht endlich einig. Und das ist zufälligerweise auch die Größenordnung von Projekten, die mich am ehesten interessieren.
Mich stören die Probleme, die Anfänger mit C++ haben nicht unbedingt, weil ich als Anfänger auch große Probleme hatte. C++ hat mich damals deswegen auch nicht weiter interessiert und es war auch nicht die geeignete Sprache zum Lernen. Es wäre für mich auch heute nicht die geeignete Sprache zum Lernen gewesen. Aber mit der Zeit habe ich Programmiererfahrung gesammelt, dann noch paar gute C++ Bücher gelesen und hatte dann auch damit keine Probleme mehr. Natürlich braucht man auch danach noch Jahre, um C++ "gut" oder zumindest immer besser zu können. Das ist halt eine Sprache für Profis und nicht für Anfänger. Und für einen erfahrenen Entwickler sollte es kein Problem sein, in C++ reinzukommen.
Deine Begeisterung für die Community und Fachliteratur im Java/C# Umfeld teile ich nicht. Zum einen gibt es durchaus genügend gute C++ Bücher. Es ist nur leider nicht so einfach, die unter den vielen schlechten auszumachen. Es gibt auch Videos, auch wenn ich persönlich mit Videos überhaupt nichts anfangen kann. Nur sind es halt keine Best Practice Vorträge für absolute Anfänger, wie man Datenbankabfragen macht (da machts eh keinen Sinn, von C++ zu reden, für sowas braucht man konkrete Bibliotheken, und da kann man auch gut auf Videos verzichten), sondern eher Vorträge von erfahrenen Entwicklern bei Google, Microsoft oder Adobe über grundlegende Idiome.
Wenn man sich C# anschaut, dann ist das bekannteste deutsche Forum mycsharp.de. Und ich finde, das ist mehr oder weniger tot. Da tummeln sich noch paar Leute rum, kommen immer wieder paar Anfängerfragen, aber viel passiert da nun wirklich nicht. Und alle sind immer überkorrekt, dafür werden alle Diskussionen gleich im Kern erstickt. Hier ist es viel chaotischer, aber nachdem ich mich dran gewöhnt habe, finde ich es hier auch viel interessanter.
Dann gibt es Fachzeitschriften wie dotnetpro oder das Entwicklermagazin. Finde ich beides weitgehend uninteressant. Ich versteh nicht mal die Zielgruppe. Für Anfänger nicht unbedingt geeignet, für Profis auch nicht. Kein Profi braucht das. Mich nerven solche Zeitschriften eher. Das macht auf mich überhaupt keinen professionellen Eindruck. Warum sollte man sowas in C++ brauchen?