KBasic: за и против

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


Что это вообще и где это взять

KBasic - это RAD-среда для создания приложений на Basic'е. Не на классическом Basic'е, конечно, а на одном из его многочисленных диалектов, который, по словам авторов программы, очень похож на VB.NET, Visual Basic, Visual Basic for Application и Java, а также полностью совместим в плане синтаксиса с VB6, VBA and QBasic. Что значит "RAD-среда"? Полагаю, большая часть читателей знакома с этим термином, однако поясню. Это среда быстрой разработки приложений, предоставляющая программисту компонентную библиотеку для визуального построения графического пользовательского интерфейса приложений, и, в общем-то, не только его. Таким образом, главная особенность среды KBasic состоит в том, что она, как и Visual Basic, позволяет создавать достаточно быстро даже сравнительно сложные приложения.

Где можно найти KBasic? Естественно, на официальном сайте программы, который расположен по адресу kbasic.com. На сайте можно найти дистрибутивы для всех поддерживаемых операционных систем. Поддерживается же их не так уж и много, но для большинства проектов этого будет более чем достаточно. Потому что список поддерживаемых ОС включает в себя тройку самых популярных на настольных платформах ОС: Windows, MacOS X и Linux. Системы эти, конечно, популярны и на серверах, однако для того, чтобы программировать под сервера, нет необходимости в мощных RAD-средствах, предлагаемых средой KBasic.

Стоит отметить, что, хотя на главной странице сайта написано, что "KBasic is the world's most advanced open-source Basic" ("KBasic - наиболее продвинутая реализация Basic со свободным исходным кодом в мире"), на ней же есть и кнопка "Order" ("Купить"). Несколько непривычное сочетание, но, в общем-то, ничего крамольного в этом нет. Дело в том, что далеко не все программные продукты с открытым исходным кодом являются бесплатными. Лицензия на использование KBasic'а, кстати, стоит вовсе не так уж и дорого - всего 25 евро. Согласитесь, несравнимо дешевле, чем лицензии на такие продукты, как Microsoft Visual Studio, CodeGear RAD Studio, или даже RealBasic.

 

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


KBasic вблизи

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

Ориентироваться в среде просто: она сделана таким образом, что любой, кто имеет какой-никакой опыт работы в RAD средах (не суть важно для какого языка программирования и платформы) сможет довольно-таки быстро разобраться с тем, как "рисовать формочки" и писать код в KBasic'е.

В меню, где открываются проекты приложений, есть отдельный пункт "Examples" ("Примеры"). Решение, конечно, несколько необычное, однако, на мой взгляд, более чем удачное. Разве есть способ, позволяющий изучить программирование на новом для вас языке (или, по крайней мере, на новом диалекте известного вам языка) и в новой для вас среде разработки быстрее, чем изучение готовых примеров? Конечно, чтение различных мануалов и доков тоже вещь архиполезная, но примеры живее и быстрее сориентируют вас в ситуации. Документация тоже присутствует, но она вся онлайновая, и поэтому для эффективной работой со средой KBasic будет полезно иметь доступ в интернет. Впрочем, думаю, он и так есть почти у каждого разработчика.

Что касается редактора кода, то он выполнен в KBasic'е на достаточно неплохом уровне, что, впрочем, уже не вызовет особого восторга у программистов, приученных современными средами разработки к максимальному удобству при написании кода. В KBasic'е есть поддержка подсказок по коду, автозавершения и автодополнения. Конечно, для полного "джентльменского набора" успешного современного редактора кода не хватает фолдинга (сворачивания отдельных участков кода) и ещё пары-тройки вещей, которые привнесли в мир редакторов кода разные продвинутые IDE. Но, в общем-то, стоит сказать, что код в редакторе KBasic'а писать весьма удобно.

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

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


Визуальное программирование и библиотека компонентов

Как я уже говорил, использование RAD-возможностей среды KBasic - дело совсем не сложное для того, кто имел дело с RAD-средами. Да и для того, кто не имел, в принципе, тоже - для того RAD и был придуман, чтобы создавать приложения было легко и быстро.

Палитра компонентов у среды KBasic выглядит довольно-таки необычно - впрочем, стоит сказать, что не более необычно, чем пункт "Examples" в меню открытия проекта. Все визуальные компоненты (сиречь элементы управления, или контролы) разделены на три категории: Default, Vista и Leopard. Категория Leopard содержит в себе элементы управления в стиле MacOS X Leopard, категория Vista - соответственно, компоненты в стиле Windows Vista. Все остальные относятся к категории Default. Элементов управления на палитре компонентов немного. В категории Leopard - всего три разных кнопки, в категории Vista - двадцать пять разных элементов управления. В категории Default компонентов, конечно, больше, однако их тоже совсем мало по сравнению с компонентными библиотеками Delphi (VCL) и .NET (Windows Forms). Впрочем, немногочисленность компонентов объясняется наверняка необходимостью их работы под каждой из трёх поддерживаемых платформ. И, в общем-то, если внимательно изучить список предлагаемых компонентов, то можно увидеть, что их с лихвой хватит для львиной доли всех приложений, какие можно написать в KBasic'е. Помимо стандартных компонентов (кнопки, флажки, списки и тому подобные вещи), есть такие компоненты, как просмотрщик HTML-страниц (HTMLView), просмотрщик видео (MovieBox), просмотрщик SVG-графики (SVGBox). Есть даже компонент для работы с последовательным портом, который так и называется - SerialPort.

В общем и целом, можно сказать, что библиотека компонентов в KBasic'е весьма неплоха. Думаю, что со временем она станет больше, да и учитывая открытый исходный код KBasic'а и всех его библиотек, можно с уверенностью сказать, что написание своих элементов управления точно не будет сопряжено с исследованием закрытой внутренней архитектуры библиотеки.


Базы данных

Огромное количество приложений сегодня пишется с одной-единственной целью: облегчить взаимодействие для конечного пользователя с какой-либо базой данных. Поэтому специальная поддержка создания приложений для работы с базами данных сегодня рассматривается пользователями RAD-сред уже не как приятный бонус, а как обязательный компонент набора предлагаемых функций. Давайте посмотрим, как обстоит дело с созданием приложений для работы с базами данных в KBasic'е.

Работу с базами данных KBasic поддерживает. При этом для создания "лёгких" приложений можно использовать встроенный непосредственно в сам KBasic движок SQLite (я когда-то давно тому назад рассказывал о нём в "Компьютерных вестях"), что, в целом, довольно удобно. Но если есть необходимость в чём-то более серьёзном, то можно воспользоваться тем, что присутствует поддержка таких известных и популярных СУБД, как MySQL и PostgreSQL. Ну или другими, только уже через ODBC. Несколько настораживает, правда, тот факт, что на сайте написано "The following databases are (theoretically) supported" ("Следующие СУБД (теоретически) поддерживаются"). Вот это теоретически... Как-то навевает оно всякие нехорошие мысли. В самой среде KBasic есть такой инструмент, как Query by Example, который поможет при конструировании запросов к базе данных. Так что, в общем-то, с базами данных в KBasic'е работать можно (и нужно).


За кадром

Можно было бы, конечно, ещё немного порассказывать вам, что ещё хорошего есть в этой среде (отладчик, например), но я предпочту вам немного рассказать о том, что осталось бы в таком случае за кадром - о некоторых, скажем так, архитектурных особенностях KBasic'а.

За счёт чего обеспечивается кросс-платформенность самой среды и приложений, которые в ней пишутся? За счёт использования библиотеки Qt. Если вы никогда ничего о ней не слышали, можно прочитать статью Михаила Гурчика "Кьют-программирование" ("КВ" №1). В этой статье не рассказывается о том, для чего нужна эта библиотека, зато даётся практический пример её использования. Если вкратце, то Qt - это кросс-платформенная библиотека для создания приложений на языке C++. Соответственно, для работы самой среды и приложений, написанных в ней, под Linux'ом, нужны установленные библиотеки Qt (версии не ниже 4.4). Кстати, за счёт этого можно вызывать функции, написанные на C/C++, не запихивая их в разные DLL'ки или SO'шки.

В связи с тем, что KBasic построен по образу и подобию Visual Basic'a, возникает закономерный вопрос: он тоже выдаёт на выходе наполовину скомпилированные программы, требующие отдельного интерпретатора? В среде KBasic есть и интерпретатор, и компилятор. Интерпретатор используется при отладке программы, а уже когда всё готово и отлажено, можно сделать EXE-файл. Только вот узнать, нужны ли ему какие-нибудь библиотеки для работы, я не смог, потому что в пробной версии компилятор отсутствует как класс - есть только интерпретатор.


Резюмируя

Давайте подведём итог всему, что было сказано о KBasic'е. Эта среда разработки однозначно выигрывает у своих конкурентов-коллег по цеху RAD-сред на Basic'е - таких, как RealBasic и Visual Basic. Хотя бы даже за счёт своей цены. С другой стороны, для действительно серьёзных проектов её использовать, наверное, пока не стоит - она ещё сыровата. Хотя в будущем над этим стоит задуматься: что попроще пишется на Basic'е, а что посложнее на C++, и затем всё вместе соединяется в KBasic'е. В общем, мне эта среда понравилась. Понравится ли она вам - вопрос, на который вы сможете ответить только после того, как скачаете её и попробуете в действии...

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

05 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!
 

Комментарии

Аватар пользователя mike
>В связи с тем, что KDevelop построен по образу и подобию Visual Basic'a, возникает закономерный вопрос: он тоже выдаёт на выходе наполовину скомпилированные программы, требующие отдельного интерпретатора?

??

Аватар пользователя Эдуард
Пользовался языком в свое время, в том числе и в Ворде, для макросов. Но отказался, после того, как он стал Visual, со свойствами, объектами и прочей мутью. Достоинство Бейсика - простота. Вижуал его убил. Скрестили ужа с ежом и получилось "как всегда". Ни простоты, ни удобства, а возможности слабенькие. Для работы с объектами есть более мощные средства.
Аватар пользователя Вадим Станкевич
Простите, конечно речь не о KDevelop, а о KBasic.
Аватар пользователя mike
>Вижуал его [Бейсик] убил.

Нет. Знаю организации, где он активно юзается.