Wofür C++ und C?
-
Das dumme an Java ist, dass es immer eine VM braucht, wenn es wie C++ auch direkt als Maschinencode auf dem Rechner laufen würde, dann wäre es für Desktopanwendungen auch gut geeignet. Und man konnte es auch nicht so einfach dekompilieren. So bleibt Java meinstens nur für den Serverbereich, weil das oft spezielle Programme sind, die für Firmen entwicckelt wurden und deshalb kein interesse am dekompilieren vorhanden ist. C++ Programme kann man halt einfacher auf PCs verteilen, ohne das es bald ein Konkurrenzprodukt gibt, das auf meinem Source basiert.
Alvarez schrieb:
Und ist C++ eine Sprache, die für den Anfang geeignet ist?
Gibt wahrscheinlich einfachere und bessere Sprachen für Anfänger, aber es geht auch mit C++, auch wenn es ne ganze weile braucht, bis es richtig gutes C++ ist.
-
Ahso, ok.
Ich bin ja kein blutiger Anfänger.^^
Nur mal so am Rande, hier wird oft gesagt große Projekte mit vielen Leuten ist schwer mit C++ realisierbar. In welcher Sprache werden dann große Projekte wie WoW geschrieben, ich denke mal, da arbeiten sehr viele Leute dran. Ausser Java und C++ bleibt da doch nicht viel, oder?
-
Alvarez schrieb:
Nur mal so am Rande, hier wird oft gesagt große Projekte mit vielen Leuten ist schwer mit C++ realisierbar.
Ist das nicht ein wunderbares Beispiel für diesen Effekt: http://www.spiegel.de/wissenschaft/mensch/0,1518,504087,00.html ? Die Behauptung hat hier genau einer aufgestellt, aber die daraus entstehende Diskussion darüber und vor allem dagegen verschwimmt vor dem Auge des Außenstehenden, und einen Tag später nimmt er das alles als Bestätigung wahr.
-
Alvarez schrieb:
In welcher Sprache werden dann große Projekte wie WoW geschrieben, ich denke mal, da arbeiten sehr viele Leute dran. Ausser Java und C++ bleibt da doch nicht viel, oder?
In C++ natürlich.
Mach nicht den Fehler, Undertaker ernst zu nehmen.
-
Undertaker schrieb:
Tim schrieb:
Naja, ich bin halt davon überzeugt, dass C++ für große Projekte wie das erwähnte Photoshop sehr gut geeignet ist.
das ist wirklich schwer zu sagen. photoshop stammt ja irgendwie aus der zeit des C++ hypes (oder kurz davor). womöglich würde ein photoshop, wenn es in der heutigen zeit entstanden wäre, in einer anderen programmiersprache geschrieben sein.
Photoshop? Welche (einzelne) andere Sprache wäre für Photoshop denn brauchbar?
-
Undertaker schrieb:
Simon2 schrieb:
Aber wie könnte er dann der Sprache C++ einen "Strick daraus drehen" wollen ?
er wollte doch nur zeigen, welche fiesen fehler durchschnittlichen codern mit C++ passieren können, sogar bei so einer leichten aufgabe. ...
Ähhhh was soll denn an einer falsch gestellten Aufgabe "leicht" sein ?
Nach der Logik könnte ich auch "belegen", wie schwer Java ist, indem ich einem Programmierer das Schreiben von (C++)-templates oder die Nichtverwendung von garbage collecting in seine Java-Aufgabe vorschreibe...Gruß,
Simon2.
-
Alvarez schrieb:
Ahso, ok.
Ich bin ja kein blutiger Anfänger.^^
Nur mal so am Rande, hier wird oft gesagt große Projekte mit vielen Leuten ist schwer mit C++ realisierbar. In welcher Sprache werden dann große Projekte wie WoW geschrieben, ich denke mal, da arbeiten sehr viele Leute dran. Ausser Java und C++ bleibt da doch nicht viel, oder?Das kommt immer ganz auf das Projekt an, große Projekte verschlingen ungeheuer viel Ressourcen, sodass du noch mit vielen anderen Faktoren zu kämpfen hast als der Wahl der Programmiersprache. Die eigentliche Wahl der Programmiersprache erfolgt in Abhängigkeit zum Projekt, es gibt Sprachen die eignen sich für eine Aufgabe besser als andere Sprachen. Du kannst ja eine Mail an Blizzard schreiben und nachfragen was sie dazu bewogen hat C++ zu verwenden.
Allgemeines Geblubber:
Du hast geschrieben du bist "blutiger" Programmieranfänger. Ich empfehle dir als erstes ein Buch über Softwaretechnik zu lesen und versuchen die verschiedensten Konzepte zu verstehen. Du solltest wenn du die Studien intensiv betreibst auch ein Gefühl für die Herangehensweise an Probleme und deren Umsetzung in einer Programmiersprache entwickeln. Nebenbei würde ich in einen "reinen" Vertreter des jeweiligen "Paradigmas" hineinschauen, d.h. zum Anfang vielleicht C (prozedural, imperativ). Für den Einstieg in die OOP schlage ich Eiffel vor, einfach aus dem Grund das die Sprache einfach zu lernen ist und dich bei der Umsetzung von Problemen "unterstützt". Auch sind nützliche Sachen wie die Def. von Vor- und Nachbedingungen von der Sprache her vorhanden.
Wichtig ist immer kleine Projekte in der jeweiligen Sprache zu starten und durchzuziehen. Es ist auch nicht verkehrt das gleiche Projekte in verschiedenen Sprachen umzusetzen.
Wenn du dann fit in den wichtigsten Konzepten und deren Anwendung bist, wird dir das Lernen einer neuen Sprache recht leicht fallen und du wirst schnell merken was dir die Sprache bietet und welche Macken sie hat, vorausgesetzt du setzt dich intensiver mit ihr auseinander. Im Endeffekt wirst du mehrere Sprachen lernen und 1-2 Hauptsprachen haben in denen du dich wirklich gut auskennst und die dir das bieten was du suchst.
tt
PS: C++ für den blutigen Anfänger halte ich für ungeeignet.
-
Alvarez schrieb:
In welcher Sprache werden dann große Projekte wie WoW geschrieben, ich denke mal, da arbeiten sehr viele Leute dran.
soweit ich weiss, werden bei solchen programmen oft die performancekritischen teile (grafik engine etc.) in C oder C++ programmiert und alles weitere mit einer eingebetteten scriptsprache.
Mr. N schrieb:
Photoshop? Welche (einzelne) andere Sprache wäre für Photoshop denn brauchbar?
theoretisch vieles. C, assembler, etc. für irgendwelche selbstgemachten hi-speed grafikeffekte oder ein plattformunabhängiger layer über ogl, direct-x (was weiss ich, kenne mich da nicht so aus ob man das auch für 2-d bildbearbeitung ausschlachten kann), z.b. Java für das drumherum (wegen plattformunabhängigkeit). es kommt auf viele faktoren an, kernkompetenz der entwickler-crew, wie soll die software im markt plaziert werden, soll sie nur unter win laufen oder auch auf Macs und solaris workstations, fallen linzenzen an für zusatz-libraries usw...usw.. die auswahlmöglichkeiten sind heutzutage unüberschaubar.
Simon2 schrieb:
Ähhhh was soll denn an einer falsch gestellten Aufgabe "leicht" sein ?
Nach der Logik könnte ich auch "belegen", wie schwer Java ist, indem ich einem Programmierer das Schreiben von (C++)-templates oder die Nichtverwendung von garbage collecting in seine Java-Aufgabe vorschreibe...nö, ist doch ganz normal, dass in solche aufgaben fallstricke eingebaut werden. ausserdem fordert er ja nichts unmögliches und für einen erfahrenen C++ coder ist das doch ein klacks (falls die aufgabe mit C++ unlösbar wäre, hätte der tester dafür sicher auch ein ohr gehabt). man muss eben genau aufpassen und wissen, was man tut. aber, ich denke, als C++ programmierer ist man doch sowieso daran gewöhnt, ständig auf der hut zu sein. nichts anderes wollte er mit dem test abklopfen, nämlich, ob die anwender der komplexität der sprache gewachsen sind.

-
-------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| / / \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * ___ c_c_c_C/ \C_c_c_c____________
-
Artchi schrieb:
-------------------------- /| /| | | ||__|| | Trolle bitte | / O O\__ nicht | / \ füttern! | / \ \ | / _ \ \ ---------------------- / |\____\ \ || / | | | |\____/ || / \|_|_|/ | __|| / / \ |____| || / | | /| | --| | | |// |____ --| * _ | |_|_|_| | \-/ *-- _--\ _ \ // | / _ \\ _ // | / * / \_ /- | - | | * ___ c_c_c_C/ \C_c_c_c____________

Wieso verteidigt Undertaker sonst hier einen 6 Jahre alten Pflaumenbeitrag einer offensichtlichen Pflaume ?
(und wieso mache ich da eigentlich mit ? Vermutlich weil Undertaker versucht, sich die in Bashars zitiertem Spiegelartikel dargestellte "Werbestrategie" zunutze zu machen .... OK, muss er halt alleine weitermachen, wenn er es unbedingt braucht)Danke für den Hinweis,
Simon2.
-
Simon2 schrieb:
Wieso verteidigt Undertaker sonst hier einen 6 Jahre alten Pflaumenbeitrag einer offensichtlichen Pflaume ?
wieso pochst du so auf das alter des beitrags? wäre der artikel gestern erschienen, würde er nicht viel anders sein. ich glaube, vor 6 jahren wurde sogar noch viel mehr in C++ programmiert als heute.

-
Undertaker schrieb:
Simon2 schrieb:
Wieso verteidigt Undertaker sonst hier einen 6 Jahre alten Pflaumenbeitrag einer offensichtlichen Pflaume ?
wieso pochst du so auf das alter des beitrags? wäre der artikel gestern erschienen, würde er nicht viel anders sein. ich glaube, vor 6 jahren wurde sogar noch viel mehr in C++ programmiert als heute.

Der Punkt, dass string und smart pointer alles beheben, was der Autor will, er aber dazu lediglich schreibt
But they only help. The fundamental problem still remains -- it is too easy to write subtly wrong code and the language is littered with booby-traps.
Wo ist da der Sinn? Zu sagen, sie helfen, aber man kann ja auch ohne!
-
Undertaker schrieb:
Alvarez schrieb:
In welcher Sprache werden dann große Projekte wie WoW geschrieben, ich denke mal, da arbeiten sehr viele Leute dran.
soweit ich weiss, werden bei solchen programmen oft die performancekritischen teile (grafik engine etc.) in C oder C++ programmiert und alles weitere mit einer eingebetteten scriptsprache.
Allerallermeistens C++ und nicht C.
Undertaker schrieb:
Mr. N schrieb:
Photoshop? Welche (einzelne) andere Sprache wäre für Photoshop denn brauchbar?
theoretisch vieles. C, assembler, etc. für irgendwelche selbstgemachten hi-speed grafikeffekte oder ein plattformunabhängiger layer über ogl, direct-x (was weiss ich, kenne mich da nicht so aus ob man das auch für 2-d bildbearbeitung ausschlachten kann), z.b. Java für das drumherum (wegen plattformunabhängigkeit). es kommt auf viele faktoren an, kernkompetenz der entwickler-crew, wie soll die software im markt plaziert werden, soll sie nur unter win laufen oder auch auf Macs und solaris workstations, fallen linzenzen an für zusatz-libraries usw...usw.. die auswahlmöglichkeiten sind heutzutage unüberschaubar.
Nein, die Auswahlmöglichkeiten sind nicht unüberschaubar. Ich will mal zu jeder einzelnen Sprache etwas sagen. (Hast du das "einzelne" eigentlich überlesen?)
C: Für ein derartig komplexes Programm wie Photoshop einfach nicht praktikabel, außerdem hat man da keine Vorteile gegenüber C++ (C und C++ sind zwar nicht kompatibel, aber man kann in C++ alles machen, was in C geht).
Assembler: Wird ja durchaus gemacht, aber wirklich nur für einige wenige zentrale Stellen und mit zunehmend besseren Compilern benötigt man das auch immer seltener. Ein weiteres Problem ist, dass Assembler.. eher nicht plattformübergreifend ist.
OpenGL: Das ist keine Programmiersprache.
Java: Programme wie Photoshop brauchen viel Speicher. Es heißt, Garbage Collection ist dann brauchbar, wenn man nicht unwesentlich mehr Speicher hat als man theoretisch benötigt. Die reinste Verschwendung... Außerdem will ich lieber gar nicht erst versuchen, komplexe Filtereffekte in Java zu implementieren.
-
LALALALA schrieb:
Der Punkt, dass string und smart pointer alles beheben, was der Autor will, er aber dazu lediglich schreibt
But they only help. The fundamental problem still remains -- it is too easy to write subtly wrong code and the language is littered with booby-traps.
Wo ist da der Sinn? Zu sagen, sie helfen, aber man kann ja auch ohne!
er sagt damit indirekt, dass C++ so ziemlich kaputt ist, aber teilweise seine eigenen reparatursets mitliefert.

-
Undertaker schrieb:
LALALALA schrieb:
Der Punkt, dass string und smart pointer alles beheben, was der Autor will, er aber dazu lediglich schreibt
But they only help. The fundamental problem still remains -- it is too easy to write subtly wrong code and the language is littered with booby-traps.
Wo ist da der Sinn? Zu sagen, sie helfen, aber man kann ja auch ohne!
er sagt damit indirekt, dass C++ so ziemlich kaputt ist, aber teilweise seine eigenen reparatursets mitliefert.

Und deswegen wird er hier ja auch als inkompetent bezeichnet.
Korrekter wäre: C++ liefert ein Auto, aber auch die Einzelteile des Autos. Man kann das Auto aber unbeschwert benutzen, und braucht keine Einzelteile zusammenzubauen.
-
struct Point { float x; float y; string name;Wer mach denn sowas, wer braucht sowas (String)?
Richtig und problemfrei muss es so aussehen:
struct stPoint { float fX; float fY; char cName[32]; }Völlig ausreichend, platzsparend und übersichtlich.
-
F98 schrieb:
*snip*
Alles falsch.
-
LALALALA schrieb:
Korrekter wäre: C++ liefert ein Auto, aber auch die Einzelteile des Autos. Man kann das Auto aber unbeschwert benutzen, und braucht keine Einzelteile zusammenzubauen.
den vergleich habe ich noch nie gehört (und kann ihn auch nicht nachvollziehen)

kannst du etwas genauer erklären, wie du das meinst?

-
Mit Undertaker braucht ihr doch eh nicht über C++ diskutieren. Er hat eben einen anderen Hintergrund. Wenn er C++ hört fragt er sich eher wie er die zusätzlichen ++ in seinen 8 Bit µC kriegen kann
Ganz zu schweigen davon, dass der Ausgang des Threads doch ohnehin klar ist und ich denke auch alles gesagt wurde.@F98
Ironie?MrN schrieb:
Es heißt, Garbage Collection ist dann brauchbar, wenn man nicht unwesentlich mehr Speicher hat als man theoretisch benötigt.
Wobei man bei Java durch Annotations und Reflections ohnehin einen weiteren Speicherbedarf hat.
-
Undertaker schrieb:
LALALALA schrieb:
Korrekter wäre: C++ liefert ein Auto, aber auch die Einzelteile des Autos. Man kann das Auto aber unbeschwert benutzen, und braucht keine Einzelteile zusammenzubauen.
den vergleich habe ich noch nie gehört (und kann ihn auch nicht nachvollziehen)

kannst du etwas genauer erklären, wie du das meinst?

string = zusammengebautes Auto
char[] = EinzelteileDu sagst:
Einzelteile = kaputtes Zeug
Auto = repariertes kaputtes ZeugMan muss schon wissen, wie man Einzelteile zusammenbaut, oder einfach gleich das Auto nehmen
