C / C++ Entwicklung

Globetrotter

Mitglied
Wird irgendwo noch ernsthaft in diesen Sprachen entwickelt?
Neben Java habe ich ca 15 Jahr C / C++ Erfahrung
Brauchen Firmen überhaupt noch solche Entwickler für bestehende Altprogramme?

Gruss G.
 

Thallius

Top Contributor
Naja im Embedded und Automotive Bereich und alllem was sonst noch Hardware nah ist ist C++ immer noch die Sprache der Wahl. Und in Bereichen wo es auf Performance ankommt, wie etwa video / Audio Bearbeitung.

Gruß

Claus
 

looparda

Top Contributor
Vor allem in zeitkritischen Anwendungen - das sind meist Embedded Anwendungen. Wenn der Garbage-Collector erstmal verbeikommt bevor der Airbag auslöst .. ist doof.
 

Tobse

Top Contributor
Ich verstehe nicht, warum Leute diese Frage immer wieder stellen. Natürlich wird das eingesetzt!

  • alles was embedded ist; deine Fernbedienung, deine Tastatur (eigentlich alle Peripherie), die Chips in deinem Handy für UMTS, die Kamera, GPS, WLAN
  • Alles, was Hardwarenah sein muss: Sensoren, Motorensteuerungen, Betreibssysteme, Hardware-Treiber (deine Samsung SSD läuft mit C, darauf kannst du einen lasssen).
    Wie schon gesagt, läuft jede Maschine in einer Fabrik mit diesen Technologien; entweder, weil Java nicht schnell genug ist oder weil der Garbage-Collector ein zu großes, nicht kalkulierbares Risiko ist. Eine CNC-Fräße oder ein 3D-Drucker mit Sub-Millimeter Genauigkeit muss innerhalb von hunderten Mikrosekunden reagieren. Andernfalls bekommst du diese Präzision nicht hin oder der Druck-/Fräßvorgang dauert ewig.
  • Die Börse. An der Börse gehen Transaktionen ebenfalls im Mikrosekunden-Bereich vonstatten. Wenn deine Software im Schnitt auch nur 2-3 Millisekunden langsamer ist, als die Konkurrenz, verdienst du damit an der Börse kein Geld.
  • Alle PC- und Konsolenspiele sind in C++ geschrieben. Ganz einfach deshalb, weil aktuell keine ernstzunehmende Alternative dazu existiert: Sämtliche Playstations, Nintendo Konsolen, XBOX, ...
  • Fast jede der fancy, highlevel Sprachen, die wir benutzen, ist in C oder C++ implementiert: Interpreter für PHP, Ruby, Python, Lua und so ziemlich jede andere Skriptsprache, die verbreitet ist. Der Java-Compiler und die JVM laufen ebenfalls auf diesen Technologien
  • Dein Browser. Wenn du meinst, dass dein Browser mit Java so schnell und angenehm zu bedienen wäre, irrst du dich. Die HTML-Parser und JavaScript Engines einiger Browser sind sogar teilweise in Assembler geschrieben, der Performance wegen.
  • Anwendungen, welche einst in einer der Sprachen verfasst wurden und heute noch gepflegt werden erfordern Fachleute, die jeden Tag 8 damit arbeiten. So alten Kram auf die JVM zu porten ist viel teurer, als die Fachkräfte für C/C++ auszubilden, die sich darum kümmern
 

Jardcore

Top Contributor
Alle PC- und Konsolenspiele sind in C++ geschrieben
Das stimmt so nicht. A+++ Titel vielleicht aber nicht ALLE. Es gibt genug Games die in Java, C#, Java Script, Flash, Ruby oder Python geschrieben sind. Durch das Aufkommen des Trends alte Retroklassiker neu aufleben zu lassen.
Um deine Frage zu beantworten, schau einfach mal bei Stepstone nach "Softwareentwickler/in C/C++". Gibt zu mindestens noch 56 Stellen XD ... gibt lieber nicht Java ein, das erschreckt nur... 721 :)
 

Tobse

Top Contributor
Das stimmt so nicht. A+++ Titel vielleicht aber nicht ALLE. Es gibt genug Games die in Java, C#, Java Script, Flash, Ruby oder Python geschrieben sind. Durch das Aufkommen des Trends alte Retroklassiker neu aufleben zu lassen.
Da hast du in der Tat Recht; es gibt einige Ausnahmen. Sowie die Grafik anspruchsvoll ist haben die Spiele aber mindestens einen C/C++ Anteil um mit dem Grafikkarten-Treiber interagieren zu können; bei Frameworks wie Unity ist der C/C++ nicht teil des Spiels selbst, aber unweigerlich existent.

Um deine Frage zu beantworten, schau einfach mal bei Stepstone nach "Softwareentwickler/in C/C++". Gibt zu mindestens noch 56 Stellen XD ... gibt lieber nicht Java ein, das erschreckt nur... 721 :)
Ja, aber 56 sind 56... ;) Klaro, andere Sprachen werden viel mehr verwendet. IMHO ist der Großteil der Software, an der aktuell gearbeitet wird, zum Großteil fachlicher Natur und nicht auf die Low-Level und Performance Features von C/C++ angewiesen. Ich sehe aber nicht, dass wir uns in den nächsten Jahrzehnten von C und C++ weg bewegen. Mit Glück festigt sich Rust für solche Dinge und C / C++ werden irgendwann nurnoch in Legacy-Code genutzt. Das wird aber noch ne ziemliche Weile dauern...
 

Jardcore

Top Contributor
Wo du es gerade sagst, selbst Libgdx, DAS immer wieder empfohlene Framework wenn es um Java und Spieleentwicklung geht, benutzt intern in einigen Bereichen auch C/C++ :)
 

Tobse

Top Contributor
Mich würde übrigens auch mal interessieren, wie das in der Forschung / Wissenschaft ist. Ich kann mir zum einen gut Vorstellen, dass dort Sprachen wie Python sehr beliebt sind, weil sie viele Freiheiten erlauben; das ist vmtl gerade dann sehr wichtig, wenn man komplexe Konzepte mit einer akzeptablen Syntax abbilden will. TensorFlow (Library für Neuronale Netzwerke von Google) ist z.B. in Python geschrieben.
Auf der anderen Seite frage ich mich aber auch, ob Sprachen wie Python oder Java schnell genug sind, im damit aufwändige physikalische Simulationen effizient zu rechnen :/
 

stg

Top Contributor
Auf der anderen Seite frage ich mich aber auch, ob Sprachen wie Python oder Java schnell genug sind, im damit aufwändige physikalische Simulationen effizient zu rechnen :/
Java ist mir da noch nie begegnet. Viele Probleme reduzieren sich darauf, dass man (riesige und/aber oft sehr "gutartige") Lineare Gleichungssysteme löst. Die passenden Solver hierzu werden basierend auf der verwendeten Hardware optmiert. Es wird tatsächlich intensiv darauf geachtet die verschiedenen Memory Level (RAM, Cache, Register) möglichst effizient zu nutzen und unnötiges Datengeschaufel zu vermeiden. Ich wüsste jetzt nicht, wie man das mit Java gescheit angehen könnte :eek:
 

Tobse

Top Contributor
Java ist mir da noch nie begegnet. Viele Probleme reduzieren sich darauf, dass man (riesige und/aber oft sehr "gutartige") Lineare Gleichungssysteme löst. Die passenden Solver hierzu werden basierend auf der verwendeten Hardware optmiert. Es wird tatsächlich intensiv darauf geachtet die verschiedenen Memory Level (RAM, Cache, Register) möglichst effizient zu nutzen und unnötiges Datengeschaufel zu vermeiden.
Interessant :) danke für den Einblick :)

Ich wüsste jetzt nicht, wie man das mit Java gescheit angehen könnte :eek:
Meines Wissens nach garnicht... in Java gibt es den Stack und den Heap, Ende der Geschichte. Alles weitere ist Runtime-Spezifisch
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Entwicklung einer eigenen Skriptsprache Andere Programmiersprachen 5

Ähnliche Java Themen

Neue Themen


Oben