company_banner

BASIC. Кроссплатформенное ПО тогда и сейчас

Автор оригинала: Maya Posch
  • Перевод


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

Истоки языка


Еще не так давно BASIC был общепринятым языком домашних компьютерных систем. Причем это не всегда был один и тот же BASIC. Его команды и синтаксис отличались в зависимости от модели ПК, которой он оснащался, будь то Commodore, Atari, Texas Instruments, Sinclair или другие. К счастью, большая часть диалектов проистекала из наиболее популярной реализации, а именно Microsoft BASIC.

Корнями BASIC уходит в академическую сферу, где он изначально создавался как язык, который был бы удобен как для профильных студентов, так и для тех, кто обучался вне традиционных областей STEM (Науки, Технологии, Инженерии и Математики). Унаследовав ряд свойств от популярных языков 60-х годов, таких как FORTRAN и ALGOL, он получил широкое распространение в школьных системах разделения времени. Даже IBM приняли участие в его развитии, выпустив в 1973 году более совершенную версию VS-BASIC. Когда в 70-х годах начали появляться микрокомпьютеры, которые были невелики и одновременно доступны по цене, то вполне естественным для них стало использование именно BASIC.

Преимущество интеграции этого языка в подобные системы было очевидным и заключалось не только в том, что он уже был знаком многим потенциальным покупателям компьютеров, но также и в его возможности выполнять программы без предварительной компиляции. Это было большим плюсом, потому что компиляция требует приличного объема ОЗУ и хранилища, а этими характеристиками микрокомпьютеры тех лет похвастаться явно не могли. Вместо компилирования исходного кода интерпретаторы BASIC преобразовывали и выполняли код построчно, теряя таким образом скорость в угоду гибкости и пониженному потреблению ресурсов.

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

Но это было тогда, а что сейчас? Используют ли этот язык сегодня?

BASIC + джойстик = веселуха


Для начала предлагаю получше рассмотреть принцип действия этого языка. В качестве очень простого, но в то же время забавного, примера его использования мы разберем приложение для Commodore 64, которое перемещает по экрану стрелку, выводя при этом на дисплей ее координаты. В качестве устройства ввода используется джойстик, подключенный ко второму порту. В качестве ПО выступает Commodore BASIC 2.0, являющийся диалектом Microsoft BASIC.

10 S=2: X=150: Y=150: V=53248: GOTO 100
 15 J=PEEK(56320): IF J=127 THEN 15
 20 IF J=111 THEN POKE 56322,255:END
 25 IF J=123 THEN X=X-S
 30 IF J=119 THEN X=X+S
 35 IF J=125 THEN Y=Y+S
 40 IF J=126 THEN Y=Y-S
 45 IF J=122 THEN Y=Y-S
 50 IF J=118 THEN Y=Y-S
 55 IF J=117 THEN Y=Y-S
 60 IF J=121 THEN Y=Y-S
 65 IF X=>252 THEN X=10
 70 IF X=<10 THEN X=252 75 IF Y>254 THEN Y=44
 80 IF Y<44 THEN Y=254
 85 PRINT CHR$(147);CHR$(158);CHR$(17);"X-POS:";X;" Y-POS";Y
 90 POKE V,X:POKE V+1,Y: GOTO 15
100 FOR Z=832 TO 853 : POKE Z,0: NEXT Z
105 FOR Z=832 TO 853 STEP 3: READ J: POKE Z,J: NEXT Z
110 POKE V+21,1: POKE  V+39,7: POKE V+33,0: POKE V+29,1
115 POKE 56322,224: POKE 2040,13: GOTO 85
120 DATA 240, 224, 224, 144, 8, 4, 2, 1

Каждая строка вводится как есть, включая ее номер. Завершив написание кода, переходим на следующую строку, вводим RUN и жмем “Return” (или “Enter”, зависит от клавиатуры). При условии, что все было введено верно, код будет выполнен, и на экране мы увидим:


В этой потрясной игре мы перемещаем стрелку по экрану с помощью джойстика

Так что же в реальности делает код? Как и в любой программе BASIC, он начинает выполнение с первой строки, в данном случае 10. Здесь определяется несколько переменных, после чего с помощью команды GOTO происходит переход к строке 100. В цикле FOR мы выполняем POKE (то есть производим запись в аппаратный регистр) и повторяем это еще в нескольких адресах, обновляя тем самым дисплей на его изначальную конфигурацию. Здесь команда READ используется для считывания констант, определяемых DATA.

Многие из этих адресов памяти напрямую обращаются к видео адаптеру (в C64 это VIC-II). Когда мы используем PEEK на строке 15, происходит считывание содержимого адреса памяти 56322, который соответствует текущим входным значениям на втором порту джойстика. После этого мы проверяем состояние каждого входа с помощью этих значений битов и нужным образом подстраиваем стрелку (строка 90) вместе с ее координатами (строка 85).

Посвященная этой программе страница C64 Wiki включает побитовую версию сравнения. Она должна выполняться чуть быстрее ввиду меньшего количества строк кода. Однако по перемещению стрелки на экране заметить это будет сложно.

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

Интерпретация против компиляции



Знакомая многим картинка: QuickBasic IDE
Интерпретируемая природа BASIC на большинстве компьютеров была как преимуществом, так и недостатком одновременно. С одной стороны, он был очень гибок и позволял просто запускать программы, а также быстро их изменять, не требуя длительных циклов компиляции (как минимум на процессоре Z80 или 6502 с частотой < 10МГц). С другой стороны, ошибки в коде оставались незамеченными вплоть до момента выполнения программы интерпретатором. А это вело к такому же веселью при разработке, что и современные скрипты JS и Python, где код будет отлично выполняться, пока интерпретатор внезапно не выдаст сообщение об ошибке (это если повезет).

В случае BASIC данный казус обычно проявлялся в виде “ Syntax error on line <....>”. При этом прогон того же кода через компилятор все эти ошибки бы выявил. Такая особенность интерпретируемых программ означала, что эффективность легкого распространения кода в виде листингов в компьютерных журналах и справочных руководствах определялась качеством печати и навыками самого вводящего этот код программиста. К счастью, на C64 и аналогичных системах исправление ошибочно введенных строк реализовывалось очень легко. Достаточно было ввести ее повторно, нажать “Return”, и интерпретатор производил обновление.

BASIC сегодня


Хотелось бы сказать, что все отлично, но сегодня уже никто не достает из кладовых тот старый C64, чтобы на досуге написать программу BASIC. За исключением, конечно, увлеченных любителей винтажных систем. И все же стоит заметить, что жизнь BASIC не закончилась с эпохой Commodore и Atari, и позже в Microsoft были разработаны его обновленные версии Visual Basic, Visual Basic for Applications (VBA) и VB.NET. На последнем можно писать VB-код для среды выполнения .NET.


PureBasic Visual Designer

Помимо этого, в 2008 году Microsoft выпустили Small Basic, нацеленный на начинающих программистов, например студентов, ранее использовавших визуальный язык программирования вроде Scratch. Причем его не стоит путать со SmallBasic, являющимся открытым (под стандартной общественной лицензией) диалектом BASIC с сопутствующими интерпретаторами для современных платформ.

Диалекты BASIC также можно встретить во многих графических и программируемых калькуляторах от Yi, HP, Casio и других производителей, хотя многие из этих диалектов не совместимы напрямую с изначальным стандартом BASIC (ISO/IEC 10279:1991). В процессе своего развития этот язык перешел от обязательной нумерации строк к перемещению по коду с помощью меток, а также обрел новые техники программирования. Эти изменения были введены в его обновленную версию QuickBasic в 1985 году и остаются актуальными по сей день.

Среди других реализаций можно выделить коммерческий PureBasic от Fantaisie Software, который предоставляет IDE и компилятор для ряда целевых платформ. TrueBasic, в свою очередь, является современным пакетом инструментов, включающим IDE, чей синтаксис больше приближен к FORTRAN. Разработан же он был самими создателями оригинального языка – Darthmouth BASIC.

Что касается современных открытых интерпретаторов и компиляторов BASIC, то к ним относится Chipmunk Basic, восходящий еще ко времени Apple Macintosh, а также GW-BASIC от Microsoft, чей код был раскрыт не так давно. Кроме того, вокруг этого языка сформирована здоровая OSS-экосистема. Если же ничто из этого вас не тронет, то еще есть Tiny BASIC, использующий синтаксис в форме Бэкуса-Наура, как описано в первом выпуске “Dr. Dobb’s journal” 1976 года. Несколько лет назад один из авторов Hackaday, Том Нарди, описал свой опыт переноса своего старого QuickBasic-проекта 90-х годов в современный формат с помощью QB64.

Подходящее применение


Становится очевидным, что BASIC не просто жив, но еще и повседневно используется в коммерческих формах, бесчисленных открытых проектах и деятельном сообществе увлекающихся ретро-компьютерами людей. Это конечно спорное заявление, но он по-прежнему годится в качестве языка для освоения программирования. Кроме того, благодаря более низким системным требованиям BASIC отлично подходит для создания встраиваемых приложений, что обычно делается на MicroPython и подобных языках. К примеру, несколько лет назад мы писали о микроконтроллере ARM, который поставлялся с интерпретатором BASIC на борту.

На GitHub также можно найти проекты, подобные UBASIC PLUS, который предназначен для STM32F0 и требует всего 8Кб ОЗУ и 64Кб флэш-памяти. Еще один проект для ARM и PIC32 (а также для DOS и Windows) – это MMBasic, требующий 94Кб флэш и минимум 16Кб ОЗУ.

BASIC развивался в эпоху, когда у домашних ПК было меньше памяти и хранилища, чем у сегодняшних микроконтроллеров за $5. В связи с этим он оказывается прекрасным нетребовательным к ресурсам языком для случаев, когда нужно использовать интерпретируемые скрипты, а не скомпилированные двоичные файлы, и избавляет от необходимости приобретать микроконтроллер с большим объемом ОЗУ и флэш-памяти.

А пользуетесь ли вы, дорогой читатель, какой-либо формой BASIC сегодня?

Если да, поделитесь в комментариях своим опытом и советами для тех, кто может заинтересоваться этим языком, будь то на настольном ПК, винтажных-системах или встроенных.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Используете ли вы какой-либо диалект BASIC и как часто?

  • 6,6%Регулярно18
  • 8,7%Иногда в качестве хобби24
  • 57,4%Использовал когда-то…158
  • 1,1%Не знал о нем до прочтения статьи3
  • 26,2%Нет72
RUVDS.com
VDS/VPS-хостинг. Скидка 10% по коду HABR

Комментарии 64

    +5

    Первый компьютер был клон спектрума — http://www.leningrad.su/museum/show_calc.php?n=338
    Было мне 4-6 лет, писал всякую дичь, вроде игры "угадай число", да игрался с функциями вывода графиков.

      0

      О, а я примерно в таком же возрасте вот с этим игрался. Ностальгия!

        0

        Ваш был гораздо интереснее, зависть!
        С другой стороны, будь у меня поиск, не факт что я увлёкся бы программированием)

          +1

          Ну почему же, у меня сработало :) Принцип "хочешь игру – напиши" работал и тогда, так что писали всякие "Поле Чудес" и сами же играли.

      +5

      Регулярно использую VBA Excel, изредка саппорт старых проектов на VB6.

        0

        Тоже часто, VBA Excel конечно, не совсем уж бейсик) Но для написания простейшего скрипта подходит. Тем более на старых машинах...

        +2
        Я только в школе с ним поработал в свое время:) Тогда это был QBasic на 486-х… Интриговало! Только потом в класс добавили два Pentium с Windows 95, но допуск был к ним строго ограничен!
          +1
          Эх, сколько диалектов было… Начинал с Агата-9, частичного клона Apple][ с каким то клоном яблочного интерпретатора, компьютеры в школе установили, все тетради в BASIC программах были исписаны с соответствующими провалами в гуманитарных науках, Вильнюс бейсик БК-0010, Синклер бейсик, GW, Q, Qiuck, Turbo от Borland, Visual… Но уже лет как 25 не написал ни одной строчки на нем.
            +7
            Скрин QuickBASIC есть, а написать про него забыли. В нем была пара киллер-фич: редактор, который по мере ввода строк проверял синтаксис, компилятор, умеющий генерировать автономные exe-шники, и работа с мышью и прерываниями DOS. Это было пределом мечтаний школьника :)

              +2

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

                +1
                А еще в справке были примеры кода :)
                  +1
                  А сами процедуры и функции были полноценными, с входными параметрами, локальными переменными и возможностью рекурсивного вызова. Я, правда, только с QBASIC сталкивался. Он автономные exe-шники делать не умел, но зато сам по себе для работы требовал единственный файл qbasic.exe
                0

                Я до сих пор поддерживаю несколько проектов на vb.net
                на мой взгляд язык очень достойный получился, жаль что микрософт его решила прикопать...

                  0
                  Раз уж упомянули Commodore BASIC, то стоило напомнить, что там было одно из первых (1977) «пасхальных яиц» в истории коммерческого софта: недовольный тем, что из Commodore BASIC перед выпуском удалили упоминания Microsoft, Гейтс встроил в интерпретатор секретную команду WAIT6502, которая печатала на экране восемь заветных букв.
                    0
                    «WAIT 6502, 1»
                    +1
                    Разве не девять?
                    0
                    Виртуальная аппаратная Basic-машина от Wilke Technology GmbH. Многозадачная OS с программированием задач пользователя в синтаксисе Basic.
                    Линейка взаимозаменяемых вычислительных модулей с начинкой разной производительности, когда-то минимальным микроконтроллером был 8051. Пользователя начинка не касается, у него есть стандартный интерфейс и среда разработки, он просто пишет дополнительные задачи и по мере роста проекта меняет микросборку на плате. Если захотелось сделать шаг вверх — меняет плату. Задачи продолжают работать без модификации.
                    Линейка совместимых плат, горы совместимой периферии.
                      +1
                      Писал всё, что угодно на спектрум-бейсике, но скорости сразу перестало хватать и перешел на асм. Попутно попробовав паскаль. Кстати, паскаль по скорости на спектруме был самым быстрым компилируемым языком высокого уровня, быстрее чем си и откомпилированный бейсик.
                        0
                        Это HiSoft Pascal вы имеете ввиду? Помню был приятно удивлён, что мой Спектрум нормально читает с дискет паскалевские файлы лаб, над которыми корпели в универе на Мазовии с Турбопаскалем (кажется пятым). Можно было работать над кодом (с ограничениями, конечно) и там и там. Такая «айбиэмсовместимость» прям окрыляла)
                        0

                        10 Цыркле 127,95,95
                        20 плот 0,0
                        30 драв 255,191
                        40 плот 255,0
                        50 драв 0,191
                        60 паузе 0


                        Примерно такая моя первая программа))

                          0
                          В каком это бейсике была PLOT вместо PSET и PAUSE вместо SLEEP?
                            +8

                            Естественно Sinclair

                              0
                              PAUSE vs SLEEP были в QBasic vs TurboBasic. поэтому код не перносился без корректировки. Но зато QBasic быв в винде искаропки, а TurboBasic умел делать экзешники.
                              0
                              PRINT PEEK 23733

                              255

                              (c умным видом)
                              Реакция — Боже, он хакер!
                              эх. юность, спектрум
                                0

                                Переписывание дампов из книг, да журналов помню. Пока не начал изучать ассемблер, выглядело какой-то магией.
                                А иногда дампы были без контрольной суммы в конце строки. В случае ошибки потом больше времени тратилось на её поиск, чем на первоначальный ввод.))

                              +1

                              PureBasic прекрасен для быстрой разработки небольших программ.
                              Когда-то писал на нем небольшие утилиты для личных нужд — в ограничение триала (по-моему 900 строк кода и нельзя использовать Win32 API) можно очень много чего уместить.
                              То, что он при этом умеет компилировать в нативные win32/linux/macOS gui приложения без присядки, это чудо :)

                                0
                                Купил лицензию лет 10 назад, до сих пор пишу на нем мелкие утилитки для рабочих задач. Еще меня в нем подкупает мелкий размер получающихся EXE файлов.
                                0
                                А Turbo Basic? Он умел компилировать в настоящий исполняемый файл, а Visaul Basic создавал некий псевдокод который требовал vbrun или как там она называлась.
                                  0

                                  Турбо Бейсик делал точно также: там к экзешнику целиком добавлялся весь турбобейсик )) поэтому минимальный размер исполняемого файла был равен размеру турбобейсика

                                    0

                                    Минимальный размер ехе файла килобайт 60, а размер Turbo Basic 200 КБ

                                      0
                                      По крайней мере на ЕС-1840 была радикальная разница в скорости исполнения. Я будучи подростком тогда написал частичный клон одной досовкой игры (lost mission?) и екзешка турбо бейскика работала реально шустро, особенно при загрузке уровня.

                                      P.S.
                                      Вот уж не ожидал, что смогу всё это вспомнить…
                                      Всё хранилось на 5" дискетах — где они сейчас могут быть? Хотя наверно размагнитились давно…
                                      0

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

                                      0
                                      10 лет развивал систему, работающую на связке MS SQL Server + VBScript. Достаточно серъезные компании использовали его вплоть до 2016 года. Такой себе микро-ERP: FI, CO, Asset Management, Tax, HR, AP/AR, Budgets, Contracts, Treasury, простенькое производство, и еще куча всего, вплоть до управления ценными бумагами.
                                      Как это все работало — до сих пор с трудом в голове укладывается.
                                      «Так „Дядю Ваню“ еще никто не ставил»(с)

                                      p.s. А были еще Mega-Basic (на Синклере, с поддержкой спрайтов), MSX-Basic, БК-0010, QuickBasic, GW-Basic, MS Basic… Ужасть
                                        0

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

                                          0
                                          А у Фортрана развиты средства доступа к аппаратуре? Графор помню, вероятно он привязан к оборудованию. А так вроде бы чистая математика, не омрачённая всякими PEEK/POKE. Всё же Basic создавался как учебный язык для слабых компьютеров, где требовались трюки с железом, чтобы хоть как-то работать. Fortran писался для больших машин, где доступ к железу был уделом людей в белых халатах. Возможно, в этом дело.
                                            0

                                            Вопрос в несколько другой плоскости. У разных Бейсиков бывает GO TO или GOTO, обратный слэш или двоеточие для разделения нескольких операторов в одной строке, CHR$ или CHR, KEY или INKEY$, DEFM или DIM, распространяемый, соответственно, на все переменные, или только на одну, обязательный или необязательный THEN или LET, команды, придуманные лично разработчиками интерпретатора, вроде LETC или INK, и даже такой шедевр, как ASCI с одной I. В общем, как шаурма или шаверма. В Фортране подобное кажется невозможным.


                                            Другое дело, что можно ручками программу с любого Бейсика на любой перевести, но это уже творческий, а не механический процесс.

                                          +1
                                          Мне недавно пришлось объяснять школьнику, что такое рекурсия и как её использовать. После нескольких неудачных попыток объяснить с опорой на тот язык программирования, с которым мы работали (C#); после приведения нескольких простых примеров, что тоже не помогло, я от отчаяния ввёл иллюстративный язык программирования.

                                          Этот язык был близок к BASIC, и в нём были команды, аналогичные GOTO, GOSUB, RETURN и IF-THEN, а также понятие стека. Тогда, наконец, зашло.
                                            0
                                            Rapid-Q Basic это кросcплатформенный BASIC язык с возможностью создания как GUI, так и консольных приложений (включая CGI приложения).
                                            Rapid-Q поддерживает Windows 95 / 98 / NT / 2000, Linux / i386, Solaris / Sparc, and HP-UX.
                                            Rapid-Q является полностью FreeWare.
                                            Rapid-Q поддерживает большинство команд QBasic. Если вы хотя бы немного знакомы с QBasic, изучение Rapid-Q будет несложным.
                                            Rapid-Q поддерживает:
                                            — визуальное создание форм; ( по факту-нет)
                                            — вызовы DLL;
                                            — поддерживает MySQL, DirectX, частично Direct3D, Sockets, COM;
                                            — объектное программирование и многое другое.
                                            ====
                                            FreeBASIC — язык программирования высокого уровня по синтаксису наиболее близкий к QuickBASIC, а также компилятор для него (FreeBASIC Compiler)
                                            Компилирует QBasic и FreeBASIC код в 32 и 64-битные исполняемые Win32, DOS (в защищённом режиме) и Linux x86 модули.
                                            Поддержка Юникода.
                                            Множество встроенных типов переменных (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, Boolean, String, ZString, WString).
                                            Типы данных определяемые пользователем (бесконечная вложенность, Union, тип поля (array, function, bit fields)).
                                            — Ну и там много чего
                                              0
                                              Rapid-Q Basic запустили под Raspberry Pi OS —
                                              0
                                              The HotBasic compiler uses an extended BASIC language to produce CONSOLE, CGI, GUI, DLL, and OBJ application types. With HotBasic, software developers create truly compiled Windows and Linux applications with a tiny footprint and rock-solid stability.
                                                0
                                                BASIC — отличный язык программирования, у которого есть только один недостаток: в каждой реализации этот язык — уникален, поэтому никто в итоге не може сказать, что такое BASIC.

                                                Относительно современных реализаций — пользовался FreeBASIC лет 7 прошло с последнего «захода». Несмотря на (соответствующие истине) декларации совместимости с QuickBASIC, по сути этот режим является для FreeBASIC абсолютно не родным. По сути же FreeBASIC — это в некий гибрид Си и классического BASIC: в FB есть работа с указателями, многопоточность, есть «объекты», но далёкие от классического ООП (простое расширение для TYPE), статическая типизация является принудительной. Вне режима совместимости на нём не получится писать в полусознательном состоянии что-то такое разудалое, весёлое и аморфное — FreeBASIC вполне нормальный, «взрослый» язык. Из реальных недостатков — его компилятор генерирует не очень эффективный код, на объёмных вычислениях это становится особенно заметно. Я как-то делал вычислительный бенчмарк простейший — у nodejs получалось время вычислений в районе 1.1 сек, а на FreeBASIC — 0.85 (на Python — 2.5 сек, Perl — 3.2 сек), что с учётом разницы между интерпретатором и компилятором выглядело, мягко говоря, не очень. К памяти программы на FB не требовательны, но с т.з. эффективности кода совсем не поражают воображение. Впрочем, для студенческих курсовых в МИХМе/МГУИЭ мне его хватало с лихвой даже на древнем Intel Celeron 500.

                                                Да, чуть не забыл! Gambas же — самый простой способ создать GUI-приложение для Linux. По сути «скриптовый» язык для GUI, позволяющий тем не менее создавать интерфейсы любой сложности. При ещё и OpenSource. О Gambas была интересная серия статей в журнале Linux Format, не помню уже, в каком году.
                                                  0
                                                    0
                                                    Из реальных недостатков — его компилятор генерирует не очень эффективный код, на объёмных вычислениях это становится особенно заметно. Я как-то делал вычислительный бенчмарк простейший — у nodejs получалось время вычислений в районе 1.1 сек, а на FreeBASIC — 0.85 (на Python — 2.5 сек, Perl — 3.2 сек)

                                                    Вот такого не замечал, FreeBASIC реально быстрый. А не сохранился ли это бенчмарк? Интересно было бы испытать )
                                                    0
                                                    В 2000 году на конференции Gemplus во Франции MS предлагала свои карточки с VB. Тогда еще появлялись первые экземпляры Java карт (для банковских платежных и пр.).
                                                    Но, по видимому боссы в MS решили что это направление не перспективно.
                                                    RIP VisualBasic for Smart Card.
                                                    А иначе, возможно, весь мир бы жил на на Java картах, а на MS VB картах.
                                                      0
                                                      Свою первую программу под MS-DOS я написан на QBasic, с компилятором, года 83 или 85, что-то в этом духе. Потом был Turbo Pascal, показался сильно сложнее бейсика, удовольствие от работы ниже, но скорость выполнения откомпилированной программы была сильно выше, а размер исполняемого файла меньше.
                                                      Свою первую программу с графическим интерфейсом под Windows (не помню, правда, под какой) я писал на Visual Basic 3.
                                                      Всё просто, логично и лаконично и понятно. Прямо удовольствие в чистом виде.
                                                      После был Borland Delphi, но недолго, не понравился, а вот Borland C++ Builder зашел очень хорошо. Даже выпускная работа была на нём написана, веб-чат для Internet Explorer с серверной частью в виде написанной на Borland C++ Builder DLL библиотеки для работы с Internet Information Server. Об веб сервере Apache на фре я узнал только лет через 5 после этого.
                                                      Спустя лет 15-20 попробовал написать что-то в среде QT Creator.
                                                      Точно так же накидываешь на форму компоненты, а оживить всё это дело не получилось.
                                                      Непонятная структура проекта, всё слишком усложнено и нелогично совсем.
                                                      Раньше было лучше.
                                                        0
                                                        Вернитесь к BASIC, Gambas Вам в этом друг и помощник! :)
                                                        0
                                                        До сих пор использую программу для работы с базой тестов и проведения тестирования, которую написал на Visual Basic больше 10 лет назад.
                                                          +1
                                                          В школе изучал Бейсик, ходил в кружок программирования и писал много «интересных» программ.

                                                          А в институте начали изучать Паскаль, и это была боль. Как же нас били по рукам, заставляя отказываться от GOTO и прочих бейсиковых штучек. А еще надо было объявлять все переменные, и еще кучу разных заморочек… Но со временем привык.

                                                          А к Бейсику я потом ненадолго вернулся, когда писал макросы для MS Office, а потом дергал их через OLE из программы на дельфях. Юзера любили наблюдать, как у них на глазах создается документ, вводится и форматируется текст.
                                                            +1
                                                            Классная статья, жаль что в школе у нас бейсику мало времени уделяли, в приоритете был паскаль
                                                              0
                                                              В школе начинал познавать программирование с турбо паскаля 7.0 но QBASIC нравился больше. В Visual Basic очень долго вникал, в эти принципы ООП, в целом в визуальное программирование, но таки не понял зачем в моих задачах этот оверхед, не зашло, да и .net я не люблю, поэтому всё ещё пишу в процедурном стиле на PureBasic(транслятор в fasm), Basic4Android(транслятор в Java) и Autoit.
                                                                0
                                                                Когда я был школьником (мне 27) у меня ещё не было компьютера, но был интерес. Тогда была такая штука, как Mobile BASIC на J2ME платформе — хоть и было немного не удобно писать код на телефоне, но зато эмоций от работающей программы было уйма.
                                                                  0
                                                                  Тогда была такая штука, как Mobile BASIC на J2ME платформе
                                                                  — хоть и было немного не удобно писать код на телефоне

                                                                  Кстати. А существуют ли нынче подобные штуки для Андроида, но только, чтобы можно было на мобиле запускать perl-скрипты (ну или программы на других языках, в т.ч. и на Бейсике)?

                                                                    0
                                                                    Есть OwnLang под Андроид, всякие интерпретаторы есть.
                                                                  0
                                                                  Кстати, что из современных интерпретаторов BASIC ближе всего к Turbo Basic? Желательно под Linux чтоб был в первую очередь? Там даже что то типа Turbo Vision было или я путаю?
                                                                    0

                                                                    До сих пор работают написанные в Turbo бейсике программы бухучета.

                                                                      0

                                                                      На микроконтроллерах Бейсик наверное всё-таки не зайдёт — разные сценарии использования. На старых домашних компьютерах программное обеспечение вводится, а иногда и с начала разрабатывается конечным пользователем на самом компьютере. Поэтому нужно иметь относительно удобный интерфейс для выполнения этих задач непосредственно с компьютера. А на микроконтроллерах, во-первых, пользователю не нужно иметь доступа к коду ПО (только если он не разработчик), а во-вторых, на МК ПО загружается с более мощного ПК разработчика со средствами отладки, впихивать в сам МК средства разработки и интерфейс пользователя для редактирования программ не нужно. Поэтому на МК лучше использовать компилируемый (а не интерпретируемый) язык, чаще всего Си.
                                                                      Бейсик сейчас мог бы быть популярным в качестве скриптового языка, но в сфере скриптовых языков сейчас лидирует Python. VBA был последним популярным Бейсикоподобным скриптовым языком, но у него есть серьёзный недостаток — он привязан к одной платформе, MS Office / Windows. Хотя в LibreOffice есть свой аналог VBA, тоже основанный на Бейсике, API там не совсем совместим.

                                                                        0
                                                                        Синтаксис не определяет возможность или невозможность создания компилятора/транслятора.
                                                                        Выше в комментарии приводил пример семейства микроконтроллеров, программируемых на Basic.
                                                                          +1
                                                                          Почему VBA последний? Autoit тоже довольно мощный скриптовый язык, причём очень простой. Мне он прямо зашел лучше VBA и питона. Но да, только для Windows.
                                                                            +1
                                                                            Поэтому на МК лучше использовать компилируемый (а не интерпретируемый) язык, чаще всего Си.
                                                                            Бейсик сейчас мог бы быть популярным в качестве скриптового языка, но в сфере скриптовых языков сейчас лидирует Python.

                                                                            Ну так на Python и программируют МК, вполне успешно и популярно.
                                                                            На его месте вполне мог бы быть Бейсик, если бы MS — тридцать лет бывшие лидерами бейсикостроения — не забросили его в нулевые.
                                                                            0
                                                                            На компьютере Правец 8Д был Бейсик и мы написали на нём клон Сокобана. Причём сам Сокобан я в тот момент не видел, пришлось придумывать уровни самостоятельно.
                                                                            Ещё конечно же пользовался Бейсиком на Спектруме.
                                                                              0
                                                                              На спектрум-бейсике я писал редактор уровней для сокобана, с записью уровней на диск. Сам сокобан тоже был на бейсике, я его переписывал с какой-то книжки, в последствии только добавил загрузку новых уровней.
                                                                              0

                                                                              Первую программу не на листочке писал на http://yabasic.de/ (он всё еще поддерживается!) — потому что его интерпретатор оказался на CD-приложении к «Миру ПК» (а вот он почил с миром). Там, конечно, был еще и FreePASCAL, но с ним я не разобрался, а к YaBasic прилагалась инструкция с красочными примерами :)


                                                                              Конечно, эта штука была уже только под Windows, зато была возможность шпарить в консоль цветным выводом (я делал менюшки в стиле DN) и график в отдельном экране (кое-как сделал мышекликовый монохромный Paint — на тот момент цветной графики еще не было).


                                                                              Эх, жаль исходники канули в бездну...

                                                                                0

                                                                                Не упомянут тут нигде WordBasic — предшественник VBA.


                                                                                В ВордБейсике тоже была такая среда разработки, в которой диалоговые окна тоже можно было ваять. Это было в винворде, кажись, так называемой 6-й версии — в 90-х годах.


                                                                                На ВордБейсике тогда я наваял тогда макрос, который из сборника стихотворений выбирал заголовки стихотворений и вставлял их в содержание. Процесс был интерактивным, т.е. про каждый найденный заголовок задавался вопрос — правильно ли найден заголовок или его надо уточнить. Ну и внизу в вариантах ответов на вопросы уточнения я вставил кнопку со смыслом, понятным из надписи на ней "Дальше я как нибудь сам". Ну это на случай, если видишь, что все заголовки макрос дёргает правильно. Ну тогда этой кнопкой разрешаешь ему остаток содержания построить самостоятельно (своим "искуственным интеллектом") уже без помощи инлеллекта естественного (без помощи оператора то бишь).


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

                                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                Самое читаемое