2008-02-09

Programowanie, czyli układanie programu z klocków.

Programowanie jest jak układanie budowli z klocków. Budując coś z klocków pierw myślisz jakie to coś ma być. Później szukasz odpowiednich klocków i tworzysz. Tak samo jest z programowaniem, pierw myślimy co ma robić nasz program, później jak ma to zrobić, a na końcu tworzymy to. Większość programów to duże budowle, więc różne części tych budowli tworzą różni ludzie. Nie zawsze to co zbudowało wiele osób współgra ze sobą, więc trzeba to przerabiać. Często do różnych zestawów są dołączone instrukcje, co jak poskładać, przypominają one pierwsze algorytmy które poznaje raczkujący programista.

Pewnie zaprzeczysz, ale spójrz na język maszynowy. Jest on ograniczony do paruset rozkazów, z których jest zbudowana twoja ulubiona gra komputerowa, twój ulubiony program, przeglądarka... To odpowiednie połączenie tych małych klocuszków sprawia, że te kolosy, które nie raz mają ponad gigabajt, działają jak należy. Dla porównania mój najdłuższy samodzielny kod w assemblerze, nie ważył nawet jednego megabajta(przy pisaniu systemu operacyjnego pomagało mi parę osób, za co bardzo im dziękuje). Tysiące linii kodu i megabajty danych, które są bardzo podobne, a jednocześnie tak różne...

Kolejnym przykładem jest C. C to niby język wysokiego poziomu, ale według mnie to taki mniej wygodny nieco bardziej przenośny assembler. Mimo swojej świetności, nie obsługuje wszystkich rozkazów procesora, nie, nie chodzi mi o te najnowsze, te stare też nie są dostępne bez wstawki asemblerowej. Chodzi mi tutaj o "jo" i "jc". Tutaj też mamy gotowe funkcje, zmienne, warunki, ale czego się spodziewać po klockach stworzonych z mniejszych klocków? Oczywiście z dostarczonych klocków możemy stworzyć nowe klocki, bo po co składać od nowa 10 razy wierze, jak można wykorzystać ten sam projekt wiele razy?

C++ czyli wady C i parę dodatkowych... Tutaj dostajemy możliwość posegregowania naszej twórczości. Oczywiście możemy tej możliwości nie używać, ale jest ona bardzo wygodna gdy ktoś buduje z nami. Nie musimy wiedzieć jak jego konstrukcja działa w środku, wystarczy że wiemy jak tego używać. Przecież po co Ci wiedzieć jak Ździsu zbudował rakietę, jeśli ty tylko chcesz dla niej zbudować hangar?

Python. Budujesz coś z konstrukcji. Ktoś coś zbudował w C, a Ty teraz budujesz z tego coś lepszego, ale nie wiesz tak naprawdę co jest w środku. Możesz zmieniać nazwy prawie wszystkiemu, przecież po co pisać KoparkaJasiaIKrysi, jeśli można napisać koparka? Dodatkowo do pudełka na dane same się dostosowują do zawartości. Jeśli zapomnimy czegoś posrzątać, zrobi to za nas niania. Nasze klocki są bardzo przenośne :)

Może światem komputerów nie rządzi zdecydowany bit, tylko dziecięce klocki?

Brak komentarzy: