Введение
Blitz BASIC — это диалект языка программирования первых компиляторов Blitz, созданный новозеландским разработчиком Марком Сибли. Являясь производным от BASIC, синтаксис Blitz был разработан с учетом простоты освоения для начинающих программистов. Языки ориентированы на разработку игр, но часто оказываются достаточно универсальными для использования в большинстве типов приложений. Язык Blitz развивался с выпуском новых продуктов, а современные версии поддерживают более продвинутые методы программирования, такие как объектно-ориентированное программирование и многопоточность. Это привело к тому, что в более поздние годы языки перестали называться BASIC.
История
Первая версия языка Blitz была создана для платформы Amiga и опубликована австралийской фирмой Memory and Storage Technology. Вернувшись в Новую Зеландию, через несколько лет (около 1993 года, согласно этому пресс-релизу) Blitz BASIC 2 был опубликован компанией Acid Software, местным издателем игр для Amiga. С тех пор компиляторы Blitz выпускались для различных платформ. После прекращения существования Amiga как коммерчески жизнеспособной платформы, исходный код Blitz BASIC 2 был передан сообществу Amiga. Разработка продолжается и по сей день под названием AmiBlitz.
BlitzBasic (Блитцбазис)
Idigicon опубликовал BlitzBasic для Microsoft Windows в октябре 2000 года. Язык включал встроенный API для выполнения базовых операций с 2D-графикой и звуком. После выпуска Blitz3D, BlitzBasic часто стали называть синонимом Blitz2D. Популярность BlitzBasic возросла, когда ограниченное количество "бесплатных" версий распространялось в популярных британских компьютерных журналах, таких как PC Format. Это привело к юридическому спору между разработчиком и издателем, который в итоге был урегулирован мирным путем.
BlitzPlus (Блицплюс)
В феврале 2003 года Blitz Research Ltd. выпустила BlitzPlus и для Microsoft Windows. В отличие от Blitz3D, он не включал 3D-движок, но расширил возможности 2D-части языка, реализовав ограниченную поддержку элементов управления Microsoft Windows для создания нативных графических интерфейсов. Обратная совместимость 2D-движка также была улучшена, что позволяло скомпилированным играм и приложениям BlitzPlus запускаться на системах, поддерживающих только DirectX 1.
Блицмакс
Первый компилятор BlitzMax был выпущен в декабре 2004 года для Mac OS X. Это сделало его первым диалектом Blitz, который можно было компилировать на *nix платформах. В мае 2005 года были выпущены компиляторы для Microsoft Windows и Linux. BlitzMax внес самое значительное изменение в структуру языка среди современных продуктов Blitz, расширив систему типов для включения объектно-ориентированных концепций и модифицировав графический API для лучшей совместимости с OpenGL. BlitzMax также стал первым из языков Blitz, использующим UCS-2 для внутреннего представления строк, что обеспечило нативную поддержку строковых литералов, состоящих из не-ASCII символов. Платформенно-независимый набор команд BlitzMax позволяет разработчикам компилировать и запускать исходный код на различных платформах. Однако официальный компилятор и цепочка сборки генерируют исполняемые файлы только для той платформы, на которой они выполняются. Неофициально пользователи смогли настроить кросс-компиляцию с Linux и Mac OS X на платформу Windows. BlitzMax также является первой модульной версией языков Blitz, что повышает расширяемость набора команд. Кроме того, все стандартные модули, поставляемые с компилятором, имеют открытый исходный код и могут быть изменены и перекомпилированы программистом при необходимости. Официальный кроссплатформенный GUI-модуль BlitzMax (известный как MaxGUI) позволяет разработчикам создавать графические интерфейсы для своих приложений на Linux (FLTK), Mac (Cocoa) и Windows. Различные модули, созданные пользователями, расширяют возможности языка, оборачивая такие библиотеки, как wxWidgets, Cairo и Fontconfig, а также предоставляя выбор модулей для работы с базами данных. Также доступен ряд сторонних 3D-модулей, в частности MiniB3D – движок OpenGL с открытым исходным кодом, который можно компилировать и использовать на всех трех поддерживаемых платформах BlitzMax. В октябре 2007 года был выпущен BlitzMax 1.26, включающий модуль рефлексии. BlitzMax 1.32 поставляется с новыми модулями для многопоточности и Lua-скриптов, а большинство функций стандартной библиотеки были обновлены для поддержки Unicode.
Blitz3D SDK
Blitz3D SDK — это 3D-графический движок, основанный на движке Blitz3D. Он позиционировался для использования с C++, C#, BlitzMax и PureBasic, однако его также можно было использовать с другими языками, поддерживающими совместимые соглашения о вызовах.
Модуль Max3D
В 2008 году исходный код Max3D, кроссплатформенного 3D-движка, разработанного на C++, был опубликован под лицензией BSD. Движок был ориентирован на OpenGL, но имел абстрактный программный интерфейс для других графических драйверов (например, DirectX) и использовал ряд библиотек с открытым исходным кодом, в частности Assimp, Boost и ODE. Несмотря на оживление в сообществе Blitz, вызванное тем, что Max3D рассматривался как долгожданный преемник Blitz3D, интерес и поддержка быстро угасли после публикации исходного кода, и разработка в конечном итоге прекратилась. Нет никаких признаков того, что Blitz Research возобновит работу над проектом.
Выпуск с открытым исходным кодом
BlitzPlus был выпущен как открытый исходный код 28 апреля 2014 года под лицензией zlib на GitHub. Вскоре после этого был выпущен Blitz3D как открытый исходный код 3 августа 2014 года. Позже, 21 сентября 2015 года, BlitzMax также был выпущен как открытый исходный код.
Наследие
В 2011 году BRL выпустила новый кроссплатформенный язык программирования Monkey и его первый официальный модуль Mojo. Синтаксис Monkey схож с синтаксисом BlitzMax, но вместо компиляции непосредственно в машинный код, он транслирует исходные файлы Monkey непосредственно в исходный код для выбранного языка, фреймворка или платформы, например Windows, Mac OS X, iOS, Android, HTML5 и Adobe Flash. С 2015 года разработка Monkey X была приостановлена в пользу Monkey 2 – обновленной версии языка, разработанной Марком Сибли.