Ich hatte kürzlich eine Diskussion mit Leuten, die in der Luftfahrtindustrie aktiv waren, und sagte mir, dass eine der wichtigsten Sprachen/Tools, die sie verwenden, Python ist.
Andererseits habe ich immer gewusst, dass Leute C++ oder zB Linux aus Zertifizierungsgründen für die Avionik meiden. Die Zertifizierung ist auch einer der Gründe, warum KI und Computer Vision in C++ in Flugzeugen nicht zu sehen sind. Dennoch verwenden diese Leute die ganze Zeit Python.
Ich hatte (und werde nie) die Gelegenheit zu fragen, warum und wofür sie es benutzt haben. Könnte jemand erklären, warum und wofür Leute Python immer noch verwenden würden, obwohl es sehr schwierig sein könnte, es zu zertifizieren?
Nur weil Luftfahrtentwickler Python verwenden, heißt das nicht, dass Python tatsächlich fliegt.
Ein Großteil der Luftfahrtentwicklung dreht sich um das Testen, Stressen, Validieren, Analysieren und Dokumentieren des Codes, der tatsächlich fliegt.
Python ist eine ausgezeichnete Sprache für all diese Validierungsarbeiten, auch wenn sie am Boden bleibt.
Als Softwareingenieur, der bei einem Verteidigungsunternehmen arbeitet, das geschäftskritische (aber nicht sicherheitskritische) Systeme entwickelt und verkauft, kann ich bestätigen, dass es eine ziemlich gleichmäßige Aufteilung zwischen der Entwicklung in Ada (95) für unsere Legacy-Produkte und verschiedenen Varianten von C/ C++ für unsere neuen Produkte. Die Entwicklung in beiden erfolgt selbstverständlich nach den entsprechenden Standards.
Python beschränkt sich weitgehend auf Plugins für unsere IDEs oder Validierungs- und Verifizierungsaktivitäten (die sowohl von Software- als auch von Systemingenieuren verwendet werden).
Es gibt drei grundlegende Codierungsbereiche für Luftfahrtingenieure. Softwarecode, der auf Flugcomputern und anderen Avionikgeräten ausgeführt wird, Software, die diesen Code formal verifiziert und erstellt, und Skripterstellung zur Automatisierung informeller Arbeitsaufgaben. Python hat in allen unterschiedliche Anwendungsfälle.
Zunächst einmal zur eigentlichen Software im Flugzeug. Hier gibt es unterschiedliche Sicherheitsstufen und unterschiedliche erforderliche Prüfstufen. Es wäre ein Albtraum, Python für ein kritisches Display, einen Autopiloten oder eine Warneinheit für Bodenannäherung zu zertifizieren. Cs Mangel an objektorientierter Programmierung und Klagen, wenn Sie Variablentypen missbrauchen, mögen ärgerlich sein, aber sie führen auch zu einer einfachen Überprüfung, dass die Software hinter Ihrem Rücken nichts falsch macht. Andererseits habe ich von unkritischen Systemen wie Bordunterhaltung und Wartung gehört, die sogar Systeme wie Windows NT verwenden.
Codegenerierung und formale Verifizierung (die Art, die dokumentiert wird, um den Zertifizierungsstellen zu beweisen, dass Sie niemanden töten werden) müssen manchmal formal qualifiziert werden. Sie können nicht einfach ein Python-Skript schreiben, um Ihre gesamte Software durch Simulation, formale Methoden usw. zu testen, und dann den Zertifizierungsstellen sagen, dass Ihr Python-Skript keine Probleme gezeigt hat. Genauer gesagt bietet DO-330 eine Anleitung, dass, wenn Sie ein Tool zum Ersetzen von DO-178-Prozessen (wie Testen, Codegenerierung oder Konfigurationssteuerung) verwenden, dieses Tool entweder formal qualifiziert sein muss oder seine Ausgabe muss überprüft werden (ja, auch wenn die Ausgabe narrensicherer ist als ein Mensch, der die gleiche Analyse durchführt).
Schließlich beinhalten viele Jobs von Ingenieuren Skripterstellung, und es gibt derzeit wenige Sprachen, die für die Skripterstellung beliebter sind als Python. Mit Scripting meine ich das Lösen von Problemen wie:
In diesen unkritischen, aber alltäglichen Angelegenheiten kann Python-Skripting helfen, viele komplexe oder sich wiederholende Aufgaben zu bewältigen und sie handhabbar zu machen.
void*
, was ungefähr die lockerste Typisierung ist, die Sie bekommen können. Und ohne jeglichen Polymorphismus ist es sehr schwierig, DRY einzuhalten, was im Prinzip aus Sicherheitsgründen sehr wünschenswert ist.
Benutzer3528438
Benutzer253751
Lange Haare
Roddy von den gefrorenen Erbsen
reirab
Synchrondyne
Trilarion
Tuskiomi
reirab