-
Data: 2012-01-12 21:44:35
Temat: Re: To prawda?
Od: n...@m...invalid szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 12.01.2012 r. 18:08, M.M. pisze:
> Cytat z perełek oprogramowania, bez mojego komentarza:
>
> Większość ludzi sądzi, że mając w ręku przedstawiony opis, można napisać kod
> bez trudu. Mylą się jednak. Jedynym sposobem, byś się o tym Szanowny
> Czytelniku przekonał, jest odłożenie książki na bok i samodzielene napisanie
> programu. Spróbuj.
> Zadałem to ćwiczenie na wykładach dla zawodowych programistów. Mieli kilka
> godzin na zamianę powyższego opisu na program w języku, który sobie wybrali;
> wystarczał pseudo język wysokiego poziomu. Pod koniec określonego czasu prawie
> wszyscy zgłosili, że mają poprawnie zapisane procedury. Przeznaczyliśmy 30
> minut na sprawdzanie kodu, co programiści robili za pomocą zadanych testów.
> Wyniki osiągane w różnych grupach z ponad setką programistów, były mniej
> więcej takie same: dziewięciu na dziesięciu znalazło błędy w swych funkcjach
> (a nie zawsze byłem przekonany o poprawności kodu, w którym błędów nie wykryto).
> Byłem zdumiony: mimo dostatecznej ilości czasu, zaledwie 10% zawodowych
> programistów zdołało poprawnie zapisać ten niewielki programik. Nie tylko dla
> nich zadanie okazało się trudne: w części poświęconej historii, w p 6.2.1
> książki Sortowanie i wyszukiwanie Kunth podkreśla, że wprawdzie pierwszy
> algorytm wyszukiwania binarnego ukazał się drukiem w 1946r, ale na pierwszą
> jego publikację nie zawierającą błędów trzeba było czekać do 1962r"
>
> Pozdrawiam
Ciekawy głos. IMHO nazbyt często jest to ignorowane. Ludzie są
doskonałym automatem niedeterministycznym dysponującym pamięcią
asocjacyjną, wnioskowaniem logicznym i myśleniem abstrakcyjnym -- ale za
cenę, że popełniają błędy. To był m.in. motywator do tego, by rozwijać
w "pozytywistycznym okresie" AI programy do wnioskowania maszynowego,
dowodzenia teoremów, a dziś stoi za statyczną weryfikacją programów lub,
dajmy na to, projektowaniem deklaratywnym (aczkolwiek nie podam źródeł).
Skrajnie nieliczna grupa ludzi (wręcz sawantów) potrafi przeprowadzać
analizę warunków brzegowych i innych przez większość czasu zaangażowania
umysłowego.
Zresztą stanowi to jedną z podwalin OOP -- analityczne podejście do
rozwiązywania problemów. Jak wiadomo, obdarzone tendencją do redundancji.
Programiści powinni o tym nie zapominać.
Następne wpisy z tego wątku
- 12.01.12 23:16 A.L.
- 13.01.12 07:59 Paweł Kierski
- 13.01.12 09:47 M.M.
- 13.01.12 10:26 Paweł Kierski
- 13.01.12 12:29 Tomek Banach
- 13.01.12 13:10 M.M.
- 13.01.12 13:40 A.L.
- 13.01.12 14:54 M.M.
- 15.01.12 07:16 Borneq
- 15.01.12 09:48 Marek Borowski
- 15.01.12 15:42 bartekltg
- 16.01.12 01:53 n...@m...invalid
- 16.01.12 02:15 A.L.
- 16.01.12 08:08 M.M.
- 16.01.12 08:38 Stachu 'Dozzie' K.
Najnowsze wątki z tej grupy
- 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
- Ada 2022 Language Reference Manual to be Published by Springer
- Press Release - AEiC 2023, Ada-Europe Reliable Softw. Technol.
- Ada-Europe - AEiC 2023 early registration deadline approaching
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2023
- Ile cykli zajmuje mnożenie liczb 64-bitowych?
Najnowsze wątki
- 2024-07-02 Realme 7 Na co zmienić?
- 2024-06-27 Prywatny parking? Pierwsze 10 minut bezplatnie
- 2024-07-02 znalazłem samochód ;)
- 2024-07-02 Pierwszeństwo łamane
- 2024-07-02 zamek
- 2024-07-02 Akumulatory VRLA
- 2024-07-03 Białystok => Inżynier DevOps Conexa First (Kontraktor) <=
- 2024-07-03 MĂźnchen => Test Development Engineer (m/w/d) <=
- 2024-07-03 Warszawa => Full Stack web developer (obszar .Net Core, Angular6+) <=
- 2024-07-03 Warszawa => Programista Full Stack (.Net Core) <=
- 2024-07-02 Kraków => Spedytor międzynarodowy <=
- 2024-07-02 Poznań => Senior React Native Developer <=
- 2024-07-02 Rzeszów => Frontend Developer (React) <=
- 2024-07-02 Warszawa => Fullastack (Java) Developer <=
- 2024-07-02 reparacje