Новость из категории: Информация

Genie: язык программирования «новой волны»

Содержание:
1. Вступление (Вы читаете данный раздел);
2. Документация, распространенность и синтаксис.
Genie: язык программирования «новой волны»

Герой этой статьи - язык Genie - не избалован вниманием: мало кто из программистов знает о его существовании. Вместе с тем, этот язык весьма интересен и совершенно незаслуженно находится в тени. Genie очень молод - он появился только в 2008 году, и именно молодость во многом объясняет его небольшую известность и распространенность. Если говорить строго, то Genie - это даже не самостоятельный язык, а аль-тернативный синтаксис языка Vala. Он использует тот же самый компилятор и те же самые утилиты, что и Vala, а все конструкции языка полностью дублируют Vala, но с использованием кардинально иного синтаксиса. Более того, программа может содержать часть исходных файлов на Vala, а часть на Genie - компилятор не различает эти языки кроме как на самом первом этапе компиляции во время синтаксического анализа. Инсталлировать Genie отдельно не нужно: установив Vala, вы автоматически получите и полностью функциональный компилятор Genie. Все, что было сказано о языке Vala в предыдущих частях статьи, относится и к Genie, поэтому я сосредоточу внимание только на предыстории появления этого языка и его синтаксисе.

Genie как «компилируемый Python»

В последние годы популярность языка Python неуклонно растет. Этот язык так часто используется для быстрого создания приложений, плагинов, виджетов и дополнений, что на современном десктопе одновременно могут быть запущены десятки копий его интерпретатора. И тут начинают в полную силу проявляться присущие Python недостатки. Чаще всего упоминается его медлительность. Это действительно так, но еще большую проблему представляет «раздутость» и прожорливость в потреблении памяти. Кроме «накладных расходов», вызванных самим дизайном динамического интерпретируемого языка, память и циклы процессора тратятся впустую в обертках многочисленных используемых библиотек. Обертки для Python по необходимости являются «толстыми» (thick wrappers), поскольку для передачи данных между библиотечными функциями и интерпретатором их, как правило, приходится копировать и преобразовывать. Тонкой оберткой, которая просто вызывала бы нужную функцию, передавая ей ссылки на готовые данные, чаще всего обойтись не удается. Толстые же печально известны тем, что занимают много дискового пространства и порождают весь спектр проблем с зависимостями и совместимостью версий, поскольку являются дополнительными общесистемными библиотеками. Переносимость программ, написанных на Python, также сильно страдает: в зависимости попадают не только сами внешние библиотеки, но и обертки для них. В то же время лаконизм синтаксиса Python и легкость его изучения остаются во многом непревзойденными.

Genie: язык программирования «новой волны»

Попытки сделать Python компилируемым языком полностью или хотя бы частично предпринимались давно и неоднократно. Можно упомянуть такие проекты, как Psyco, Cython, PyPy, Shedskin и Pyrex, но ни один из них не стал настолько зрелым и удобным, чтобы с его помощью были разработаны действительно популярные и востребованные приложения. Появление Genie стало переломным для тех программистов, которые искали язык, столь же удобный в плане синтаксиса как Python, но при этом компилируемый, строго типизированный и не требующий толстых слоев оберток вокруг внешних библиотек. Синтаксис Genie очень похож на Python, хотя содержит элементы, позаимствованные из D, Boo и Delphi. Будучи по сути диалектом Vala, Genie автоматически получил доступ к огромному количеству привязок для Vala. Он компилируется в быстрый машинный код, имеет скромные требования к памяти и не требует никаких оберток для библиотек, написанных на Си.

Рейтинг статьи

Оценка
5/5
голосов: 4
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Похожие новости

Комментарии

^ Наверх