Lf329, SoftwareDevelopment Gambas Бейсік під Linux
Jonás Alvarez кілька років працював розробником додатків під UNIX та Windows. Серед інших речей, він провів кілька курсів з операційних систем, мереж та розробки.
Переклад українською:Дмитро Щербаков
Gambas: Бейсік під Linux
Gambas є одним з доступних в даний момент Бейсиков для Linux. У цій статті ми розробимо невеликий приклад, де зможемо побачити простоту та міць Gambas'а для щоденних завдань.
_________________ _________________ _________________
Basic - одна з найбільш розширених та найлегших мов програмування, головним чином для новачків. Досі найпоширенішим середовищем розробки додатків на Basic'e був Microsoft Visual Basic IDE. Останнім часом Linux поширюється на системи користувача. З часів, коли вона була лімітована серверами і використовувалася гуру, вона стає ОС для клієнтів, даючи відповідь на такі потреби, як читання електронної пошти, серфінг мережі та редагування тексту. Дотримуючись цієї тенденції, зараз є кілька середовищ розробки на BASIC'e. Gambas - це графічне середовище для розробки програм на BASIC'e, про яке йдеться у цій статті. Стиль програмування подібний до стилю програмування на Visual Basic'e, але, як ми побачимо пізніше, є і відмінності. Я використовую версію 0.64а, яка є у моєму дистрибутиві SuSE 9.0. Під час написання цієї статті, на сторінці проекту gambas остання версія 0.81, але це не повинно торкнутися цієї статті.
Хто буде зацікавлений у Gambas'і?
Я розробляв програми під Visual Basic якийсь час, тому мені більше не потрібно було, аніж просто почати працювати, щоб розробити цей приклад. Крім того, це - перший раз, коли я торкаюся Gambas, що доводить, що будь-хтоколи-небудь використовував Visual Basic, його можна використовувати. Для інших, це може бути прикладом того, яким простим і корисним BASIC може бути для багатьох речей.
Я люблю навчатись під час дії, тому ми почнемо з прикладу. Це дуже простий додаток, який має свій секундомір зі зворотним рахунком на екрані. Ми можемо змінити час, зупинити та запустити його коли захочемо.
Відразу після запуску Gambas'a ми побачимо його помічника:

Ми оберемоNew Project(Новий проект). У наступному вікні ми запитаємоProject Name(Ім'я проекту). Назвемо наш проектCountDown. У другому діалозі виберемоproject directory(Папку проекту). Ми виберемо нашу робочу папку, і в текстовому рядку внизу напишемо ім'я папки, яку збираємося створити.

Якщо ми запустили Gambas вперше або не деактивували опцію, побачимо підказку дня. Читаємо, що нас цікавить, та закриваємо вікно. Ми вже серед розробки, готової до роботи. Ми бачимо кілька вікон на робочому столі. Якщо ми в середовищі, такому як KDE, з кількома робочими столами, ми, можливо, захочемо присвятити один із них Gambas'у, тим самим маючи всі вікна під контролем. Одна з перших опцій, які я зазвичай активую в KDE, - щоб кожен робочий стіл показував власні значки.
Ми збираємось створити головну форму програми. Для цього робимо правий клік миші в будь-якій частині вікна проекту і створюємо нову форму.

У наступному вікні ми вказуємо ім'я форми, у цьому випадкуFCountDown, з усіма значеннями за промовчанням.

У нас вже є перша форма, яка поки що порожня.

Ми клацаємо на елементах панелі інструментів, які ми включатимемо в нашу форму. Ми можемо побачити його назву, проводячимишею над кожним елементом. При подвійному натисканні елемент буде поміщений у верхній лівий кут форми. При одиночному клацанні ми розмістимо його, змінюючи розмір у будь-якій частині форми. Для нашої програми нам потрібні: Мітка (Label), текстове поле (TextBox), Таймер (Timer), дві кнопки (Button) та Перемикач (ToggleButton).

Коли всі елементи на місці, у нас має вийти щось схоже на це: (більш-менш кожен елемент ми можемо помістити, де захочемо):

Як тільки всі елементи на нашій формі, змінюємо їхні імена на такі, які будуть для нас щось означати. Для цього редагуємо властивістьNameна сторінці властивостей. Ми не бачимо сторінку властивостей на екрані, її можна активувати з вікна проекту кнопкою властивостей. Ми можемо підводити мишу до кнопок і стежити за підказками, що спливають, щоб знайти те, що нам потрібно.
Я назвав елементLabel1lblContador:Я натиснув на елемент управління і на панелі властивостей я можу змінити його ім'я. Для цього я редагую властивістьName, присвоюючи йому значенняlblContador. Потім я змінюю шрифт, роблячи його більшим. Для цього у властивостіfont(шрифт) я вибираю шрифтCourier Bold 72і приймаю (OK). Так само я зміню ім'я елементаToggleButton1наtglFuncionando. ЕлементTextBox1ставtxtSegundos,Timer1ставclkMiReloj,Button1стаєcmdPonerSegundosі, нарешті, я перейменувавButton2наcmdSalir. Також я змінивAlignment(вирівнювання)txtSegundosнаRight(право).
Отже, починаємо писати код Basic'а. Він дуже простий та його синтаксис не дуже строгий. Що ми зробимо спочатку, так це надамо текстам, які бачимо на формі, більш реальні значення. Хоча багато опційвідмінні від Basic'а, ми могли б це зробити в кожному вікні властивостей даного елемента, ми все одно отримали б той самий результат.
До цього моменту ми вже маємо форму, яка працює. Вона не робить нічого корисного, вона дозволяє нам зрозуміти, що ми зробили, тому варто спробувати. Ми зберігаємо зміни з головного вікна проектуProject CountDownі запускаємо програму, натиснувши кнопкуF5, або натиснувши кнопкуExecuteпанелі кнопок того ж вікна . Ось що ми повинні побачити:

Якщо з'являється щось інше або отримуємо повідомлення про помилку, потрібно переглянути, що ми робили досі. Навіть при натисканні кнопокStart,ResetабоExitнічого не відбувається. Це буде нашим наступним завданням: призначення подій при натисканні на кнопку. Перед тим, як ми продовжимо, запустимо програму і подивимося, що вона містить. Щоб закрити її, ми можемо натиснути X у правому верхньому кутку. Я в KDE із темою SuSe, як ви могли помітити на формах, можливе закриття вікна іншим способом.
Давайте розглянемо кнопкуExit. За допомогою цієї кнопки програма закривається. Щоб описати кодом Бейсика дії, що виконуються при натисканні на цю кнопку, ми двічі клацаємо на кнопці з написомExit(cmbExit). Ми бачимо, що Gambas згенерував кілька рядків коду та курсор встановлений між ними. Це те місце, де має бути написаний код. Ця процедура буде виконана, коли користувач натисне кнопку. Щоб закрити програму, ми повинні виконати Me.Close, так що код виглядатиме так:
Наступна кнопка, яку ми опишемо, - кнопкаReset. Так само: двічі клацаємо на кнопці і у вікні коду вводимо наступні рядки:
По суті все ще здається, що ніщо не трапляється. Нашапрограма має виконувати якісь дії. Ми повинні активувати об'єктTimer. Для цього потрібно встановити інтервал для отримання дій. Можна це зробити або кодом у минулому діїForm_Open, або покласти його на форму. Нині ми зробимо це так. На формі, клацаємо по об'єктуTimerі на йогоproperty sheet(сторінці властивостей) змінюємо значення його властивостіDelay(затримка) від 1000ms до 100, щоб виконувалося одне дія кожну десяту секунди, що буде точністю нашого секундоміра.
У нас все ще немає коду, який би виконувався щоразу, коли прокидається та шляхи активувати його. Щоб згенерувати код годинника, немає нічого простішого, просто як завжди клацнути двічі на формі годинника. Це перенесе нас у вікно коду. Після запису нашого коду, все має виглядати так:
І, нарешті, за бажанням користувача ми активуємо секундомір кнопкою-перемикачем, яку ми все ще не описали. Після подвійного клацання по кнопці ми можемо записати код для цієї дії:
І ми вже можемо протестувати нашу роботу.
І останній штрих: Gambas багатомовний, як і має бути
Ще одна особливість Gambas - це підтримка безлічі мов. Якщо ви стежили за кодом, ви помітили, що рядки поміщені в дужки. Це для того, щоб повідомити Gambas, що ці рядки будуть переведені. Текст елементів форми не потребує цих дужок. Наш проект став чимось дуже корисним, і люди проситимуть, щоб діалогові вікна з'являлися їхньою рідною мовою. Нічого простішого. Входимо в менюProject / Propertiesвікна проекту.

Тут ми встановлюємоTitle(заголовок) нашого проекту і відзначаємо опціюProject is translatable(проект перекладається), яка дозволить зробити проект перекладним. Тепер нова опціястала активною в меню: Project/Translate. Якщо ми відкриємо цей діалог, ми побачимо, що переклад зараз інтуїтивний:

Спочатку вибираємо потрібну мову у верхній частині. Якщо ми хочемо перевести рядок – вибираємо та заповнюємо нижню частину. Коли всі рядки перекладені, ми можемо протестувати програму, запустивши її з терміналу, якщо перед цим ми надали змінній LANG значення мови перекладу. Якщо я хочу подивитися, як виглядає переклад англійською, я закриваю gambas і запускаю
Щоб повернутись до попередньої ситуації, я запускаю gambas з меню KDE, просто тому, що змінне середовище не визначене, воно тільки живе у своїй консолі.
Висновок
Хоча це інтерпретована мова і нам потрібно мати Gambas повністю встановлений, це гарний вибір, щоб почати розробку додатків для Linux. Як ми помітили, він дуже простий і ведеться дуже швидко. Цього достатньо для багатьох повсякденних програм.
Екранна довідка дивиться докладною, крім того є приклади з менюFile/Open example. Ми можемо також перейти на web сторінку проекту, де в секції посилань є багато цікавих проектів на Basic'і. Це лише початок проекту, в якому бачу велике майбутнє.