Dodaj do ulubionych

Informatycy! Fajny wywiad z Bjarne Stroustrupem :)

26.08.03, 13:09
Dla niezorientowanych: to pan ktory stworzyl jezyk C++. Tu mowi o jego
jakosci i przyczynach powstania. Jesli to nie kaczka dziennikarska to
trzymajcie sie krzesla informatycy! :)


Zrodlo:
http://cs.sungshin.ac.kr/~dkim/C++-e.html


A tu wolne tlumaczenie (nie moje):
"1 stycznia 1998 roku Bjarne Stroustrup udzielił wywiadu dla jednego z
czasopism komputerowych - "IEEE Computer". Wydawcy myśleli, że będzie to
nawiązanie do minionych siedmiu lat programowania obiektowego za pomocą
języka, który sam stworzył. W trakcie wywiadu, prowadzący go redaktor został
dość niemile zaskoczony przez swojego rozmówcę, co było powodem późniejszej
chęci zatajenia treści wywiadu przez wydawców, tłumaczonej "dbaniem o dobro
przemysłu komputerowego". Jednak jak to zwykle bywa w takich przypadkach,
również i tutaj wystąpił tzw. przeciek informacji. Oto kompletny odpis tego
co zostało powiedziane, bez jakichkolwiek obróbek merytorycznych. Dlatego też
nie wygląda to tak, jak w przypadku innych, wcześniej uzgadnianych wywiadów.
Jednak myślę, że spotka się to z zainteresowaniem...

Redaktor: Minęło już parę lat odkąd zrewolucjonizowałeś świat programowania.
Co o tym myślisz, patrząc wstecz na swoje dokonania?

Stroustrup: Właściwie myślałem o tym tuż przed twoim przyjściem.
Pamiętasz?... Wszyscy pisali w C, a problemem było to, że byli w tym
cholernie dobrzy. Również uniwersytety były dobre w nauczaniu tego języka. W
bardzo szybkim tempie wypuszczali na świat wykwalifikowanych (podkreślam
słowo: wykwalifikowanych) absolwentów. To właśnie spowodowało problem.

Redaktor: Problem?

Stroustrup: Tak, problem. Pamiętasz jak dawniej wszyscy pisali w Cobol-u?

Redaktor: Oczywiście, ja też w tym pisałem...

Stroustrup: Więc na początku ci ludzie byli jak półbogowie. Mieli wysokie
pensje, i traktowani byli niemalże jak członkowie rodziny królewskiej.

Redaktor: To były czasy..., prawda?

Stroustrup: Właśnie! I co się stało? Firma IBM miała tego dosyć, więc
zainwestowała miliony dolarów na wytrenowanie tylu programistów, aż było ich
dosłownie na pęczki.

Redaktor: Z tego właśnie powodu ja też odszedłem. Pensje spadły w przeciągu
roku na tyle, że bardziej opłacało się pisanie artykułów do magazynów.

Stroustrup: Dokładnie. To samo stało się z programistami piszącymi w C.

Redaktor: No tak. Ale do czego zmierzasz?

Stroustrup: Otóż pewnego dnia, kiedy siedziałem w swoim biurze, myślałem nad
czymś co wprowadziłoby trochę równowagi do ówczesnej sytuacji. Zastanawiałem
się co by było, gdyby istniał język na tyle skomplikowany i trudny do
nauczenia, że nikt nie byłby w stanie zalewać rynku programistami. Miałem
parę pomysłów z X10, no wiesz, X windows. To dopiero było okropne środowisko
graficzne... chodziło tylko na maszynach typu Sun 3/60. Ale miało wszystkie
składniki jakich potrzebowałem: naprawdę śmiesznie skomplikowaną składnię,
mętne i niejasne funkcje oraz pseudo obiektową strukturę. Nawet w
dzisiejszych czasach, nikt kto chce pozostać przy zdrowych zmysłach, nie
pisze w czystym kodzie X-windows.

Redaktor: Chyba żartujesz...?

Stroustrup: Ani trochę. Był też kolejny problem. Unix został napisany w C, a
to znaczyło że każdy programista piszący w tym języku, mógł bardzo łatwo
przejść na pisanie systemów operacyjnych. Pamiętasz chyba ile wtedy
programista takich głównych systemów zarabiał ?

Redaktor: Jasne że tak, sam też się tym zajmowałem....

Stroustrup: Zatem ten nowy język musiał oddzielić się od Unix-a, ukrywając
wszystkie wywołania systemowe. To umożliwiłoby zarobienie paru groszy również
tym, którzy znali tylko DOS-a.

Redaktor: Nie wierzę, że to powiedziałeś...

Stroustrup: No cóż, minęło już trochę czasu i moim zdaniem większość ludzi
odkryła, że całe C++ to tylko strata czasu, choć muszę powiedzieć, że zajęło
im to o wiele dłużej niż przypuszczałem.

Redaktor: Zatem, jak udało ci się osiągnąć taki sukces ?

Stroustrup: To miał być tylko żart. Nigdy nie sądziłem, że ludzie mogliby
brać moją książkę na poważnie. Każdy, nawet półgłówek dostrzeże, że
programowanie zorientowane obiektowo jest nielogiczne, niewydajne i działa
wbrew intuicji.

Redaktor: Co?

Stroustrup: A co do wielokrotnego wykorzystywania kodu... - kiedy słyszałeś,
żeby jakaś firma działała w ten sposób ?

Redaktor: No..., właściwie to nigdy, ale...

Stroustrup: No właśnie! To znaczy, kilka próbowało w tamtych czasach. Była
taka firma z Oregonu - Mentor Graphics, która w '90 albo '91-szym roku
próbowała przepisać wszystko na C++ i niestety nie wyszło im to na dobre.
Było mi ich naprawdę żal ale uważam, że ludzie powinni uczyć się na własnych
błędach.

Redaktor: Dokładnie. A im się to nie udało ?

Stroustrup: Niestety ani trochę. Problem w tym, że większość firm ma
tendencję do tuszowania swoich poważniejszych zaniedbań, a wytłumaczenie się
akcjonariuszom ze straty 30 milionów dolarów, byłoby dość trudne.
Sprawiedliwości stało się zadość, jednak w końcu udało im się jakoś wyjść na
prostą.

Redaktor: Naprawdę? No więc sam widzisz, że programowanie obiektowe skutkuje.

Stroustrup: Prawie. Pliki .EXE były tak duże, że ich załadowanie na maszynie
HP ze 128MB RAM-u, trwało pięć minut. Programy uruchamiały się w ślimaczym
tempie. Właściwie myślałem, że będzie to główną wadą nowego języka, jednak
nikogo to nie obchodziło. Firmy takie jak Sun czy HP były zbyt zadowolone ze
sprzedaży swoich mocnych komputerów z ogromnymi zasobami, a wszystko po to
tylko, żeby uruchamiać na nich proste, banalne programy. Wyobraź sobie, że
kiedy pojawił się pierwszy kompilator C++ na komputerze AT&T, skompilowałem
pod nim zwykłe "Hello World" i wprost nie mogłem uwierzyć rozmiarowi tego
pliku - 2.1 MB.

Redaktor: Co? Zgoda, ale kompilatory bardzo się od tamtego czasu zmieniły.

Stroustrup: Czyżby? Weźmy na przykład ostatnią wersję g++ - nie uzyskasz
większej redukcji objętości jak zaledwie o niecałe 0.5 MB. Mógłbym przytoczyć
ci jeszcze kilka innych przykładów z całego świata. Swego czasu firma British
Telecom miała z tego powodu nie lada katastrofę, ale na szczęście udało im
się w porę usunąć problemy i zacząć od nowa. Australian Telecom nie miała
tyle szczęścia, co ich brytyjski odpowiednik. Teraz dochodzą mnie słuchy, że
Siemens buduje kolejnego "dinozaura" martwiąc się coraz bardziej o to, aby
sprzęt równoważył wymagania programów. Czy zatem wielopoziomowe dziedziczenie
nie jest po prostu pomyłką ?

Redaktor: Przecież C++ jest bezpiecznym językiem.

Stroustrup: Naprawdę w to wierzysz ? Czy kiedykolwiek pracowałeś nad
projektem w C++? Oto co się dzieje: po pierwsze, w C++ istnieje wystarczająco
dużo pułapek, dzięki którym tylko najbanalniejsze projekty działają za
pierwszym razem. Weź np. przeładowanie jakiegoś operatora. Pod koniec
projektu, prawie każdy moduł je posiada, bo w mniemaniu programistów powinno
ono wystąpić, przecież o tym mówiono im na kursac szkoleniowych. Zatem ten
sam operator w każdym kolejnym module oznacza coś zupełnie innego. A spróbuj
nad tym zapanować, kiedy będziesz miał około setki modułów... A co do
ukrywania danych: O Boże, czasami nie sposób się nie roześmiać, kiedy słyszę
o firmach starających się sprawić aby ich moduły ze sobą współpracowały.
Myślę, że słowo "synergetyczny" zostało specjalnie wymyślone, aby można było
szefowi projektu "przekręcać nóż w żebrach".

Redaktor: Muszę przyznać, że zaczynam być tym wszystkim przerażony.Mówisz, że
stworzyłeś ten język po to, aby wzrosły pensje programistów? To okropne!

Stroustrup: Nie zupełnie. Przecież każdy ma wybór. Nie przypuszczałem, że aż
tak bardzo wymknie się to spod kontroli, jednak stało się. C++ już stopniowo
wymiera, ale programiści dalej są dobrze opłacani - szczególnie ci, którzy
zajmują się tworzeniem projektów za pomocą tego steku bzdur. Zdajesz sobie
sprawę, że pracowanie nad duż
Obserwuj wątek
    • wedzonka cd.. 26.08.03, 13:12
      cd..


      Redaktor: Muszę przyznać, że zaczynam być tym wszystkim przerażony.Mówisz, że
      stworzyłeś ten język po to, aby wzrosły pensje programistów? To okropne!

      Stroustrup: Nie zupełnie. Przecież każdy ma wybór. Nie przypuszczałem, że aż
      tak bardzo wymknie się to spod kontroli, jednak stało się. C++ już stopniowo
      wymiera, ale programiści dalej są dobrze opłacani - szczególnie ci, którzy
      zajmują się tworzeniem projektów za pomocą tego steku bzdur. Zdajesz sobie
      sprawę, że pracowanie nad dużym modułem programu w C++ nie jest możliwe, jeśli
      sam go nie napisałeś ?

      Redaktor: Jak to ?

      Stroustrup: Nie kojarzysz o czym mówię, prawda? A pamiętasz dyrektywę: typedef?

      Redaktor: Oczywiście że tak.

      Stroustrup: Przypomnij sobie ile czasu zabiera śledzenie "po omacku" plików
      nagłówkowych tylko po to, aby dowiedzieć się że np. 'RoofRaised' to liczba typu
      double. Wyobraź sobie ile czasu zabiera znalezienie wszystkich konkretnych
      dyrektyw typedef we wszystkich klasach jakiegoś większego projektu.

      Redaktor: Po czym zatem poznałeś swój sukces ?

      Stroustrup: Pamiętasz ile zajmowało stworzenie średniej objętości projektu w
      C ? Około 6 miesięcy. To trochę za krótko, aby facet mający żonę i dzieci mógł
      zarobić na utrzymanie i w miarę godziwy standard życia. A weź teraz napisz ten
      sam projekt używając C++...i co otrzymasz? Powiem ci - jeden do dwóch lat. Czyż
      to nie wspaniałe zapewnienie sobie pracy? Kolejna rzecz. Uniwersytety nie
      nauczały C od tak dawna, że teraz brakuje porządnych programistów piszących w
      tym języku. Szczególnie tych, którzy wiedzą coś na temat programowania pod
      systemami z rodziny Unix-a. Ilu teraz wiedziałoby co zrobić z 'malloc', skoro
      przez tyle lat używali 'new' - i nigdy nie zaprzątali sobie głowy sprawdzaniem
      wartości zwracanego kodu. W rzeczywistości, większość z programistów C++ pomija
      te zwracane wartości. Co się stało ze starym, dobrym '-1' ? Przynajmniej
      wiedziałeś, że masz błąd, bez grzęźnięcia w cały ten bałagan z 'try', 'throw'
      i 'catch'.

      Redaktor: Ale przecież dziedziczenie oszczędza mnóstwo czasu i pracy...

      Stroustrup: Tak sądzisz? Czy kiedykolwiek zauważyłeś różnicę między planowaniem
      projektu w C, a planowaniem projektu w C++? To drugie jest trzy razy dłuższe.
      Musisz dokładnie upewnić się, że wszystko co powinno być dziedziczone, jest
      dziedziczone, a wszystko co nie powinno - nie jest. A potem i tak występują w
      tym błędy. Kto przedtem słyszał o jakiejś konsumpcji pamięci przez program
      napisany w zwykłym C? A teraz znajdywanie ich, to chleb powszedni. Większość
      firm pod tym względem poddaje się, wypuszczają na rynek swój produkt, wiedząc
      że cieknie z niego jak z dziurawego worka, no ale wtedy unikają kosztów
      związanych z łataniem tych dziur.

      Redaktor: Są do tego odpowiednie narzędzia...

      Stroustrup: ...z których większość została napisana w C++.

      Redaktor: Czy zdajesz sobie sprawę z tego, że jeśli opublikujemy ten wywiad, to
      prawdopodobnie zostaniesz "zlinczowany" ?

      Stroustrup: Wątpię. Jak już powiedziałem, C++ minął już swój szczyt rozkwitu i
      popularności i żadna firma przy zdrowych zmysłach nie zacznie tworzenia
      projektu w C++ bez wstępnych prób. One powinny ich przekonać, że zmierzają
      prosto ku katastrofie. A jeśli tego nie zauważą, to niech mają na co zasłużyli.
      Wiesz, próbowałem kiedyś przekonać Dennis'a Ritchie, aby przepisał Unix-a w
      C++.

      Redaktor: O mój Boże..., i co powiedział?

      Stroustrup: Na szczęście ma poczucie humoru "



      Wprawdzie tu nie forum informy, ale tam tego nie znalazlem, wiec moze forum
      Wrocka bedzie pierwsze? :)

      Pozdrawiam!
      • Gość: zope stare i zbyt grubymi nićmi szyte /nt IP: *.wroclaw.dialog.net.pl 26.08.03, 13:43

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka