Zum Inhalt springen

Ist das Lernen von C++ ein Muss?


Quantus

Empfohlene Beiträge

  • Antworten 65
  • Erstellt
  • Letzte Antwort

Top-Benutzer in diesem Thema

Ich habe C und C++ und kann damit schon einiges anfangen, wichtig war mir dabei, dass die Kenntnisse aus C mir bei C++ viel geholfen haben. Ich halte es für sinnvoll, Programmieren anhand eines konkreten Beispiels zu lernen, sprich sich eine Sprache aussuchen und damit zu üben. C ist nunmal "Vater" vieler Abkömmlinge und daher eignet sich C/C++ mMn gut als Einstieg. Wenn man C/C++ kann, ist der Umstieg auf andere, artverwandte, Sprachen leichter, finde ich.

Bearbeitet von Darth_Zeus
gekürzt by D_Z
Link zu diesem Kommentar
Auf anderen Seiten teilen

So, wie ich sehe, tut einigen hier der Temperatursturz nicht wirklich gut.

Ich räume hier jetzt ein wenig auf und versuche, den Grundtenor dieses Threads nicht zu zerstören.

Dabei werden auch einige Posts, die OT waren, es aber gut gemeint hatten, mit im Nirvana veschwinden.

KuhTee und Dusk, wenn ich von euch hier auch nur noch einen Piep höre, der nicht zur ursprünglichen Frage passt, katapultiere ich euch an den Teil des Universums, an dem ihr fachinformatiker.de nicht einmal mehr erahnen könnt.

Wenn ihr euch gegenseitig anmachen müßt, tauscht eure Usernamen im Heise-Forum aus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ist so eine sehr schöne Frage, über die man lang und breit diskutieren kann, ohne ein wirkliches Ende finden zu können - von Konsens wage ich an der Stelle mal nicht zu sprechen.

Allein die Frage ist in meinen Augen schon falsch gestellt. "Ist das Lernen von C++ ein Muss?". Die Antwort fällt je nach Kontext unterschiedlich aus:

a) in der Schule: Wenn es ein Fach ist, in dem Klausuren geschrieben werden, wäre es ratsam auch C++ zu lernen

B) zum ewigen Leben trägt es laut Katheschismus der Katholischen Kirche nichts bei - zumindest ist mir in der Richtung nichts bekannt.

Wenn Dir programmieren in C++ Spaß macht, dann lern's eben. Wenn Du das doof findest, laß es und lies stattdessen ein gutes Buch.

Ich möchte sowohl "normale" Anwendungen als auch Spiele programmieren. Fokus sollte die GUI-Programmierung sein.

Auch da kann man nicht sagen: Ja, du mußt unbedingt C++ lernen. Das kommt auf die jeweiligen Spiele an, die Du realisieren möchtest. Vielleicht reicht Dir das, was XNA Creators Club Online - home zu bieten hat. Dann kommst Du um C++ rum.

Btw. was ist GUI-Programmierung, bzw. was stellst Du Dir denn darunter vor? Um einen Button auf dem Bildschirm erscheinen zu lassen, benötigst Du heute kein C++.

Nun ist es so, dass ich C# stark bevorzuge

Dann bleib doch dabei?!

gefällt mir dieser Pointerhaufen und "dreckige" Code von C++ ganz und garnicht.

C++ ist auch wesentlich unaufgeräumter als C# (bitte keinen Streit - einfach: meine Meinung!).

Andernseits wurde mir aber gesagt, ich solle C++ auf jeden Fall lernen.

Wer hat das gesagt? Und vorallem, hat er erwähnt, warum es unbedingt C++ sein soll und wozu?

Habe ich auch ohne C++, nur mit C#, Java und eventuell noch PHP und MySQL(flexibler) Chancen auf dem Arbeitsmarkt?

Das kann Dir niemand so auf anhieb beantworten. Wenn Du Gerätetreiber entwickeln möchtest, wäre PHP weniger sinnvoll. Wenn Du Webentwicklung betreiben möchtest, kannst Du Dich mit C aufhängen und mit C++ das passende Baum-Objekt generieren:D

Es wird Dir wohl einbleuchten, daß, sofern Du keinen konkreten Arbeitsplatzwunsch äußerst, es ein wenig schwer fällt, Dir zu diesem und zu jenem zu raten. Selbst "Spiele-Entwickler" ist ein breites Feld: denk nur an die ganzen Browsergames, die gänzlich ohne C/C++ auskommen, und trotzdem von vielen Millionen von Menschen gespieltg werden.

Einfach so in's Blaue zu raten: "Lerne C++, sonst wird das mit der Karriere nix", ist nicht nur unseriös, sondern schlicht blödsinnig.

Oder muss man heutzutage einfach C++ können und ist ohne kein richtiger Programmierer?

Nein, da hast Du etwas falsch verstanden: Wer kein Assemmbler kann und keinen Binärcodewecker hat, ist kein richtiger Programmierer :D

Ich habe nicht vor, irgendwelche größeren Spiele zu programmieren. Das Limit würde sich bei Aufbauspielen wie Theme Hospital begrenzen.

Wie oben schon verlinkt: Guck Dir mal XNA an :]

Liebe Grüße

Äh ja, unbekannterweise auch zurück *g*

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man sollte wohl eher die Plattform-Philosophie dafür verantwortlich machen.

Wer MS supportet lernt C und C++. Wer Linux/Unix supportet eher C und Java.

Seit einigen Wochen wird gemeldet das C# sehr stark aufholt. Und? Was macht ihr jetzt? :P

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Wer MS supportet lernt C und C++. Wer Linux/Unix supportet eher C und Java.

woher entnimmst du denn diese Info? Und gerade in Zusammenhang mit Apple und dem ganzen iPhone/iPad Gedöns sei noch Objective-C zu nennen.

C++ zu können ist toll, aber absolut keine Pflicht. Ich wüsste auch gar nicht, wieso das so sein sollte?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man sollte wohl eher die Plattform-Philosophie dafür verantwortlich machen.

Wer MS supportet lernt C und C++. Wer Linux/Unix supportet eher C und Java.

Seit einigen Wochen wird gemeldet das C# sehr stark aufholt. Und? Was macht ihr jetzt? :P

Was ist das für ein Unfug?

C++ zu können ist toll, aber absolut keine Pflicht. Ich wüsste auch gar nicht, wieso das so sein sollte?!

Die Wahl der Sprache ergibt sich meist aus der Problemstellung, insofern wird der Begriff "Pflicht" ad absurdum geführt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

*auf Signatur verweis*

Ganz so einfach ist es aber nicht.

Natürlich ist primär das saubere und intelligente programmieren lernen wichtig (viele tun sich ja damit schon schwer). Dennoch bringen eben viele sprachen spezielle features und herangehensweisen mit, die man sich nicht mal eben in 1 woche aneignet. Man kann zwar in einer woche eine sprache nutzen lernen und auch bestehenden quellcode recht problemlos verstehen, aber es sind dann doch so diverse feinheiten, die einen verwirren können.

Ich würd zB keinen reinen java-entwickler sofort an ein grosses c++ projekt setzen, das aus dem vollen schöpft.

Wer sich auf eine sprache konzentriert und darauf vertraut, dass er ja "programmieren kann", der fällt oftmals zurück (ich kenn da diverse beispiele). Ein java-programmierer zB kommt kaum mit solchen sachen wie delegates, duck-typing, mehrfachvererbung und tausend anderen dingen in kontakt, die beim verwenden einer neuen sprache zum teil unabdingbar sind. Ich denk da nur dran, wie schwer es vielen java-entwicklern fällt, mit den feinheiten von c++ (angefangen bei den verschiedenen konstruktoren über verschiedene arten der parameterübergabe hin zu vererbungsregeln und noch viel weiter) klarzukommen.

Klar können die guten java entwickler in kurzer zeit brauchbare C++ programme schreiben. Trotzdem sieht man immer wieder verzweifelte gesichter, weil sie einen bestimmten fehler nicht richtig deuten können. Und das lernt man eben nicht, indem man "nur" 'algorithmieren' lernt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab mir nichtmehr alles durchgelesen möchte aber kurz aus der Sicht eines C/C++ Programmierers antworten ;-)

Ich kann weder Java noch PHP. Ich entschied mich damals für den nerdigen old-school Weg über asm, C-99 (ein Standard welcher gegenüber ANSI viele bereinigungen einführt) und C++. In der Schule werden wir zu C# gezwungen...

Für das schnelle "klimpern" einer GUI oder eines Testprogrammes greif ich auf TCL/TK zurück welches unter BSD, Linux, Solaris, Mac aber auch Windows lauffährig ist wenn man die Distro installiert. Alles folgt der polnischen Notation und allein 2 Zeilen reichen aus (Bzw 3 als Skript) um einen Button zu erzeugen verglichen mit grob überschlagen 10 Zeilen C-Code.

Meiner Meinung nach gibt Dir C eine wesentlich größere Möglichkeit Dein Projekt und den Source zu "kontrollieren". Bei C# seh ich schon alleine 30 Zeilen die vom System eingefügt werden.

Das Ding mit dem bool'schen Dateityp. Als erstes macht nen short int welchem man numerische Werte zuweist die gleiche Arbeit, zum anderen kann man mittels enum bool {FALSE, TRUE}; diesen selbst erzeugen.

Mein Kumpel ist verfechter von C# und Programmiert derzeit auch sein eigenes Spiel damit und mit XNA. Wir hatten mal testweise eine Ragdoll ähnliche Szene mit DX10 API realisiert. Schon mit 16000 Polygonen im Bild hat das unter C# programmierte Spiel 7 fps gebracht während meine integration über eine geleechte Havoc mit eigener DX10 Programmierung noch bei 300.000 Polygonen 60fps lieferte. Alles ohne Texturen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man kann zwar in einer woche eine sprache nutzen lernen und auch bestehenden quellcode recht problemlos verstehen, aber es sind dann doch so diverse feinheiten, die einen verwirren können.

Wovon C++ jede Menge liefert :D

If you think C++ is not overly complicated, just what is a protected abstract virtual base pure virtual private destructor and when was the last time you needed one?

Wer sich auf eine sprache konzentriert und darauf vertraut, dass er ja "programmieren kann", der fällt oftmals zurück

Die Aussage finde ich so nicht gerechtfertigt.

Unterschwellig setzt Du "programmieren können" mit "in allen Sprachen programmieren können gleich", was natürlich falsch ist.

Trotzdem sieht man immer wieder verzweifelte gesichter, weil sie einen bestimmten fehler nicht richtig deuten können. Und das lernt man eben nicht, indem man "nur" 'algorithmieren' lernt.

Gerade dieser Punkt ist es, der eher gegen C++ spricht. C++ produziert nicht gerade Fehlermeldungen, die auch verstanden werden (wollen).

readply.cpp:109: conversion from ‘_List_iterator<list<basic_string<c

har,string_char_traits<char>,__default_alloc_template<true,0> >,allo

cator<basic_string<char,string_char_traits<char>,__default_alloc_tem

plate<true,0> > > >,const list<basic_string<char,string_char_traits<

char>,__default_alloc_template<true,0> >,allocator<basic_string<char

,string_char_traits<char>,__default_alloc_template<true,0> > > > &,c

onst list<basic_string<char,string_char_traits<char>,__default_alloc

_template<true,0> >,allocator<basic_string<char,string_char_traits<c

har>,__default_alloc_template<true,0> > > > *>’ to non-scalar type ‘

list<basic_string<char,string_char_traits<char>,__default_alloc_temp

late<true,0> >,allocator<basic_string<char,string_char_traits<char>,

__default_alloc_template<true,0> > > >’ requested

Wenn ich -allgemein gesprochen- programmieren will, will ich mich nicht unbedingt mit solchen "Feinheiten" herumschlagen. Natürlich, wäre es ratsam, wenn ich C++ programmieren muss, mich damit auszukennen.

Wohlgemerkt geht es hier nicht um ein bashing von C++, sondern um die eingangs gestellte Frage, ob man um C++ nicht herumkommt; und da lautet die Antwort im doppelten Sinne ja: zum einen kommt man in vielen Anwendungsgebieten um die Sprache als solches herum, wie auch am Arbeitsplatz. C++ ist eben bei vielen Anwendungen nicht (mehr) die erste Wahl. Insofern kann man mit der "Bildungslücke" gut leben.

In der Schule werden wir zu C# gezwungen...

Ja, und?

Meiner Meinung nach gibt Dir C eine wesentlich größere Möglichkeit Dein Projekt und den Source zu "kontrollieren"

Oder anders ausgedrückt: C/C++ gibt Dir wesentlich mehr Möglichkeiten unnötige Fehler in Projekte einzubauen, die Du erst nach wochenlangem Suchen findest.

Bei C# seh ich schon alleine 30 Zeilen die vom System eingefügt werden.

Und wo ist da das Problem?

Wir hatten mal testweise eine Ragdoll ähnliche Szene mit DX10 API realisiert. Schon mit 16000 Polygonen im Bild hat das unter C# programmierte Spiel 7 fps gebracht während meine integration über eine geleechte Havoc mit eigener DX10 Programmierung noch bei 300.000 Polygonen 60fps lieferte. Alles ohne Texturen.

Mal abgesehen davon, daß das nichts mit dem Thema zu tun hat, verbuche ich das mal unter der Rubrik "Blah&Blubb".

Bearbeitet von lilith2k3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Gerade dieser Punkt ist es, der eher gegen C++ spricht. C++ produziert nicht gerade Fehlermeldungen, die auch verstanden werden (wollen).

readply.cpp:109: conversion from ‘_List_iterator<list<basic_string<c

har,string_char_traits<char>,__default_alloc_template<true,0> >,allo

cator<basic_string<char,string_char_traits<char>,__default_alloc_tem

plate<true,0> > > >,const list<basic_string<char,string_char_traits<

char>,__default_alloc_template<true,0> >,allocator<basic_string<char

,string_char_traits<char>,__default_alloc_template<true,0> > > > &,c

onst list<basic_string<char,string_char_traits<char>,__default_alloc

_template<true,0> >,allocator<basic_string<char,string_char_traits<c

har>,__default_alloc_template<true,0> > > > *>’ to non-scalar type ‘

list<basic_string<char,string_char_traits<char>,__default_alloc_temp

late<true,0> >,allocator<basic_string<char,string_char_traits<char>,

__default_alloc_template<true,0> > > >’ requested

Wenn ich -allgemein gesprochen- programmieren will, will ich mich nicht unbedingt mit solchen "Feinheiten" herumschlagen. Natürlich, wäre es ratsam, wenn ich C++ programmieren muss, mich damit auszukennen.

Du schreibst einerseits, dass sich ein Programmierer mit den "Feinheiten" seines Sources nicht auseinandersetzen will, schreibst gleichzeitig dass es "ratsam" ist sich mit C++ auszukennen und den Compilerfehlermeldungen. Ich versteh nur Bahnhof. Wer C++ Programmieren will soll es eben auch können. Dazu zählt wie schon eher erwähnt nicht das Lernen der Schlüsselwörter und der stdlib sondern die Logiken die hinter dem Source stehen. Dazu gehört, dass man in der Lage ist mittels Performancebench's, Debuggern und eben auch Fehlermeldungen/Warnungen des eigenen Sources zu bedienen. Hierzu wiederum muss man erstmal die Logik einer modernen CPU verstehen. Und dies gehört m.M. nach nicht in den Topf eines Fachinformatikers.

Weiterhin muss man zwischen einem selbst Programmieren und einem Lesen des Sources mit geringfügigen Modifikationen unterscheiden. Eine x86 App ist schnell auf x86_64 portiert. Ein Linuxprogramm schnell auf Windows wenn schon beim Programmieren darauf geachtet wurde. Selbst so etwas zu entwerfen ist ein großer Unterschied.

Und allein die Frage "Muss ich es als Fachinformatiker erlernen" ist so nicht beantwortet. Die Schlüsselwörter lesen und mal einen C++ zu verstehen sollte man schon können. Gehört m.M. nach zum Grundfachwissen. Selbst etwas performancekritisches zu Programmieren? Nein.

>> Ja, und?

Es ist wohl falsch wenn man Allgemeinheiten vermitteln will, sich auf ein Spezialgebiet zu Beschränken welches inkompatibel mit bisherigen standards ist, nicht Plattformübergreifend ist, und im Massenmarkt eine Konkurenzstellung zu einer wesentlich ausgereifteren Technik darstellt (Java vs C#).

>> Oder anders ausgedrückt: C/C++ gibt Dir wesentlich mehr Möglichkeiten unnötige Fehler in Projekte einzubauen, die Du erst nach wochenlangem Suchen findest.

Du baust selbst Fehler in dein C++ Code, korrigierst sie nicht bzw kannst sie nicht korrigieren? Dann solltest Du es nicht Programmieren! I.d.R. weiß ein Mensch seine Handlungen einzuschätzen und hat ein Ziel. Debugger, Valgrind, Performancebench's sind Dein Freund bei C/C++. Dann gibt's auch weniger Fehler. Klar es gibt immer Fehler. Aber warum wohl werden Performancekritische Dinge in C/C++ geschrieben und Fehler "eingebaut"? Warum wird Firefox in C++ programmiert? Damit man Patches veröffentlichen darf? :D

>> Mal abgesehen davon, daß das nichts mit dem Thema zu tun hat, verbuche ich das mal unter der Rubrik "Blah&Blubb".

Es war meine Meinung und ein Beispiel warum ich dieser bin :)

>> Ich denke, es ist hinreichend geprüft, dass sich, bei ordentlicher Programmierung, C++ und C# in Sachen FPS nicht wirklich viel nehmen (und keiner spielt ein Spiel mit 600 FPS).

fps kann man so nicht klar festlegen da sie von sehr vielen Faktoren abhängen. Fakt ist, solange Dein Projekt relativ klein ist der Inhalt gering, so ist kein Performanceunterschied feststellbar. Fakt aber ist auch, dass Du unter C _wesentlich_ mehr Möglichkeiten hast, Deinen Source zu optimieren und Fehler einzubauen (als Amateur) oder Performance zu steigern (als langjähriger Programmierer).

Wär dem nicht so würde das altertümliche, völlig überholte, Fehleranfällige C/C++ wohl nicht in der Spielebranche/ Softwarebranche eingesetzt werden. ;-)

Nochmal für die, die nun Wutentbrannt gleich losquoten wollen. Ich schieße nich gegen C# und andere. Jedoch hat C/C++ sehr wohl eine Daseinsberechtigung aus Gründen die hier eben nicht gesehen werden. Auch halt ich es nicht gut, etwas nachzureden was andere in völlig anderen Zusammenhängen behaupten (Speed: C# = C++). Rein von der Operationslogik ist C# mit C++ gleich schnell; nicht jedoch bei Hardwareimplementierten Dingen (oder gibts in C# die Möglichkeit direkt Assemblercode einzubringen bzw Integer direkt ins cpu register zu legen? Dann nehm ich natürlich alles zurück! Aber eben diese Feinheiten machen C++ aus).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du schreibst einerseits, dass sich ein Programmierer mit den "Feinheiten" seines Sources nicht auseinandersetzen will, schreibst gleichzeitig dass es "ratsam" ist sich mit C++ auszukennen und den Compilerfehlermeldungen. Ich versteh nur Bahnhof.

Damit wir uns hier recht verstehen:

1) Eine gewisse Problemstellung reduziert die Auswahl an möglichen Programmiersprachen

Beispiel: Bei der Programmierung von Microcontrollern, scheidet PHP aus.

2) Wenn die Wahl zwischen C++ (wenn man es denn als Hochsprache ansieht) und anderen Hochsprachen steht, so sollte die Wahl für die nicht performancekritischen Teile des Projekts auf eine andere Hochsprache fallen

Begründung: C++ Code ist zumeist schwerer zu lesen, somit schwerer zu warten als der Code anderer Hochsprachen.

3) Wenn ich als Programmierer auf C++ baue(n muss), dann sollte ich auch in der Lage sein, zu verstehen, was ich tue.

Wer C++ Programmieren will soll es eben auch können.

Eben.

Die Schlüsselwörter lesen und mal einen C++ zu verstehen sollte man schon können. Gehört m.M. nach zum Grundfachwissen.

Das ist praxisfern.

Nenn mir einen Grund, warum ein Webentwickler, sich mit C++ auskennen sollte, bzw. die Schlüsselwörter lesen könne sollte?! Mir fällt kein vernünftiger ein.

Es ist wohl falsch wenn man Allgemeinheiten vermitteln will, sich auf ein Spezialgebiet zu Beschränken welches inkompatibel mit bisherigen standards ist, nicht Plattformübergreifend ist, und im Massenmarkt eine Konkurenzstellung zu einer wesentlich ausgereifteren Technik darstellt (Java vs C#).

1) Ist C# wesentlich ausgereifter als Java.

2) Gibt es die freie Implementation von C# (selbst ASP ist implementiert) in Gestalt von Mono, die auch unter *nix gute Dienste leistet. Banshee, F-Spot und Gnome-Do sind nur 3 Beispiele, die in Mono geschrieben worden sind.

3) Ist C# in meinen Augen eine ausgezeichnete Lehrsprache, welche die Vermittlung in Schulen durchaus rechtfertigt.

Du baust selbst Fehler in dein C++ Code, korrigierst sie nicht bzw kannst sie nicht korrigieren? Dann solltest Du es nicht Programmieren!

Daß beim Programmieren Fehler passieren, dürfte selbst Dir geläufig sein. Bei Projekten mit mehreren tausend Codezeilen bleibt es nicht aus (statistisch gesehen enthalten alle 200 Zeilen Code einen Fehler), daß irgendwo Fehler entstehen. Bestes Beispiel unter C++: Memoryleaks - harmlos aber ätzend. Oder in C uninitialisierte Pointer: ätzend und gefährlich. Verwendung von memcpy, strcat etc. unter C: hochgefährlich.

Was alles in allem nicht heißt, daß ich derartige Fehler nicht finden und beheben kann. Allerdings müssen derartige Fehler ersteinmal gefunden werden.

Natürlich gibt es Tools wie Valgrind, die dazu nützlich sind; aber in meinen Augen rechtfertigt der Aufwand (Code in C/C++ schreiben und ihn anschließend durch Valgrind zu jagen) nicht den Nutzen.

Dann gibt's auch weniger Fehler. Klar es gibt immer Fehler. Aber warum wohl werden Performancekritische Dinge in C/C++ geschrieben und Fehler "eingebaut"? Warum wird Firefox in C++ programmiert? Damit man Patches veröffentlichen darf?

Das hat doch nichts mit dem Thema des TO zu tun!

Fakt ist: in vielen Bereichen gibt es Alternativen zu C/C++ (oder ist C/C++ komplett irrelevant), so daß es kein Muss ist, sich mit C++ auseinanderzusetzen. Wer sonst keine Hobbies hat, soll's tun. Wer sich beruflich auf einen gewissen Bereich spezialisieren möchte, muss es wohl tun. Eine allgemeine Notwendigkeit besteht imho nicht dazu!

Wär dem nicht so würde das altertümliche, völlig überholte, Fehleranfällige C/C++ wohl nicht in der Spielebranche/ Softwarebranche eingesetzt werden. ;-)

1) Da verallgemeinerst Du die Spielebranche ungemein

Was ist bspw. mit Browsergames? Wieviele Browsergames sind in C++ geschrieben? Nada!

2) Erkennt die "Spielebranche" - wenn ich mal Deiner stumpfen Verallgemeinerung bedienen darf, daß es irrwitzig ist, das gesamte Projekt in nur einer Sprache anzufertigen. AFAIK wurde e.g. Battlefield u.a. auch mittels Python realisiert.

Rein von der Operationslogik ist C# mit C++ gleich schnell; nicht jedoch bei Hardwareimplementierten Dingen (oder gibts in C# die Möglichkeit direkt Assemblercode einzubringen bzw Integer direkt ins cpu register zu legen? Dann nehm ich natürlich alles zurück! Aber eben diese Feinheiten machen C++ aus).

Ich befürchte, Du merkst selbst nicht, was für einen Unfug Du uns hier auftischst, oder?

Schlichte Frage: Wer ist so leichtsinnig gewesen, Dich als Programmierer einzustellen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Fakt aber ist auch, dass Du unter C _wesentlich_ mehr Möglichkeiten hast, Deinen Source zu optimieren und Fehler einzubauen (als Amateur) oder Performance zu steigern (als langjähriger Programmierer).

Das stimmt schon, und für bestimmte plattformen sind C oder C++ die einzig sinnvolle wahl. Aber in zeiten, in denen der grossteil der grafikberechnungen sowieso auf der graka stattfinden, ist die verwendete programmiersprache nicht mehr so das bottleneck. Zumindest nicht in dem extremen maße wie von dir beschrieben.

Fakt ist: in vielen Bereichen gibt es Alternativen zu C/C++ (oder ist C/C++ komplett irrelevant), so daß es kein Muss ist, sich mit C++ auseinanderzusetzen. Wer sonst keine Hobbies hat, soll's tun. Wer sich beruflich auf einen gewissen Bereich spezialisieren möchte, muss es wohl tun. Eine allgemeine Notwendigkeit besteht imho nicht dazu!

Also mein _ganz persönlicher_ eindruck:

ALLE guten bis sehr guten entwickler die ich kenne, kennen sich gut bis sehr gut in c++ aus (zusätzlich natürlich zu diversen anderen sprachen). Alle schlechten bis höchstens mittelmäßigen sind in C++ ebenfalls allerhöchstens mittelmäßig. Und ich kenne nicht wenige entwickler. Klingt vielleicht etwas verallgemeinert, ist aber nunmal so.

Übrigens: "wer sonst kwinw hobbies hat": für einen guten entwickler gehört es eigentlich dazu, dass er sich auch ausserhalb seiner arbeitszeit mit dem thema befasst. Gerade den azubis predige ich das immer wieder.

AFAIK wurde e.g. Battlefield u.a. auch mittels Python realisiert.

Na klar. Nahezu alle grösseren projekte setzen scriptsprachen ein. Diese kommen aber auch vor allem in nicht performancekritischen bereichen zum einsatz. Missionsscripting etc.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ALLE guten bis sehr guten entwickler die ich kenne, kennen sich gut bis sehr gut in c++ aus (zusätzlich natürlich zu diversen anderen sprachen). Alle schlechten bis höchstens mittelmäßigen sind in C++ ebenfalls allerhöchstens mittelmäßig.

Du setzt hier schon wieder die Messlatte nur an dieser Sprache! Damit degradierst du alle Entwickler, die nicht mit C++ arbeiten (wollen). Diese Aussage "wer kein C++ kann, ist ein schlechter Entwickler" ist in keiner Weise akzeptabel! Es gibt sicherlich genug Gründe, die dafür sprechen, diese Sprache zu erlernen. Aber es gibt nicht einen, der dies zur Pflicht macht.

Nenn mir einen Grund, warum ein Webentwickler, sich mit C++ auskennen sollte, bzw. die Schlüsselwörter lesen könne sollte?! Mir fällt kein vernünftiger ein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ALLE guten bis sehr guten entwickler die ich kenne, kennen sich gut bis sehr gut in c++ aus (zusätzlich natürlich zu diversen anderen sprachen). Alle schlechten bis höchstens mittelmäßigen sind in C++ ebenfalls allerhöchstens mittelmäßig. Und ich kenne nicht wenige entwickler. Klingt vielleicht etwas verallgemeinert, ist aber nunmal so.

Das mag ja so sein; allerdings wage ich die von Dir (indirekt) postulierte Kausalität anzuzweifeln. Das ist genauso ein Mythos, wie Latein-Schüler und Matheunterricht.

für einen guten entwickler gehört es eigentlich dazu, dass er sich auch ausserhalb seiner arbeitszeit mit dem thema befasst. Gerade den azubis predige ich das immer wieder.

Womit? Mit C++?

Natürlich befasse ich mich auch außerhalb meiner Arbeitszeit mit meinem Hobby ;)

Allerdings sehe ich keinen Grund, sich an die ein oder andere Sprache zu binden. Geschweige denn sehe ich irgendeinen Nutzen, außer zum Zwecke der "persönlichen Heiligkeit" darin, sich mit der einen oder anderen Sprache auseinanderzusetzen. C++ macht keinen Webentwickler zu einem besseren Programmierer. Es sei denn, wir fangen jetzt mit einem Klassendenken an, wonach Webentwickler keine Programmierer sind und reduzieren Programmierer lediglich auf die Gruppe, die C++ beherrschen.

Wie gesagt, berufliche Qualifikation/Spezialisierung ausgenommen.

Bearbeitet von lilith2k3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Diese Aussage "wer kein C++ kann, ist ein schlechter Entwickler" ist in keiner Weise akzeptabel!

Deswegen schrieb ich ja, dass es meine ganz persönliche sicher nicht allgemeingültige erfahrung ist.

Womit? Mit C++?

Natürlich befasse ich mich auch außerhalb meiner Arbeitszeit mit meinem Hobby ;)

Allerdings sehe ich keinen Grund, sich an die ein oder andere Sprache zu binden. Geschweige denn sehe ich irgendeinen Nutzen, außer zum Zwecke der "persönlichen Heiligkeit" darin, sich mit der einen oder anderen Sprache auseinanderzusetzen.

"Persönliche heiligkeit"? Vielleicht aber doch auch nur, um sich persönlich weiterzubilden? Es gibt eben leute, die nicht gern bei einer sache stehenbleiben, sondern sich auch privat weiterbilden. Gerade in der softwareentwicklung kann einem das früher oder später vorteile bringen. Selbst schon mehrmals erlebt.

"Sag mal, du bist doch c++ programmierer. Wie siehts bei dir mit java kenntnissen aus?"

Würde ich der einstellung "ich mach mein ding und gut ist" anhängen, dann hätte ich sagen müssen "leider nicht gut". So bin ich aber in ein interessantes projekt gerutscht. Und das wo java bei meiner einstellung absolut keine rolle gespielt hat.

Und ja, von einem gutem programmierer erwarte ich nunmal ein breiten _und_ auch tiefgehenden kenntnisstand. Und C++ gehört einfach dazu. So.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und C++ gehört einfach dazu.

Ich würde Dir dann gerne mal die Frage stellen, wie tiefgehend Deine C++ Kenntnisse sind? Kannst Du cross-plattform Anwendungen schreiben, arbeitest Du mit der Boost, kannst Clustersysteme z.B. via MPI programmieren? Hast Du schon mal mit Bibliotheken wie LAPACK, ARPACK o.ä. gearbeitet?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was macht denn einen guten Programmierer aus, dass es nur von jemanden mit C++-Kenntnissen erfüllt werden kann?

Ich spreche ja von programmierern mit guten c++ kenntnissen. Es gibt sicher auch gute programmier ohne gute c++ kenntnisse, nur sind mir die bisher eher selten über den weg gelaufen.

Nun ist es ja durchaus auch so, dass man immer wieder einschätzung liest und hört, dass der wechsel von c++ auf java einfacher ist als umgekehrt. Würde ich auch so sagen. Vielleicht liegts daran, dass c++ viel mehr freiräume lässt, was man natürlich auch erstmal beherschen lernen muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...