Mi van írva a NASA-ban?
Kérdés: írja a NASA Python-t?
Rövid válasz
A NASA nem használja a Pythonot olyan komoly projektek végrehajtására, amelyek a járatokra vagy katonai szállításra vonatkoznak. Vannak azonban olyan projektek is, amelyek Pythonot használnak: részben matematikai számításokban, amelyekben a repülés paraméterei figyelmen kívül hagyhatók. Ezenkívül úgy gondolom, hogy megtalálhatod ezeket az egyes forrásprojektekben, vagy a shell parancsfájlok és a Perl helyett.
Hosszú (és érdekesebb) válasz a bennfentesnek
Bár bárki írhat be, hogy a mi kényelmes, a többség használja a C, sokkal kisebb, mint a dolgozók írásban C ++, és hogy nagyon kevés - a Java. Abszolút kisebbségi igénybevétel ADA, Fortran és Lisp. Az összeszerelőt akkor használják, amikor az optimalizálásra vagy a vezetőre van szükség. A szimuláció, legalábbis a JPL, a legtöbb támogatást MatLab, de vannak olyanok, akik a Mathematica (Gyanítom, hogy valaki használja még juhar, de én személy szerint ezek az emberek még nem láttam). Általánosságban elmondható, hogy minden olyan projektet, még közepes méretű nem használja programozási nyelvek, és még inkább, Python, Ruby, Perl, és mások, mert ezek a projektek meg kell felelnie bizonyos követelményeknek.
A C iránti elkötelezettség nem értelmetlen. Minden nagyprojektek a szervezet szükségszerűen C nyelven írt Például a kódot a robotok van írva C az egyetlen kivételt a Gestalt, a szoftver vizuális navigáció, C ++ nyelven íródott. Természetesen a szoftver egy másik nyelven történő fejlesztése sem értelmetlen, de ezt a kódot könnyen át kell vinni a fő nyelvre. Emellett tartalmazza az összes kereskedelmi berendezés meghajtót is. A gyors, rengeteg kiváló minőségű könyvtárak, ez lehetővé teszi, hogy írjon egy nagyon alacsony szinten „közel a hardver” neki, ami nagyon hasznos. A nagy előnye az a tény, hogy sok fordító, amely megfelel a szabványos C Például, ha ön használ, a gcc, majd súlyossága kódgenerálást szabályokat, akkor biztos lehet benne, hogy a program fut ugyanaz a túlnyomó része a gépek. Lehetetlen ugyanezt mondani más nyelvekről is. Különösen azt nem állíthatja, hogy a kis C ++ fordító támogatja a nyelvi norma, de néhány évvel ezelőtt ez volt a helyzet.
Alázatos véleményem szerint az új embereknek csak akkor kell választaniuk a C ++ mellett, ha hajlandóak bizonyos korlátozásokat elfogadni, és ebben az esetben van értelme a C-t más nézőpontból megvizsgálni. A legtöbb C + + kódot az erőforrások korlátozzák: rendkívül fontos, hogy energiát és memóriát takarítsanak meg, mind operatív, mind hosszú távon az űrrepülési projektekben. Elmúltak azok a napok, amikor a katonai és űrkutatási szervezetek tulajdonában voltak a forgácsok és egyéb vasipar vezető gyártói, most pedig a fogyasztói javak polgári termelői váltották őket. Természetesen nagyszerűek a személyes berendezések számára, de a nyitott térben való munkavégzésre, sugárvédett anyagokra van szükségük. Ennek eredményeképpen a vezetőknek olyan eszközöket kell választaniuk, amelyek jóval alacsonyabbak a hagyományos felhasználók számítógépének felszerelésénél. Így például a MER-nek 20 MHz frekvenciájú és 128 MB-os DRAM-ot is tartalmaz. A négy évnél idősebb laptopom 100-szor gyorsabb (2,4 GHz) és 32-szer több memóriával (4 GB) rendelkezik. És nem kell, hogy összehasonlítsam a merevlemezem térfogatát 1 TB-vel, és az űrberendezés számára biztosított térfogatot. Szóval, azt hiszem, megérted, hogy a választás miért ritkán kerül sor a C ++ javára, a létrehozott kód, amelyről nem ismert a kis méret. És emlékezzen a szabványos könyvtár sablonjaira, a munkafolyamat során óriási értékes erőforrás-RAM-ot használva. Ugyanakkor a C-kód nagyon tömör.
Ezen túlmenően, a C ++ van egy hátránya: a program azt is kiszámíthatatlanul viselkedhet, C ++ kód nehéz fenntartani. Azt lehet mondani, hogy mindig csak az alapvető funkciókat a nyelvet, és ezért nem igazán megy túl tiszta C. Ha néhány további jellemzője a nyelvet, akkor meg kell keresni a különleges emberek, akik részt vesznek hibakereső kód és ellenőrző berendezések, amelyeknél az A szoftver meg van írva.
Nézzünk egy példát. Engedje meg a mérnöknek például az antennákat. Nem kell tudnia a C ++-ról: minden munkája az, hogy az antenna hatékonyan, gyorsan és hatékonyan működjön. Így, mint a gépírási nyelv, nagyobb valószínűséggel választja ki a C-t. Az általa írt kódot más mérnökök is könnyedén megtanulhatják, így nincs értelme szoftver létrehozásához C ++-ban. És ugyanaz a történet is megismétlődik az irodai területeken: a tűzbiztonságtól a képtömörítésig. Igen, nem tagadható, hogy a C + + egy csodálatos nyelv, és nem meglepő, hogy meglehetősen összetett alkalmazások létrehozására használják, de a járatok tervezésében ez nem jelent komoly versenyt.