-
Data: 2019-09-06 15:42:36
Temat: Re: Jak to robią w NASA
Od: Maciej Sobczak <s...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Wątek zaczął się od NASA, więc będę się trzymał tematu i zakładam, że chodzi o
naprawdę krytyczny soft a nie np. o przeglądarkę internetową, której "bezpieczeństwo"
ma inny wymiar.
> I, rzecz jasna, jaka jest
> alternatywa dla C++, bo jak C++ ma wady, a nie ma nic wyraźnie lepszego,
> to żadne argumenty mnie nie przekonają.
Otóż C++ ma prawie same wady (jest bardzo błędogenny) i prawie wszystkie odziedziczył
po C, ale *nie ma* nic wyraźnie lepszego.
Jest cała masa języków obiektywnie lepszych z punktu widzenia projektowania języków,
ale albo w ogóle nie mają szans w branży krytycznej z racji polegania na
nieweryfikowalnym run-time, albo nie wpływają na wysiłek weryfikacyjny, czyli na
ostateczny koszt projektu. Tzn. co z tego, że Ada jest lepsza od C, skoro klepanie
kodu to kilka procent wysiłku a pozostałe >90% to tyle samo roboczogodzin, bo one
wynikają z procesów a nie z wyboru takiego czy innego języka.
Przykładowo, co z tego, że Ada jest lepsza, skoro nie redukuje wysiłku potrzebnego na
uzyskanie 100% pokrycia testami. Testów do napisania będzie dokładnie tyle samo, co
do sztuki. Dlatego użycie Ady nic nie wnosi. To są tego typu argumenty.
> Warto zobaczyć ile błędów było w różnych kompilatorach w różnych językach.
To akurat nie ma znaczenia. Kompilator może sobie mieć bugi, bo i tak weryfikuje się
kod wykonywalny. Dlatego też jest mitem, że w branży krytycznej potrzebne są jakieś
"certyfikowane" kompilatory. Otóż nie są (niespodzianka!).
> Potem koszty, ciekawe ile kosztuje dobry programista w niszowym-dedykowanym
> języku?
To kolejny mit. Wszyscy programiści kosztują z grubsza tyle samo, bo ich koszt i tak
już dawno nie zależy od ich kompetencji. Albo wręcz dochodzi do takich lokalnych
anomalii rynkowych, że np. JavaScript kosztuje więcej, niż C++.
Większym problemem jest to, że programistów niszowych języków po prostu nie ma a nie
to, ile kosztują.
> Może dwóch programistów w C++ napisze bezpieczniejszy kod, niż
> jeden (za te same pieniądze) w niszowym-dedykowanym języku?
Nie. W obu przypadkach muszą napisać tak samo bezpieczny.
> Potem mnogość bibliotek.
Nie używa się bibliotek. Szkoda na to nerwów, znacznie szybciej jest napisać i
zweryfikować coś od zera samemu.
(przypominam, że do tego miejsca wątek był o systemach krytycznych)
Te wszystkie rozważania wyglądają zupełnie inaczej w "normalnym" programowaniu, gdzie
*najistotniejszy* jest dostęp do bogatego ekosystemu gotowych rozwiązań - biblioteki,
frameworki, itd. Na tym polu, w embedded wygrywa C/C++ i w zasadzie z niczym nie
konkuruje, na serwerach C++ konkuruje z Javą, na desktopie C++ konkuruje z .NETem i
Javą, w przeglądarce króluje JavaScript a w zastosowaniach specjalistycznych i
okołonaukowych (wliczając w to jakiś data science, AI i takie tam) na przód wybiega
Python, który w jakimś stopniu jest też obecny wszędzie indziej jako scyzoryk do
wszystkiego i niczego. Pozostałe języki to albo zamknięte technicznie i nieużyteczne
w inny sposób ekosystemy (SQL, MATLAB, itd.) albo po prostu domena hobbystów.
Szczerze - *wszystko* jest do bani. Ale podobnie jest we wszystkich innych
dziedzinach życia (muzyka, film, jedzenie, itd.), więc chyba tak po prostu mamy jako
cywilizacja.
I tak z grubsza to wygląda. Chyba że komuś wygląda inaczej, chętnie zobaczę.
--
Maciej Sobczak * http://www.inspirel.com
Następne wpisy z tego wątku
- 06.09.19 16:06 Mateusz Viste
- 06.09.19 17:06 AK
- 06.09.19 17:11 AK
- 06.09.19 18:22 M.M.
- 06.09.19 18:29 g...@g...com
- 06.09.19 19:14 g...@g...com
- 06.09.19 20:28 M.M.
- 06.09.19 21:03 Maciej Sobczak
- 06.09.19 21:12 Mateusz Viste
- 06.09.19 21:25 Maciej Sobczak
- 06.09.19 23:00 g...@g...com
- 06.09.19 23:59 g...@g...com
- 07.09.19 01:48 g...@g...com
- 07.09.19 10:55 M.M.
- 07.09.19 17:04 Maciej Sobczak
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-25 Karty przedpłacone (podarunkowe) Google Play - pytanie do korzystających
- 2024-11-26 wina Tóska
- 2024-11-26 Rewolucja/Rewelacja!
- 2024-11-25 grupa ożyła ;)
- 2024-11-24 Być jak Clint
- 2024-11-24 Rura kanalizacja konceptu Franke = problem
- 2024-11-25 Wrocław => Lead Java EE Developer <=
- 2024-11-25 Warszawa => Business Development Manager - Network and Network Securit
- 2024-11-25 Kraków => Programista Full Stack (.Net Core) <=
- 2024-11-25 Lublin => Senior PHP Developer <=
- 2024-11-25 Karlino => Konsultant wewnętrzny SAP (FI/CO) <=
- 2024-11-25 Warszawa => ECM Specialist / Consultant <=
- 2024-11-25 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-11-25 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2024-11-25 Lublin => Inżynier Serwisu Sprzętu Medycznego <=