no skoro Asimov został przywołany, to można też odkurzyć Lema.
"Opowieści o pilocie Pirxie"
w tych opowiadaniach Lem pokazuje różne sytuacje, w których człowiek z robotem się nie dogaduje. bo logika inna, ew. - to co
Gal podpowiada - bo programista zawalił.
o moim podwórku napiszę:
otóż od dawna jest tak, że mało kto pisze swoje programy do liczenia. powód jest bardzo prozaiczny: jeżeli chcesz "zrobić sobie" program, który będzie na tyle zaawansowany, żeby rozpykać jakiś nowy problem, a nie to, co robią wszyscy wszędzie, to będziesz musiał poświęcić cały dany ci czas na pisanie tego programu, a nie na jego używanie (czyli rozkminianie tego nowego problemu).
efekt jest taki, że wszyscy używają kilku na krzyż narzędzi, które w większości zaczęły swój byt jakieś 30-40 lat temu. i nagle okazuje się, że oprócz wiedzy teoretycznej, którą pokazuje się na slajdach szkoleniowych, jest jeszcze cała "wiedza tajemna" pod tytułem "tak powinno być w teorii, ale to narzędzie robi to inaczej". ponieważ mam przywilej bycia uznanym za "doświadczonego użytkownika" co najmniej dwóch takich narzędzi (że dla jednej z tych firm pracowałem ponad dekadę, to szczegół...), mam dostęp do ludzi, którzy mówią mi szczerze, co i jak. dwa typowe stwierdzenia (pochodzące od pracowników firm robiących te narzędzia), które są istotne dla tej wymiany zdań:
- to działanie wynika z operacji na bazach danych, które są podstawą całego programu i zostało to napisane 30 lat temu. tak się wtedy programowało. teraz zrobilibyśmy to inaczej, ale nie przepiszemy całego kodu, bo zajęłoby to z 10 lat.
- nie wiem. tę konkretną procedurę napisał pan X, ale on odszedł z firmy 5 lat temu (specjalnie ominąłem 4 i 9
). od tamtej pory nikt się tym nie zajmuje i właściwie, to nie wiemy jak to działa.
i na koniec coś dla lekarzy, czyli statystyka
Steve McConnell twierdzi (i jest to powszechnie akceptowane), że na każde 1000 linijek programu (tzw. kloc
) 15 do 50 zawiera "bug".
a ile linijek kodu tworzy Windows? a ile z tych linijek zostało napisanych (i do dzisiaj nie zmienionych) w latach 80 poprzedniego wieku? i dlatego żyją własnym życiem. Windows.
idąc dalej: dlaczego Linuxy działają lepiej? bo od zarania historii Unix (dowolny) jest tak zrobiony, że nie jest jednym workiem, z jednym kodem, tylko kupą w miarę krótkich programów, wykonywanych "on demand" (to, że nie jest używany przez przysłowiowe sekretarki też ma znaczenie).
tak więc, skracając, roboty nie tyle się zbuntują, co raczej wykonają co do joty jakieś beznadziejnie głupie polecenie ich twórców.
jak na przykład "zbuntuj się".