[ Pobierz całość w formacie PDF ]
.Pokaż mi je, a potem przejdę dalej.Uważam, że to istotna zmiana.Seibel: Zastanawiam się, czy nie można stosować programowania piśmiennego we współczesnymstylu.Narzędzia Knutha zapewniają indeks i fantastyczne odwołania.Może współczesne podejściedo programowania piśmiennego będzie polegać na innym uporządkowaniu książki zarównocałego programu, jak i fragmentów, które można poznawać pojedynczo?Norvig: Nie jestem pewien.Uważam, że Knuth rozwiązywał problem, który w dużym stopniu jużnie istnieje.Po części wynikało to z tego, że chciał ułożyć elementy w porządku liniowym, a niesieciowym lub opartym na wyszukiwaniu.Częściowo wynikało to z ograniczeń.Knuth początko-wo używał chyba Pascala.Język ten jest dość ścisły ze względu na to, co trzeba zadeklarować napoczątku.Nie zawsze odbywa się to w pożądanej kolejności.Współczesne języki zapewniają więk-szą swobodę w tym zakresie, dlatego uważam, że problem jest mniejszy.Seibel: Wspomniałeś, że czytałeś w Scientific American kod programu Stracheya do gry w war-caby.W eseju Teach Yourself Programming in Ten Years piszesz o znaczeniu czytania kodu.Jaki kod czytałeś w czasie nauki programowania?Norvig: Czytałem dużo kodu firmy Symbolisc, ponieważ to właśnie było dostępne, kiedy studio-wałem w Berkeley.Peter Norvig 217Seibel: Czy czytałeś ten kod dlatego, że był dostępny i interesujący? A może próbowałeś zrozumiećpewne zachowania programów, które obserwowałeś?Norvig: Obie przyczyny były istotne.Czasem po prostu próbowałem dowiedzieć się, jak coś dzia-ła, a czasem potrzebowałem informacji do rozwiązania problemu.Seibel: Jak podchodzisz do czytania kodu w ramach ogólnego rozwoju?Norvig: Zwykle jest to oparte na zainteresowaniach. Popatrzcie, ten system plików umożliwiaodczyt plików przez sieć za pomocą protokołu używanego lokalnie.Ciekawe, jak to działa?.Po-tem mówisz: Może chodzi o funkcję open?.Zaglądasz do tej funkcji i stwierdzasz: Aha, funkcjawywołuje ten inny kod.Patrzysz na ten kod i mówisz: Już wiem, jak to działa.Seibel: Czy czytałeś któryś z piśmiennych programów Knutha w formie książkowej?Norvig: Oczywiście, sięgnąłem po te książki i przekartkowałem.Można powiedzieć, że zajrzałemdo nich, ale ich nie studiowałem.Seibel: A co z serią The Art of Computer Programming? Niektóre osoby, z którymi rozmawiałemna jej temat, przeczytały ją od deski do deski.Część osób ma ją na półce i korzysta z niej jak z pod-ręcznika.Inni po prostu mają ją na półce.Norvig: Przez pewien czas używałem jej jako podstawki pod monitor, ponieważ była największąserią książek, jaką posiadałem, i miała odpowiednią wysokość.Było to wygodne, ponieważ zawszemiałem te książki pod ręką.Podejrzewam, że byłem bardziej skłonny korzystać z nich jak z pod-ręcznika, ponieważ zawsze miałem je przed sobą.Seibel: Jednak za każdym razem, kiedy chciałeś do nich zajrzeć, musiałeś podnosić monitor?Norvig: Nie, miałem wydanie w pudełku.Musiałem mocno pociągnąć, ale mogłem wyjąć jednąksiążkę z pudełka.Teraz rzadziej korzystam z książek jak z podręczników zwykle używam wy-szukiwarki.Seibel: Tylko dlatego, że jest to wygodniejsze?Norvig: Jest to wygodne.Myślę, że także dlatego, iż prawdopodobnie jestem bardziej nastawionyna realizację celów.Knuth jest dobry, jeśli chcesz wiedzieć wszystko na dany temat.Jednak ja zwyklechcę wiedzieć, czy A jest lepsze od B, lub określić złożoność asymptotyczną danego rozwiązania.Kiedy już to ustalę, nie potrzebuję wszystkich szczegółów.Seibel: Jesteś programistą.Uważasz, że jesteś naukowcem, inżynierem, artystą czy rzemieślnikiem?Norvig: No cóż, po zapoznaniu się z tytułami różnych książek i innych tekstów zawsze uważałem,że prawidłowa odpowiedz to rzemieślnik.Myślałem, że nazwa artysta jest nieco pretensjonal-na, ponieważ sztuka ma być piękna lub wywierać emocjonalny wpływ, a ja nie próbuję uzyskaćniczego podobnego.Oczywiście, chcę, aby programy były pod niektórymi względami ładne.Cza-sem mam wrażenie, że poświęcam na to zbyt wiele czasu.Znalazłem się w sytuacji, kiedy mogłemsobie pozwolić na stwierdzenie: Wspaniale, mam czas, aby wrócić do kodu i trochę go uatrakcyj-nić.Kiedy piszesz kod przeznaczony do publikacji, poświęcasz na jego upiększanie więcej czasu,niż gdybyś robił to ze względu na rozwój zawodowy.Jednak nie myślę o tym jak o sztuce.Uważam, że rzemiosło to właściwe słowo.Możesz zrobić krze-sło, które dobrze wygląda, ale przede wszystkim ma być funkcjonalne to tylko krzesło.Seibel: W jaki sposób stwierdzasz, że ktoś jest dobrym programistą, zwłaszcza przy naborze? Za-trudniliście wielu programistów i z pewnością staracie się, aby byli naprawdę dobrzy.Jak to zrobić?Czytaj dalej
[ Pobierz całość w formacie PDF ]