nik_ schrieb:
@daaron aus den erfahrungen aus meinem inf studium und der meiner mitstudenten. java und c# sind die OO-Sprachen. Manche firmen programmieren fast nur noch in java (bsp: IBM)
Und? C++ ist ebenfalls objektorientiert, genau wie Objective-C. Nur das pure C selbst ist zu alt, um Objektorientierung zu enthalten. Da C aber auch quasi der Urvater aller modernen Sprachen ist, kann man ihm das nachsehen.
Tja.. und dein IBM-Beispiel... dagegen hab ich einen passenden Konter: Apple entwickeln weitestgehend in Objective-C. OSX, iOS,... alles Objective-C.
Wenn sich Studenten über C so auslassen, dann haben sie C einfach nicht verstanden. Ja, es IST schwerer. Man muss sich plötzlich mit starker Typisierung und vor allem Speichermanagement auseinander setzen. Deshalb ist es aber noch lange nicht Schrott (und schon gar nicht an Java angelehnt, C ist weit älter als Java). Man muss halt verstehen, wie malloc() arbeitet und was es mit Pointern auf sich hat. Wenn man das begriffen hat, kann man verdammt geile Konstrukte schreiben, die in anderen Sprachen schlichtweg unmöglich sind.
An die Performance eines nicht all zu vermurksten C/C++ - Programms kommt Java nicht einmal im Traum heran. Schneller als C ist nur noch handoptimierter Assembler-Code.
Ruheliebhaber schrieb:
@Daaron: Die C/C++ Basis ist traditionell vielleicht riesig, meiner Erfahrung nach aber im Bereich Anwendungsentwicklung immer weniger gefragt. Ich rede jetzt nicht von alten sondern von neuen Projekten. Große Projekte werden im Team entwickelt und da Software immens teuer ist, werden Dinge wie Wartbarkeit des Codes immer wichtiger. Das ist bei C++ nicht ganz so komfortabel wie in Java oder C#.
Was ist denn an C/C++ nicht wartbar? Was ist daran nicht teamfähig? Einige Millionen Entwickler im Open Source - Umfeld hauen dir deine Aussage links und rechts um die Ohren.
Mit guten Header-Informationen sind verteilte Projekte selbst ohne die Fähigkeit zur Objektorientierung in C extrem leicht lösbar. Gib jedem Mitarbeiter die Outline der Funktionen, um die sie sich kümmern müssen. Wie sie die Outline dann erfüllen ist ihr Problem.
Du vergisst mal eben folgendes:
Mit C# bist du, für vollen Funktionsumfang, an Microsoft gebunden. Java benötigt seine Runtime Environment. C läuft auf allem, für das ein C-Compiler existiert.... und auch der erste Java-Compiler wurde ganz sicher nicht in Java geschrieben.