eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDlaczego software to F35 jest pisany w C++ a nie w Ada › Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
  • Received: by 10.52.91.168 with SMTP id cf8mr2810227vdb.6.1349732881117; Mon, 08 Oct
    2012 14:48:01 -0700 (PDT)
    Received: by 10.52.91.168 with SMTP id cf8mr2810227vdb.6.1349732881117; Mon, 08 Oct
    2012 14:48:01 -0700 (PDT)
    Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!goblin1!goblin.stu.neva.ru!l8no31965271qao.0!news-out.google.com!r17ni
    19qap.0!nntp.google.com!l8no31965259qao.0!postnews.google.com!glegroupsg2000goo
    .googlegroups.com!not-for-mail
    Newsgroups: pl.comp.programming
    Date: Mon, 8 Oct 2012 14:48:01 -0700 (PDT)
    In-Reply-To: <k4v0re$c98$1@news.task.gda.pl>
    Complaints-To: g...@g...com
    Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=46.171.80.166;
    posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S
    NNTP-Posting-Host: 46.171.80.166
    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>
    User-Agent: G2/1.0
    MIME-Version: 1.0
    Message-ID: <7...@g...com>
    Subject: Re: Dlaczego software to F35 jest pisany w C++ a nie w Ada
    From: Maciej Sobczak <s...@g...com>
    Cc: Baranosiu <r...@w...pl>
    Injection-Date: Mon, 08 Oct 2012 21:48:01 +0000
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    Xref: news-archive.icm.edu.pl pl.comp.programming:199766
    [ ukryj nagłówki ]

    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?

    > 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.

    > Ś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)?

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: