-
Data: 2019-09-06 12:57:16
Temat: Re: Jak to robią w NASA
Od: Mateusz Viste <m...@w...tell> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On Fri, 06 Sep 2019 03:06:02 -0700, M.M. wrote:
> Oczywiście C++ ma wady, ale te wady wynikają ani z języka, ani z
> narzędzi, ani z bibliotek, lecz z ogromnej swobody programowania jaką
> daje język C++. Jeśli, szczególnie mniej doświadczony, programista
> dostanie wiele swobody, to niewykluczone że użyje jej przeciwko
> bezpieczeństwu systemu.
W zupełności się zgadzam, dodam od siebie tylko to: język C++ rośnie cały
czas. To bogactwo językowe, postrzegane przez wielu jako zaleta,
faktycznie pozwala w wielu przypadkach nieco ułatwić pracę. Problem w
tym, że w praktyce mało który programista panuje nad całością języka -
pewnych rzeczy nie wie, albo myśli że wie i kod działa mu z przypadku,
albo kiedyś wiedział ale zapomniał bo mało używał. No i oczywiście zbiór
wiadomości które programista A posiada, mało kiedy nakłada się na to, co
wie programista B. W jakiejkolwiek pracy zespołowej to może szybko być
poważnym problemem, bo zamiast rozwiązywać biznesowe problemy,
programiści głowią się nad tym, "co kolega miał na myśli".
To jest główny powód, dla którego ja sam staram ograniczać się do C89.
Czasem zdarzy mi się sięgnąć po C99 albo jakieś rozszerzenie GNU, ale
bardzo niechętnie i wyłącznie w przypadkach kiedy w oczywisty sposób
pozwoli to ograniczyć koszty.
Oczywiście można spierać się, czy taki ogranicznik jest rolą języka, czy
może reguł projektowych, czy też innych wewnętrznych dyrektyw.
> W C++ np. nie ma obowiązku inicjowania zmiennych przy deklaracji, a
> domyślnie są inicjowane tylko w określonych sytuacjach. Jeśli ktoś w
> krytycznych systemach zbagatelizuje ten problem, uzna np. że jego kod
> jest na tyle dobry, że nie będzie odczytów przed inicjacją, to cóż...
Akurat ten przykład jest może nie do końca trafiony, bo błąd o którym
piszesz zostanie wykryty przez każdą statyczną analizę (nie potrzeba
nawet do tego specjalnego analizatora - zarówno gcc jak i clang
ostrzegają o tym). No chyba, że ktoś kompiluje bez żadnej diagnostyki...
No ale to już mówimy o ostro patologicznych przypadkach.
Wracając do tematu bezpieczeństwa C/C++, to z pewnością istnieją znacznie
bezpieczniejsze języki (np. w PHP ciężko wykonać SEGFAULT...). Problem w
tym, że ktoś piszący w C/C++ z reguły poszukuje nie tylko rozwiązania
danego problemu, ale oczekuje także osiągów - gdyby liczyło się wyłącznie
"bezpieczeństwo", to pisalibyśmy w jakiejś ewolucji QuickBasica :)
Jeśli wymagamy by nasz kod działał możliwie najszybciej, to trzeba godzić
się z tym, że pracujemy niejako na otwartym sercu. Jedyne co możemy
zrobić, to starać się hamować "kreatywność" młodych programistów i
ograniczać kod aby był jak najłatwiejszy do zrozumienia dla każdego, a
wynik intensywnie testować.
Mateusz
--
"There are only two kinds of programming languages: those people always
bitch about and those nobody uses." -- Bjarne Stroustrup
Następne wpisy z tego wątku
- 06.09.19 15:42 Maciej Sobczak
- 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.
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 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
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)