Blitz BASIC — диалект языка программирования первых компиляторов Blitz [1] , разработанный новозеландским разработчиком Марком Сибли. Будучи производным от BASIC , синтаксис Blitz был разработан так, чтобы его было легко освоить новичкам, впервые изучающим программирование. Языки ориентированы на игровое программирование, но часто оказываются достаточно универсальными, чтобы использоваться для большинства типов приложений. Язык Blitz развивался по мере выпуска новых продуктов, и последние воплощения предлагали поддержку более продвинутых методов программирования, таких как объектно-ориентированное программирование и многопоточность . Это привело к тому, что в последующие годы языки потеряли свое прозвище BASIC. [2]
Первая итерация языка Blitz была создана для платформы Amiga и опубликована австралийской фирмой Memory and Storage Technology. Возвращаясь к Новой Зеландии , Blitz BASIC 2 был опубликован несколько лет спустя (около 1993 года согласно этому пресс-релизу [3] ) Acid Software, местным издателем игр для Amiga. С тех пор компиляторы Blitz были выпущены на нескольких платформах . После упадка Amiga как коммерчески жизнеспособной платформы исходный код Blitz BASIC 2 был опубликован для сообщества Amiga. Разработка продолжается и по сей день под названием AmiBlitz. [4]
Idigicon опубликовал BlitzBasic для Microsoft Windows в октябре 2000 года. Язык включал встроенный API для выполнения базовых операций с 2D-графикой и звуком. После выпуска Blitz3D, BlitzBasic часто называют синонимом Blitz2D.
Признание BlitzBasic возросло, когда ограниченный набор «бесплатных» версий был распространен в популярных британских компьютерных журналах, таких как PC Format . Это привело к юридическому спору между разработчиком и издателем, который в конечном итоге был решен мирным путем.
В феврале 2003 года Blitz Research Ltd. выпустила BlitzPlus также для Microsoft Windows. В нем отсутствовал 3D-движок Blitz3D, но он привнес новые возможности в 2D-сторону языка, реализовав ограниченную поддержку управления Microsoft Windows для создания собственных GUI . Обратная совместимость 2D-движка также была расширена, что позволило запускать скомпилированные игры и приложения BlitzPlus на системах, которые могли иметь только DirectX 1.
Первый компилятор BlitzMax был выпущен в декабре 2004 года для Mac OS X. Это сделало его первым диалектом Blitz, который можно было скомпилировать на платформах *nix. Компиляторы для Microsoft Windows и Linux были впоследствии выпущены в мае 2005 года. BlitzMax внес самые большие изменения в структуру языка в современный ассортимент продуктов Blitz, расширив систему типов, включив в нее объектно-ориентированные концепции, и изменив графический API для лучшего соответствия OpenGL . BlitzMax также был первым из языков Blitz, который представлял строки внутренне с помощью UCS-2 , что позволило реализовать встроенную поддержку строковых литералов, состоящих из символов, не входящих в ASCII .
Платформонезависимый набор команд BlitzMax позволяет разработчикам компилировать и запускать исходный код на нескольких платформах. Однако официальный компилятор и цепочка сборки будут генерировать только двоичные файлы для платформы, на которой они выполняются. Неофициально пользователи смогли заставить Linux и Mac OS X кросс-компилировать на платформу Windows.
BlitzMax также является первой модульной версией языков Blitz, улучшающей расширяемость набора команд. Кроме того, все стандартные модули, поставляемые с компилятором, имеют открытый исходный код и, таким образом, могут быть настроены и перекомпилированы программистом при необходимости. Официальный кроссплатформенный модуль GUI BlitzMax (известный как MaxGUI) позволяет разработчикам писать интерфейсы GUI для своих приложений на Linux ( FLTK ), Mac ( Cocoa ) и Windows. Различные модули, вносимые пользователями, расширяют возможности языка, оборачивая такие библиотеки, как wxWidgets , Cairo и Fontconfig , а также набор модулей баз данных. Также доступен набор сторонних 3D-модулей, а именно MiniB3D [5] — движок OpenGL с открытым исходным кодом, который можно компилировать и использовать на всех трех поддерживаемых BlitzMax платформах.
В октябре 2007 года был выпущен BlitzMax 1.26, в который был добавлен модуль отражения . [6] BlitzMax 1.32 поставлял новые модули потоковой обработки и скриптов Lua , а большинство функций стандартной библиотеки были обновлены таким образом, чтобы они были совместимы с Unicode . [7]
Blitz3D SDK — это 3D-графический движок, основанный на движке Blitz3D. Он был продан для использования с C++ , C# , BlitzMax и PureBasic , однако его можно было использовать и с другими языками, которые следуют совместимым соглашениям о вызовах.
В 2008 году исходный код Max3D — кроссплатформенного 3D-движка на базе C++ — был выпущен под лицензией BSD . Этот движок был ориентирован на OpenGL, но имел абстрактный бэкэнд для других графических драйверов (таких как DirectX) и использовал несколько библиотек с открытым исходным кодом, а именно Assimp , Boost и ODE .
Несмотря на волнение в сообществе Blitz по поводу Max3D как долгожданного преемника Blitz3D, интерес и поддержка угасли вскоре после публикации исходного кода, и в конечном итоге разработка остановилась. Нет никаких признаков того, что Blitz Research снова возьмется за проект.
BlitzPlus был выпущен как открытый исходный код 28 апреля 2014 года под лицензией zlib на GitHub . [8] [9] Blitz3D последовал вскоре за ним и был выпущен как открытый исходный код 3 августа 2014 года. [10] [11] BlitzMax был позже выпущен как открытый исходный код 21 сентября 2015 года. [12]
Blitz Basic 2.1 был хорошо принят журналами Amiga. CU Amiga подчеркнул его способность создавать приложения и игры, совместимые с AmigaOS (в отличие от AMOS Basic ) [13] , а Amiga Shopper назвал его мощным языком программирования. [14]
Программа «Hello, World!» , которая выводит текст на экран, ждет нажатия клавиши и затем завершает работу:
Print "Hello, World!" ; Выводит на экран. WaitKey () ; Приостанавливает выполнение до нажатия клавиши. End ; Завершает программу.
Программа, демонстрирующая объявление переменных с использованием трех основных типов данных ( строки , целые числа и числа с плавающей точкой ) и вывод их на экран:
name $ = "John" ; Создать строковую переменную ($) age = 36 ; Создать целочисленную переменную (без суффикса) temperature # = 27.3 ; Создать переменную с плавающей точкой (#) print "Меня зовут " + name $ + " и мне " + age + " лет." print "Сегодня температура составляет " + temperature # + " градусов." Waitkey () ; Приостанавливает выполнение до нажатия клавиши. End ; Завершает программу.
Программа, которая создает оконное приложение, которое показывает текущее время в двоичном и десятичном формате. Ниже приведены версии BlitzMax и BlitzBasic:
В 2011 году BRL выпустила новый кроссплатформенный язык программирования Monkey и его первый официальный модуль Mojo. Monkey имеет похожий синтаксис с BlitzMax, но вместо прямой компиляции в ассемблерный код он транслирует исходные файлы Monkey непосредственно в исходный код для выбранного языка, фреймворка или платформы, например Windows, Mac OS X , iOS , Android, HTML5 и Adobe Flash .
С 2015 года разработка Monkey X была приостановлена в пользу Monkey 2 — обновленной версии языка Марка Сибли.