Zastanawialiście się kiedyś, czy jest jakakolwiek analogia pomiędzy językami ludzkimi a językami programowania? Czy języki programowania mają swoją gramatykę i – podobnie jak te używane przez ludzi – żyją i ewoluują?
Postaram się znaleźć odpowiedzi na te pytania.
Języki komunikacji ludzkiej mają swoją historię i wywodzą się ponoć od biblijnej wieży Babel (lub od jednego prajęzyka, jak kto woli). W przypadku języków programowania nie było chyba żadnego punktu, od którego wszystko się zaczęło.
Języki naturalne rozwijały się na świecie w następujący sposób. W danym zakątku świata mała grupka ludzi umówiła się, że poszczególne przedmioty i otaczające zjawiska będzie nazywać tak, a nie inaczej. Następnie garstka ta uczyła kolejne osoby, a te kolejne i tak dany język rozprzestrzeniał się aż do momentu, kiedy posługujący się nim człowiek napotkał osobę mówiącą innym językiem i każdy z nich pozostawał przy swoim. Można zatem powiedzieć, że w pierwotnej fazie cywilizacji ludzkiej język był sposobem opisywania danego zagadnienia. Jest tutaj całkowita analogia w stosunku do języków programowania.
W pierwszej fazie rozwoju komputerów informatyką zajmowali się zapaleńcy. Sami definiowali sobie zadania, sami też szukali sposobów na ich rozwiązanie. Często to samo zagadnienie było rozwiązywane przez dwóch nieznających się komputerowców (trudno jeszcze było wtedy mówić o informatykach) w kompletnie inny sposób.
Zarówno języki ludzkie, jak i te wykorzystywane w programowaniu, mają swoją gramatykę. W językach programowania gramatyka nazywana jest składnią danego języka – można w niej wyróżnić obiekty i reguły ich zastosowania, czyli podobnie jak w językach naturalnych podmiot, orzeczenie itd.
Czy można mówić o pochodzeniu jednego języka programowania od drugiego, tak jak jest to w przypadku języków ludzkich? Oczywiście, że tak. Europejczycy „zaszczepili” swoje języki w kolonizowanych krajach, a następnie ludność tubylcza nieco przekształciła narzucone je według swoich standardów związanych z kulturą i realiami życia. Podobnie jest z językami programowania – stary, dobry język C został nieco ulepszony i dostosowany do formy obiektowej, dzięki czemu powstał język C++. Kolejne lata rozwoju informatyki przyniosły liczne programy, które były tworzone na potrzeby konkretnych interfejsów, posługując się tak zwanymi frameworkami. Można zatem powiedzieć, że przykładowo język C++ przeszedł kolejną ewolucję i tak powstał C#.
Śmiało możemy powiedzieć, że języki naturalne i języki programowania funkcjonują w posobny sposób. Wszak jedne i drugie są tworem wyobraźni człowieka.
PK