Ewolucja języka

Ostatnio postanowiłem wrócić do samych podstaw programowania. I zacząłem się zastanawiać jak komuś, kto o programowaniu nie ma zielonego pojęcia wyjaśnić to bez ani jednej linii kodu, ewentualnie tylko używając pseudokodu. No i ten wpis o tym będzie. Ewolucja języka, czyli jak język naturalny ewoluował do języków programowania i dlaczego języki programowania są lepsze niż języki naturalne, a wszystko to z punktu widzenia programisty.

Język naturalny -> Język strukturalny -> Języki obiektowy

Jeżeli zrozumiecie to to zrozumiecie na czym polega programowanie. Dosyć często nadużywam takiej konstrukcji zdania: “Jeżeli to”, dlatego postaram się w tym wpisie ograniczyć to tylko do tych miejsc gdzie jest to potrzebne. Ale wróćmy do początku. Powiedzmy, że mamy bohatera opowieści o imieniu Mateusz. Mateusz opisuje swoją okolicę:

Na lewo od sklepu spożywczego jest warzywniak. Na prawo od niego jest sklep rowerowy.

W drugim zdaniu Mateusz użył podmiotu domyślnego odnoszącego się do sklepu spożywczego. No ale jak teraz używając podmiotu domyślnego napisać co znajduje się na wprost od warzywniaka? No nie można za bardzo. Trzeba by było napisać to mniej więcej tak:

Na lewo od sklepu spożywczego jest warzywniak. Na prawo od niego jest sklep rowerowy. A na wprost od warzywniaka jest teatr.

Tutaj już widać, że jeżeli okolica Mateusza jest rozbudowana, to nie da się opisać wszystkiego bez unikania powtórzeń. Za dużo powtórzeń to błąd, za który można dostać minusy na języku polskim, ale też można dostać minusy w programowaniu. Tak na marginesie jest to jedna z fundamentalnych zasad programowania, żeby nie powtarzać.

W matematyce mamy zmienne np. taki X, który zazwyczaj oznacza liczbę, w programowaniu X może oznaczać wszystko. Może też oznaczać więc sklep spożywczy, warzywniak, czy teatr. Użyjmy tej wiedzy do przepisania ostatniego zdania. Załóżmy, że oznaczymy symbolami poszczególne elementy:

Czytaj podobne  Aplikacja do Grona w 3 krokach - niemożliwe?

X = sklep spożywczy

Y = warzywniak

Z = sklep rowerowy

Ż = teatr

I teraz powyższe zdanie będzie wyglądać tak:

Na lewo od X jest Y. Na prawo od X jest Z. A na wprost od Y jest Ż.

Jaki jest pożytek z takiego zapisu? Taki, że jak Mateusz rozmyśli się i stwierdzi, że Y wcale nie jest warzywniakiem tylko w sklepem wielobranżowym, to wystarczy zmienić znaczenie Y.

No to teraz coś z innej beczki. Powiedzmy, że Mateusz, fan Dody napisał o niej tak:

Lubię Dodę. Ona ładnie śpiewa i ładnie tańczy, jest inteligentna, ma poczucie humoru, śmieje się zabawnie i nie jest nudna.

W tym miejscu jest problem. Bo Jak opisać to wszystko za pomocą samych Xów i Yków? Nie da się tak łatwo…. ale zaraz, skoro każdy X może oznaczać wszystko, to czemu X nie ma oznaczać Dody, a reszta to są jej cechy osobowości i talentu. Zgadza się. W tym momencie następuje przełomowa chwila, bo właśnie to oznacza przejście od programowania strukturalnego do programowania obiektowego. Zatem powyższe zdanie będzie wyglądać tak:

X = Doda

X.LadnieSpiewa = tak

X.CzyLadnieTanczy = tak

X.CzyInteligentna = tak

X.CzyMaPoczucieHumoru = tak

X.Smiech.CzyZabawny = tak

X.CzyNudna = nie

Jak widać ten zapis jest wygodniejszy do opisywania cech. Jak zauwazyles X ma jedna ceche, która jest też obiektem. Jest to Smiech. Skoro Xy mogą być wszystkim, to cechy też mogą być wszystkim, w programowaniu obiektowym wszystko jest obiektem!

Więc na razie możemy opisywać obiekty, ich cechy, zastosujmy to do opisu okolicy Mateusza. Początek jest ten sam:

X = sklep spożywczy

Czytaj podobne  Pierwsze badania na temat programowania w parach

Y = warzywniak

Z = sklep rowerowy

Ż = teatr

Tylko ze teraz X,Y,Z,Ż to obiekty. Zamiast zdania:

Na lewo od X jest Y. Na prawo od X jest Z. A na wprost od Y jest Ż.

można zrobić tak:

X.PoLewej = Y

X.PoPrawej = Z

Y.NaWprost = Ż

Czy taki zapis nie jest wygodniejszy? Tak! Wyobraź sobie teraz, że chciałbyś napisać program używając języka naturalnego? Czy nie byłoby to strasznie czasochłonne? Te wszystkie ograniczenia? No właśnie, języki programistyczne powstały właśnie w procesie ewolucji języka naturalnego do użycia w komputerach. No i to by było na razie na tyle.

Przeczytaj też

Najlepsza książka do Pythona Nie wiesz, z jakiej książki/ebooka uczyć się programowania w języku Python? Postanowiłem zrobić zestawienie 10 książek z Heliona na ten temat, abyś mó...
Komplet 28 ebooków i kursów, aby zostać programist... Od jakiegoś czasu dostaję zapytania na temat tego jakie książki, kursy i ebooki polecam. W związku z tym postanowiłem przygotować dzisiaj zestaw, któr...
120 tapet programistycznych za darmo do pobrania Trochę mi się nudziło, więc przygotowałem zestaw 120 tapet dla programistów. Możesz go pobrać. Tapety są w rozdzielczości 1366x768. Podzielone ...
10 fiszek do nauki programowania w Pythonie Uczysz się programowania w Pythonie? Pobierz te 10 fiszek, które ułatwią Ci zapamiętanie funkcji wbudowanych* w Pythona! Programowanie potrafi ...
Napisano w Kolumna Tagi: , , ,
One comment on “Ewolucja języka
  1. T pisze:

    Bardzo dobry artykuł,prosze o wiecej.

Menu