Хабрахабр

[Перевод] Расцвет и упадок Visual Basic

Мне нужно сделать признание. До того, как я стал респектабельным разработчиком, работающим с такими современными языками, как C# и Java (и тем бурлящим хаосом, который известен нам под именем JavaScript), я был увлечённым фанатом невероятно популярного и неуклюжего Visual Basic.

Ещё в детстве я учился программировать на языке BASIC. Моя влюблённость была искренней. Я начинал с потрясающей среды Microsoft под названием QuickBASIC на древней операционной системе DOS. Но не просто на BASIC. Я всё ещё помню, как набирал белый текст на её бодром голубом фоне.

Для программирования в 1988 году QuickBASIC был волшебной штукой. Можно было писать код без громоздких номеров строк, отлавливать синтаксические ошибки в процессе набора и запускать программы прямиком из среды разработки без необходимости возни с командной строкой. Закончив программу, можно было делиться ею со своими друзьями при помощи вот этих ребят:

В наши дни QuickBASIC остался лишь ещё одной диковинкой из далёкого прошлого. Хотя так ли это? Новаторский проект под названием QB64 создал современную реплику QuickBASIC. Он запускается на Windows, MacOS и Linux, и не требует эмулятора. При запуске программы в QB64 среда выполняет хитрый трюк — сначала она транслирует код на BASIC в C++, а затем компилирует его.

Классический VB и эра Visual

QuickBASIC был впечатляющей средой для далёких дней текстовых компьютерных систем. Но всё изменилось, когда Microsoft выпустила Windows и погрузила пользователей PC в графический мир кнопок и кликов. Одновременно с выпуском компанией Microsoft Windows 3.0 (первой версии, которая добилась истинного успеха), был выпущен Visual Basic 1.0.
Это было нечто совершенно новое. Пользователь мог создавать кнопки для программ, рисуя их на поверхности окна, как на холсте художника. Чтобы заставить кнопку выполнять какое-то действие, достаточно было дважды щёлкнуть на неё в среде разработки и написать код. И код писался не на загадочном C++ с кучами классов, сложным управлением памятью и непонятными вызовами Windows API. Вы как цивилизованный человек писали код на дружелюбно выглядящем VB.

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

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

Это было неписанное правило Visual Basic — он давал вам свободу, о которой вы потом пожалеете. Всё это происходило практически без структуры, если только вы не решали создать её самостоятельно.

Проблема классического VB

Во многих кругах классический VB имел плохую репутацию. Фанатики ООП часто жаловались, что VB недостаёт поддержки наследования. (Это была странная жалоба, ведь наследование часто является отличным способом для неопытных разработчиков выстрелить себе в ногу — именно этой особенности VB не требовалось.) На самом деле, классический VB не имел склонности к объектно-ориентированности. К концу своей жизни он уже поддерживал интерфейсы, полиморфизм и библиотеки классов. Всё это было позаимствовано из COM — фундаментальной части технологии компонентов, «прошитой» в каждой версии Windows.

Он настолько эффективно снижал барьеры для новых программистов, что в нём мог работать практически кто угодно. Настоящая проблема классического VB заключалась в том, что он был слишком успешным. Беззаботные новички, усталые сотрудники компаний и студенты решали проблемы, которые на любой другой платформе представляли бы гораздо большую сложность, и повсюду развешивали спагетти-код.

И VB не делал ничего, чтобы помешать укоренению их плохих привычек. Другими словами, поскольку VB был достаточно лёгок в использовании, даже если вы не учились на программиста, его применяло множество людей, которые не учились быть программистами.

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

Перенесёмся вперёд, в 2002 год: Microsoft занимается тем, что лучше всего получается у Microsoft — разрушает собственную экосистему разработчиков, вводя совершенно новый способ работы.

Это была ставка «ва-банк» для компании-мегалита, уже совершавшего несколько раз такие рискованные перемены. На этот раз проектом было масштабное изменение архитектуры COM — компонентной технологии, служившей опорой Windows (а косвенно и классическому VB).

Microsoft назвала эту «перезагрузку» платформой .NET по множеству сомнительных причин, в том числе и потому, что Интернет-технологии в то время продолжали оставаться свежими и восхитительными, а ещё потому, что .NET включала в себя функцию веб-сервисов, которую Microsoft твёрдо решила продвигать. Продукт создавался под сильным влиянием Java и имел полный ассортимент инструментов для общения с базами данных, создания веб-сайтов, написания многопоточных программ, установки соединений через сокеты — практически для всех вариантов применения, которые могли бы вообразить бизнес-разработчики.

Единственная проблема заключалась в том, что для реализации всех этих функций Microsoft пришлось избавиться почти от всего классического VB.

Если сильно прищуриться, то новая версия под названием VB.NET выглядела почти такой же. Но в ней появилось множество крупных и мелких революционных изменений. Крупные: старые программы на VB остались заключёнными в мире старых программ, и удивительно слабый мастер миграции почти никак не мог это исправить. Мелкие: программистам на классическом VB пришлось привыкать к новому способу подсчёта элементов массивов. Они больше не могли начинать с 1, как обычные люди. Теперь они должны были начинать с 0, как официальные программисты.

Ещё одно важное изменение: больше никакой функции edit-and-continue.

Почти сразу же группа влиятельных разработчиков на VB окрестила новую среду программирования Microsoft именем VB. Разработчики любят жаловаться, а разработчики на VB особенно этим известны. Fred, чтобы подчеркнуть тот факт, что этот новый язык не является Visual Basic.

Что обрекло Visual Basic на гибель

Вы можете предположить, что изменения .NET стали причинами возникновения трещин в фундаменте VB и привели к началу неизбежного упадка. Но всё было иначе. На самом деле, несмотря на то, что VB.NET двинулся в новом направлении и внёс критические изменения, сделавший «сиротой» совершенно хороший код классического VB, он получил огромную популярность. Так произошло благодаря тому, что VB.NET дал нечто, чего раньше не могли добиться разработчики на классическом VB — уважение.

NET языки VB и C# имеют одинаковый вес. В мире . Оба языка имеют одинаковые возможности, используют одинаковые компоненты и компилируются в полностью одинаковый вид (в нечто под названием промежуточный язык). Каждая строка кода на VB может быть транслирована в эквивалентную строку кода на C#, и наоборот. VB наконец-то освободился от своего синдрома «гадкого утёнка».

Пропал энтузиазм, сделавший VB любимым языком столь обширной группы людей. Но превращение в ещё один респектабельный язык программирования создало и проблему. Не потому, что изменился VB, а потому, что изменился C#.

Например, наличие функций типобезопасности и управления памятью . Как только VB получил такую же мощь, что и у C#, язык C# тоже перенял удобства Visual Basic. NET означало, что разработчикам на C# больше не придётся беспокоиться об утечках памяти, как и разработчикам на VB.

Внезапно VB перестал быть чем-то особенным. Другими словами, у C# теперь появилась «страховочная сетка», защищающая любителей, студентов и новичков, и не ослабляющая при этом его мощи. Он превратился в просто ещё один инструмент из набора умелого программиста.

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

Сегодня Visual Basic находится в странном состоянии. Среди профессиональных разработчиков он занимает примерно 0% внимания — VB даже не появляется в опросах профессиональных разработчиков или в репозиториях GitHub. Однако он всё ещё жив — управляет макросами Office, старыми базами данных Access и древними веб-страницами ASP, а также привлекает новичков к .NET. Индекс TIOBE, оценивающий популярность языков по результатам поиска, по-прежнему ставит VB в список пятёрки самых обсуждаемых языков.

В 2017 году Microsoft объявила, что начнёт добавлять в C# новые языковые функции, которые могут не появиться в Visual Basic. Но похоже, что инерция развития языка в последнее время заканчивается. NET. Эта перемена не возвращает VB статус «гадкого утёнка», но вредит его статусу как части .

Серьёзные разработчики знают, что ключевые части . Если откровенно, то тенденция сталкивания VB на обочину началась уже несколько лет назад. Они знают, что C# — предпочитаемый язык для презентаций, книг, курсов и воркшопов. NET написаны на C#. Если вы хотите говорить на VB, то это не нанесёт ущерба создаваемым вами приложениями, но может ограничить возможность общения с другими разработчиками.

Но даже там он остаётся чёрной овцой. Одна из ниш, в которых Visual Basic должен чувствовать себя естественно — это образовательный рынок. Если вам нужно что-то попроще для детей то рынок переполнен инструментами для графического программирования наподобие Scratch. Современные языки наподобие C# и Python просты и достаточно безопасны, чтобы их можно было выбирать в качестве первого изучаемого языка. Они имеют схожий синтаксис, и человек, выучивший один из них, будет чувствовать себя уверенно с другим. Своей притягательностью обладают и языки «с фигурными скобками»: C#, C, JavaScript и Java.

Кого бы не соблазнила версия VB, столь же простая в работе, как VB 6, но ещё и способная компилироваться в JavaScript и комбинироваться с дизайнером форм HTML? В области веб-разработки Microsoft смотрит в пустоту упущенных возможностей. Вместо этого Microsoft создала продукт на основе VB под названием LightSwitch, исчезнувший со смертью браузерного плагина Silverlight. Да, новые Google Maps в таком инструменте не создашь, но он мог бы возродить привлекательность Visual Basic, позволив бизнес-разработчикам, студентам и любителям создавать простые онлайн-приложения без необходимости пользоваться громоздким JavaScript. Если Microsoft начнёт создавать ещё один продукт класса «кодинг для широких масс», то это скорее всего будет управляемый шаблонами инструмент с небольшим количеством кода наподобие PowerApps.

Но на этот раз, похоже, всё по-другому. Visual Basic и раньше грозили разные опасности. Если это правда, то Visual Basic не будет постепенно исчезать на протяжении десятилетий. Кажется, солнце для одного из самых популярных в мире языков программирования на самом деле закатывается. Потеряли ли мы что-то особенное, или просто избавили от мучений устаревшую технологию — решать вам. Он станет ещё одним легаси-продуктом, недооценённым инструментом без любви пользователей и будущего.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть