Гамбас — название объектно-ориентированного диалекта языка программирования BASIC , а также сопровождающей его интегрированной среды разработки . [4] Разработанный для работы в Linux и других Unix-подобных компьютерных операционных системах , [ 5] его название представляет собой рекурсивную аббревиатуру от G ambas « Почти означает базовый » . Гамбас — это также слово, обозначающее креветки на испанском , французском и португальском языках, от которого произошли логотипы проекта.
Gambas был разработан французским программистом Бенуа Минизини , его первый выпуск вышел в 1999 году. Бенуа вырос на языке BASIC и решил создать бесплатную среду разработки программного обеспечения, которая могла бы быстро и легко создавать программы с пользовательскими интерфейсами. [3]
Версии Gambas 1.x имели интерфейс, состоящий из нескольких отдельных окон для форм и диалогов IDE, аналогичный интерфейсу более ранних версий GIMP . Он также мог разрабатывать приложения только с использованием Qt и был больше ориентирован на разработку приложений для KDE . [6] Последней версией версий 1.x была Gambas 1.0.19.
Первая из версий 2.x была выпущена 2 января 2008 года, после трех-четырех лет разработки. В нем был серьезно переработан интерфейс, теперь все формы и функции встроены в одно окно, а также внесены некоторые изменения в синтаксис Gambas, хотя по большей части совместимость кода была сохранена. В нем были представлены основные обновления существующих компонентов Gambas, а также добавлены некоторые новые, например, новые компоненты, которые могли использовать GTK+ или SDL для рисования или использовать ускорение OpenGL . Версии Gambas 2.x могут загружать и запускать проекты Gambas 1.x, но иногда возникают несовместимости; то же самое верно для версий Gambas 2.x–3.x, но не для версий Gambas 1.x–3.x.
Следующая крупная версия Gambas, версия 3.x, была выпущена 31 декабря 2011 года. [7] Тест 2015 года, опубликованный на веб-сайте Gambas, показал, что сценарии Gambas 3.8.90 в разной степени быстрее, чем Perl 5.20.2 и последняя на тот момент версия Python 2.7.10 во многих тестах. [8] Версия 3.16.0, выпущенная 20 апреля 2021 г., имела полную поддержку Wayland с использованием графических компонентов, а также паритет между компонентами Qt 5 и GTK 3. [9]
Gambas предназначен для создания графических программ с использованием Qt (в настоящее время Qt 4.x или 5.x, начиная с 3.8.0) или набора инструментов GTK (GTK 3.x также поддерживается, начиная с 3.6.0); Gambas IDE написан на Gambas. [10] Gambas включает в себя конструктор графического пользовательского интерфейса, помогающий создавать пользовательские интерфейсы в стиле , управляемом событиями , но также может создавать приложения командной строки , [11] а также текстовые пользовательские интерфейсы с использованием набора инструментов ncurses . [12] Для запуска исполняемых файлов необходима среда выполнения Gambas .
Функциональность обеспечивается множеством компонентов, каждый из которых можно выбрать для предоставления дополнительных функций. [13] Рисование можно обеспечить либо через наборы инструментов Qt и GTK, с дополнительным компонентом, предназначенным для переключения между ними. [14] Рисование также может быть обеспечено через Simple DirectMedia Layer (первоначально версия 1.x, с добавлением версии 2.x начиная с 3.7.0), [15] который также можно использовать для воспроизведения звука через отдельный звуковой компонент ( также добавлен компонент для спецификации OpenAL ). Поддержка ускорения графического процессора доступна через компонент OpenGL , а также другое оборудование, функционально предоставляемое различными другими компонентами. [14] Существуют также компоненты для решения других специализированных задач. [13]
С помощью Gambas разработчики также могут использовать такие базы данных, как MySQL или PostgreSQL, создавать приложения KDE (Qt) и GNOME GTK с помощью DCOP , переводить программы Visual Basic в Gambas и запускать их под Linux, создавать сетевые решения и создавать веб-приложения CGI. В состав IDE также входит инструмент для создания установочных пакетов , поддерживающий GNU Autotools , slackpkg , pacman , RPM и debs (последние два затем адаптированы для конкретных дистрибутивов , таких как Fedora / RHEL / CentOS , Mageia , Mandriva , OpenSUSE и Debian , Убунту / Минт ).
Gambas начиная с версии 3.2 IDE имеет встроенный профилировщик и начал использовать технологию компиляции «точно в срок» .
Gambas предназначен для предоставления аналогичных возможностей разработки в Microsoft Visual Basic , но он не является бесплатным клоном популярной проприетарной программы. [16] Автор Gambas ясно дает понять, что есть сходства с Visual Basic, такие как синтаксис программ BASIC и интегрированная среда разработки; Gambas с самого начала создавался как отдельная среда разработки и стремится улучшить формулу. [17] [18] [19]
Его объектная модель , каждый класс представлен в файле, а также архиватор для упаковки программы вдохновлены языком программирования Java . Gambas призван стать альтернативой для бывших разработчиков Visual Basic, которые решили перейти на Linux. Есть и другие важные различия между Gambas и Visual Basic. Ярким примером является то, что индексы массивов в Gambas всегда начинаются с 0, тогда как индексы Visual Basic могут начинаться с 0 или 1. [20] Gambas также поддерживает сокращения += и -=, которых нет в классическом Visual Basic. Однако обе эти функции являются функциями Visual Basic .NET .
Гамбас также преуспел в двух предыдущих попытках реализовать интерфейс в стиле Visual Basic для Qt и GTK в Linux, [21] [22] это HBasic [23] [24] и GNOME Basic, [25] [26] , а также платформу независимый KBasic/ Basic для Qt . [27] Подобные IDE с тех пор были разработаны и для FreeBASIC , а именно VisualFBEditor, [28] и QB64 , а именно InForm. [29]
Несколько программ и множество примеров кода были написаны с использованием Gambas и для него. Freecode (ранее Freshmeat) перечислила 23 приложения, разработанных с использованием Gambas, [30] в то время как вики Gambas перечислила 82; [31] на нескольких других специализированных сайтах перечислены приложения и код Gambas. [32] [33] [34] Приложение, написанное Gambas, под названием Gambas3 ShowCase, выступало в качестве программного центра для загрузки или установки приложений Gambas 3. [35] С тех пор его выпуск был прекращен после запуска первой партии программного обеспечения Gambas Software Farm, интегрированной в IDE с версии 3.7.1, которая содержит около 500 приложений и демонстрационных версий. [36] [37] Для Gambas также существует несколько общественных сайтов, включая общественные форумы и списки рассылки. [38] Известное приложение, написанное на Gambas, — это Xt7-player-mpv, интерфейс с графическим интерфейсом для проигрывателя mpv , содержащийся в ряде репозиториев программного обеспечения Linux. [39] [40] [41] Коллекция игр comisat представляет собой ранние примеры видеоигр, написанных на языке гамбас. [42]
Gambas включен в репозитории ряда дистрибутивов Linux , таких как Debian , Fedora , Mandriva Linux и Ubuntu . Версия Gambas для Microsoft Windows запускалась в среде Cygwin , хотя эта версия была значительно менее протестирована, чем ее аналоги для Linux, и работала только с командной строкой; Также использовались кооперативный Linux и его производные [43] , а также специализированные виртуальные машины Linux . [44] [45] Независимый участник, Франсуа Галло, также работал над портированием Gambas 3.x на Mac OS X и FreeBSD на основе использования локальных версий системы X11 . [46] Gambas из версии 3.2 может работать на Raspberry Pi и предлагает там компиляцию «точно в срок», начиная с версии 3.12. Его также можно запустить из облака с помощьюrollApp. [47]
В ноябре 2013 года обсуждалась будущая переносимость Gambas, при этом основными проблемами были перечислены функции ядра Linux , используемые в интерпретаторе, компоненты, использующие специальное программное обеспечение и библиотеки Linux, и, в первую очередь, связь с X11 в Qt, GTK и компонентах интеграции с рабочим столом. Однако отчасти из-за необходимости обновления до более новых наборов инструментов, таких как GTK 3 (добавлен с версии 3.6.0) и Qt 5 (с версии 3.8.0), будущие версии будут менее привязаны к X11, что сделает проекты, подобные Cygwin , или полностью нативными. версии на других платформах более возможны. Бенуа Минизини заявил, что он намеревался «инкапсулировать» специальный код X11, чтобы облегчить любую попытку его замены, [48] при этом поддержка X11 в компоненте рабочего стола была перенесена в отдельный компонент с версии 3.6.0.
27 октября 2016 г. на главной странице был опубликован снимок экрана и руководство по настройке для полного запуска Gambas через Cygwin, включая большинство компонентов, графические наборы инструментов и полную среду IDE. [49] [50] Соответствующие патчи были добавлены начиная с версии 3.9.2. [51] Это заменяет предыдущий рекомендуемый метод использования пересылки freenx с сервера Linux . [52] Он также был успешно запущен с использованием подсистемы Windows для Linux . [53] Обычно это делалось с использованием эмулятора X-терминала , такого как Mobaxterm в Windows, [54] поскольку WSL не поддерживала графику X11 напрямую до Windows 11 . [55]
«Привет, мир!» программа с графическим интерфейсом пользователя.
Публичное подглавное () сообщение ( «Hello, World! » ) Конец
Программа, которая вычисляет 100-членный полином 500 000 раз и повторяет его десять раз (используется для сравнительного анализа ).
Частный подтест ( X с плавающей запятой ) Как с плавающей запятой Dim Mu As Float = 10.0 Dim Pu , Su As Float Dim I , J , N As Integer Dim aPoly As New Float [ 100 ] Н = 500000 Для I = от 0 до N - 1 Для J = от 0 до 99 Mu = ( Mu + 2,0 ) / 2,0 aPoly [ J ] = Mu Далее Su = 0,0 Для J = от 0 до 99 Su = X * Su + aPoly [ J ] Далее Пу += Вс Далее Возврат Пу КонецПубличная подглавная страница () Тусклый I как целое число Для I = от 1 до 10 Тест печати ( 0,2 ) Далее Конец
FreeBASIC, который реализует многое из того, что было в Microsoft QuickBASIC (и имеет изящную IDE в виде VisualFBEditor).
QB64 поставляется с WYSIWYG-редактором IDE под названием InForm, который приближает его к повседневному использованию в качестве быстрого и изящного языка автоматизации для Windows.