Мне нужно сделать признание. До того, как я стал респектабельным разработчиком, работающим с такими современными языками, как 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 и погрузила пользователей 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++. И они не просто создавали макеты игрушечных приложений. Visual Basic проложил себе дорогу в офисы компаний и даже в Интернет при помощи ASP (Active Server Pages) — ещё одной чудовищно популярной технологии. Благодаря ей вы могли создавать веб-страницы, способные общаться с компонентами VB, связываться с базами данных и писать HTML на лету.

Всё это происходило практически без структуры, если только вы не решали создать её самостоятельно. Это было неписанное правило 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 особенно этим известны. Почти сразу же группа влиятельных разработчиков на VB окрестила новую среду программирования Microsoft именем 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.

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

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


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

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

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

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

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

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

Комментарии (160)


  1. maxzh83
    19.06.2019 16:28
    +1

    .Net убила не только старый VB, но и помогла загнуться Delphi. В поисках инноваций они начали делать Delphi for .Net и попали в тупик. Возвращаться обратно странно, а на новой платформе они, мягко говоря, никому не нужны, как и VB.NET. Там царствовал (да и продолжает) C# — современный, лаконичный, удобный, безопасный, все нововведения делались на нем и для него. Ничего не сделаешь, закат эпохи.


    1. alan008
      19.06.2019 23:48
      +2

      На текущий момент Delphi весело обходится без .NET и поддерживает нативную(!) кросс-компиляцию на кучу платформ, как десктопных (Windows, Linux, MacOS), так и мобильных (iOS и Android).


      1. plus_stick
        20.06.2019 06:52
        +1

        Поздно уже. Большая часть аудитории ушла. Новой аудитории нет. Перестали преподавать в школах. Отсались только мы со своими легаси, которые лень переписывать.


        1. k1b0rg
          20.06.2019 20:36
          +2

          Больше все от Delphi отталкивает цена за лицензию.


      1. maxzh83
        20.06.2019 09:39

        Так я и не сказал, что Delphi умерла совсем. Но былой славы и популярности уже, увы, нет.


      1. DarkGenius
        20.06.2019 13:37
        +1

        Делфи похоронило то, что его разработчики не сделали бесплатной версии. Если бы она была, комьюнити было бы ощутимо больше.


        1. TonyLorencio
          20.06.2019 13:48

          Есть же Community. Но уже было поздно бить Боржоми, согласен


        1. APL_not_Apple
          20.06.2019 13:53
          +1

          А как же он тогда смог взлететь без бесплатной версии?
          Исключительно пиратство?


          1. Source
            21.06.2019 10:52
            +3

            Ну да, 15-20 лет назад вопросы лицензий в России вообще мало кого интересовали.
            Плюс в ВУЗы они поставляли бесплатные лицензии, насколько я помню. А традиция обучения программированию на базе Паскаля была очень сильна.



    1. samodum
      20.06.2019 13:28

      Зато прелесть Delphi в том, что даже мои старые проекты, написанные 15-20 лет назад, до сих пор компилируются и запускаются безо всяких бубнов и шаманства.
      Попробуйте поднять .Net проект пятилетней давности или хотя бы Андроид-проект годовой давности. Они не запустятся. Нужно будет качать зависимости, обновления и допиливать всё ручками


      1. vdasus
        20.06.2019 14:22
        +2

        Ну не скажите… У меня есть пара проектов на дельфи которым дцать лет — там ад™ и ужас™ вследствие использования платных компонентов. Держу специальную виртуалку с настроенной средой и установленными компонентами потому что если понадобится перекомпилировать лютый легаси это может вылиться в недельку работы (и не факт что получится). В дельфи просто другая проблема.

        (Отличная была среда, иногда с ностальгией вспоминаю, а пару лет назад даже еще писал на ней мелочи)


      1. maxzh83
        20.06.2019 15:22
        +1

        Попробуйте поднять .Net проект пятилетней давности

        Легко, проблема обычно не в самом .Net, а куче сторонних либ/компонент (если таковые использовались). Но с дельфями ровно та же проблема в принципе.


        1. APL_not_Apple
          20.06.2019 15:25

          Проблема ещё в том, что либы являвшиеся тогда совместимыми, в новой версии могут оказаться ни фига не совместимыми. :(


        1. samodum
          22.06.2019 22:19

          «Легко»? Месье теоретик.
          Я на практике с таким геморроем постоянно встречался, что ну уж нет.


          1. maxzh83
            23.06.2019 08:39

            Месье практик, напишите несколько проблем с которыми сталкивались и которые отличаются от проблемы старых сторонних либ/компонентов.


  1. ilya_1986
    19.06.2019 16:29
    +1

    Избавили от мучений устаревшую технологию


  1. old_gamer
    19.06.2019 16:42
    +1

    А замена VBA в Office не планируется? Было бы удобно, если бы он и оттуда изчез. Хотя сколько макросов тогда переписывать…


    1. iluxa1810
      19.06.2019 17:33
      +1

      А зачем чего-то переписывать?
      Никто же не заставляет нас переписывать Си либы под .NET и можно просто взаимодействовать с ними описав структуры.

      Просто дать возможность из .NET запускать VBA модули и он сам со временем уйдет в забвение.


      1. Wernisag
        21.06.2019 06:12

        Например, что бы, когда-нибудь отказаться от совместимости со старыми продуктами. Тем самым и разработчики смогли бы больше уделять времени исправлению багов, созданию нового функционала.


    1. tundrawolf_kiba
      19.06.2019 19:07

      На работе когда попросили сделать макросы на VBA для экселя — я быстро нашел, что можно делать проекты с использование VSTO(Visual Studio Tools for Office) — и делал все на шарпе. Насколько же приятнее было это делать, чем на VBA.


      1. old_gamer
        19.06.2019 19:11

        Спасибо, надо посмотреть. А оно какого-то оверхеда требует от пользователя? Скажем, если я напишу макрос на шарпе, отправлю файлик экселевский с этим макросом коллеге, он у него так же прозрачно заработает, как и VBA?


        1. tundrawolf_kiba
          19.06.2019 19:16

          Вот тут не уверен, мы писали в виде аддона для Экселя(менюшка, в которой выбираешь CSV-файл, и он читая его заполняет Эксель уже как нужно нам). Соответственно отправляли тем кому он нужен был, и он ставился как аддон(приделали менюшку в ленте дополнительную).


          1. old_gamer
            19.06.2019 19:20

            Понятно, будем копать.
            В любом случае, интересно, спасибо за наводку!


        1. iluxa1810
          19.06.2019 23:12

          А там скорее всего взаимодействие через COM.
          Я как-то писал на C# com-visible библиотеку с формой и вызывал ее в VBA. Так вот, почему-то не везде оно корректно разворачивалось...=( Да и разворачивание геморное было- это нужно было регать ее в системе.


          1. bopoh13
            20.06.2019 14:08

            Формы VBA-ные? Они имею особенность крошиться. Плюс только в функции edit-and-continue.


        1. bmforce
          20.06.2019 07:13

          Если вы планируете писать надстройки только для Excel, то я бы посоветовал посмотреть в сторону ExcelDNA. С VSTO у меня было больше проблем с развёртыванием надстройки (если не использовать ClickOnce).
          А так-то с 2013 офиса Microsoft продвигает Javascript, как замену VBA, по той причине, что такие надстройки будут работать не только на десктопной версии офиса, но и в веб (https://docs.microsoft.com/ru-ru/office/dev/add-ins/).


          1. APL_not_Apple
            20.06.2019 07:43

            Ванильный javascript для офиса?
            Или майкрософтовскую вариацию на тему J++ и J#?


            1. bmforce
              20.06.2019 07:46

              Я с ним не работал, но судя по документации и форумам (ну и потому факту, что всё это может работать в браузере) там полноценный Javascript со всеми плюсами и минусами.


              1. APL_not_Apple
                20.06.2019 07:54

                Во всех браузерах, или только Internet Explorer Edge?
                Помню, что когда javascript только набирал популярность, у майкрософта был Visual-Basic-Script для Internet Explorer.

                 <% Option Explicit
                 %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                     "http://www.w3.org/TR/html4/loose.dtd">
                 <html>
                 	<head>
                 		<title>VBScript Example</title>
                 	</head>
                 	<body>
                        <div><% 
                 		' Grab current time from Now() function.
                                ' An '=' sign occurring after a context switch (<%) is shorthand 
                                ' for a call to the Write() method of the Response object.
                 		Dim timeValue = Now %>
                 		The time, in 24-hour format, is 
                                <%=Hour(timeValue)%>:<%=Minute(timeValue)%>:<%=Second(timeValue)%>.
                        </div>
                 	</body>
                 </html>


                1. assembled
                  20.06.2019 11:04

                  У ослика действительно можно было использовать VBS (и не только) в скриптах. Но пример, приведённый вами исполняется на сервере, а не на клиенте. Ибо это <%="ASP"%>

                  Но я не понял, к чему это? Речь шла о JS.


                  1. APL_not_Apple
                    20.06.2019 11:28

                    VBS раньше предлагался как альтернатива JS.


                  1. bodqhrohro
                    20.06.2019 23:17

                    Вброшу-ка в тему vimeo.com/268146841
                    Надо было бы для полной эпичности написать накопипастить на VBS, но к моменту записи у меня остались о нём лишь смутные воспоминания. Так что и так сойдёт :D


    1. hmpd
      19.06.2019 22:02
      +1

      Несколько лет назад на реддите был AMA с разработчиками MS Office. Они сказали, что VBA улучшать не будут, а планируют заменить его Питоном


      1. bmforce
        20.06.2019 10:20

        Сам VBA, как язык программирования, они развивать уже точно не будут, но добавлять доступ к новым функциональным возможностям офиса они не забывают:
        Новое в 2016
        Новое в 2019


    1. catstail1954
      22.06.2019 13:53

      В чем состояло бы это удобство?


  1. A114n
    19.06.2019 16:46

    MS Office всё ещё занимает процентов 90 рынка офисных приложений, так что VBA живёт и здравствует.


    1. tundrawolf_kiba
      19.06.2019 19:08

      Можно использовать VSTO и писать то же самое на шарпе(а может и на любом .Net языке — не проверял)


      1. A114n
        19.06.2019 21:40
        +2

        Линукс_дома,_но_зачем.jpg

        У офисных приложений есть два следующих неубиваемых преимущества:
        1) Они уже есть везде, их не надо докупать.
        2) Сотрудники уже знают, как с ними работать, их не надо дообучать или донанимать.

        Чтобы писать то же самое на шарпе, нужно поставить шарп, то есть заплатить за это (если ты пишешь для коммерческой компании, то бесплатная версия будет нелегальной).

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

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

        Просто статью написал представитель так называемого «высокого программирования», который сидит в своей башне из слоновой кости и применяет машинное обучение на биг дата к диджитализации аджайла. Читатели на хабре в основном тоже из этой категории.

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

        Рассуждения о смерти VBA сродни рассуждениям о смерти часов.

        Да, почти у каждого человека сейчас есть смартфон, а вокруг на улице и в помещениях, в общественном транспорте — всюду есть часы.

        Но рынок часов не падает, и вовсе не за счёт элитных марок.


        1. KamAdm
          20.06.2019 09:17

          Все правильно, особенно про:

          Просто статью написал представитель так называемого «высокого программирования», который сидит в своей башне из слоновой кости и применяет машинное обучение на биг дата к диджитализации аджайла. Читатели на хабре в основном тоже из этой категории.


          1. YaSeven
            20.06.2019 14:13
            +1

            Поддерживаю обоих ) Наверно программисту сквозь профессиональную призму никогда не понять и не одобрить, что иногда надо именно здесь и сейчас быстро написать макрос. Который будет кривой, хромой, но сэкономит пару часов нудной работы, и возможно большие никогда не понадобится.


        1. DrunkBear
          20.06.2019 11:28

          На сколько знаю, во многих компаниях бережно хранятся и передаются файлы с макросами для VB( но будем честными, это как раз то, что в первую очередь автоматизируется и встраивается в CRM/ERP/BPM для избавления от обезьяньей работы по забиву excel руками)
          Да и HP QTP (утилита для автотестов ) поддерживает VB — и вот там фича «взять и исполнить код оттуда до сюда, посмотреть, что получилось на текущем шаге, дописать и продолжить» просто восхитительна.



        1. Tangeman
          20.06.2019 16:08

          Чтобы писать то же самое на шарпе, нужно поставить шарп, то есть заплатить за это (если ты пишешь для коммерческой компании, то бесплатная версия будет нелегальной).

          Необязательно нелегальной. Лицензия позволяет создавать приложения с любой целью для индивидуалов (включая продажу), или же, если в компании (включая родительские и дочернии компании) не более 250 компов и оборот не более миллиона долларов в год — то до 5 пользователей могут использовать Community версию без проблем.

          следующего сотрудника нужно будет искать среди программистов, а не среди офисных работников

          Среди подавляющего большинства офисных работников VB (как и любым другим языком программирования) владеет подавляющее меньшинство, так что если речь о VB то всё равно придётся искать кого-то кто хотя бы в общих чертах умеет писать программы.


      1. catstail1954
        22.06.2019 13:55

        Можно. И Microsoft подумывал об этом. Но здравый смысл победил.


  1. k12th
    19.06.2019 16:52

    От третьей картинки аж ностальгия. Да и от первой тоже, хотя под DOS'ом мы больше на TurboPascal'е писали...


    1. ligor
      19.06.2019 17:08
      +3

      Вспомнил купленную где то в конце 90 пиратскую русифицированную копию VB :) — программы не компилировались пока не исправишь русские названия компонентов. До него использовал ТурбоБейсик. Но на Визуал в те времена не задержался, перешел на Дельфи. Эх, ностальжи.


    1. JC_IIB
      19.06.2019 20:58
      +2

      Хотите, удивлю? Visual Basic и под MS-DOS был.


      1. k12th
        19.06.2019 21:03

        Вам удалось достигнуть своей цели:)


        1. JC_IIB
          19.06.2019 21:09
          +1

          Скриншот с Википедии не вставился чего-то… но он там справа есть, да. Вид там… своеобразный, скажем так :)


          1. k12th
            19.06.2019 21:11

            Да, я уже посмотрел, забавно:)


      1. dedmagic
        20.06.2019 10:38

        Ну вот, Вы меня опередили :( — пока читал статью, хотел блеснуть этой информацией.


  1. kaleman
    19.06.2019 17:17
    +1

    VB6 до сих пор используют инди-разработчики. Потому что быстрый нативный код.
    Например популярный файловый менеджер для Windows — XYplorer написан на VB6


    1. questor
      19.06.2019 17:21
      -1

      Вспомнил, вздрогнул, перекрестился. Всё-таки не надо раскапывать стюардессу.


    1. maxzh83
      19.06.2019 17:21
      +2

      Потому что быстрый нативный код

      Странный выбор. Во-первых, код не нативный — для VB runtime должен стоять (правда в современной винде он есть обычно), во-вторых, не такой уж и быстрый.


      1. kaleman
        19.06.2019 18:34
        +1

        Код как раз нативный. Начиная с VB5 есть поддержка компиляции в Native. А рантайм, у С++ он тоже есть, но это не делает его ненативным. Что касается быстроты, не путайте VBA и VB6. Это разные среды разработки. Для примера, скомпилированный VB6 код работает на порядок быстрее чем эквивалентные VB.NET/C# приложения. Хотя конечно сравнивать неуправляемый и управляемый код не совсем честно.

        image


        1. maxzh83
          19.06.2019 18:45
          -1

          Это не освобождает от необходимости рантайма, просто оптимизирует. Что-то официальное сейчас найти сложно (ссылки битые), вот что смог

          Compiling a project with the Native Code option means that the code you write will be fully compiled to the native instructions of the processor chip, instead of being compiled to p-code. This will greatly speed up loops and mathematical calculations, and may somewhat speed up calls to the services provided by MSVBVM60.DLL. However, it does not eliminate the need for the DLL.

          Хотя конечно сравнивать неуправляемый и управляемый код не совсем честно.

          Под быстрым я имел в виду тот же нативный Delphi


    1. GrWizard
      20.06.2019 15:34
      +1

      Самое офигенное, это то, что скомпилированные приложения в VB6 работают начиная с Windows 95 до Windows 10 без всяких танцев с бубном. Очень удобно, когда нужно охватить большое количество компов с разными ОС, особенно, если станки какие нибудь, где ОС так просто не поменяешь и там может быть, всё, что угодно, включая NT4.0


      1. maxzh83
        20.06.2019 15:41
        +1

        работают начиная с Windows 95 до Windows 10 без всяких танцев с бубном

        Насколько помню, рантайм (MSVBVM60.DLL) на Win 95 все же надо ставить. На Win 98 SE и выше идет из коробки


        1. tyomitch
          20.06.2019 16:22

          MSVBVM можно просто кинуть в папку к проге, в отличие от .net FW.


          1. KamAdm
            21.06.2019 08:17

            Где-то у меня был диск с IDE VB6. Надо ставить.


      1. kaleman
        20.06.2019 18:59

        VB6 еще на ReactOS работает.


        1. maxzh83
          20.06.2019 22:34
          +1

          Это конечно очень важно


          1. maisvendoo
            21.06.2019 09:07

            Это конечно очень важно

            Не понимаю Вашего сарказма


            1. maxzh83
              21.06.2019 09:52
              +2

              Попробую расшифровать. VB6 выпустился в 1998 году (больше 20 лет назад), является устаревшим им, как видно из комментов, мало кто его использует до сих пор. ReactOS также мало кто всерьез использует (кроме фанатов). Вопрос: какова вероятность того, что эти сообщества людей (пользователи софта на VB и reactOS) пересекутся?


              1. TEEN_true
                22.06.2019 01:21
                +1

                Не поверите, но крупные компании кое-где еще используют даже FoxPro. А уж VB и того — чаще.


                1. maxzh83
                  22.06.2019 16:40
                  +1

                  Не поверите, но крупные компании

                  Верю. Некоторые крупные компании до сих пор используют софт на коболе. Но используют ли крупные компании ReactOS? И это те же компании, что используют VB?


      1. TEEN_true
        22.06.2019 01:11

        В VB6 на Win7 и более новой некорректно ведут себя некоторые вызовы WINAPI. Например CopyMemory или стандартные операторы SendKeys(). Ядро рубит такие вызовы и валит приложение.


  1. VBKesha
    19.06.2019 17:42
    +1

    Вы можете предположить, что изменения .NET стали причинами возникновения трещин в фундаменте VB и привели к началу неизбежного упадка

    Для меня именно так и было. Я поглядел что надо учить всё заново, а уже давно была необходимость освоить С так и ушёл от VB6. Но первые две буквы ника остались, как дань уважения языку с которого начинал.


  1. Sirion
    19.06.2019 18:18
    +2

    По долгу службы иногда пишу макросы для MS Office. И должен сказать, что каждый раз у меня чувство, будто я программирую на каком-то эзотерическом языке, который, возможно, и не создан специально для того, чтобы заставлять разработчика страдать, но по факту активно этому способствует.

    У меня, как у всякого любопытного кодера, обширные знакомства с языками. Я начинал с паскаля, затем не очень подробно изучал си/си++, писал курсовую и дипломную на делфи, делал лабы на прологе, затем работал джавистом, сделал небольшой проект на C#, наконец обосновался в уютной нише JS. Но ничто из перечисленного, даже пролог, не казалось мне настолько инопланетянским, как VBA.


    1. old_gamer
      19.06.2019 18:34
      +1

      По долгу службы иногда пишу макросы для MS Office. И должен сказать, что каждый раз у меня чувство, будто я программирую на каком-то эзотерическом языке, который, возможно, и не создан специально для того, чтобы заставлять разработчика страдать, но по факту активно этому способствует.

      Абсолютно с Вами согласен. Сам в точно такой ситуации, довольно много приходится делать автоматизации на коленке в excel VBA


      1. Ndochp
        19.06.2019 22:40

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


        1. Tim_23
          19.06.2019 23:23

          Делал изначально также. Потом потихоньку изучил базовые наборы для написания программ (циклы, массивы). Но по-прежнему включаю запись если нужно сделать что-то нетривиальное, к примеру полностью настроить под себя стиль диаграммы (оси, надписи, шрифты, черточки, цвета). Вот здесь на мой взгляд какая-то абракадабра. Причем если раньше, можно было пользоваться оффлаин справкой, то новая онлаин справка по VBA какая-то урезанная. Кстати, в 2007 офисе встречался глюк, когда запись не показывала некоторых команд с диаграммой связанных с ее элементами. Приходилось дома решать этот вопрос на 10 офисе, а на работе внедрять в 2007-й. Сейчас проблем с этим нет (версия 2016).


          1. old_gamer
            20.06.2019 10:27

            По этому много всего на Stack Overflow


            1. Tim_23
              20.06.2019 19:31

              cyberforum тоже отличное хранилище проблемных вопросов. Очень сильно помогает.


          1. Accounter
            20.06.2019 15:47

            Кстати, в 2007 офисе встречался глюк, когда запись не показывала некоторых команд с диаграммой связанных с ее элементами

            В старых версиях MS Office макрорекордер еще не умел записывать манипуляции с чартами.


        1. mSnus
          21.06.2019 02:19

          Знаете, простая вроде задача "взять из строки таблицы данные и эмаль и отправить почту" решается в 3 разных версиях Экселя пятью разными несовместимыми способами. Это не инопланетный язык, это непонятное колдунство!


    1. klvov
      19.06.2019 22:59

      Мне последнее время не приходилось кодить на MS Office, но когда-то (лет 10+ назад) я немного это делал, в том числе и на VB. И ощущения, по воспоминаниям, не совпадают с вашими — я воспринимал это как такой немного дубовый язык, в котором, тем не менее есть все нужное, чтобы справиться с задачей, а задача — это когда надо в электронной таблице посчитать что-нибудь посложнее, чем позволяют встроенные в нее формулы вроде =AVG(A1:A10). Там еще были смешные особенности синтаксиса — цикл While надо было завершать на WEnd (потом вроде бы это убрали, и сделали почти стандартное Do While… Loop). Потом уже я наткнулся на похожую синтаксическую идиому в bash (границы цикла выглядят как if… fi, или case… esac), а уже потом мне объяснили почему это происходит: так немного проще писать синтаксический анализатор.

      Ну и раз уж у нас тут ностальгии пост, поделюсь своим: никак не могу для себя сообразить, какой был фатальный недостаток у Delphi, что оно ушло в забвение.


      1. Sirion
        19.06.2019 23:37

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


        1. kz_roman
          20.06.2019 10:39

          Могу ошибаться, но вроде как немного наоборот получилось. Borland перестала развивать Delphi и к моменту покупки подразделения CodeGear (которое занималось инструментами для разработки программного обеспечения, такими как Delphi) компанией Embarcadero, Delphi уже сильно проигрывал другим языкам. И несмотря на все усилия Embarcadero, догнать их уже не смог. Embarcadero сделала сделала саму среду разработки более удобной (чего только стоит объединение всех панелек в одном окне), сделала интеграцию со своими продуктами, устраивала семинары и конференции (по крайней мере у нас в Астане году в 2010 вроде были). Но разработчики мигрировавшие на другие языки уже не вернулись


      1. jaiprakash
        20.06.2019 09:20

        Delphi: низкий порог вхождения, отсюда куча низкоквалифицированных программистов, общественное порицание языка. При этом никто не умер, бизнес продолжает пользоваться Delphi, особенно с легаси. Любители частично перешли на Lazarus.


        1. APL_not_Apple
          20.06.2019 09:27

          А с модным сейчас Питоном как?
          Какой у него порог вхождения?


          1. jaiprakash
            20.06.2019 12:04

            Как было с Делфи, чтобы писать гуй-приложения, нужно:
            1. Поставить RAD.
            2. Накидать на форму компоненты, выровнять.
            3. Кликнуть контрол, прямо в обработчике писать бизнес-логику на Паскале, который знаешь с первого курса ВУЗа (специальность — не математика, и не программирование). Или даже со школы.
            4. Компиляция за [доли] секунды.
            5. Строгая типизация защищает от части ошибок.
            6. Вменяемая справка прямо в среде, куча литературы в обычных книжных.
            7. Деплой — просто переноска экзешника, никакого рантайма и фреймворка, только WinAPI, только хардкор.

            Как с Питонам по этим пунктам?


            1. APL_not_Apple
              20.06.2019 16:16

              Не знаю, мне тоже любопытно. :)
              Не знаю как у Питона, потому интересно узнать почему и как он взлетел.


              1. IvanNochnoy
                20.06.2019 16:55

                Python никому не был нужен аж с 1991 года, пока его не стали использовать в Корпорации добра. Если рассматривать Python, как замену MATLAB, Mathematica и прочим MathCAD'ам, то у него было два преимущества — он был бесплатный и за ним стоял Google.


              1. jaiprakash
                20.06.2019 17:00

                Ну, с 4-м пунктом всё хорошо )


              1. mactep3230
                21.06.2019 10:55

                мне кажется для популяризации Python'а немало сделала Nokia


            1. AlexPancho
              23.06.2019 09:51

              Простого GUI вида «накидал кнопочек — написал код» почти нет, те варианты что есть — все с нюансами, требующими гугления и погружения в инструмент.
              Но если бы стояла задача кровь из носу написать что-то сложнее одного окошка — наверное разобрался бы (хотя недавняя моя попытка соорудить что-то вместо Access на питоне с треском провалилась)


        1. Rohan66
          20.06.2019 11:41
          +1

          Единственное воспоминание о Дельфи — он глючил с драйверами S3 Trio. Что бы нормально работал — перепробовал драйверов 15. )))


        1. Whuthering
          20.06.2019 11:55

          Delphi: низкий порог вхождения, отсюда куча низкоквалифицированных программистов, общественное порицание языка.
          Только ли в этом дело? C#, например, точно так же позволяет писать говнокод почти не зная об ООП, алгоритмах и управлении памятью, рисуя формы мышкой и пихая всю логику в обработчик Button1Click.
          Но при этом его не порицают и с него не убегают разработчики.
          Мне больше кажутся реальными упомянутые ниже причины, такие как жлобская ценовая политика, и отсутствия реальных и полезных нововведений в самом языке и среде при активном развитии конкурентов.


          1. LAutour
            20.06.2019 13:29

            Рунтайм библиотеки у C# больно здоровые.


            1. Whuthering
              20.06.2019 14:30
              +1

              Но это будет проблемой только для узкоспецифичных случаев, потому что в актуальных версиях Windows начиная с 7-ки они поставляются вместе с системой или выкачиваются из WSUS.


              1. LAutour
                20.06.2019 14:42

                Как-то из-за такой узкой проблемы пришлось переустанавливать ОС на рабочем ноутбуке, который применялся для перенастройки и программирования датчиков и контроллеров (расходометрия).


                1. Whuthering
                  20.06.2019 15:09
                  +1

                  переустанавливать ОС
                  А зачем именно переустанавливать ОС в таком случае? Даже Windows XP поддерживает установку .Net Framework до версии 4.0.3. включительно.
                  Если нужна более новая версия рантайма, а система старая — тогда да, но эта проблема актуальна не только для .Net.
                  Например, в современном MSVC при разработке на C++ собранные бинари на Windows XP аналогично не запустятся, для того, чтобы они работали нужно отдельно потанцевать с бубном в конфигурации проекта, а обсуждаемый выше Embarcadero Delphi официально не поддерживает компиляцию софта для Windows старее 7-ой версии.
                  который применялся для перенастройки и программирования датчиков и контроллеров
                  Вот я и говорю: программно-аппаратные комплексы и софт для работы с железом это как раз-таки узкоспецифичные случаи.


      1. JTG
        20.06.2019 10:53
        +1

        какой был фатальный недостаток у Delphi, что оно ушло в забвение
        Наверное, фатального нет, но:

        • «Как jQuery» — когда использование отличного инструмента с огромным комьюнити и кучей дополнений внезапно стало табу потому что инструмент позволяет писать плохой код.
        • Жлобская ценовая политика. Бесплатная Delphi Community Edition появилась только в 2018 (?!). VS Express была уже в мохнатом 2005.
        • C# откусил кусок пирога.
        • Поздно завезли поддержку юникода.

        Javascript, кстати, может наступить на те же грабли. Можно говнокодить — да, распухший npm — да. Дойдёт ли до стадии «помогите где найти кампанент Vue которым можно зделать табличьку с кнопками в ячейках»? :D


        1. APL_not_Apple
          20.06.2019 14:40

          Скорее до стадии «помогите найти версию фреймворка».


        1. LAutour
          20.06.2019 14:51

          Turbo Delphi был бесплатный в 2006.


      1. APL_not_Apple
        20.06.2019 15:53

        в электронной таблице посчитать что-нибудь посложнее, чем позволяют встроенные в нее формулы вроде =AVG(A1:A10).

        Что меня РЕАЛЬНО БЕСИТ!!! так это несовместимая русефекация экселя!
        Когда «SUMM» не работает на одних компьютерах, а на других не работает «СУММ».


      1. Zenitchik
        20.06.2019 16:21
        +1

        Do While… Loop

        Эм… Оно в QBASIC уже было. Кстати, очень мощная структура, с четырьмя вариантами условия
        Do While… Loop
        Do Until… Loop
        Do… Loop While
        Do… Loop Until


      1. taujavarob
        20.06.2019 18:53

        никак не могу для себя сообразить, какой был фатальный недостаток у Delphi, что оно ушло в забвение.
        Синтаксис.
        Его коболовидный "begin" его и угробил.

        Посмотрите на Java — она пытается держаться на плаву, синтаксически мимикрируя (я про новый синтаксис (лямды, потоки, var) начиная с Java 8) под… JavaScript.

        Какая ирония судьбы — само название JavaScript (как и внезапно добавленный в него оператор new) получил из-за того что в то время Java стремительно взлетела под «рёв трибун»!

        Синтаксис решает судьбу языка. (С) Взлетит он или… станет нишевым.


        1. APL_not_Apple
          20.06.2019 18:58

          Нет, если бы дело было в begin..end, то он бы и не взлетел, а он взлетел.


          1. taujavarob
            21.06.2019 19:07
            -2

            если бы дело было в begin..end, то он бы и не взлетел, а он взлетел.
            Для взлёта (в 1995 году) был нужен восходящий тренд — и он был — ООП.

            Ну, а когда взлетела (в том же 1995 году, но тогда она была ни к чему не годна и не помышляла ни о чём больше, кроме «анимации картинки в броузере — в виде апплета») внезапно(!) Java — "ООП без begin" — то Delphi… стал неумолимо падать.

            Синтаксис решает судьбу языка. (С)


            1. DMGarikk
              21.06.2019 20:47
              +1

              внезапно(!) Java — «ООП без begin» — то Delphi… стал неумолимо падать.

              Ну вы не забывайте что Sun был поставщиком корпоративного софта и железа, и язык писался под это… на что и подсел ентерпрайз получивший все изкоробки

              А делфи выпускала чисто софтовая контора и их софт не навязывался с ос/железом что и сказалось на популярности


            1. APL_not_Apple
              22.06.2019 10:31

              Для взлёта (в 1995 году) был нужен восходящий тренд — и он был — ООП.

              Дело не просто в ООП, а в том что для написания программ под Windows 95 он оказался гораздо удобнее, чем тогдашний Visual C++.


      1. APL_not_Apple
        20.06.2019 19:05
        +1

        никак не могу для себя сообразить, какой был фатальный недостаток у Delphi, что оно ушло в забвение

        Помню, что то ли после Шестёрки, то ли после Семёрки — в новой версии забили на совместимость, так что проект сделанный в предыдущей версии перестал собираться и компилироваться в новой. Так что все советовали не переходить на новую версию, а оставаться на 6 или 7, после чего Делфи стал засыхать и помирать.

        PS удивительно что (если не путаю) Питон успешно пережил несовместимость версии Два и Три.


        1. mayorovp
          21.06.2019 16:49
          +1

          Не то чтобы пережил, куча людей с него разбежалась, а куча проектов — осталась на второй версии...


      1. SlimShaggy
        21.06.2019 23:28
        +1

        Цикл while...wend еще в QBasic досовском был.


    1. KamAdm
      20.06.2019 09:27

      В далеком 2000 году я на VBA Excel (минуту вспоминал как на писать эксель, дожил… Вот что значит перешел на ОО) для написал приложение для дисперсионного анализа для обработки результатов испытаний гербицидов и пестицидов. Ни каких затруднений я не испытывал. Они до сей поры этой программой пользуются.


  1. lostmsu
    19.06.2019 20:21

    1. tyomitch
      20.06.2019 12:59

      Это на VB.net, в котором от Visual Basic только название.


      1. APL_not_Apple
        20.06.2019 13:02

        А синтаксис разве тоже другой?


        1. tyomitch
          20.06.2019 13:05

          Примерно настолько же похожий, насколько JavaScript похож на Java :-)


          1. mayorovp
            21.06.2019 16:52

            Ну нет, тут синтаксис намного ближе, все приметные особенности позднего Бейсика на месте. В отличии от JavaScript, который получил от Java только фигурные скобочки...


            1. tyomitch
              21.06.2019 17:08

              Даже While .. Wend косметически поменяли на While .. End While, не говоря о более серьёзных отличиях, например, замену On Error на SEH


  1. Ninazu
    19.06.2019 20:47

    Так сложилось что я начал программировать с макросов на VBA, плавно перешел на VB6, а вот на VB.NET я ушел в сторону на PureBasic, так как NET платформа мне еще тогда показалась извращением и избыточностью. Но несмотря на мощь ассемблера в PureBasic, комьюнити и недоработки в движке вынудили оставить локальную разработку и переключиться на Web, хотя с переходом на GoLang я все больше возвращаюсь к локальной. Вот такой тернистый путь....)


    1. 0x9d8e
      20.06.2019 10:30

      На VBA не кодил, а вот учился на QuickBasic и VB5/6. И тоже на .net не перешел, а вместо него на PureBasic, пока в веб и линух не ушел. Замечательная штука была для непрофессиональной разработки. Не уверен что с тех пор для этих целей что-то лучшее появилось.


    1. masv
      20.06.2019 10:52

      Поддержу. тормозной .NET мне тоже не понравился. А вот PureBasic заинтересовал своей простотой и скоростью. Пользуюсь им иногда (как и AutoIT) чтобы накидать что-нибудь по-быстрому.


  1. Tim_23
    19.06.2019 20:49

    Изучал Си, писал программы в среде Борланд. Потом из-за удобства работы с Экселем начал писать макросы и так увлекся, что создавал целые программы на листах с интерфейсом как у нормальных программ. Когда попробовал VB.net бросил макросы. Для меня это действительно интуитивно понятная среда для быстрого создания программ. Я конечно имею ввиду чисто прикладные программы для решения инженерных задач (в том числе взаимодействие с офисом или сторонними программами). Си забыл как страшный сон, особенно динамические массивы и указатели.
    Вот теперь думаю, в чем преимущества С# или С++ перед VB.net с точки зрения прикладного программирования (проведение расчетов, трансляция данных, работа с большим количеством файлов)?


    1. SlimShaggy
      21.06.2019 23:42
      +1

      Вопрос странно поставлен. C# и VB.Net — языки с одинаковыми возможностями, различающиеся лишь синтаксисом. Для упомянутых задач подходят одинаково хорошо, выбор между ними — дело вкуса. А вот C++ все же для более низкоуровневых задач, где нужно быть ближе к «железу».


  1. blackstrip
    20.06.2019 00:08
    +4

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


    1. maisvendoo
      22.06.2019 01:01

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

      Как и Qt в наши дни — окна делаем в дизайнере, код пишем редакторе. Этот подход, субъективно, наиболее органичен и верен


      1. blackstrip
        22.06.2019 22:12
        -1

        там разве тоже псевдографические выпуклые кнопки, флажки, выпадающие списки, фреймы, скроллбары делать можно? в VBDOS-е было можно) весь прикол был в простом текстовом режиме 80х25 символов 16 цветов, но в нем были окошки, менюхи и прочие прелести оконного интерфейса, и выглядел он моднее borland-овского, в котором все было более плоское и менее навороченное, чем в VBDOS.


  1. TridentJam
    20.06.2019 08:10

    По какой причине вы назвали JavaScript бурлящим хаосом?


    1. JerleShannara
      20.06.2019 09:32

      8 + «четыре» + W == FALSE или что-то около того.


      1. Whuthering
        20.06.2019 11:58
        +1

        А еще новый фреймворк каждые два месяца, новый бандлер каждый три недели, и срач в node_modules что у бэкендеров, что у фронтендеров :)


      1. Sirion
        20.06.2019 13:38

        Ну что вы, право слово. В JavaScript достаточно простая и логичная система неявного приведения типов. Главное — никогда ей не пользоваться.


  1. W001fer
    20.06.2019 10:40

    Эххх, детство :) Аж почти прослезился. Начинал изучение языков программирования с нашей Электроники БК11 с бейсиком внутри, потом были QB, Pascal, Delphi, VB, VBA, VBS (не к ночи будь помянут :)) ). Воспоминания исключительно приятные


    1. KamAdm
      20.06.2019 13:19
      +1

      Чем VBS не угодил? До сих пор на нем кодю скриптики.


      1. W001fer
        20.06.2019 14:02

        Powershell появился :) С его выходом необходимость писать на VBS или классическом cmd просто отпала. Все — объект, работать удобно, можно тянуть данные из csv, json и еще кучи разных форматов в качестве входных массивов и дальше обрабатывать как хочешь. Ну и проще он как-то. Мне, как админу, гораздо быстрее наваять что-то на PS, зная классические названия атрибутов в AD и других системах, чем шариться в поисках атрибутов WMI, которые так любит vbs :) Но это сугубо имхо


  1. saprykin_alex
    20.06.2019 10:40
    +1

    А есть кто-нибудь, кто начинал с Бейсика Вильнюс-86 и GW-Basic'а? Вот это были бейсики!


    1. kolu4iy
      20.06.2019 11:47

      Продолжал

      GW-Basic'а

      А начинал на ДВК-3 с бейсика RT-11 :)
      Потом был некий фокал — помнит кто-нибудь? Я вот был безумно удивлён его идентичностью фокалу на БК-0010. 4-5 класс где-то… С Си справился только к концу школы. Указатели наконец разложились в голове и стало хорошо :)


      1. APL_not_Apple
        20.06.2019 11:52

        Про Фокал слышал (точнее читал). А чем он от Бейска отличался?


        1. gatoazul
          20.06.2019 12:40

          Разве что синтаксисом.


        1. kolu4iy
          20.06.2019 12:45

          Он в разы компактнее и проще. Ну и при этом, соответствено, немного более ограничен. Вот такая радость — это именно он, я его узнал :)


    1. old_gamer
      20.06.2019 12:10

      ИМХО, самый кошерный бейсик был на Спектрумах 16/48К, где команды надо было не по буквам вбивать, а одной кнопкой. При этом на кнопке было 3-4 разные команды, надо было колдовать с CAPS и SYMBOL шифтами, чтобы ввести нужную. Особенно доставляло на самоделках, где не было надписей на клавиатуре, только шпаргалки. Но руки привыкали очень быстро ))


      1. saboteur_kiev
        20.06.2019 13:44
        +1

        Кстати да. Помнится всего через пару месяцев уже набирал весьма быстро, хотя никаких клавогонок и стамин еще не было.
        Зато опечатки исключаются, и в памяти программа занимает меньше.


    1. kolu4iy
      20.06.2019 12:53

      … а еще был турбо-бейсик, и он был удобнее GW. А потом появился quick basic (который позволял собрать .exe, как и турбо), и qbasic — который был включен в дистрибутив DOS. Я их все потрогал, да-да. И ощущение прорыва возникло именно с QBasic/Quick basic от microsoft.


    1. saboteur_kiev
      20.06.2019 13:43

      До этого был еще Sinclair Basic и Laser Basic


    1. bisquitie
      20.06.2019 15:06

      Помню обалдел, когда увидел компилятор gw-basic'а, написанный на нём же самом.


  1. shidi4
    20.06.2019 10:40

    Эх, ностальгия накатила… С детства нравилось кодить на Basic`е ещё на японском компе, потом школьная информатика с Корветом… Очень нравился VB, при всех своих недостатках, за относительную простоту, что можно было небольшое простое приложение написать на раз-два. Сейчас на работе в SolidWorks использую и редактирую под себя скрипты на VBA. А так… Эх, были времена…


  1. bessarabia
    20.06.2019 10:40

    Почему эта статья лучше, чем ничего? Потому, что в ней содержатся верные утверждения.
    Почему эта статья похожа на ничего? Потому, что рейтинги языков скорее бесполезны, так как каждый год популяция людей даёт индивидуумов, которые квази-рандомно начинают программировать, просто потому что это логичнее, чем не программировать. Вопрос «молоток какой марки попадётся под руку при необходимости забить гвоздь?» так же полезен, как и любой холиварный спор, почему патриоты России выбирают иностранные тачки, вместо того, чтобы у порно работать над качеством общения друг с другом при работе над новыми проектами. А вообще да… софт иногда нужнее еды или досуга, так как может трансформироваться в то или иное, и поэтому немножко конкурирует с разговорами о деньгах и здоровье, когда здоровье ещё ничего…


  1. dedmagic
    20.06.2019 10:47

    В 90-е (до Windows 95) подрабатывал написанием небольших бизнес-программ (складской учёт, кадровый и т.д.), использовал Turbo Pascal + Turbo Vision. Но вот однажды в руки попала книга Григория Зельднера по QuickBasic 4.5, и так мне этот Бейсик в душу запал, что следующую программу (расчёт зарплаты для госучреждения) я на на нём и написал )))).
    С окнами, менюшками и прочими интерфейсностями в текстовом режиме.
    Эх, жаль, хороший был язык…


    1. IL_Agent
      21.06.2019 00:16

      До сих пор на полке эта книжка)


  1. LODIII
    20.06.2019 11:16

    VB сейчас еще активно пока используется в банковском ПО. Как пример — эт окомпонента экранных форм в продуктах от ЦФТ. А на нем пока еще плотно сидит Сбер, Связной и куча других банков из первой сотни.


    1. Whuthering
      20.06.2019 11:59
      +1

      А на нем пока еще плотно сидит Сбер
      Не знаю почему, но я догадывался.


      1. old_gamer
        20.06.2019 12:15

        Зря. Все банки мира на нем очень плотно сидят. В том числе, все крупные западные. Понятно, это не критичный компонент, и без него банк может обойтись, но он делает жизнь сильно удобнее. Все банки, где я работал, имели свои проприетарные библиотеки excel-аддонов с интерфейсом в VBA. Сами библиотеки делали запросы к бэкэнду для всех рассчетов, но результатом можно пользоваться в Экселе, создавая быстро кастомные фин продукты. Это очень удобно.


    1. DMGarikk
      20.06.2019 14:57
      +1

      вы с oracle forms не путаете?
      они чемто похожи визуально, и тоже очень много где в банках используются


      1. saboteur_kiev
        20.06.2019 15:10

        Формы в VB это весь набор офиса, и не только excel/access.

        Например на базе Exchange и Outlook можно было создать кастомный документооборот в экосистеме exchange с произвольными формами и пайплайном усилиями местного сисадмина. В начале 2000 oracle forms был дорогой новинкой, а exchange уже внедрен на множестве предприятий, особенно зарубежом — там как раз шла цифровизация предприятий.


      1. LODIII
        20.06.2019 15:41

        нет не путаю. На Oracle Forms есть другое банковское ПО — Инверсия 21 век, кстати вроде есть банки которые до сих пор изза этого на 6 оракле сидят.
        А АБС ЦФТ Банк использует VB. Сейчас есть новые версии кторые могут использовать Java но они требуют отдельных серверов приложений и в целом работают на порядки медленнее.
        Сам сравнивал что форма на которую у операциониста уходило на заполнение 20 минут на VB на Java от ЦФТ уходит 2 часа.
        Сейчас кстати ЦФТ адаптирует эту банковскую ПО, точнее ее ядро под нужды Росатома/ Так что возможно и там будет чтото от VB

        Вот пример из обсуждалок программистов
        www.cftclub.ru/viewtopic.php?t=4819

        Как тебе такое Илон Маск?


        1. DMGarikk
          20.06.2019 20:40

          Как тебе такое Илон Маск?

          В стране где Илон Маск живет, банки кобол в продакшене до сих пор используют… так что VB у нас тут так прям вообще модно-молодежно


  1. nzeemin
    20.06.2019 11:31

    www.tiobe.com/tiobe-index TIOBE Index for June 2019 — не похоже что VB.Net загибается, взял и обогнал C#.


  1. Zenitchik
    20.06.2019 12:18

    Они больше не могли начинать с 1, как обычные люди. Теперь они должны были начинать с 0, как официальные программисты.

    Но мы никогда так не делали. Эту перемену особо никто не заметил.

    Главной проблемой стало отсутствие доступа к памяти. Вы не игрались с указателями в VB6.0?
    Короче, старым программистам, привыкшим понимать, что где лежит, было, пардон, западло переходить на .net. Продолжать поддержку VB-COM мелкомягкие не захотели, команда энтузиастов для самостоятельного развития поддержки — не собралась, отдельные энтузиасты — быстро сдулись.
    Так не стало языка, в котором легко написать для себя утилитку…


    1. old_gamer
      20.06.2019 12:22
      +1

      Вы не игрались с указателями в VB6.0?

      Указатели в Бейсике… Мьсье знает толк!
      Из прямого доступа к памяти в Бейсике я помню только POKE/PEEK


      1. Zenitchik
        20.06.2019 12:33
        +1

        bbs.vbstreets.ru/viewtopic.php?f=68&t=36100&hilit=%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D0%B8

        Ха. Просвещайтесь :) Для меня это было штатным приёмом посимвольного чтения строки.
        Знаете, сравнивать строки в цикле — плохо, а вот INTEGER — хорошо. Объявляем аргумент типа INTEGER, перепрописываем ему ссылку так, чтобы он указывал на символ строки — вуаля!


        1. old_gamer
          20.06.2019 14:00

          Благодарю, это чудно!


      1. uaggster
        20.06.2019 16:52
        +1

        А также хуки, асинхронная обработка, многопоточность, непосредственный доступ к GDI и всё такое.
        :-)


  1. GrWizard
    20.06.2019 12:41

    Почему не упомянут PDS Basic?
    Это была расширенная версия quick барсика, «для профессионалов»
    Professional Development System Basic, а так спасибо, всплакнул


  1. Adler_lug
    20.06.2019 13:58

    Прямо на ностальгию пробило. Хоть и не стал программистом (в общем и не стремился им стать, но некоторый интерес к этому есть, сейчас немного С# балуюсь для решения простых прикладных задач для себя), но и Quick Basic`ом баловался и на Visual Basic`е калькулятор в техникуме в начале 2000-х делал. Дома где то даже учебник по VB лежит лет 10 без дела…


  1. uaggster
    20.06.2019 16:50
    -1

    Почему то в комментариях не упомянут MS Access.
    Совершенно убойная настольная СУБД, которая достигла апогея к 2010 офису, а потом, как обычно, скатилось в унылое говно.

    Нулевой уровень вхождения в программирование СУБД. Почти настоящий SQL. Сетка, нативно сопрягающаяся с объектами доступа к данным. Сводные таблицы, лучше чем в Экселе (исчезнувшие в 2013+). Написание кода, взаимодействующего с MSSQLSERVER по сложности на уровне ковырянию в носу.
    Многопользовательские (ну, если много — это 2-5 пользователей) — просто так, из коробки, не задумываясь о локах, и вообще — ни о чем не задумываясь.
    И да. VBA.
    Я до сих пор, если мне нужно «прикрутить форму к таблички на MSSQLSERVER», чтобы рота операторов набила себе шишек данных — расчехляю Access.

    … и пишу что-нибудь немного посложнее на VB.NET, потому что переход с Экселевского/Вордового/Акцесовского VBA на C# вызывает визуальную идиосинкразию.
    :-)


    1. uaggster
      23.06.2019 09:14
      -2

      Минусуют, видимо, фокспрошники :-)))