Î: NASA scrie în Python?
Răspuns scurt
NASA nu utilizează Python pentru a implementa proiecte serioase privind zborurile sau livrările militare. Cu toate acestea, există câteva proiecte în care Python este utilizat: parțial în calcule matematice, în care parametrii zborului sunt luați în considerare neglijabil. În plus, cred că l-ați găsi în unele proiecte cu sursă unică sau ca înlocuitor pentru scripturile shell și Perl.
Răspuns lung (și mai interesant) de la interior
Deși oricine poate scrie pe asta, pe ceea ce este convenabil, majoritatea folosesc C, mult mai puțin decât angajații scris în C ++ și foarte puțin - în Java. Absolută minoritate utilizează ADA, Fortran și Lisp. Assembler este folosit atunci când vine vorba de nevoia de optimizare sau de șofer. Pentru simulare, cel puțin în LPJ, majoritatea sprijinului MatLab, dar sunt cei care folosesc Mathematica la (bănuiesc că cineva folosește chiar Maple, dar eu personal fac acești oameni nu au văzut încă). În general, în orice proiect, chiar de dimensiuni medii nu folosesc limbaje de scripting, și chiar mai mult, Python, Ruby, Perl, și altele, pentru că aceste proiecte trebuie să îndeplinească anumite cerințe.
Angajamentul față de C nu este lipsit de sens. Toate proiectele majore ale organizației neapărat scrise în C. De exemplu, codul pentru robotii este scris în C, cu singura excepție a Gestalt, software-ul pentru navigare vizuală, scrisă în C ++. Desigur, dezvoltarea de software în altă limbă nu este, de asemenea, lipsită de sens, dar acest cod ar trebui să fie ușor de portat la limba principală. De asemenea, conține drivere pentru toate echipamentele comerciale. Din moment ce este rapid, există multe biblioteci de calitate pentru aceasta, vă permite să scrieți la un nivel foarte scăzut, "mai aproape de fier", ceea ce este foarte util. Marele avantaj este faptul că există multe compilatoare care aderă la standard C. De exemplu, dacă utilizați, GCC, apoi prin reguli de generare de cod severitate, puteți fi siguri că programul va rula la fel pe marea majoritate a mașinilor. Este imposibil să spunem același lucru despre alte limbi. În special, nu voi argumenta că un număr mic de compilatoare C ++ acceptă standardul de limbă, dar cu câțiva ani în urmă a fost exact așa.
În opinia mea umila, oameni noi ar trebui să opteze pentru un C ++, numai în cazul în care sunt dispuși să accepte anumite restricții, iar în acest caz, este logic să se uite în continuare la C, dintr-o perspectivă diferită. Cele mai multe dintre codul în C ++ și are resurse limitate: este extrem de important pentru a salva proiectele de zbor de putere și spațiu de memorie, atât pe termen lung operaționale și. S-au dus zilele în care compania militară și aerospațială deținute de lider producția de chips-uri și alte componente hardware, iar acum au fost înlocuite de către producătorii civili de bunuri de larg consum. Desigur, ele sunt minunate pentru echipamentele personale, dar este vorba de a lucra în spațiu deschis, trebuie să utilizeze materiale protejate împotriva radiațiilor. Ca rezultat, managerii trebuie să aleagă echipamente care sunt mult inferioare echipamentelor PC-urilor utilizatorilor obișnuiți. Deci, de exemplu, MER au jetoane cu o frecvență de 20 MHz și DRAM în 128 MB. Laptopul meu, care are deja patru ani, este de 100 de ori mai rapid (2.4GHz) și are de 32 de ori mai multă memorie (4GB). Și pentru a compara volumul HDD-ului meu la 1 TB cu volumul furnizat echipamentului spațial nu trebuie să fie. Deci, cred că înțelegeți de ce alegerea este rareori făcută în favoarea C ++, codul generat pe care nu este cunoscut pentru dimensiunile sale mici. Și cred că de șabloanele de bibliotecă standard care utilizează în procesul de o mare cantitate de resurse valoroase - RAM. În același timp, codul C este foarte concis.
În plus, C ++ are încă un dezavantaj: programele de pe acesta se pot comporta imprevizibil, codul în C ++ este dificil de întreținut. Puteți spune că utilizați numai funcțiile de bază ale limbii, și, prin urmare, nu merge cu adevărat dincolo de pur C. Dacă utilizați unele caracteristici suplimentare ale limbii, trebuie să caute oameni deosebiți care vor fi angajate în codul de depanare și echipamente de control, pentru care acest lucru Software-ul este scris.
Să ne uităm la un exemplu. Lăsați inginerul să se ocupe, de exemplu, de antene. Nu are nevoie să știe C ++: toată munca lui este să facă antena să funcționeze fără eșec, rapid și eficient. Prin urmare, ca limbă pentru scrierea unui șofer, este mai probabil să alegeți C pur. Și codul scris de acesta poate fi ușor învățat de alți ingineri, care, de asemenea, nu are sens să creeze software în C ++. Și aceeași poveste se repetă în toate domeniile biroului: de la siguranța la foc până la compresia imaginii. Da, nu poate fi negat că C ++ este un limbaj minunat și nu este surprinzător faptul că este folosit pentru a crea aplicații destul de complexe, dar în proiectarea zborurilor nu poate constitui o competiție serioasă.