• Liebe User, bitte beachtet folgendes Thema: Was im Forum passiert, bleibt im Forum! Danke!
  • Hallo Gemeinde! Das Problem leidet zurzeit unter technischen Problemen. Wir sind da dran, aber das Zeitkontingent ist begrenzt. In der Zwischenzeit dürfte den meisten aufgefallen sein, dass das Erstellen von Posts funktioniert, auch wenn das Forum erstmal eine Fehlermeldung wirft. Um unseren Löschaufwand zu minimieren, bitten wir euch darum, nicht mehrmals auf 'Post Reply' zu klicken, da das zur Mehrfachposts führt. Grußworte.

C/C++ heutzutage noch wichtige Sprache zu lernen?

Mitglied seit
19.03.2002
Beiträge
2.539
Reaktionen
11
Müsste ich einen Programmierer einstellen, der nicht Treiber oder Echtzeitsysteme programmieren soll, würde ich folgendes Fragen:

- Programm mit mindestens 10 Klassen geschrieben
- Programm mit mindestens 5 Threads geschrieben
- Kann aus UML2 Diagramm 'ne Software machen
- Kann 'ne API lesen.

Will sagen Syntax ist nicht so wichtig wie OOP verstanden zu haben, daher wird an Unis auch vorallem Entwurf und nicht Implementierung gelehrt. Bei Echtzeitsystemen und Assembler ist das nochmal was anderes, weil hier konkrete Erfahrung gefragt ist, aber im Zweifel kann jeder, der große Projekte in Java realisieren kann in überschaubarer Zeit das Gleiche in C++.

@ Shihatsu
Cobol wird eingestellt und nichtmehr unterstützt. Weiß nicht genau ob es einen 64Bit Compiler gibt, aber einen neuen wird es nichtmehr geben.
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.637
Reaktionen
10.259
Ich hab echt keine ahnung woher du die Info hast, Alb - es ist schlichtweg nicht wahr. Der Ansi standard cobol wird weiterentwickelt, die hosts auf denen cobol anwendungen laufen sind schon seit 20 jahren 64bit maschinen und hier und in bayern werden cobol-entwickler händeringend gesucht, weil der nachwuchs wegbricht und neue sachen so nur langsam gestartet werden können...
 

Clawg

Guest
portierung von java ein klacks? clemens, portier mir mal ne gewachsene, 4 jahre alte server-anwendung in java von windows tomcat nach solaris wsad, am ebsten noch die oberfläche von jsps auf jsf umstellen - welcome to the dll hell of java. da is nix mit klacks.
Ok, ich habe Java-Client-Anwendungen mit C++-Client-Anwendungen vergleichen.


du willst schnell unanständig viel geld verdienen? scheiss auf ausbildung und studium, prengel dir cobol rein, amch nen 6 monatiges unbezahltes praktikum bei ner firma die host-anwendungen betreibt um das reale leben kennenzulernen und dann hau in ein x-belibiges social network dingen unter suche "cobol projekte" rein - bingbingbingbing....

Definiere "unanständig" im Zusammenhang von "1 Jahr Cobolerfahrung ohne Studium" ^_^
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.637
Reaktionen
10.259
1 jahr in nem richtigen projekt? inklusive abreitszeugnis? du asht dich nicht dumm angestellt und das steht auch im arbeitszeugnis? mehr als ich nach 5 jahren inklusive einser-diplom verdienen würde - im ersten jahr :)
 

Clawg

Guest
Muss ja nicht viel heißen :p

Viele Firmen suchen jedenfalls keine Cobolprogrammierer. Und die die suchen, suchen Leute die auch noch etwas mehr Erfahrung haben. Vielleicht lese ich die Stellenanzeigen aber auch falsch.
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.637
Reaktionen
10.259
natürlich suchen sie leute mit mehr erfahrung - die gibts aber nicht auf dem freien markt. und dann nehmen sie auch gerne die frischlinge - vor allem weil die billiger sind als die selbstständigen freelancer mit 20 jahren erfahrung, die gern mal 200 die stunde berechnen :)
 

Shihatsu

Administrator
Mitglied seit
26.09.2001
Beiträge
49.637
Reaktionen
10.259
Analys Programmierung IBM host cobol 102.200 € 52

und das sind nur festangestellte - als cobol-heini sollte man das allerdings nicht machen :)
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Wobei das zu Vergleichszwecken natürlich Blödsinn ist. Ich kann in jeder Sprache X ein Programm machen, dass schneller läuft als in Sprache Y wenn ich bei letzterem Scheisse zusammenprogrammiere. Das wird allerdings nichts dran ändern, das bei vernünftigem Code und Compiler nunmal typischerweise die Performance so... Asm > C(++) > Java >> Python ... aussieht.
 

Clawg

Guest
Zusätzlich kriegt man noch nen Stück Geschwindigkeit mit besseren Compilern. Man denke an den Intel C++ v7, der gegenüber dem GCC gerne nochmal 30% Geschwindigkeit drauflegt.
 
Mitglied seit
08.03.2004
Beiträge
1.574
Reaktionen
0
[...]bei vernünftigem Code [...]
Genau. Ich bezweifle, dass ich in einer realen Umgebung (Komplexität, unrealistische Problemstellung durch Kunde/Chef) in der lage bin, >50% vernünftigen Code zu liefern. Daher muss ich mich suboptimaler Hilfsmittel bedienen, wie Kollegen, Frameworks und Abstraktion. Ich freu mich aber für jeden, der dieses Problem nicht hat und hoffe, dass dieser seine Energie in diese Frameworks und Abstraktionsmöglichkeiten (UML-Tools, High-Level-Sprachen) steckt.

(PS: Ich finde dieses Diskussionsthema auch sehr interessant und beteilige mich deshalb. Aber steht es noch in Zusammenhang mit dem Topic (rethorisch gefragt)? Maybe könnte man das irgendwo cutten und in einen extra Thread packen?)
 
Mitglied seit
21.01.2001
Beiträge
3.078
Reaktionen
0
Habe jetzt den Thread nicht wirklich gelesen, aber bei mir in der Firma (~ 1 Mrd Datensaetze pro Woche ueber mehrere Jahre werden in einer Webandwendung praesentiert) wurde und wird groesstenteils in Ruby gecoded, aber das hardcore Mathezeugs davon wurde extra der Performance wegen in C geschrieben.

Aber wenn man 'nur' ein normaler Programmierer sein moechte, brauchts C/C++ wohl nicht.
 
Mitglied seit
03.08.2002
Beiträge
707
Reaktionen
0
In C++ kann man jede Menge Müll machen, was über die jvm besser umgesetzt würde, richtig. Man denke nur z.B. an die ganzen call-by-value...

wobei ich sowas jetzt eher nicht gemeint habe. wie gesagt, bin kein experte in diesem bereich, aber der jvm jit compiler kann beispielsweise optimierungen, welche laufzeitinformationen benötigen, durchführen (inlining virtueller methoden dürfte für den statischen c++ compiler nicht möglich sein, da er nicht über die typinformationen zur compilezeit verfügt). heapallocation ist unter java gewöhnlich auch schneller, da der jvm garbage collector den heap optimiert (daher etwa so schnell wie stackallocation), was bei traditionellen malloc/free implementierungen nicht passiert. aber man kann c++ natürlich auch mit nem garbage collector laufen lassen.
 

The_Company

Guest
Und das ist auch der Grund, warum Java immernoch nur halb so schnell ist wie C/C++, oder?
 

TaiPan

Guest
Woher hast du die Information, The_Company? Ich bezweifle die Aussage doch stark.
 
Mitglied seit
03.08.2002
Beiträge
707
Reaktionen
0
Und das ist auch der Grund, warum Java immernoch nur halb so schnell ist wie C/C++, oder?

ich habe bloß zwei bereiche genannt, in denen java eine bessere leistung erreichen kann. daraus lässt sich trivialerweise nicht folgern, dass die leistung von java grundsätzlich besser ist. vielmehr zeigt es, dass die ausführungsgeschwindigkeit von java/c++-programmen stark von der/dem verwendeten jvm/c++-compiler sowie der anwendung abhängig ist.
ich habe mir übrigens gerade den ersten der benchmarks angesehen die du gepostet hast (binary-trees). interessant ist, dass java schneller als c++ ist, wenn beide den gleichen algorithmus verwenden und objekte mit new erzeugen (c++ ist nur dann schneller für manche eingaben, wenn object pools verwendet werden).
 
Zuletzt bearbeitet:
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Es ist auch Scheisse schwer Java zu programmieren und seine Sprache dann nicht zur schnellsten, besten, abstraktesten, kompaktesten, ausführlichsten und allem zusammen zu hypen... man könnte meinen man ist unter Vertrieblern die keine Ahnung aber umso mehr Selbstbewusstsein haben.

Zitat: "Aber wenn man 'nur' ein normaler Programmierer sein moechte, brauchts C/C++ wohl nicht."
=> Zusammenfassend haben die Java-Fans aber Recht. Wer die Limits seiner eigenen Sprache nicht kennt oder konsequent leugnet ist absolut kein Kandidat der aus dem lernen einer weiteren Sprache irgendeinen Vorteil ziehen könnte.
 
Mitglied seit
03.08.2002
Beiträge
707
Reaktionen
0
Es ist auch Scheisse schwer Java zu programmieren und seine Sprache dann nicht zur schnellsten, besten, abstraktesten, kompaktesten, ausführlichsten und allem zusammen zu hypen... man könnte meinen man ist unter Vertrieblern die keine Ahnung aber umso mehr Selbstbewusstsein haben.

bitte nenne beispiele aus dem thread, ich versteh nämlich gerade nicht, von was du redest.
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
bitte nenne beispiele aus dem thread, ich versteh nämlich gerade nicht, von was du redest.

Da kannst du einen x-beliebigen deiner Posts nehmen. Du laberst was daher von theoretischen Optimierungsmöglichkeiten, irgendwelchen Sonderfällen etc. nur weil du einfach nicht verstehen kannst oder willst, dass eine maschinennahe Programmiersprache naturgegebenermassen *in Sachen Performance* einer abstrakteren Sprache überlegen ist.

Schau mal in die wirkliche Welt raus. Dort wirst du Game-Engines, Parser etc finden deren Entwickler alle ach-so-doof sind mindestens ihre performance-kritischen Parts maschinennah anstatt in Java zu schreiben. Oder das im (managed) .net Framework core-Komponenten der (relativ neuen)WPF nativ implementiert wurden. Das ist die WIRKLICHE Welt da draussen abseits von sinngemaess "Ich habe weder Ahnung noch Interesse an Performance also ist es ein no-issue".
 
Mitglied seit
03.08.2002
Beiträge
707
Reaktionen
0
Da kannst du einen x-beliebigen deiner Posts nehmen. Du laberst was daher von theoretischen Optimierungsmöglichkeiten, irgendwelchen Sonderfällen etc. nur weil du einfach nicht verstehen kannst oder willst, dass eine maschinennahe Programmiersprache naturgegebenermassen *in Sachen Performance* einer abstrakteren Sprache überlegen ist.

1. ich habe in keinem beitrag angezweifelt, dass eine "maschinennahe programmiersprache" für viele anwendungsfälle eine bessere performance liefern kann (andernfalls bitte verweis auf den entsprechenden beitrag)
2. eine naturgegebene (was soll das eigentlich sein? was ist, wenn ich einen algorithmus in assembler und c programmiere und der c compiler einen von der performance äquivalenten assemblercode erzeugt?) bessere performance habe ich widerlegt
 
Mitglied seit
18.07.2001
Beiträge
2.152
Reaktionen
2
Ort
Nürnberg
Naturgegeben = in der Regel = "Naturgegeben Katze > Maus auch wenn die Maus es mal davon schafft". Aber gut, dass du das widerlegt hast. Kannst ja weiter über deinen Algorithmus phantasieren, und irgendwelche theoretischen Ausnahmen suchen anhand derer du die Regel bezweifeln kannst.

You win, ich habe genug.
 

Jesus0815

Guest
ich hab damals mit c den einstieg ins programmieren genommen. geschadet hats mir nicht. ich finde jedoch es nicht dringend notwendig. du kannst genauso gut direkt mit c++ einsteigen.
 

Clawg

Guest
wobei ich sowas jetzt eher nicht gemeint habe. wie gesagt, bin kein experte in diesem bereich, aber der jvm jit compiler kann beispielsweise optimierungen, welche laufzeitinformationen benötigen, durchführen (inlining virtueller methoden dürfte für den statischen c++ compiler nicht möglich sein, da er nicht über die typinformationen zur compilezeit verfügt).
Man kann C++ Programme durch nen Profiler durchlaufen lassen und dann mit diesen Informationen nochmal den Compiler Hand anlegen lassen.

heapallocation ist unter java gewöhnlich auch schneller, da der jvm garbage collector den heap optimiert (daher etwa so schnell wie stackallocation), was bei traditionellen malloc/free implementierungen nicht passiert. aber man kann c++ natürlich auch mit nem garbage collector laufen lassen.
Ja, bei größeren Objekten. Aber bei kleineren, nicht-primitiv-Typen hat C++ die Nase vorn, da es die auf den Stack legt. Auch steigt der Speicherverbrauch entsprechend, was die gesparte Zeit pro Allokation wieder relativiert.
 
Mitglied seit
03.08.2002
Beiträge
707
Reaktionen
0
Man kann C++ Programme durch nen Profiler durchlaufen lassen und dann mit diesen Informationen nochmal den Compiler Hand anlegen lassen.

stimmt schon, aber beachte, dass entscheidungen dennoch zur compilezeit getroffen werden (wenn auch mit mehr informationen).

Ja, bei größeren Objekten. Aber bei kleineren, nicht-primitiv-Typen hat C++ die Nase vorn, da es die auf den Stack legt.

kleine objekte werden nicht immer auf den stack gelegt (sonst wären ja referenzen auf garbage möglich). beachte auch, dass die jvm objekte auf den stack legen kann.
 
Oben