Milyen programozási nyelvet ír a NASA-ban
A legtöbb ember C-t használ, sokkal kevesebben írnak C ++-ban és nagyon kevés Java-ban. Abszolút kisebbségi igénybevétel ADA, Fortran és Lisp. Vannak olyan projektek, amelyekben a Pythonot használják: részben matematikai számításokban, amelyekben a repülési paramétereket figyelmen kívül hagyják. 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ában minden projektben még az átlagos skála nem használja a szkriptnyelveket, és még inkább a python, a ruby, a perl stb., Mert ezeknek a projekteknek bizonyos követelményeknek kell megfelelniük.
A C iránti elkötelezettség nem értelmetlen. A szervezet minden nagyobb projektje feltétlenül C-ben íródott. Például a roverek kódját C-ben írták, az egyetlen kivételt a Caltában írt Gestalt, a vizuális navigációra szolgáló szoftver formájában. 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. Mivel gyors, számos minőségi könyvtár van hozzá, lehetővé teszi, hogy nagyon alacsony szinten írjon, "közelebb a vashoz", 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 nem fogok vitatkozni, hogy néhány C ++ fordító támogatja a nyelvi szabványt, de néhány évvel ezelőtt ez pontosan így történt.
Szerény véleményem szerint az új embereknek csak akkor kell választaniuk a C ++-et, ha hajlandóak bizonyos korlátozásokat elfogadni, és ebben az esetben van értelme a C-t más nézőpontból nézni. 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.
Ezenkívül a C ++-nek még egy hátránya van: a programok előre megjósolhatatlanul viselkedhetnek, a C ++ kódot nehezen lehet 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ásokhoz használják, de a járatok tervezésénél ez nem jelent komoly versenyt.