Hello world!


To chyba najbardziej oklepany wpis blogowy na świeżo zainstalowanym WordPressie, powitalny i zazwyczaj, niestety też pożegnalny. Aaale, to też jest dobre miejsce, żeby się zastanowić, dlaczego właściwie „Hello world!”…

Zrzut programu wypisującego na ekran napis „hello, world”.

Moje wspomnienie

Ten blog jest w zamyśle o programowaniu i jego otoczce. Dlatego też pragnę wytłumaczyć mniej zaawansowanym albo przypadkowym czytelnikom skąd mamy do czynienia z frazą „witania świata”. Prawdopodobnie jeśli nigdy nie napisaliście żadnego programu, „hello world” mogliście zobaczyć przez przypadek, gdy programista zapomniał usunąć ten tekst ze swojego dzieła. Jeśli trzeba było kliknąć OK, to kliknęliście i chwilę później nie pamiętaliście, że w ogóle coś takiego było. Wynika z tego, że „Witaj świecie!” (polska forma też jest czasem stosowana) ma związek bezpośrednio z informatyką.

Pierwszy raz zobaczyłem prosty program wypisujący tekst przy okazji pisania swojej pierwszej aplikacji w języku Pascal. Gdy zaczynałem moją przygodę z komputerami, ukazywało się czasopismo pt. Komputer Świat Ekspert, którego mam wciąż zdecydowaną większość numerów. Nieodzowną częścią „Eksperta” były kursy programowania i w numerze 5-6/2006 roku znajdował się pierwszy odcinek kursu języka Pascal. Była to jednak nieco bardziej rozbudowana powitajka. Dalej były różne tutoriale, takie jak C++ bez cholesterolu (link do Archive.org, bo oryginał niestety nie jest już dostępny) oraz Symfonia C++ Jerzego Grębosza. Nie pamiętam jednak, gdzie po raz pierwszy zobaczyłem omawiane dziś dwa słowa. W tym momencie mógłbym skończyć już wpis, jednak nie czułbym się sobą, gdybym nie spróbował chociaż zgłębić nieco temat. Czas więc cofnąć się w czasie…

Zdjęcie fragmentu artykułu z czasopisma Komputer Świat Ekspert.
Pierwszy odcinek kursu Pascala. Jak widać, jest tam mój pierwszy przepisany program.

Szukając genezy

Tutaj sprawa się nieco komplikuje. The Jargon File w notce o języku BCPL informuje nas, że program wypisujący na ekranie „hello, world” został napisany w tym właśnie języku, przypuszczalnie w okolicy 1967 roku. Niestety nie znajdujemy tam odniesienia do źródła tej rewelacji, więc musimy potraktować tą wieść jako niepewną i szukać dalej.

Przeskoczmy na osi czasu do roku 1972 roku, laboratorium firmy Bell. Denis Richie kończy pracę nad swoim językiem do programowania systemów operacyjnych i innych niskopoziomowych zadań – mowa oczywiście o języku C. W tym samym roku ukazuje się wewnętrzny dokument A Tutorial Introduction to the Language B autorstwa Briana Kerninghana. Czyli de facto instruktaż języka B – poprzednika wcześniej wywołanego C.  W punkcie 7. zaprezentowany zostaje taki oto program.

main(){
 extrn a,b,c;
 putchar(a); putchar(b); putchar(c); putchar('!*n');
 }

a 'hell';
b 'o, w';
c 'orld';

Widzimy zatem pierwszego zapisanego „hello, worlda”. Chciałem nie wchodzić w szczegóły, ale nie mogę przejść obojętnie wobec tego bardzo dziwnego zapisu, 3 zmienne, każda po 4 znaki. Przeczytawszy pobieżnie tutorial sprawa się wyjaśniła. Język B nie wprowadza typowania zmiennych. Wszystko tam jest typu word, który oznacza 32-bitową liczbę całkowitą. Mając na względzie, że w ramach standardu ASCII komputery przechowują znaki jako ośmiobitowe liczby, widzimy, iż jedna zmienna może pomieścić dokładnie 4 znaki. Zagadka rozwiązana.

Możemy więc założyć, że pierwszym znanym autorem „przywitania świata” przez program komputerowy jest pan Brian Kerninghan. Ten sam człowiek dwa lata później napisał tutorial do języka C, gdzie również umieścił program wypisujący na ekran omawianą dzisiaj frazę. Wciąż było to tylko wewnętrzne memorandum, a pierwsza publicznie dostępna książką z programem „Hello World” to The C Programming Language autorstwa Briana Kernighana oraz Denisa Ritchego. Pojawia się on w pierwszym rozdziale jako „pierwszy program do napisania w każdym języku programowania”.

Wpływ

Język programowania C wywarł ogromny wpływ na dzisiejszą informatykę i elektronikę. Jądro Linux, czy Windowsa jest w znacznej mierze napisane w tym języku, na podstawach składni C bazuje wiele innych języków, takich jak np. C++, Java, PHP. Oczywistym staje się, że programiści zaczęli stosować „Hello world” przy okazji pisania własnych programów, bibliotek, czy frameworków. Ta prosta fraza pozwala nam sprawdzić, czy wszystko skonfigurowaliśmy poprawnie i przejść do właściwej pracy. A przy okazji, czy to nie jest miłe, że nasz nowy program po prostu wita się ze swoim środowiskiem?

Rzecz jasna, aplikacja nie musi po prostu wypisywać krótkiego tekstu na konsolę. Równie dobrze może to być wygenerowany obrazek, a nawet animacja! Możliwości jest wiele i pewnie nie raz jeszcze się zaskoczę widząc niecodziennego „hello worlda”.

Mam nadzieję, że mój wpis powitalny chociaż trochę Was zaskoczył i zaciekawił, tak jak mnie zaciekawiło zgłębianie tematu mojego pierwszego programu. Jeśli chcielibyście zobaczyć, jak wyglądają „hello worldy” w przeróżnych językach programowania, koniecznie odwiedźcie The Hello World Collection. A może to jest też dobry moment, żeby zacząć swoją przygodę z programowaniem? Przecież już wiemy, jak napisać nasz pierwszy program.


Kategoria: Inne


Napisz odpowiedź lub dodaj komentarz


Twój adres e-mail nie będzie opublikowany. Pola oznaczone gwiazdką * są wymagane

Możesz używać tych znaczników HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>