"Феноменальное количество ошибок и несообразностей, делающих Visual
Basic столь очаровательным, подвигли меня начать этот проект". Вот как
Benoit Minisini, 30-летний француз, живущий в пригороде Парижа,
начинает описание своего проекта, названного Gambas.
Gambas - это замена VB для Linux. Не клон, поскольку Benoit'у никогда не нравилась реализация Microsoft: "Кажется, Microsoft осознает низкое качество ее языка, поскольку VB.Net не поддерживает обратной совместимости с предыдущими версиями Visual Basic. Я думаю, они выбросили исходный код интерпретатора Visual Basic, и что VB .Net - это только .Net компилятор реального времени, чей синтаксис похож на Visual Basic."
Так что, Gambas предназначен быть лучше Visual Basic.
Benoit взял от VB то, что посчитал действительно полезным: язык BASIC и легкий IDE. Он также взял несколько идей от Java, создав легкий и мощный язык. Насколько мощный? Полный IDE был создан в самом Gambas, а индикатор уровня его готовности даже не достигал 1.0.
В этой статье мы постараемся описать текущий статус Gambas, и как он соотносится с VB. Мы сравним снимки экрана и исходный код, так что вы можете увидеть полную картину.
Gambas - это не первая попытка с наскока создать замену VB для Linux, но она ближе всего к завершенности.
Фактически? было много других незаконченных попыток создать клон VB для Linux: RapidQ, выкупленный RealBASIC, который сейчас только переправляет Linux запуски без IDE, Phoenix BASIC, который заморожен на 3 года, KBasic затормозился, GNOME Basic перенес фокус на предоставление VBA поддержки для приложений GNOME, XBasic готов, но примитивнее, чем VB, HBasic - достойный претендент, но нестабильный.
С другой стороны, есть множество языков BASIC без интегрированного IDE, и множество IDE без языка BASIC.
Gambas имеет уникальную смесь возможностей, которые помогут тысячам разработчиков на VB перебраться с Windows на Linux. Следовательно, Gambas может принести больше приложений и пользователей в Linux.
И, наконец, разработка компонент Gambas означает для всякого наличие возможности написать GUI компонент, базируемый на GTK+ с тем же интерфейсом, что и QT, так что каждая программа gambas может затем переключаться между QT GUI и GTK+ GUI.
Одна из первых программ, которые вы можете непременно найти в любом языке программирования, это достопочтенная "Hello World".
Sub Command1_Click()
Label1.Caption = "Hello World!"
End Sub
SUB Button1_Click()
Label1.Text = "Hello World!"
END
См. также: How do I... say Hello World in Gambas
Если вы не хотите создавать программу, основанную на форме (form-based), вы можете начать проект без форм и написать код:
SUB main()
PRINT "Hello World!"
END
Есть множество прелестных простых вещиц, которые вы можете сделать с Gambas - и еще нечто, что не может Visual Basic! (В VB есть метод "Print", но он обращается только к отладчику и GDI объектам, подобным принтеру, форме или вместилищу картинки.)
Поскольку Gambas не предназначался быть клоном Microsoft Visual Basic, он все еще BASIC, и есть много сходства между этими двумя языками, и много связей между функциональными возможностями. Есть, возможно, больше сходства, чем различий, но вы можете просто скопировать свои VB проекты и рассчитывать на компиляцию под Gambas.
Из раздела DifferencesFromVB:
VB | Gambas | Тип файла |
---|---|---|
.vbp | .project (только .project, один на директорию) | Файл определения проекта |
.bas | .module | Модуль |
.cls | .class | Файл класса |
.frm | .form | Файл определения формы |
.frx | (все, что хотите) | Двоичные файлы ресурсов |
ByVal
, так что будьте
внимательны, когда вы пытаетесь портировать VB проект.
"Это Unix философия: Пишите программы, которые делают одну вещь, но делают ее хорошо. Пишите программы для совместной работы. Пишите программы для поддержки текстовых потоков, поскольку это универсальный интерфейс." -- Doug McIlroy
Одно из основных преимуществ Gambas над VB в том, что Gambas построен в соответствии с философией Unix. Это значит, вы можете усилить мощь Linux и его тысяч средств вместо написания кода.
Давайте, рассмотрим некоторые примеры.
lynx
-source url
)
Если вы всегда программировали на BASIC, вы почувствуете теплое ощущение от знакомого вам, когда начнете программировать в Gambas.
VB программисты почувствуют полный комфорт с самого начала.
Чтобы понять, что Gambas - это не VB, и VB программистам нужно быть готовыми к некоторым различиям. Но большинство изменений существуют по определенным причинам: чтобы сделать язык лучше. (Важно помнить, что Gambas позаимствовал некоторые хорошие идеи у Java и других языков программирования.)
С Gambas любой может начать программировать графическое приложение сразу, и это приведет больше программистов, и принесет больше приложений в GNU/Linux.
Если вы VB программист, и не чувствуете особого счастья от последних изменений платформы (и сопутствующей цены), вы можете подумать о конвертировании ваших приложений в Gambas.
Разработчики Gambas уже сделали небольшой скрипт, в настоящий момент в версии 0.1, который конвертирует VB формы в Gambas.
Vb2Gb было написано на Perl по причине больших возможностей по обработке текста в этом языке, и вскоре будет реализовано в Gambas.
В VB описание формы и исходного кода смешаны в едином файле. Gambas разделяет это на два файла: описание формы и модуль класса.
Есть также несколько имен управления и свойств, которые мы можем конвертировать автоматически. Например, в VB мы имеем "CommandButtons", тогда как в Gambas (или QT?) они названы просто "Buttons"; свойство "Caption" названо "Text" в Gambas.
Gambas - это самое близкое к VB в мире Linux. Проект не был изначально предназначен заменить миллионы строк VB кода, но предоставляет быстро прогрессирующий инструмент, базирующийся на языке BASIC. Тем не менее, Gambas уже представляет собой инструмент для легкой миграции с собственных приложений VB.
Gambas в постоянном совершенствовании. Его текущая версия рассматривается как alpha программа, поскольку некоторые возможности еще определяются, но Gambas уже используется в таких сложных приложениях, как его собственный IDE. Нет смысла спешить с релизом 1.0, и есть цель - сделать хорошую вещь сразу.
Gambas имеет сетевой график. Некоторые из новых возможностей, которые ожидаются в следующих выпусках:
Согласно Daniel Campos, создателю компонента Network, он достаточно стабилен, чтобы именоваться 'beta' версией, и уже предоставляет некоторые интересные функциональные возможности:
TO-DO: завершить статью с необузданным оптимизмом