11 ноември, 2019

Стоян Бонев е доцент в Техническия университет – София и емеритус професор в Американския университет. Върнахме се 40 години назад, за да чуем неговия опит в програмирането и какви са били програмистите тогава.

Какви е било програмирането преди 30-40 години?

Накратко отговорът на този въпрос е, че е било много по-различно от съвременното програмиране. След развитието на програмирането може да се каже, че то започна и продължава да се явява под определението на една софтуерна криза, което означава, че хардуерните компоненти на компютрите се развиват много бързо. А софтуерните компоненти, асоциирани с тези новите хардуерни елементи, се развиват стремглаво. Типичен за програмирането беше т.нар. “Спагети код” – програмиране без никаква дисциплина, без структурираност на програмиране. И този тип програмно осигуряване беше слабо и ненадеждно. Отчитайки тези недостатъци се развиха технологии, методологии, теории, които да подобрят проблема с разработката на софтуер. Яви се структурното програмиране, в което основен компонент са подпрограми или функции. Изобщо в софтуерното развитие може да се отбележат въвеждане на езиците от високо ниво.

Какви са наблюденията Ви при еволюцията на определен програмен език?

Развитието на един програмен език търпи еволюция. В началото, когато се разработва един език, трябва да има ограничен брой синтактични изразни средства за представяне на синтаксиса. Съгласно структурното програмиране е достатъчно е да има един оператор за поставяне на действия, един оператор за условно разклонение, един оператор за техничност или за повторения на определен брой оператори. Това е минимално изискване, но желанието на програмистите е да имат по-голям набор средства. Тогава разработчиците обогатяват езиците със синтактични средства. За разклонение на условни оператори и повече от един вариант. Вместо една единствена функция на повтаряне се предлагат 3, дори 4 структури – цикъл с подусловия, с предусловия или цикъл, зависещ от динамичната структура на програмите, на които се разписват.

На кои езици вярвахте, че ще се развият, но не успяха?

Тук мога да спомена на първо място езика ADA, който беше разработен с финансиране от Пентагона. Този език е много богат, с много функционални възможности, но имаше нещастната участ да не бъде световно разпространен. На второ място, дори е по-важно да спомена една концепция UNCOL (Universal Computer Oriented Language), която също е с много прогресивна идеология, но за съжаление не успя да се наложи.

Ражда се идеята за универсален машинно-ориентиран език, който да бъде посредник между всички езици и всички компютри. Идеята да се работи с всеки език на всеки компютър. Въпреки тази прогресивност, идеята имаше само изследователски характер и не получи масово разпространение. Това се дължеше на голямото разнообразие на езици за програмиране, както и на разнообразието на архитектурата при различните компютри. Това е важен етап в развитието на IT технологиите.

Кой е най-стабилният програмен език? Вашето лично мнение.

Няма еднозначен отговор. Има международни компании, които се занимават с популярността и приложимостта на езиците. Всеки месец те публикуват таблица с данни. И в този смисъл на първите пет позиции са езици като Java, C#, Python, C++, Objective-C. Изобщо езиците, които се породиха в поколението след Pascal с присъщи характеристики като обектно-ориентираното програмиране. Тези езици са важни и стабилни и влизат в курсове по компютърни науки във всеки един университет.

Какви са били програмистите преди 40 години? Какъв е бил профилът им?

Изискването към програмистите беше всеки един да бъде отличен алгоритмист. Човек, който владее алгоритми, да разработва алгоритъм и да трансформира алгоритъма в програма. Тези знания бяха важни и ценни. В настояще време тази характеристика за висок професионализъм в алгоритмите остава, но не на 100%. На световен мащаб има огромно разнообразие от програмни продукти. Добрият програмист не само трябва да бъде добър алгоритмист, а да бъде и добре информиран. Ако той е добре информиран, няма да си загуби времето да разработва неща, които вече са налични. Това облекчава решаването на конкретни задачи.

С какво се занимавате в момента и върху какви проекти работите? Какви интереси имате извън програмирането?

Бих споменал проектите, в които съм участвал. Тогава нямаше персонални компютри и участвах в проект за кодова зависимост между два компютъра. Разработих с колеги макропроцесорна система. Към момента нямам интерес към програмните езици и тяхното развитие. Миналата година публикувах книгата “Сравнително изучаване на езиците за програмиране”.

Щом се отнася за интересите ми извън информатиката, мога да кажа, че проявявам интерес към класическа музика. Бих си позволил да цитирам Ролан, който отговорил на въпроса кой е по-добър Моцарт или Бетовен, а той отговорил “Моцарт е единствен, а Бетовен е велик.” Наред към музиката имам интерес към градинарството, но то е настрани от моето основно влечение към програмирането и IT технологиите.

Тагове: , , , , ,