Close

23.01.2016

О Замечательном(ой) Vala, Nim, или «Моё стадное чувство негодует»

NIM — новый нативный язык, с большими возможностями. Он уже имеет много библиотек. итд.

Но мне ещё больше нравится Vala — смесь Java, C#, и еще каких-то языков, НО он компилируется в С и в обычный «exe — шник». Очень интересные возможности (о них ниже).

Но в трендах эти языки не сильно популярны, рост есть, стабильный, ОДНАКО.

Я хочу рассмотреть то, что мне нравится в этих инструментах.

NIm

О Nim писали на хабре

https://habrahabr.ru/post/258119/ — Что такого особенного в Nim?

http://habrahabr.ru/post/259993/ — Сравниваем Nim и Rust

Что я могу сказать ? «Зря они переборщили с этими … очень разноперый, слишком гибко — для фатазёров в самый раз, но прелюбопытно…»

Я попробовал и мне понравилось, что центральный loop и асинхронщина стандартизована, часть входит в стандартную библиотеку — очень хорошо. Но это фигня воообщет, сщас много где так, в питоне например новый стандарт.

Не понравилось, что сыровато. С IDE не понятно что.

Инструмент этот для системщиков, а они чутьём сырое чувствуют и не используют, ждут. И синтаксис странный у него.

vala

Статьи:

C Vala  я побольше пообщался. Ну прелесть ведь, смотрите.

Здесь важно понимать, что Этот «как C#» транслируется в (даже понятный человеку) С, который не сильно перегружен чепухой.

Вот возможности из коробки !!!

Оказалось, что библиотек завались. А на github еще больше.

В чем причина относительной популярности и столь быстрого старта, спросил я себя ?

Оказалось, что очень просто, это glib. GLib — это такая «С» либа, основа всего GNOME.

В QT мне нравился moc (meta object compiler) за то, что генерирует к QT классам парный класс — матакласс, и , что важно, это в С++ даёт мне автоматически интроспекцию и ценнные и гибкие сигналы слоты, сделанные лучше чем в иных местах (т.к. всегда можно понять откуда пришел сигнал в обработчик и это упрощает работу с проектами).

В GLib есть «C» функции, которые позволяют задавать структуру ООП объектов и их отношений так, что интроспеция тоже возможна и QT даже слабее кажется на фоне, но надо уметь этим пользоваться… Поэтому QT moc лучше в этом плане — там всё автоматом.

Но в Vala сделали ещё лучше чем moc  — сделали целый язык поверх этого, не плохой, мощный.

Т.к. для Glib в GNOME уже полно всего написанного руками эффективно и привязано и написано — то всё это гигантское хозяйство начнёт работать и в VALA. Придуманы специальные Vapi файлы которые позволяют уже любую готовую либу на GLib привязать к Vala языку иначать использовать.

По IDE вопросу. Есть некоторые  ответы на тостере — не хрена не тот уровень что хочется.

Чтобы получить IDE надо брать самую-самую свежатину и собирать самому. В Итоге получишь так себе фиговину, на оценку 3-4 где-то. Есть варианты, но у каждого недостатки… Кому-то и блокнота хватает, я же Tomato assist люблю и resharper для таких языков … Сейчас я собрал себе самый свежий geany со всеми плагинами и встроенным отладчиком — по моему лучший из вариантов.

В конце приведу чужой бенчмарк:

https://jpaflacerda.wordpress.com/2011/11/08/vala-benchmarking/

Негодую т.к. странно… такая вещь хорошая  а популярность маловата. Я буду ждать и может что-то напишу для души на нём.

2 Comments on “О Замечательном(ой) Vala, Nim, или «Моё стадное чувство негодует»

Добавить комментарий для Михаил Павлов Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *