Хочу представити Вашій увазі мій переклад статті Getting Started Programming with QML, яку зараз уже напевно досить складно буде відшукати на сайті компанії Nokia. Незважаючи на те, що буквосполучання QML потроху відходить у небуття, і ми все частіше чуємо модні слова Qt Quick, дана стаття була моїм першим кроком у пізнаванні ще тоді нової і перспективної технологої, і вона ще й досі залишається актуальною. Але давайте все попорядку.
Що таке QML, звідки вона взялась і куди іде
Спробую дати коротку відповідь на ці три ключові питання.
QML (мова мета-об’єктів Qt) – декларативна мова програмування, схожа по своїй структурі на розмітку JSON. Основна сфера використання QML – створення динамічного графічного інтерфейсу користувача. Для програмування функціоналу використовується JavaScript. Хоча QML розроблялась для використання на мобільних пристроях, її можна використовувати і на звичайних комп’ютерах.
Звідки взялась QML? Якщо вірити Вікіпедії, офіційний стабільний реліз QML відубвася 9 листопада 2010 разом із Qt 4.7.1. Проте шлях до цієї точки був дуже довгий. Ще у далекому листопаді 2008 у статті Welcome to Kinetic вперше з’явились слова “Declarative UI” (декларативний інтерфейс користувача). У тій статт навіть наведено приклад майбутнього декларативного оголошення інтерфейсу за допомогою XML, проте цей шматок коду не має нічого спільного з сучасним станом речей. Отож проект Declarative UI стартував окремо від Qt. Уже в травні 2009 з’явились перші приклади програм, створених з використанням нової декларативної мови, котра отримула назву QML. За основу було взято нотацію JSON, оскільки вона є більш читабельною ніж XML. Основною особливістю технології було те, що з її допомогою можна було написати програми без жодного рядка коду на C++. Інтерфейс користувача створювався об’єктами QML, логіка – на JavaScript. Таку програму не потрібно було компілювати – вона інтерпретувалася, а отже була кросплатформенною. Разом із вдосконаленням бібліотеки підтягувалося і середовище розробки – в Qt Creator появився дизайнер QML, а також інструмент для налагодження JS-коду.
Куди іде QML? У листопаді 2010 року відбувся перший стабільний реліз Qt Quick – платформи, основою для якої стала QML. Qt Quick включає у себе Qt Declarative – середовище виконання програми, QML – мова створення інтерфейсу, JavaScript – як додатковий засіб реалізації логіки програми, а також набір інструментів для розробки та налагоджування програм. Слід зауважити, що Qt Quick можна використовувати поряд із іншими модулями Qt у зичайних С++-програмах. Отож, Qt Quick зараз є однією з найперспективніших технологій у сім’ї Qt. Незважаючи на свою молодість, вона пройшла серйозний шлях розвитку і зараз повністю готова для повноцінного використання як на мобільних пристроях так і на звичних нам персональних комп’ютерах.
Історія одного перекладу
Якось сидячи на роботі без діла і, як завжди, перечитуючи блоги про Qt я наткнувся на статтю. Автор пропонував взяти участь у конкурсі перекладів. У якості вихідного матеріалу подавалися дві статті: Getting Started Programming with Qt та Getting Started Programming with QML. Кожен бажаючий міг вибрати одну із статтей, перекласти її на свою рідну мову, опублікувати на офіційному вікі-сайті Qt і отримати гарантований приз: фірмову футболку. Переможець вибирався випадковим чином і отримував смартфон Nokia N900. Оскільки на той час я знав QML тільки на початковому рівні, я обрав саме статтю про QML. Переклад зайняв близько тижня, і ось зараз у мене у шафі лежить пам’ятна футболка, яка приїхала до мене із Фінляндії. Радує те. що головний приз дістався нашому співвітчизнику, який займався перекладом першої статті і зробив це дуже якісно.
Підсумовуючи
Не хочу тратити дурно Ваш і свій час на розповіді, тому перейду зразу до моралі своєї байки.
Мене часто запитують: Навіщо перекладати технічні статті, адже люди, яким вони будуть цікаві знають англійську мову? Зазвичай так і є. Проте наведу кілька аргументів, які спонукали і далі спонукають мене до перекладу:
- Перекладаючи статтю, читач (який є і автором водночас) краще усвідомлює текст. Читаючи на іноземній мові ми часто пропускаємо цілі звороти, які здаються нам неважливими. При якісному перекладі ми заглиблюємось у текст і отримуємо набагато детальніше бачення матеріалу.
- Перекладаючи текст ми покращуємо своє знання як англійської так і української мови. Оскільки для якісного перекладу недостатньо тільки розуміння тексту іноземною мовою. Потрібно вміти влучно описати матеріал своєю мовою, щоб і зміст не втратився і текст не виглядав кострубатим (як з Google Translate).
- Статті, подібні до тих, які я перекладаю зазвичай читають не професіонали, а початківці. У ситуації коли читач тільки починає ознайомлюватись з тематикою статті, іноземна мова ускладнює розуміння матеріалу.
- Ну і нарешті, наявність україномовної документації у тій чи іншій галузі позитивно сприяє на формування спільноти спеціалістів у цій галузі.
Отож, досить філософії, переходимо до теорії і практики QML. Приємного читання і успіхів у розробці! І звичайно, запрошую Вас взяти участь у перекладі матеріалів по Qt на українську мову.