-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!news.task.gda.pl!not-for-mail
From: Baranosiu <r...@w...pl>
Newsgroups: pl.comp.programming
Subject: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
Date: Mon, 8 Oct 2012 23:21:18 +0000 (UTC)
Organization: CI TASK http://www.task.gda.pl/
Lines: 92
Message-ID: <k4vn5d$q5$1@news.task.gda.pl>
References: <3...@g...com>
<3...@g...com>
<k3idkc$ne3$1@node2.news.atman.pl>
<9...@g...com>
<k3spfr$46s$1@node2.news.atman.pl>
<8...@g...com>
<k3vo9p$u74$1@node2.news.atman.pl>
<f...@g...com>
<k3vuc2$4cl$1@node2.news.atman.pl>
<a...@g...com>
<k420pf$sch$1@node2.news.atman.pl>
<d...@g...com>
<k44n4u$drv$1@node2.news.atman.pl>
<8...@g...com>
<k462an$knn$1@node2.news.atman.pl>
<9...@g...com>
<k4ck0u$n3d$1@node1.news.atman.pl>
<6...@g...com>
<k4v0re$c98$1@news.task.gda.pl>
<7...@g...com>
Reply-To: Baranosiu <r...@w...pl>
NNTP-Posting-Host: user-164-126-63-157.play-internet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
X-Trace: news.task.gda.pl 1349738478 837 164.126.63.157 (8 Oct 2012 23:21:18 GMT)
X-Complaints-To: a...@n...task.gda.pl
NNTP-Posting-Date: Mon, 8 Oct 2012 23:21:18 +0000 (UTC)
User-Agent: slrn/pre1.0.0-18 (Linux)
Xref: news-archive.icm.edu.pl pl.comp.programming:199767
[ ukryj nagłówki ]Dnia 08.10.2012 Maciej Sobczak <s...@g...com> napisał/a:
> W dniu poniedziałek, 8 października 2012 19:00:36 UTC+2 użytkownik Baranosiu
napisał:
>
>> Jeśli potrzebowali wydajności, to mogli użyć wydajnego narzędzia,
>>
>> jeśli potrzebowali bezpieczeństwa, to nie powinni "wyłączać
>>
>> bezpieczników". Jeśli potrzebowali kompromisu, to trzeba było to co
>>
>> się da zaimplementować w Ada bez "wyłączania bezpieczników" a część
>>
>> wymagającą wydajności zrobić jawnie w czymś innym (C, ASM czy
>>
>> czymkolwiek innym).
>
> I czym to coś różniłoby się od Ady z wyłączonymi bezpiecznikami? Jaki byłby zysk z
napisania tego kawałka w C?
Taki, że nikt nie potraktowałby tego kawałka kodu narzędziami do Ady
(których wcześniej używał i go nie zawiodły, więc im ufał). Sam
pisałeś, że sprawa została w pewnym sensie zlekceważona (na zasadzie
"wcześniej działało, to i teraz zadziała"), gdyby projektant wymusił
napisanie tego od zera i w innym języku (i co by nie mówić, to
napisanie tego w C dało by zysk na szybkości i zajętości pamięci, a z
tego co pisałeś, to właśnie ze względu na obciążenie rzędu 80%
zrezygnowano z zabezpieczeń), to byłoby to gruntownie sprawdzone jako
niezależny od reszty "klocek". W sumie nie jest ważne w jakim języku,
może być i Ada, byleby nikt nie oparł się pokusie "skopiowania starego
kodu" czy stosowania rutynowych testów bazujących na
"bezpiecznikach". Zarządzanie projektem to nie tylko zarządzanie
specyfikacjami itp., to przede wszystkim zarządzanie ludźmi, a ludzie
to nie maszyny - jeśli system zarządzania projektem nie wymusza
właściwych procedur postępowania i stosowania właściwych mechanizmów,
to prędzej czy później znajdzie się ktoś, kto sobie "uprości" życie :D
>
>> Wtedy wiadomo, że to co w Ada ma swoje
>>
>> "bezpieczniki" a dodatkowe rzeczy trzeba sprawdzić jako osobne,
>>
>> niezależne moduły.
>
> Nie różni się to niczym od sprawdzenia modułów z wyłączonymi bezpiecznikami. Nie
sprawdzono tego, więc równie dobrze nie sprawdzono by tych modułów, gdyby były
napisane w C.
>
>> Projektanci chcąc pogodzić wydajność i niezawodność
>>
>> popełnili błąd mieszając kod wysokopoziomowy i niskopoziomowy w ramach
>>
>> jednego "klocka"
>
> Chyba mieszasz pojęcia. Kod może być bezpieczny będąc niskopoziomowym. Poziom
abstrakcji i poprawność to dwie niezależne sprawy. Nie ma sensu mówić, że projektanci
pomieszali kod wysokopoziomowy i niskopoziomowy tylko na podstawie tego, że gdzieś
bezpieczniki były włączone a gdzieś wyłączone, bo poziom abstrakcji tych kawałków
mógł być niezależny (w szczególności mógł być taki sam).
>
>> - kompromis nie zadziałał co jest chyba
>>
>> wystarczającym dowodem na to, że to był zły pomysł.
>
> Nadal chyba nie czytałeś tego raportu. Przypomnę: ten kod został stworzony dla
poprzedniego modelu rakiety, gdzie był w 100% poprawny, bo działał w ramach innych
warunków technicznych. Przeniesiono moduł do nowej rakiety, która miała inne
prędkości i w ten sposób poprawny moduł stał się niepoprawny. To nie jest kwestia
kompromisów w kodzie, tylko błędu wdrożeniowego.
>
> Coś w tym stylu: ktoś każe Ci napisać program, który dodaje liczby z zakresu od 0
do 100. Da się. Potem gość bierze ten gotowy program i wrzuca do niego liczby
większe, niż 100. Program się wywala. Czy to był błąd programisty? Nie ma sensu
rozwodzić się and tym, czy właściwie pomieszałeś kod niskopoziomowy z
wysokopoziomowym albo które kawałki powinieneś napisać w C, bo nie tu powstał
problem. Problem powstał przez złe użycie gotowego i poprawnego w swoim oryginalnym
kontekście modułu.
>
Moduł nie jest poprawny czy niepoprawny sam z siebie, a jedynie w
kontekście danych jakie przetwarza. Nie pisz, że moduł był poprawny,
bo nie był, to tak jak ja bym powiedział, że buty które mam w szafie
są ok, bo chodziłem w nich jak miałem 5 lat i działały bez zarzutu, a
że teraz mam 36 lat to tylko drobny szczegół (buty oczywiście mogą
nadal działać w kontekście innego 4-latka, ale w moim już nie działają
poprawnie).
>> Ślepa wiara w mechanizmy języka
>> może sprowadzić na manowce, bo zawsze może pojawić się coś tak
>> trywialnego, jak błąd w kompilatorze czy innym narzędziu i całe
>> cudowne mechanizmy mające zapewnić niezawodność mogą przestać działać
>
> Tak. I jaki z tego wniosek w kontekście tematu dyskusji (cokolwiek nim było)?
>
Taka, że ktoś założył, że skoro moduł przeszedł testy ze starym
systemem, to jest poprawny i nie trzeba "wnikać", automatyczne testy w
nowym systemie nie wykazały niezgodności (bo "bezpieczniki" nie
zadziałały) ale całościowo w praktyce system poległ. Nie twierdzę, że
to wina Ady jako języka, to wina człowieka, który za bardzo zaufał
istniejącemu kodowi oraz mechanizmom wykrywania błędów zawartymi w
języku.
Kwestia indywidualnego podejścia, ja wolę wybierać odpowiednie
narzędzia do rozwiązywanego problemu, inni wolą przystosowywać jedno
narzędzie do wszystkich problemów :D Każdy ma prawo mieć swoje zdanie
i nikt nikogo do niczego nie musi przekonywać, wyraziłem swoją opinię
i to wszystko, nie podchodź do tego jak do "świętej wojny" :D
Z mojej strony EOT
Następne wpisy z tego wątku
- 09.10.12 10:17 Maciej Sobczak
- 09.10.12 15:18 M.M.
- 09.10.12 17:11 Baranosiu
- 09.10.12 23:09 Maciej Sobczak
- 24.10.12 00:32 Marcin Kowalczyk
- 24.10.12 09:59 Maciej Sobczak
- 24.10.12 18:38 Baranosiu
- 25.10.12 09:45 Maciej Sobczak
- 25.10.12 18:21 Baranosiu
- 27.10.12 09:05 Maciej Sobczak
- 27.10.12 16:53 Baranosiu
- 29.10.12 10:40 Maciej Sobczak
- 29.10.12 12:01 Baranosiu
- 29.10.12 15:56 Maciej Sobczak
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-17 Zniknął list gończy za "Frogiem". Frog się nam odnalazł?
- 2025-01-17 Kto wytłumaczy "głupiemu" prezydentowi Dudzie wielką moc prawną "dekretu premiera" TUSKA? [(C)Korneluk (2025)]
- 2025-01-17 Warszawa => Inżynier oprogramowania .Net <=
- 2025-01-17 Natalia z Andrychowa
- 2025-01-17 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-17 Warszawa => System Architect (Java background) <=
- 2025-01-17 Warszawa => Full Stack .Net Engineer <=
- 2025-01-17 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-17 Lublin => Programista Delphi <=
- 2025-01-17 Warszawa => Developer .NET (mid) <=
- 2025-01-17 Ostrów Wielkopolski => Konsultant Wdrożeniowy Comarch XL/Optima (Ksi
- 2025-01-17 Katowice => Senior Field Sales (system ERP) <=
- 2025-01-17 Wróblewo => Analityk finansowy <=
- 2025-01-17 Żerniki => Specjalista ds. Employer Brandingu <=
- 2025-01-17 pradnica krokowa