Widelec

Zdażyło mi się w życiu napisać już parę programów. Zwykle ważniejsze niż stukanie w klawisze jest tutaj stukanie się w głowę, by wymyśleć sposób, w jaki konkretny fragment otaczającej nas rzeczywistości przedstawić w jakimś miłym lub mniej miłym języku programowania. Zazwyczaj trzeba było ten fragment rzeczywistości rozłożyć na kilka elementarnych czynności, które po sobie występowały.

Programowanie strukturalne pozwoliło lepiej nieco te elementarne czynności przedstawić – najpierw można było napisać małe części – funkcje i procedury (np. „okno”, „drzwi”, „dach”), a potem z nich stworzyć większą całość – „dom”, np. każąc programowi stworzyć 4 okna i jeden dach. Nie trzeba było za każdym razem od nowa uczyć głupiego komputera, jak to okno ma wyglądać – wystarczyło zrobić to raz.

Kolejny krok – programowanie obiektowe – pozwala na jeszcze lepsze odwzorowanie rzeczywistości. Twórca takiego paradygmatu w programowaniu musiał być chyba zafascynowany platońską filozofią – ideami i przedmiotami je odzwierciedlającymi. Bo i w programowaniu obiektowym mamy idee (nazywane klasami) i przedmioty, które są namacalnymi tych idei przedstawieniami (nazywają się te przedmioty obiektami). Można więc stworzyć ideę – klasę okna, a później zrobić jedno okno drewniane, inne szklane, a wszystkie te obiekty są tego właśnie typu – okna.

Jednak prawdziwy przewrót kopernikański (w końcu w Toruniu) nastąpił, gdy poznałem funkcję fork. Funkcja ta nie jest bezpośrednio związana z paradygmatami o których wyżej, ale ma wielkie znaczenie, którego chyba sobie jeszcze do końca nie uświadomiłem. Otóż funkcja fork (z ang. widelec) sprawia, że program się rozwidla. Od momentu jej wywołania działają jednocześnie dwa programy, wykonujące te same instrukcje (jeden nazwany potomkiem, drugi rodzicem). No, może nie całkiem równocześnie, ale człowiek (ani program) i tak nie zauważy różnicy.

Każdy z tych dwóch programów jest w stanie sprawdzić, którą instancją jest, a nawet skomunikować się z tym drugim. Oczywiście byłem świadom istnienia takiej możliwości, a nawet tego, że jest dość często używana, ale co innego słyszeć, a co innego samemu użyć i zobaczyć, że to działa i jest dość proste. Już nie ciąg operacji następujących po sobie, ale dwa ciągi zdarzeń. Albo cztery. Albo 128. Wszytko naraz. W jednej chwili. Szok.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *