Оригиналът е на Матю МакДоналд, известен програмист, преподавател и автор на десетки технологични книги

Трябва да ви призная нещо. Преди да стана уважаван разработчик, използващ съвременни програмни езици като C# и Java, както и с кипящия хаос, известен като JavaScript, аз бях невероятно увлечен по популярния и тромав Visual Basic.

Увлечението ми бе съвсем искрено. Аз още в детството си се учих да програмирам на BASIC. Но не какъв да е BASIC. Започнах с потресаващата програмна среда на Microsoft с име QuickBASIC, който стартирах на компютър с древната операционна система DOS. Все още много добре помня как набирах белия текст на нейния бодър син фон.

През 1988 година QuickBASIC бе нещо вълшебно в програмирането. Можеше да се пише код без онези дълги номера на редовете, можеше да се отстраняват синтактичните грешки още по време на въвеждането на кода и да се стартира програмата без да се налага излизането към командния ред. А след като напишех програмата, можех да я споделям с другите с помощта на ето тези приятели:

В наши дни QuickBASIC е просто една екзотика от миналото. Но дали наистина е така? Иновативният проект QB64 създаде съвременна версия на QuickBASIC. Той може да се стартира в средата на Windows, MacOS и Linux, като за неговата работа не е необходим интерпретатор или емулатор. При стартирането на програма в QB64 се извършва нещо много хитро: първоначално кодът от BASIC се преобразува в C++ и след това се компилира.

Класическият VB и Visual ерата

QuickBASIC бе впечатляваща програмна среда за онези стари текстови компютри от това далечно време. Но всичко се промени когато Microsoft представи Windows и потопи потребителите в графичния свят на иконките и кликовете. Едновременно с излизането на Microsoft Windows 3.0 (първата версия, която постигна истински успех), корпорацията представи и Visual Basic 1.0.

Това бе нещо съвсем ново и невиждано. Потребителите можеха сами да си създават бутони, като ги рисуват в програмен прозорец, подобно на платното на художник. За да се накара някои от тези бутони да извърши действие бе достатъчно два пъти да се кликне върху него в тази нова среда за програмиране, след което да се въведе кода на това действие. И да, за написването на кода не се налагаше да се използва загадъчния C++ с неговите многобройни класове, сложно управление на паметта и непонятни Windows API. Стана възможно програмите да се пишат на дружелюбно изглеждащият VB.

Всичките тези графични благини впечатляваха, но истинската тайна на успеха на VB бе неговата практичност. Просто нямаше нито един друг софтуерен инструмент, в който програмистът да нахвърли пълния интерфейс на програмата и бързо да започне кодирането. И въпреки че историците обичат да разсъждават за визуалната част на Visual Basic, всъщност неговите неподражаеми качества нямаха нищо общо с графичните уиджети. VB стана знаменит благодарение на концепцията edit-and-continue, която даде възможност на разработчиците да стартират програмата, да намират бъговете, да ги оправят и да продължат да работят с новия код. Това коренно се различава от почти всички известни на човечеството среди за програмиране, при които се налага всичко да се компилира отново и след всяка една промяна да се компилира пак.

Оригиналният Visual Basic процъфтяваше около десет години. Появил се като приятелска среда за начинаещите, той се превърна в инструмент с богати възможности и за сериозните програмисти. Когато излезе VB 6 – последната версия на Visual Basic, според приблизителните оценки, в света имаше десет пъти повече кодери на VB, отколкото на суровия C++. И те не създаваха някакви макетни и детски приложения. Visual Basic прокара пътя и влезе в офисите на компаниите и дори в интернет с помощта на ASP (Active Server Pages) – още една чудовищно популярна технология. Благодарение на нея е възможно създаването на уеб страници, които могат да общуват с компонентите на VB, да се свързват с базите данни и в реално време да се пише HTML код.

Проблемът на класическия VB

В редица кръгове класическият VB имаше лоша репутация. Феновете на обектно-ориентираното програмиране се оплакваха, че на VB недостига поддръжката на наследяването. (Това бе странна критика, понеже наследяването е един много добър начин начинаещите да се прострелят в крака – именно тази особеност не бе необходима във VB). Класическият VB няма склонност към ООП. А към края на своя живот той вече поддържаше интерфейси, полиморфизъм и библиотеки класове. Всичко това беше взаимствано от COM – фундаменталната част на технологиите на компонентите, вградена във всяка версия на Windows.

Всъщност истинският проблем на VB бе това, че той беше твърде успешен. Той дотолкова ефективно махаше бариерите пред начинаещите програмисти, че с него можеше да работи на практика всеки. Безгрижните начинаещи, уморените служители на компаниите и студентите решаваха проблеми, които на която и да било друга платформа биха предизвикали твърде големи усложнения.

С други думи, понеже VB бе твърде лесен за използване, дори и да не сте учили за програмист. И така той започна да се използва от много хора, които изобщо не са се занимавали с програмиране. Но VB не правеше нищо, за да попречи на вкореняването на някои лоши навици в програмирането.

VB.Fred и платформата .NET

Да се прехвърлим по-напред – към 2002 година: Microsoft отново се занимава с това, което най-добре умее – да разрушава собствената си екосистема от разработчици, като въведе съвсем нов начин на работа.

Този път това бе мащабната промяна в COM архитектурата – компонентите на технологията, която дълго време бе опора на Windows и косвено на VB. Това бе един ва-банк залог за софтуерния гигант, който вече на няколко пъти извърши подобни твърде рисковани промени.

Microsoft даде на преобразуваната платформа името .NET по редица съмнителни причини. Явно защото интернет технологиите по това време си оставаха свежи и възхитителни, но най-вече защото .NET включва уеб услугите, които Microsoft твърдо реши да развива и предлага. Продуктът бе създаден под силното влияние на Java и имаше пълен асортимент инструменти за работа с бази данни, създаване на уеб сайтове, писане на многопоточни програми, създаване на връзки чрез сокети – на практика всичко, което можеха да поискат бизнес разработчиците.

Единственият проблем бе в това, че за реализирането на всички тези функции се наложи Microsoft да се откаже от почти всичко от класическия VB.

Ако не се вгледаме особено много, новата версия с име VB.NET изглежда почти по същия начин. Само че в нея бяха направени редица големи и малки революционни промени. Големите: старите VB програми си останаха заключени в света на старите програми, а вграденият помощник за миграция не вършеше почти нищо. Малките: програмистите с класическия VB трябваше да свикват с новия начин за преброяване елементите на масивите. Те вече не можеха да започват с 1, както обикновените хора. Сега те трябваше да започват от 0, като официалните програмисти.

И още една важна промяна – вече няма edit-and-continue.

Разработчиците обичат да се оплакват, а VB програмистите са особено добре известни с това. Почти веднага група влиятелни VB разработчици прекръсти новата среда за програмиране на VB.Fred, за да подчертаят, че този нов програмен език не е Visual Basic.

Кое обрече Visual Basic на гибел

Може да се предположи, че промените, настъпили в .NET са причината за появата на пукнатини във фундамента на VB, което е и началото на неизбежния упадък на този програмен език. Но всъщност не е така. На практика, въпреки че VB.NET бе стъпка в една нова посока, в него имаше критични промени, които направиха много добрия предишен VB код безсмислен. Но VB стана много популярен, понеже VB.NET даде нещо, което липсваше при класическия VB – уважението на професионалистите.

В света на .NET езиците VB и C# са с еднаква тежест. Всеки ред, написа на VB може да бъде преобразуван в еквивалентен ред на C#, както и обратното. И двата езика имат еднакви възможности, използват еднакви компоненти и при компилирането дава еднакъв междинен код. VB се освободи от синдрома на „Грозното патенце“.

Но именно неговото превръщане в достоен и уважаван език създаде проблема. Изчезна ентусиазма, който направи VB любимия език за програмиране на много голяма група хора. И не затова, че се промени VB, а заради промените в C#.

След като VB получи същата мощ като C#, самият език C# прие някои от удобствата на Visual Basic. Така например обезопасяването на типовете и управлението на паметта означаваше, че C# разработчиците повече не трябва да се безпокоят от изтичането на памет и други подобни, точно както е при VB.

С други думи, и в C# се появи нещо като предпазна мрежа, защитаваща любителите, студентите и начинаещите, без това да намалява неговата мощ. И изведнъж VB престана да е нещо особено. Той се превърна просто в още един инструмент в арсенала на изкусния програмист.

Съвременното състояние на Visual Basic

Днес Visual Basic се намира в доста странно състояние. Вниманието към него от страна на професионалните разработчици е 0%. VB не се появява дори и анкетите за програмните езици, нито в GitHub хранилищата. Но той е жив и именно на него се пишат макросите в Office, с негова помощ се управляват старите бази данни на Access и древните ASP уеб страници. Той все още привлича начинаещите към .NET. Индексът TIOBE, оценяващ популярността на езиците според резултатите на интернет търсачките, го поставя на пето място.

Но изглежда, че инерцията за развитие на този език вече угасва. През 2017 година Microsoft обяви, че започва да добавя нови функции в C#, които може и да не се появяват във VB.

Всъщност тенденцията за изтикването на VB започна още преди няколко години. Професионалните програмисти знаят, че ключовите елементи на .NET са написани на C#. Те знаят, че C# е по-предпочитаният език за презентации, книги, курсове и уъркшопове. И ако решите да използвате VB, приложенията и програмите ще работят по съвсем същия начин, но това ще ограничи възможностите за общуване с другите разработчици.

Една от нишите, където VB може да се чувства естествено е образователният пазар. Но дори и там той си остава черната овца. Днешните езици, като например C# и Python са лесни и безопасни за използване, и са по-подходящи като начални езици за изучаване на програмирането. А ако искате нещо по-опростено, като за деца, то пазарът е вече препълнен с инструменти за графично програмиране от рода на Scratch.

Visual Basic и преди бе заплашван от най-различни опасности от подобен род. Но сега всичко е по-друго. Изглежда че слънцето за един от най-популярните в света програмни езици започва да залязва. И ако това се окаже истина, то Visual Basic няма да се стопява и изчезва в продължение на десетилетия. Той просто ще стане още един наследен от миналото продукт, недооценен инструмент без обич от страна на потребителите и без бъдеще. Дали всички ние изгубихме нещо ценно или просто избавихме от мъките една стара технология, кажете вие.