Womit programmiert die NASA



  • Ich hatte ja auch mal eine Bericht gepostet, wo "BMW CarIT" über den Einsatz von C++ im CAN-Bus geschrieben hat. Hat pale dog auch als "Unsinn" abgetan. pale dog braucht man nicht ernst nehmen... weil er alle anderen für Idioten hält, selbst wenn es große bekannte Firmen sind.



  • Ich arbeite in einem großen Rüstungsunternehmen.

    Bei uns nutzen wir sowohl C, C++, Ada und auch (sehr sehr selten) C#. Kommt immer auf die Projekte an.

    Ich glaube, dass die NASA auch nur mit Wasser kocht und dass es ganz normale Ingenieure und Entwickler sind, die nur entsprechend viel Geld in ihren Projekten zur Verfügung gestellt bekommen um sehr viel zu testen. Unsere Flugsysteme werden ebenfalls sehr viel getestet und haben dementsprechend wenig Fehler.

    Auch das CERN entwickelt mit C++ (die haben doch irgend so einen open source C++ interpreter rausgebracht). Bei CERN sehe ich mehr Know How und Kompetenzen als bei der NASA.

    Ich denke, dass es total egal ist, ob man nun mit C, C++ oder Ada programmiert. Die Hauptsache ist, dass genügend Geld zum Testen und Entwickeln da ist.

    Dass bei der Microcontrollerprogrammierung nicht auf C#, Java oder eine andere interpretierte Sprache gesetzt wird, wird hier doch allen genauso klar sein, wie dass in den meisten Bereichen des Shuttle kein Windows Xp laufen wird.

    Gruß Paddy



  • Artchi schrieb:

    Ich hatte ja auch mal eine Bericht gepostet, wo "BMW CarIT" über den Einsatz von C++ im CAN-Bus geschrieben hat. Hat pale dog auch als "Unsinn" abgetan. pale dog braucht man nicht ernst nehmen... weil er alle anderen für Idioten hält, selbst wenn es große bekannte Firmen sind.

    Du bleibst es aber bis heute schuldig mir den großen Sinn hinter dem Artikel zu nennen. Gebetsmühlenartiges Wiederholen der Existenz dieses Artikels bringts nicht. Dass es prinzipielll geht wundert niemand. So what?



  • rüdiger schrieb:

    Aber egal was wir für Argumente bringen werden, wirst du es eh nicht einsehen wollen und auf C beharren. Meinetwegen mach das. Aber wie gesagt, es gibt Firmen die auf C++ für µC setzen und das sind zum Teil Industriegrößen. zB schreibt Lockheed Martin die Software für ihre Kampfflugzeuge mit C++ und ich glaube nicht, dass die total ahnungslose ineffiziente Deppen sind... Im Gegenteil glaube ich eher das dort ein haufen ziemlich kompetenter Ingenieure arbeitet, die sich nicht so leicht scheiß andrehen lassen...

    naja, wir wissen nicht, was sie dazu bewogen hat auf C++ zu setzen, aber wir sollten mal davon ausgehen, dass sie auch wissen, dass es sowas wie ADA gibt. 😉
    wenn's um 'bugfestigkeit' geht, beharre ich übrigens nicht auf C. beide, C und C++ sind in dieser hinsicht nicht das gelbe vom ei 😉
    ich glaube allerdings kaum, dass lockheed C++ in kritischen bereichen einsetzt, in denen programmierfehler menschenleben kosten können. wenn doch, dann sind es wirklich deppen 😮 oder sie treiben einen irren aufwand, um fehler im vorfeld auszuschliessen.

    @templates:
    optimierung ist fein, aber C compiler für µC optimieren ohnehin sehr aggressiv d.h. ein codewarrior z.b. hätte genau das gleiche getan mit eurer 'add'-funktion, nämlich einen konstanten wert eingesetzt und fertich 😉
    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    btw: ich find templates übrigens gut. in C benutze ich oft #defines und manchmal wünsche ich mir, dass die so mächtig wie templates wären... 🙂

    Tim schrieb:

    Artchi schrieb:

    Ich hatte ja auch mal eine Bericht gepostet, wo "BMW CarIT" über den Einsatz von C++ im CAN-Bus geschrieben hat. Hat pale dog auch als "Unsinn" abgetan. pale dog braucht man nicht ernst nehmen... weil er alle anderen für Idioten hält, selbst wenn es große bekannte Firmen sind.

    Du bleibst es aber bis heute schuldig mir den großen Sinn hinter dem Artikel zu nennen.

    einfach nur werbung, public relations. die firmen wollen damit zeigen, was sie für tolle entwicklungsmannschaften mit viel know-how haben.



  • pale dog schrieb:

    @templates:
    optimierung ist fein, aber C compiler für µC optimieren ohnehin sehr aggressiv d.h. ein codewarrior z.b. hätte genau das gleiche getan mit eurer 'add'-funktion, nämlich einen konstanten wert eingesetzt und fertich 😉

    Es geht darum, dass Templates die Optimierung nicht verhindern.

    pale dog schrieb:

    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    Und wo wird da bitte mehr Code erzeugt als im Nicht-Template-Fall?

    pale dog schrieb:

    btw: ich find templates übrigens gut. in C benutze ich oft #defines und manchmal wünsche ich mir, dass die so mächtig wie templates wären... 🙂

    Wenn du kein C++ einsetzen kannst, ist das wohl Pech.



  • pale dog schrieb:

    ich glaube allerdings kaum, dass lockheed C++ in kritischen bereichen einsetzt, in denen programmierfehler menschenleben kosten können. wenn doch, dann sind es wirklich deppen 😮 oder sie treiben einen irren aufwand, um fehler im vorfeld auszuschliessen.

    Und du glaubst, das müssten sie nur mit C++ oder anderen Sprachen ohne strenge Laufzeitumgebung?!

    pale dog schrieb:

    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    Tust du imho. Templates kennen keine Laufzeit. Alle Parameter sind Compilezeitkonstanten.

    pale dog schrieb:

    btw: ich find templates übrigens gut. in C benutze ich oft #defines und manchmal wünsche ich mir, dass die so mächtig wie templates wären... 🙂

    Ne, tust du nicht. #defines funktionieren nur auf Textebene, da will man nichts magisches 😉



  • pale dog schrieb:

    rüdiger schrieb:

    Aber egal was wir für Argumente bringen werden, wirst du es eh nicht einsehen wollen und auf C beharren. Meinetwegen mach das. Aber wie gesagt, es gibt Firmen die auf C++ für µC setzen und das sind zum Teil Industriegrößen. zB schreibt Lockheed Martin die Software für ihre Kampfflugzeuge mit C++ und ich glaube nicht, dass die total ahnungslose ineffiziente Deppen sind... Im Gegenteil glaube ich eher das dort ein haufen ziemlich kompetenter Ingenieure arbeitet, die sich nicht so leicht scheiß andrehen lassen...

    naja, wir wissen nicht, was sie dazu bewogen hat auf C++ zu setzen, aber wir sollten mal davon ausgehen, dass sie auch wissen, dass es sowas wie ADA gibt. 😉
    wenn's um 'bugfestigkeit' geht, beharre ich übrigens nicht auf C. beide, C und C++ sind in dieser hinsicht nicht das gelbe vom ei 😉
    ich glaube allerdings kaum, dass lockheed C++ in kritischen bereichen einsetzt, in denen programmierfehler menschenleben kosten können. wenn doch, dann sind es wirklich deppen 😮 oder sie treiben einen irren aufwand, um fehler im vorfeld auszuschliessen.

    Laut Stroustrup benutzen sie das für "airplane control". Hört sich also schon kritisch an. Aber sie haben wohl einen sehr strikten Coding-Guideline http://www.research.att.com/~bs/JSF-AV-rules.pdf

    @templates:
    optimierung ist fein, aber C compiler für µC optimieren ohnehin sehr aggressiv d.h. ein codewarrior z.b. hätte genau das gleiche getan mit eurer 'add'-funktion, nämlich einen konstanten wert eingesetzt und fertich 😉
    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    btw: ich find templates übrigens gut. in C benutze ich oft #defines und manchmal wünsche ich mir, dass die so mächtig wie templates wären... 🙂

    Ne, der Compiler erzeugt nicht blind Code. Aber wenn er ihn erzeugen muss, unterscheidet sich das nicht von einer normalen Funktion.



  • Mr. N schrieb:

    pale dog schrieb:

    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    Und wo wird da bitte mehr Code erzeugt als im Nicht-Template-Fall?

    im nicht-template fall existiert der code nur einmal und wird als funktion aufgerufen.

    Mr. N schrieb:

    pale dog schrieb:

    btw: ich find templates übrigens gut. in C benutze ich oft #defines und manchmal wünsche ich mir, dass die so mächtig wie templates wären... 🙂

    Wenn du kein C++ einsetzen kannst, ist das wohl Pech.

    ach, eigentlich bin ich ganz froh, dass ich C++ nicht benutzen muss...

    .filmor schrieb:

    pale dog schrieb:

    ich glaube allerdings kaum, dass lockheed C++ in kritischen bereichen einsetzt, in denen programmierfehler menschenleben kosten können. wenn doch, dann sind es wirklich deppen 😮 oder sie treiben einen irren aufwand, um fehler im vorfeld auszuschliessen.

    Und du glaubst, das müssten sie nur mit C++ oder anderen Sprachen ohne strenge Laufzeitumgebung?!

    ich glaube mit ADA o.ä. viel weniger als mit C oder C++. ADA bietet doch diverse error-check- (beim compilieren sowie zur laufzeit) und recovery-mechanismen. nicht ohne grund ist ADA erste wahl bei den herstellern von fluggeräten.

    .filmor schrieb:

    pale dog schrieb:

    aber es gibt auch template-funktionen, für die ein compiler handfesten code erzeugen *muss*, weil erst zur laufzeit verschiedene bedingungen auftreten können und diesen code erzeugt er ja wohl immer, wenn das template instanziiert wird, oder liege ich da falsch?

    Tust du imho. Templates kennen keine Laufzeit. Alle Parameter sind Compilezeitkonstanten.

    und was ist mit variablen?



  • Das drifftet alles langsam in "Rund um die Programmierung" ab ...



  • äääh, Nr N und rüdiger:

    Code bloat can also be caused by inadequacies in the language in which the code is written, or inadequacies in the compiler used to compile the language. An example of this is the template system employed in C++.

    von --> http://en.wikipedia.org/wiki/Code_bloat
    stimmt das?



  • pale dog schrieb:

    äääh, Nr N und rüdiger:

    Code bloat can also be caused by inadequacies in the language in which the code is written, or inadequacies in the compiler used to compile the language. An example of this is the template system employed in C++.

    von --> http://en.wikipedia.org/wiki/Code_bloat
    stimmt das?

    Lies den nächsten Satz. Oder noch besser, lad die Seite erneut. Hab das verbessert.


Anmelden zum Antworten