Bjarne Stroustrup

W latach 80. i 90., kiedy był badaczem w AT&T Bell Labs, urodzony w Danii informatyk Bjarne Stroustrup zaprojektował C++, prawdopodobnie najbardziej wpływowy język programowania ostatnich 25 lat. Mimo wszystko C++ jest kontrowersyjny. Język jest powszechnie nielubiany przez miliony programistów, którzy go używają, głównie dlatego, że jest bardzo trudny do nauczenia i używania, a także dlatego, że projekt Stroustrupa pozwala im popełniać poważne błędy programistyczne w celu maksymalizacji wolności wypowiedzi. Dziś Stroustrup jest profesorem informatyki na Texas A&M University.





Bjarne Stroustrup, wynalazca języka programowania C++

Przegląd technologii : Dlaczego większość oprogramowania jest tak zła?

Wszystko, co możesz zrobić, mogę zrobić Meta

Ta historia była częścią naszego wydania ze stycznia 2007 r.



  • Zobacz resztę numeru
  • Subskrybuj

Bjarne Stroustrup: Niektóre programy są w rzeczywistości całkiem dobre, pod każdym względem. Pomyśl o marsjańskich łazikach, Google i projekcie ludzkiego genomu. Ale już, to jest wysokiej jakości oprogramowanie! Nasza cywilizacja technologiczna zależy od oprogramowania, więc gdyby oprogramowanie było tak złe, jak jego najgorsza reputacja, większość z nas już by nie żyła.

Z drugiej strony, przeciętny fragment kodu oprogramowania może sprawić, że będę płakać. Programiści wyraźnie nie zastanawiali się nad poprawnością, algorytmami, strukturami danych czy pielęgnowalnością. Większość ludzi nie wie, jakie to jest złe, ponieważ nie czytają kodu: po prostu widzą, że system Windows się zawiesza lub ich telefon komórkowy przerywa połączenie.

DZIECI : Jak możemy naprawić bałagan, w którym się znajdujemy?



BS: Nie możemy zatrzymać świata na dekadę, przeprogramowując wszystko, od naszych ekspresów do kawy po nasze systemy finansowe. Z drugiej strony plątanie się jest drogie, niebezpieczne i przygnębiające. Potrzebne są znaczące ulepszenia, które mogą nastąpić tylko stopniowo. Ale muszą iść na szerokim froncie; żadna pojedyncza zmiana nie wystarczy.

Patrząc na moją wąską dziedzinę projektowania języka programowania, uważam, że dobry język może być głównym atutem, ale tylko wtedy, gdy jest odpowiednio i dobrze używany. Język nie rozwiązuje problemów; pomaga jedynie w wyrażaniu rozwiązań.

DZIECI : Co sprawia, że ​​język programowania jest dobry?



BS: Wszystko, co pomaga ludziom wyrażać swoje pomysły, czyni język lepszym. Język powinien być dobry w codziennych zadaniach w rękach dobrych rzemieślników. Mniejsze znaczenie ma to, czy język sam w sobie jest piękny. Istnieje więcej użytecznych systemów opracowanych w językach uważanych za okropne niż w językach chwalonych za piękne – o wiele więcej.

DZIECI : Czy elegancja nie jest ważna?

BS: Elegancja to podstawa, ale jak mierzyć elegancję? Najmniejsza liczba znaków do wyrażenia rozwiązania problemu? Myślę, że powinniśmy szukać elegancji w budowanych aplikacjach, a nie w samych językach. Nazywanie skomplikowanego zestawu narzędzi stolarza (wiele dość niebezpiecznych) byłoby przesadą elegancki . Z drugiej strony mój stół i krzesła w jadalni są eleganckie – naprawdę piękne. To powiedziawszy, byłoby oczywiście najlepiej, gdyby sam język był pięknym dziełem sztuki.



DZIECI : Czy C++ jest zbyt trudny dla większości programistów?

BS: Nie powinno tak być. Aby dobrze używać C++, musisz zrozumieć technikę projektowania i programowania. W pewnym sensie moi krytycy mają rację: nie wszyscy powinni pisać w C++, ale nigdy nie twierdziłem, że powinni. C++ został zaprojektowany, aby umożliwić Ci wyrażanie pomysłów, ale jeśli nie masz pomysłów lub nie masz pojęcia, jak je wyrazić, C++ nie oferuje wiele pomocy.

DZIECI : Jak wytłumaczyć fakt, że C++ jest szeroko krytykowany i znieważany przez wielu programistów, ale jednocześnie jest bardzo szeroko stosowany?

BS: Błyskotliwa odpowiedź brzmiałaby: Istnieją tylko dwa rodzaje języków: ten, na który wszyscy narzekają, i ten, którego nikt nie używa. Głównym powodem sukcesu C++ jest po prostu to, że spełnia swoje ograniczone cele projektowe: może bezpośrednio i skutecznie wyrażać ogromną gamę pomysłów.

DZIECI : W twojej książce Projekt i ewolucja C++ twierdzisz, że Kierkegaard miał wpływ na twoją koncepcję języka. Czy to żart?

BS: Może trochę pretensjonalnie, ale to nie żart. Wiele myśli o tworzeniu oprogramowania skupia się na grupie. Praktyki korporacyjne mogą być bezpośrednio wrogie osobom o wyjątkowych umiejętnościach i inicjatywie. Takie zarządzanie wyjątkowymi ludźmi uważam za okrutne i marnotrawne. Kierkegaard był zdecydowanym zwolennikiem indywidualizmu przeciwko tłumowi. Nie mogę wskazać konkretnej cechy C++ i powiedzieć: Widzisz, jest wpływ XIX-wiecznego filozofa, ale jest on jednym z korzeni mojej niechęci do eliminowania funkcji na poziomie eksperckim. Nie przepadam jednak za jego filozofią religijną.

DZIECI : Czego najbardziej żałujesz?

BS: Bez żalu! No cóż, oczywiście marzę o tym, co mógłbym zrobić inaczej i lepiej – ale kim jestem, żeby odgadnąć, powiedzmy, Bjarne z rocznika 1984? Być może był mniej doświadczony ode mnie, ale był nie mniej bystry, prawdopodobnie mądrzejszy i lepiej niż ja rozumiał świat 1984 roku. C++ był używany do budowania wielu systemów, które poprawiają nasze życie i miał znaczący pozytywny wpływ na późniejsze języki i systemy. To jest coś, z czego można być dumnym.

ukryć