Бейсик. Кризис инженерного программирования

   Жившие в прошлом веке, помнят, что язык Бейсик был очень распространён и популярен среди программистов любителей, работавших на персональных компьютерах. То есть не в среде профессионалов, которые работали и продолжали работать на больших машинах, там популярным языком оставался Фортран, а среди инженеров, приспособившихся решать численными методами свои узконаправленные задачи.

   Впоследствии персональный компьютер вытеснил большие ЭВМ, и появились серьёзные компьютерные программы разного назначения, которые персональный компьютер успешно тянул, а за Бейсиком закрепилась репутация языка, на котором можно было бы "по быстрому" создать что-нибудь своё, для кого - более подходящее, а для кого - более простое, поскольку "серьёзная" программа казалась во-первых, избыточно сложной, а во-вторых - не очень подходящей для решения конкретной задачи.
   Такая ситуация продолжала сохраняться, а Бейсик продолжал развиваться, превратившись из некого подспорья, в среду, в которой могли создаваться большие и функционально разнообразные проекты. Апогеем развития Бейсика стал VB6 (Визуал Бейсик 6).

   Чем же хорош Визуал Бейсик 6, и в чём его преимущества перед всеми остальными языками программирования?
   Как я уже говорил, особой популярностью Бейсик пользуется среди инженеров, он использует синтаксис обычного и привычного для человека языка и не требует от пользователя дополнительных специальных знаний и усилий по организации интерфейса, по подключению библиотек, не требует знания нюансов объектно ориентированного программирования и проч.
   Вместе с тем, основные функции, связанные с организацией графики, разнообразными кнопками и меню, вводом и выводом информации во внешние файлы, средства отладки и многое другое предусмотрено в VB6 как бы изначально, и пользователю совершенно не нужно лишний раз по этому поводу напрягаться. Особую радость доставляет среда, в которой интерфейс программы (кнопки, поля для текста и для рисования) оформляется наглядно в режиме онлайн, что делает эту среду чрезвычайно привлекательной.
    
   Не нужно думать, что Бейсик, это среда для «чайников», которые просто привыкли к ней и не умеют как следует программировать. Вовсе нет, и я вам скажу, что именно инженер, а вовсе не программист способен создать наиболее совершенную программу прикладного плана.
   В моей жизни именно так и происходило – я очень редко пользовался готовыми программами. Подвижные оптические светопроводы и оптика, связанная с лазерными системами имеют свою специфику, и я успешно использовал собственные программы для расчёта таких систем http://proza.ru/2015/05/19/1630
   Взаимодействие лазерных мод внутри резонатора, накачка лазерным излучением, лазерный отжиг трансформаторной стали и массу других более мелких расчётов я делал, программируя на Турбо Бейсике. Уже на пенсии сделал два больших уникальных проекта – первый был связан с синтезом музыкального звука, а второй – с векторной графикой, рисованием и анимацией. Эти проекты были сделаны в среде VB6, и я, образно скажу, умер бы на старте, если бы пользовался не Бейсиком, а каким-нибудь другим языком программирования.
   Большим плюсом собственных программ является то, что их можно развивать. А как можно развивать покупную программу? Да никак.
   С точки зрения программистов инженеры – ленивые, не хотят они изучать то, что им в профессиональной деятельности не требуется. А с точки зрения инженеров, программисты - тупые, не зная как следует, прикладных областей, они в принципе не способны создавать прикладные программы высокого качества, то есть, работающие эффективно. 

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

   И корпорация Майкрософт поступила очень просто. Она перестала поддерживать свой собственный продукт, и в результате, программы, созданные в среде VB6, перестали запускаться в Виндос 10. И сам VB6 тоже не может быть запущен. А что предлагается взамен?
   Взамен предлагается Визуал Бейсик.NET – среда, которая по отзывам, обладает теми возможностями, что и Си+, но работающая хуже и медленнее, и такая же сложная для понимания, как Си+, так что любители Бейсика, увы, никакой радости от неё не испытывают.   

   Таким образом, любительская инженерная среда вступив в конкурентную борьбу со средой профессиональных программистов, была попросту устранена, а язык Бейсик фактически умер.
   Его не изучают в средней школе, его не изучают студенты МИФИ – они изучают Python, совершенно дурной язык, достаточно сказать, что левые отступы строк трактуются в нём, как окончания условных операторов (ну чем конструкция End If создателям этого языка не угодила? Эта конструкция хорошо видна, а отступ, пойди разгляди его, есть он или нет).

   Точнее сказать, победили не программисты, а победил потребительский подход к развитию общества – никакой вам инициативы, покупайте и лопайте то, что вам дают. Не думайте, мы за вас думать будем. В результате IT-технологии как бы развиваются, а инженерная культура программирования падает. И очень сомнительно, что Бейсик возродится хоть в каком-либо виде, ни в западном, ни в российском секторе разработки программного обеспечения.   

_________
2.12.2023


Рецензии
Дмитрий, вы наступили на любимую мину всех инженеров-программистов - лень. Дело в том, что весь мир разработки вертится вокруг столпов, имя которым - крупные корпорации. Именно они, а не простые смертные, решают какие ЯВУ и среды разработки вы используете сегодня и будете использовать завтра. Я не буду размазывать сопли и рассказывать очевидные вещи, приведу яркий пример развития геймдев - индустрии: движок Unity.

Если пройтись по истории, то первая игра, использовавшая трассировку лучей, была wolfenstein 3d. Разрабатывая её, Id software совершили революцию игровой индустрии, сделав процесс разработки 3d-сцен понятным простому смертному. В дальнейшем появились наборы библиотек, описывающих математику рендеринга трёхмерных объектов - появились графические библиотеки OpenGL, Glide, затем появились ActiveX библиотеки от Microsoft - DirectX. Поскольку вся графическая математика выносилась во внешние библиотеки, выставляя наружу API для стандартной линковки на уровне ОС, было уже не важно, на каком языке программирования вы пишете свою игру. Вы просто подключаете через интерфейсы нужные вам библиотеки и получаете функции для работы. Едем дальше.
Это уже 2000-е годы, через 3 года выйдет "Half-Life 2" на движке Source, навсегда изменив мир геймдева. До этого момента каждый разработчик пишет свой собственный механизм рендеринга на основе низкоуровневых графических библиотек, используя C, C++ с ассемблерными вставками для обеспечения быстродействия. Игры работают только на Windows, используют аппаратное ускорение, поэтому вендоры начинают встраивать библиотеки непосредственно в видеокарты. Появляются шейдеры - подпрограммы, исполняемые GPU. Разрабатывать собственные движки становится очень дорого и невыгодно коммерчески. "Умные" разработчики начинают собирать низкоуровневые библиотеки в готовые движки - появляется Source на Havoc, появляется Unreal Engine. Появляются "столпы" - гиганты геймдева как Valve, Ubisoft, Activision, Blizzard и т.д., у которых есть свои движки, а мелкие разработчики идут лесом: они не могут создать с нуля даже мало-мальски конкурентный продукт и отбить трудозатраты. И в этот момент приходят два товарища, которые спасают всех мелких разработчиков, мечтающих создать свою собственную игру и даже продавать её, но не имеющих возможности создать собственный движок со средой разработки, отладчиками и компиляторами. Unity и Unreal Engine. Теперь любой желающий может написать свою собственную игру, которая будет использовать шейдеры, ускорения на любых видеокартах и в любых видеорежимах, на любых ОС будь то Linux, Windows или Macos, из браузеров или десктопа. От разработчиков лишь требуется фантазия, способности придумывать игры и немножно терпения. Изучив немного, язык C# например.

А теперь ложка дёгтя. Для разработки Unity вам потребуется очень мощная машина - SSD, много памяти, игровая видеокарта. Потому что там ОЧЕНЬ много ВСЕГО. Это - мастерская с визуальной средой, с подключением Visual Studio, с возможностью дизайна и кодинга. Поэтому рабочая станция действительно должна тащить это всё, и это не плохо - когда вы пытаетесь решить проблему огромным инструментарием. В итоге, разработка видеоигры становится доступна простым школьникам, в то время как раньше школота об этом могла только мечтать. На сегодня два школьника могут создать за пару месяцев рабочую игру и продавать её за деньги.

Я учил BASIC в школе, в вузе учил Pascal, C++, asm и прочее. Когда начинал работать в 2004, использовал Delphi, но уже в 2006 году перешёл на .Net Framework и C#. Причина знаете какая?

ПОДДЕРЖКА СООБЩЕСТВОМ

На сегодняшний день язык программирования особой роли не играет. Важна экосистема, созданная вокруг языка. Начиная изучать язык, вы должны чётко понимать дорожную карту развития языка как минимум на ближайшие 20 лет. Когда я слезал с Delphi (я наткнулся на серьёзные синтаксические ограничения Object Pascal и постепенное угасание экосистемы вокруг неё), передо мной стоял выбор: Java или C#. То есть это были две экосистемы, каждая поддерживалась крупной корпорацией (Oracle и Microsoft), в них заливалось огромное количество бабла. Хотите вы этого или нет, но будущее за Python, потому что он популярен: мощнейшая экосистема и интеграция языка во всё, что только можно, например в Big Data, Machine Learning, в нейросети и т.д. Вы не сможете войти в эти ниши, не зная этого языка. Язык, который ещё много лет будет востребован - C#, он стал кроссплатформным, набирает обороты Rust, Go. Появляются языки, направленные на определённую специфику - например, производительность (Rust, Go), на ООП (C#), на работу с данным (Python), на многопроцессорные вычисления (Erlang). Ваше желание остаться на VB6 так и останется вашим желанием - как желание остаться ездить на карбюраторной "шестёрке", тогда как уже есть машины с роботизированными коробками и турбированным послойным впрыском. Весь вопрос - что предложит вам язык, какие возможности? Работы с данными? С нейросетями? С устройствами на уровне TTY или COM-портов? С конвейерами GPU? С Hyper Threading или Docker-контейнерами? А может вам нужна встраиваемая система для ESP32 в боевой дрон, наводящая его при помощи ИИ на врага? Для этого всего есть инструменты. VB6 просто уже морально устарел, микрософт его бросила не просто так. Она смотрит в своё будущее, а не на вас.

Дмитрий Кальянов   29.12.2023 16:57     Заявить о нарушении
Всё это прекрасно, но объясните, почему нет таких программ по синтезу музыкального звука, подобных моей? Кроме того, я замечаю, что музыкальный звук, как таковой, никто, кроме меня не исследует? Спрашивается, а почему?
Почему нет программ, способных к приличному компьютерному рисованию? Почему нет того замечательного разнообразия инженерных программ, которое обещает развитие компьютерных технологий?
А я отвечу - потому, что инженер, не способен сделать ничего, кроме того, во что его тычут носом. То есть - игр, а игры ему на фиг не нужны. Или управления дроном, а на фига ему дрон.
Образно говоря, инженер хочет писать свои стихи, а ему говорят - нет, используйте только те рифмы, которые предусмотрены нашей системой. Возможности инженера искусственно обужены. Нет той универсальности, которая обеспечивалась Бейсиком.

Дмитрий Маштаков   29.12.2023 17:28   Заявить о нарушении
"Она смотрит в своё будущее, а не на вас." А на фиг тогда мне компания Майкрософт нужна? Вот потому я и не устанавливаю Виндос 10.

Дмитрий Маштаков   29.12.2023 17:34   Заявить о нарушении
Как "покупатель всегда прав", так и "пользователь всегда прав". А если компания Майкрософт не следует этому правилу, значит, в ней работают жулики.
Разве не так? Именно так.

Дмитрий Маштаков   29.12.2023 17:50   Заявить о нарушении
Дмитрий, при всём уважении к вам, я не изучал, какие синты генерят ваши dsp-плагины, но убеждён, что у сообществ таких известных брендов, как korg, steinberg, fl studio, ableton, tascam, m-audio, casio, yamaha и тд нет достойных синтов. Я занимался электронной музыкой и знаком с возможностью этих программ. Почему вы не выпускаете библиотеки плагинов к ним, если ваши синты настолько уникальны?
Насчёт графики. Я, например, сейчас работаю в krita и с photoshop. Я не буду объяснять, почему эти программы лучше ваших - они непрерывно улучшаются и ими пользуются миллионы. Почему вы, разрабатывая уникальные кисти, не идёте в сообщество и не публикуете плагины для них?
Понимаете, вы живёте в мире, где вас всё устраивает, вы создали, наверное, что-то интересное, но никто никогда этого не оценит. Это то же самое, что публиковаться на прозе.ру и ждать славы, или говорить всем, что "я вот, на прозе.ру..." Да всем пос.. извините меня. Если и есть путь признания - то среди равных себе и в равных условиях. В этих условиях сегодня и производят разработки. Вы говорите, что не поставите Windows 10? А какой виндоус у вас сейчас стоит? А вы знаете, что сейчас ФСБ/ФСТЭК при сертификации проверяет весь исходный код, фреймворки и BCL для проверки их на недокументированный функционал, и разрешает только сертифицированные версии Linux (redos, astra, alt), где можно использовать только кроссплатформный код. Какими бы ни были ваши знания, никто специально под вас не будет ставить виндоус на сервера портала госуслуг. Ежедневно выходят сотни патчей безопасности к системам и рантаймам, и они вынуждены обновляться, и все вынуждены к этому приспосабливаться. Выявленные уязвимости микропроцессорных архитектур заставляют вносить патчи в низкоуровневые драйверы, и это всё обновляется, обновляется. Если вы изолировались и существуете вне сообщества, то какую пользу ему вы собираетесь принести?

Дмитрий Кальянов   29.12.2023 21:55   Заявить о нарушении
Насчёт Microsoft. Visual Basic - это мс. Как бы вы к ней не относились, именно vs6 вы использовали. Вы платили за неё? О чём и речь. Вы используете коммерческий продукт, при этом плюёте на его разработчика. Если уж на то пошло, то напишите свой компилятор и компилируйте vb6 в нативный код и тогда можете плевать на майкрософт. А иначе получается какаято ерунда типа мне мясо понравилось но повар - сволочь)

Дмитрий Кальянов   29.12.2023 22:01   Заявить о нарушении
Приведите пример универсальности, которая обеспечивалась бейсиком?

Дмитрий Кальянов   29.12.2023 22:03   Заявить о нарушении
У Бейсика была универсальность, подобная универсальности программы "Калькулятор". Когда Вы используете калькулятор, то совершенно не задумываетесь, о том, как он устроен внутри. Вам обычных знаний работы с числами хватает.
Теперь представим, что программы "Калькулятор" нет в принципе, и Вам предлагают делать его самому. Это простейшая ученическая задача на программирование, но зачем мне это нужно делать каждый раз, если я хочу включить в свою программу калькулятор?
В общем, я понял. Мне нужно изучить Питон, и долго мучиться с ним, создавая интерфейс. А потом выяснится, что и это всё было напрасно.
.
Что касается синтеза звука, то я не создаю звук, а создаю WAV файлы, в которых записано звучание музыкального произведения в готовом виде и со всеми его нюансами. Эту систему к существующим синтезаторам я подключить никак не могу.
Я могу создавать файлы формата МИДИ, но звучание музыки в них будет резко ограничено. МИДИ не предполагает тех нюансов исполнения, которые создаются в моей программе, и создаются очень удобно - достаточно написать десяток строк на языке Бейсик. Пример самого сложного сценария, по которому развивается звук, я привёл в предыдущей рецензии, а вот клип со звуками, которые создаёт этот сценарий http://youtu.be/ubNmvFydjtk
Примерно то же происходит с компьютерным рисованием. Я не могу свои кисти подключить к программе Фотошоп или к какому-нибудь ещё редактору, поскольку мои кисти сделаны по другому принципу - след кисти рисуется по-пиксельно, а на штампуется путём переноса заданного массива на другое место. Сам принцип рисования другой.
.
Мне всего лишь нужна среда, в которой мне было бы удобно работать. Среда, легко создавался бы кнопочный интерфейс, которая бы не требовала от меня излишних знаний по части библиотек, по способам их подключения, знания "итальянского" языка, поскольку привычный для меня "русский" в программировании больше не существует. Не требовала бы долгого изучения "итальянской" грамматики и многих таких вещей.
.
Но такой среды, получается, нет и никогда не будет. И это очень печально.

Дмитрий Маштаков   30.12.2023 00:57   Заявить о нарушении
Не знаю, чем вас не устраивает для разработки тот же C# с WinForms? Да вам придётся кое-что изучить, но программисты вообще всю жизнь учатся. Мне приходится каждый год несколько книг читать (ну или объём материала сопоставимый) чтобы остаться в профессии.
По поводу Wav я вообще не понял, если wav файл достаточно хорошего разрешения (частоты дискретизации), то его легко можно подключить в сэмплер типа FL Studio, с этим вообще никогда проблемы не было. Просто так никто не делает, звуки должны синтезироваться при помощи сигнального процессора, и для этого как раз существуют генераторы с их математикой и настройками. Звук генерируется, то есть описывается математическими формулами, параметры которых можно прямо там задавать и даже автоматизировать в процессе исполнения. Если у вас есть миди-контроллер, вы можете параметры вынести в энкодеры и прямо в процессе проигрывания менять характеристики генераторов. А wav - это "растровый" звук, при изменении частоты или питча который начинает искажаться, это не очень хорошо.

Дмитрий Кальянов   30.12.2023 01:18   Заявить о нарушении
Мне легче вернуться к программам ДОС-овских времён, чем изучать что-то новое.
http://youtu.be/MF8RmX_lBfo вот так работает программа, написанная на Турбо Бейсике.
.
А вот так работает "Трио", программа по синтезу музыкального звука, сейчас http://youtu.be/XJeYze1FmZE Это сделано в среде VB6.
Мне кажется, что я скорее умру, чем смогу повторить такое на языке Питнон ))
.
Вот ещё видео - http://youtu.be/ngbPGIFtBRU в нём рассказывается о полном цикле создания музыкальной записи.
.
Первоначально эти программы были написаны на Турбо Бейсике. Они работали в ДОС-ящике, но работали в 3 раза более медленно и были на такими красивыми.
Я вполне могу вернуться к этому варианту.

Дмитрий Маштаков   30.12.2023 02:44   Заявить о нарушении
На это произведение написано 5 рецензий, здесь отображается последняя, остальные - в полном списке.