As an airframe and powerplant maintenance student, I also want to get an avionics license. My main goal is working on artificial intelligence of aircrafts avionics. However I'm concerned about the right language which I should work on. I've been learning Python with OOP for a long time (it was someones advice) but I think I should switch to C++ or Ada.

Honestly, I want to continue with Python but nowadays I have almost no motivation about it. Any advice for my roadmap? Thanks a lot!

  • 4
    $\begingroup$ Welcome to aviation.SE! Can you tell us exactly what you mean by “AI” in avionics? Is it something that you’ve seen in existing avionics? Or is it something you want to research for future avionics? Or something else? An example would be very helpful. And this question might be relevant. $\endgroup$
    – Pondlife
    Nov 11 '20 at 23:54
  • 3
    $\begingroup$ I hate to burst any bubbles, but power plant maintenance and avionics tech is a very different education/career path than the engineers who design and development avionics. $\endgroup$
    – Ron Beyer
    Nov 12 '20 at 0:07
  • $\begingroup$ Hi again. Firstly, after my B1 licenses, I'll take the B2 modules as well. That is not too hard, imo. I want to work on "recognizing objects" and some revelant defense industry. These are existing, as far as I know. They are still in progress, but when I greduate, it wont be a problem, right? $\endgroup$
    – Ryudeki
    Nov 12 '20 at 0:20
  • 4
    $\begingroup$ Even after getting the "B2" that is still an aircraft maintenance engineer. If you want to design the actual software that runs it, you will need to attend a 4 year university and major in electrical or software engineering, ideally from a college like Embry-Riddle where you can get a minor in another field like aerospace engineering. $\endgroup$
    – Ron Beyer
    Nov 12 '20 at 0:49
  • 3
    $\begingroup$ Why do you think AI is used in avionics? Or ever would be? Have you looked at what it takes to get safety-critical software certified? $\endgroup$
    – StephenS
    Nov 13 '20 at 14:20

Aviation is a very verbose world. Pilots do checklists. They use standard phraseology. Each part in an aircraft has a written history like an ancient sword. There are two communicating pilots in the airliner.

And the main selling point of Python has always been its extremely low level of verbosity. Python ommitts lots of declarative code other langages require. This makes the programming fast and easy but does not give context to see the errors early. An error that would prevent Eiffel or C++ code from even being built would often pass ok for Python, and the program will crash during the run instead, and maybe not always, and maybe after it passes the testing.

As a result, I am convinced that Python is not a choice for something that costs lives when it fails. Such cases have they own priorities and "working prototype in two days" is not between them. I think the role of Python in serious aviation will be rather limited.

  • $\begingroup$ When developing an AI system (like e.g. a Neural Network), most of the work is done in the training phase. This could still be done in Python, even when implementing the final network would have to be done in Ada or something similar. $\endgroup$
    – Bianfable
    Nov 13 '20 at 8:52
  • $\begingroup$ It is highly unlikely that a garbage collected language like python would ever be able to be used for something requiring a realtime level of performance assurance. And many systems on an aircraft will need exactly that. I once saw a restrictive standard for C for use in realtime on automobiles, and that would probably be the likely thing here, too. $\endgroup$
    – Azendale
    Nov 13 '20 at 21:02
  • $\begingroup$ @Bianfable: Python is far too slow to train Neural Networks. Realistically that's done in CUDA, with Python just acting as a front end. Inference (using the network) can be done in pretty much any language, and if done well is hard real-time. $\endgroup$
    – MSalters
    Nov 16 '20 at 12:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.