🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #215559

Re: Ada Tutorial - w Instytucie Lotnictwa

#215559
From: heby
Date: Fri, 10 May 2019 19:00
68 lines
5036 bytes
On 10/05/2019 08:21, Maciej Sobczak wrote:
> A co jest złego w MISRA-C++?

Nikt go nie używa. Zacytuje jednego z developerów MICRA-C: "Znowu te 
pedały coś wymyśliły". Po prostu jest niekoszerny. Najbardziej widać to 
w automatyce przemysłowej i kontrolerach. Mimo że nawet 8-bitowy 
procesor skorzystał by z kodu pisanego w C++ to typowy developer uC 
nawet go kijem nie ruszy bo jednak nic lepszego niż void* nie wymyślono.

>>> A ponieważ zakładamy, że programista spieprzy wszystko co może, to wybór języka jest ważny. Żeby mógł spieprzyć jak najmniej.
>> A mimo to spieprzył.
> Może spieprzył mniej? Może gdyby spieprzył więcej, to rakietę by szlag trafił jeszcze przed startem?

Może. Problem w tym że to nie ma znaczenia. Ktoś napisał w języku z 
silnym typowaniem i fikuśnymi wyjątkami kod w asemblerze który przedarł 
się przez code review, weryfikację i był sterowany przez księgowych.

Zaznaczam że gdyby ktokolwiek obecnie zapytał mnie jak to zrobic to w 
przypływie mojej ignorancji napisałbym klasę do obsługi arytmetyki z 
saturacją, być może z możliwością wymiany jej na bezpośrednie wsparcie 
hardware co przecież dziwne nie jest.

Tutaj nadziubdziali żałosny asm.

Albo core review składał się z takich samych hackerów jak ten miszczu 
albo też code review nie było i cała ta Ada to pic na wodę. I nie 
mówiłbym tego gdyby nie to że przez te ostatnie naście lat widziałem 
troszkę kodu "bezpiecznego" i funta kłaków bym za wiele kawałków nie 
dał, to po prostu dobrze udokumentowane i przetestowane g...

>> Ariane zdetonowała z powodu używania bezpiecznego
>> języka w niebezpieczny sposób.
> Są też systemy pisane w niebezpiecznych językach w niebezpieczny sposób.

Tak. Na przykład Verilog. Język z wbudowaną wadą projektową i 
najbardziej rozbudowanym systemem weryfikacji do zastosowań krytycznych. 
Dzień jak codzień w IT.

>> Czekamy na nastepny język o śmiesznej
>> nazwie gdzie będzie jeszcze więćej bezstanowości, korutyn, monad i całej
>> masy innych niezwykle przydatnych rzeczy
> Tu się zgadzam. Ciekawe, czy Godek to czyta. :-)
> Ale akurat Ada nie ma związku z żadną z tych rzeczy.

Na codzień mam do czynienia z VHDL. To taka ada + troche ekstra składni. 
Pisanie bezpieczne w tym języku polega głównie na obchodzeniu przez 
programistów silnego typowania chałupniczymi workaroundami. Stąd 
popularnośc Veriloga, można tam pisać co się chce a i tak sie jakoś 
skompiluje. Ludzie nie potrzebują bezpicznych jezyków i ograniczeń. 
Ludzie są leniwi i potrzebują dodawać inta do stringa a wynik ma być 
taki jak ma być i już.

>>> Unit testy nie wykrywają wyjątków. Chyba że mamy inne rozumienie tego terminu.
>> ASSERT_THROW. ASSERT_NO_THROW. Całkiem fajnie wykrywają.
> Ale to nie są unit testy.

To są narzędzia do wykrywania wyjątków w unit testach co oznacza że za 
ich pomocą można pisać unit testy testujące wyjątki.

>> Więc jesli mógłbym prosić, przygotuj swoją funkcję na obsługę wyjątków.
> Jest zakaz wyjątków. Właśnie po to, żebym nie musiał przygotowywać.

No ale to nie udowania tezy że rzucanie wyjątku przez generyka jest 
bezpieczne czy niebezpieczne. To tylko chowanie głowy w piasek z braku 
argumentacji.

Powtarzam, wyjątek czy nie, nie jest kwestią funkcji generycznych jego 
obsługa. Jakiekolwiek kombinowanie w tym temacie to błąd projektowy.
Technical Details
Message-ID: <qb4hnr$eqn$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
References: <c1760262-b4a3-44fe-a99e-2fa16be86820@googlegroups.com> <btKtE.25850$wd2.16727@fx24.fr7> <9537dd39-0164-41a6-803b-393b77b4a701@googlegroups.com> <qasr5t$7i2$1@dont-email.me> <0eb77d44-3b22-41cb-8339-2346fe0b6c4d@googlegroups.com> <qav4vb$87q$1@dont-email.me> <dccdf13d-3ee3-4cf0-a99e-da8828579160@googlegroups.com> <qb1kr4$nqn$1@dont-email.me> <c5cd80a1-d0a2-4fc5-810d-30ff996a9d03@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!weretis.net!feeder7.news.weretis.net!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: heby <heby@poczta.onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Ada Tutorial - w Instytucie Lotnictwa
Date: Fri, 10 May 2019 21:00:09 +0200
Organization: A noiseless patient Spider
Lines: 68
Message-ID: <qb4hnr$eqn$1@dont-email.me>
References: <c1760262-b4a3-44fe-a99e-2fa16be86820@googlegroups.com> <btKtE.25850$wd2.16727@fx24.fr7> <9537dd39-0164-41a6-803b-393b77b4a701@googlegroups.com> <qasr5t$7i2$1@dont-email.me> <0eb77d44-3b22-41cb-8339-2346fe0b6c4d@googlegroups.com> <qav4vb$87q$1@dont-email.me> <dccdf13d-3ee3-4cf0-a99e-da8828579160@googlegroups.com> <qb1kr4$nqn$1@dont-email.me> <c5cd80a1-d0a2-4fc5-810d-30ff996a9d03@googlegroups.com>
Mime-Version: 1.0
Injection-Date: Fri, 10 May 2019 19:00:12 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f10f322605eb5d44a142b19f15d3f199"; logging-data="15191"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/4gqFAmtex4UNRVlFzAIhJ"
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
Cancel-Lock: sha1:CgEbI9KU0RePOAYv//N9UcfaVP0=
In-Reply-To: <c5cd80a1-d0a2-4fc5-810d-30ff996a9d03@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit