Как е бил създаден програмният език Python?
Както неколкократно съм отбелязвал в предходни материали – изобретенията не падат от небето. Те се явяват резултат на съществуващи преди тях концепции и идеи, просто обединени по нов начин. Програмните езици не правят изключение. Новите езици не се материализират от нищото – те най-често са отговор на количествено натрупани проблеми при съществуващи езици/технологии.
Програмният език Python не прави изключение. Той се появява като естествено развитие на предшестващ го програмен език – ABC. ABC от своя страна е императивен програмен език с общо предназначение, но той не е бил предназначен за системно програмиране, а по-скоро за създаване на програми-прототипи или различни обучителни цели. По езика работят няколко души, един от които е програмиста Guido van Rossum. Работейки по проекта в него се зародила идеята да създаде интерпретатор (това е компютърна програма, която директно изпълнява инструкции, написани на програмен език, без да е необходимо преди това програмния код да е компилиран в програма на машинен език) базиран на езика ABC. Дълго време обаче не намирал време за това. Най-накрая, през декември 1989 г., когато нямал възможност да работи в института, в който се намирал офиса му, той се замислил за някакъв проект, който да го ангажира за периода на празничните дни. Така той решил да се захване с идеята за създаването на този интерпретатор за нов скриптов език, който да е наследник на ABC и който е ориентиран към Unix/C общността. Проектът нарича „Python“, вдъхновявайки се от името на популярно комедийно шоу „Monthy Python’s Flying Circus“.
Самият Ван Росум споделя: „Всичко започна с ABC. Той беше страхотен програмен език, невероятно елегантен и мощен, чиято цел беше непрофесионалното програмиране. Въпреки своите положителни черти обаче той никога не стана популярен в Unix/C света. Мога само да гадая за причините, макар че се сещам за една примерна: трудността при добавяне на „примитивни“ операции в ABC. Технологията беше монолитна, затворена система, която имаше най-базовите входно-изходни операции: четене на стрингове от конзолата, писане на стринг в конзолата. Реших, че това е грешка, която не трябва да повтарям при Python.
Освен това бях натрупал най-различни идеи за подобрение на ABC и бях нетърпелив да ги реализирам. Например програмният език ABC имаше изключително мощни типове данни, които обаче се оказаха по-малко ефективни, отколкото очаквахме. Имаше твърде голям акцент на теоретично-оптимални алгоритми и недостатъчно възможности за по-общите случаи. Освен това някои от свойствата на езика, които бяха предназначени за по-неопитни и начинаещи програмисти, бяха по-малко желани от аудиторията, която бе цел на езика – Unix/C програмистите. Такива са например странният синтаксис, част от терминологията на езика, интегрирания редактор, в който се пише кода. Него специално потребителите намразваха почти неизбежно. Затова моят проект Python трябваше да стъпи по-стабилно на Unix инфраструктурата и конвенциите, без обаче да е обвързан с Unix. Първата имплементация на езика всъщност бе направена на Mac.
Както се оказа в последствие, Python е свободен от множество от зависимостите, които срещаме при езиците за конвенционално програмиране. Това може би е така, поради изборите, които направих по време на неговата разработка. Вместо ABC, основното ми вдъхновение беше Modula-3. Това е друг програмен език, който съчетава елегантност и мощ, и също така е разработен от малък екип със силна воля. Представете си какво би се получило, ако го бях моделирал съобразно Unix шела и C. Да, взаимствах някои неща от C, но само тези, които са по-малко противоречиви. Това направих с цел проекта ми да се хареса на Unix/C аудиторията.“.
Една от най-популярните черти на програмния език Python е неговата лесна четимост, която го отличава от всички останали езици в света на програмирането. За нея Ван Росум споделя: „Акцентът върху четимостта на езика не е случаен. Бидейки обектно-ориентиран език, Python насърчава създаването на преизползваем код. Дори ако пишем перфектна документация през цялото време, един програмен код трудно ще бъде считан за преизползваем, ако не е четим. Всички свойства на Python са ориентирани с оглед създаване на по-добра четимост. Това е едно от ключовите свойства и на ABC, който също поставяше голям акцент върху яснотата на кода.“.
Днес, 30 години по-късно, езикът Python е сред най-популярните програмни езици и намира приложение в концепции на бъдещето, като machine learning и deep learning. Това му гарантира актуалност още дълги години, а инвестирането на време в неговото усвояване – една добра инвестиция на време. Затова не губете време а още днес кандидатствайте за програмата по софтуерно инженерство, избирайки Python за свой програмен език. Очакваме ви!