LINUX.ORG.RU

Genie — новый язык программирования в парадигме GObject

 ,


0

0

Genie — новый язык программирования, близкий родственник Vala, позволяющий пользоваться современными подходами к программированию и минимальными усилиями оперировать типами GObject.

Синтаксис Genie — чистый, чёткий и ясный; во многом он заимствован у современных языков программирования, таких как Python, Boo, D и Delphi.

По функциональности Genie близок к Vala, но позволяет решить те же задачи при помощи более краткого и ясного программного кода.

Как и Vala, Genie имеет характерные преимущества:

  • для программ, написанных на Genie, производительность и требовательность к ресурсам эквивалентны аналогичным параметрам программ на C и Vala;
  • отсутствуют "раздутость" и потери в производительности, присущие платформам с виртуальными машинами (Python, Mono, Java и т.п.);
  • поскольку классы в Genie по сути являются GObject'ами, то Genie пригоден как для написания программ, использующих GObject'ы, так и для самостоятельного создания GObject'ов (например, библиотек виджетов).
Итак, Genie является современным компилируемым объектно-ориентированным языком с нестрогой типизацией, обладающий также чертами функционального языка (например, поддержка замыканий). Поддерживаются исключения, функции-делегаты, nullable-типы, обобщённые типы (generics) и, внимание, настраиваемая ширина отступа! Компилировать программы на Genie следует компилятором языка Vala (valac); соответствующая функциональность была включена в Vala 0.3.3.

>>> Сайт проекта

anonymous

Проверено: Shaman007 ()
Последнее исправление: CYB3R (всего исправлений: 1)
Ответ на: комментарий от kvitaliy

Вам никто не мешал написать лучше. Пожалуйста, самоубейтесь.

anonymous
()
Ответ на: комментарий от anonymous

> Конечно слабо разбираюсь в языках

вот и незачем сюда лезть. здесь и без тебя дебилов хватает.

anonymous
()
Ответ на: комментарий от kvitaliy

Впрочем...

> кто-нибуть сталкивался
> с регистрации поданых резюме

...Вам лучше не пробовать.

anonymous
()
Ответ на: комментарий от anonymous

> вот и незачем сюда лезть. здесь и без тебя дебилов хватает.

То есть исходя из Ваших слов моя точка зрения неверна ! И Вы думайте
что С++ это универсальный язык и хорошо подоходит для системного и прикладного программирования. Я Вас правильно понял ?

anonymous
()
Ответ на: комментарий от tailgunner

> Предложения о переводе GCC на Си++ ходят уже несколько лет.

надеюсь, не перейдут. Ибо писать на цепепе компиляторы - бессмысленная трата времени. Хуже только на це, и то не намного.

Joe_Bishop
()
Ответ на: комментарий от anonymous

> Я Вас правильно понял ?

вали из темы, лолнуб, не задерживайся.

anonymous
()
Ответ на: комментарий от Joe_Bishop

> писать на цепепе компиляторы - бессмысленная трата времени. Хуже только на це, и то не намного.

Если на Си++ всё же лучше - почему не перейти? Тем более, это можно делать очень постепенно (в отличие от переписывания на Хаскель :D).

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Потому что платформа гораздо моложе, единообразнее и имеет поддержку Си++-компиляторами чуть ли не с самого рождения.

Однако сама платформа на С. ;-)

vit122
()
Ответ на: комментарий от tailgunner

> Если на Си++ всё же лучше - почему не перейти

перейти стоит хотябы из-за нормальных строк.

anonymous
()
Ответ на: комментарий от vit122

> Однако сама платформа на С. ;-)

WDM на С++, видеодрова на С++, DirectX на С++. ядро на нестандартном си с поддержкой SEH.

олсоу, неудачной оказалась идея перевести весь АПИ на дот-нет и в windows 7 будет нативный WinFX написанный естественно на С++.

вот так-то. гики с абсурдами лают, а караван идет

anonymous
()
Ответ на: комментарий от vit122

>>Потому что платформа гораздо моложе, единообразнее и имеет поддержку Си++-компиляторами чуть ли не с самого рождения.

>Однако сама платформа на С. ;-)

Если есть _большое_ желание, можно сказать и так. У меня такого желания нет, поэтому я напомню, что ядро NT использует нестандартный Си (с исключениями); что (если верить Кастер) GDI и оконная система написаны на Си++; что (по слухам, конечно) DirectX написан на Си++; и что куча микрософтовских программ использует MFC; и даже, говорят, WTL.

Так что про "платформу на Си" - это преувеличение.

tailgunner ★★★★★
()
Ответ на: комментарий от Bohtvaroh

>> Казалось бы, уж куда лучше. Вот оно, придумали уже, пользуйтесь. Ан нет.

> Ну тут типа без интерпретатора, транслируется в Си, вроде как быстрее питонов должно быть.

ну так можно взять какое-то подмножество питона, которое транслируется в си+gobject

а то что не транслируется, остаивть питоном

anonymous
()
Ответ на: комментарий от anonymous

> гавно кстати редкостное этот свиг

А что есть лучше? И по-любому. по сравнению с ручным написанием обвязки - SWIG просто щастье.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> А что есть лучше?

Есть Vala и Genie.

Вдумайтесь, коллеги.

Какой ещё язык программирования 1) компилируется в нативный код, 2) реализует автоматическое управление памятью, 3) имеет такое количество биндингов "искаропки", 4) предлагает максимально упрощённый процесс создания биндингов для "не-искаропки"?

Неужели кто-то осмелится оспорить революционность и гениальную простоту Vala/Genie?

anonymous
()
Ответ на: комментарий от qewerty

>. Однако, здаётся мне

*сдаётся

anonymous
()
Ответ на: комментарий от tailgunner

> А что есть лучше?

при необходимости юзаю pyrex

> по сравнению с ручным написанием обвязки - SWIG просто щастье

с этим согласен

//goiaged

anonymous
()
Ответ на: комментарий от gaa

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

> Датышто!!111адынадын

писать надо на бумаге

в крайнем случае на доске мелом

//seesed

anonymous
()
Ответ на: комментарий от gaa

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

> Датышто!!111адынадын

писать надо на бумаге

в крайнем случае на доске мелом

//folider

anonymous
()
Ответ на: комментарий от sabonez

>> Господа, давайте уже сразу перейдем к KDE vs. GNOME, к чему все ети нелепые формальности формальности?

достанем и измеряем?

//smoning

anonymous
()
Ответ на: комментарий от anonymous

> а что нужно кде4 что ли?

неполноценность и уныние

anonymous
()
Ответ на: комментарий от tailgunner

> К чему эти нелепые формальности? Говори сразу: "удавись". Зачем перед этим писать обвязки?

какая-никакая польза для социума

anonymous
()

Мне понравился язык и компилятор.

Git
()
Ответ на: комментарий от tailgunner

>> детка, быдло это те, кто считает, что c++ может заменить си, а qt может заменить gobject/gtk

> Тогда как назвать тех, кто считает наоборот? %)

"олдыб"?

gaa ★★
()
Ответ на: комментарий от anonymous

>гавно кстати редкостное этот свиг

+1. Код, генерируемый им просто ужасен. И уж стопудово избыточен. Когда либа не очень большая - ее проще вручную заврапить (ctype под Python).

void_ptr ★★★★
()
Ответ на: комментарий от anonymous

> про синтаксические отличия я и без тебя знаю. ты лучше раскажи, что можно сделать в Си и принципиально нельзя в С++

Не то, чтобы "принципиально", но "указатель на функцию" в C - это простая и естественная вещь, в то время, как указатель на non-static метод - это, мягко говоря, тот еще геморрой.

То есть, оно, конечно, обходится, но только ценой перерасхода памяти и заметного падения производительности (как в boost::function) или системно-зависимых (и потенциально непереносимых) хаков, как в некоторых рецептах на codeproject'е. Есть, конечно, и для плюсов приемлемо реализованные делегаты (на том же codeproject'е), но от былой легкости и буквально одной инструкции (по крайней мере, на x86) косвенного вызова не осталось и следа.

AlexM ★★★★★
()
Ответ на: комментарий от anonymous

>неумение испольовать RAII

Что там использовать? Оно одинаково плохо и для автоуказателей и для хендлов.

>в результате раздутый индусский код,

Куча бесполезных классов которые ничего не делают - это да, раздувание.

>с нестандартными __finally для освобождения GDI.

Бугогец. А GDI - стандартен ?.

Absurd ★★★
()
Ответ на: комментарий от anonymous

>Поэтому процветает более мощный и продуктивный инструмент С++, а теперь С#. Благодаря этому майкрософт очень легко вышвырнул юникс с рынка рабочих станций

А я думал поскольку 95 было совместимо с 3.11 которое запускалось под ДОС который у всех был поскольку у всех был IBM-совместимый 386-й компьютер который был в разы делевле Маков и тем более Силиконов и ДЕК-ов.

Absurd ★★★
()
Ответ на: комментарий от tailgunner

>то (если верить Кастер) GDI и оконная система написаны на Си++

лол

>что (по слухам, конечно) DirectX написан на Си++

лол^2

>и что куча микрософтовских программ использует MFC

который они сами же похоронили? =)

geek ★★★
()
Ответ на: комментарий от tailgunner

>что (если верить Кастер) GDI и оконная система написаны на Си++;

Эти две вещи с идиоматикой С++ совместимы меньше всего. После долгого ковыряния BoundsChecker'ом в MFC обвязках к GDI я решил никогда больше с GDI в плюсовом стиле не работать. MFC для перехода из оконной процедуры в метод использует union{}. WTL для кастинга HWND->CWnd* использует еще более злой хак - кусочек машинного кода в виде массива байт засунут прямо в CWnd. Конечно, аттрибут noexec на кучу с таким подходом не поставить.

>что (по слухам, конечно) DirectX написан на Си++;

Без плюсового рантайма правда. Совсем.

Absurd ★★★
()
Ответ на: комментарий от anonymous

>> А что есть лучше?

> Есть Vala и Genie.

Во-первых, их пока нет; во-вторых, это узконишевые инструменты, в отличие от универсального SWIG.

> Какой ещё язык программирования 1) компилируется в нативный код, 2) реализует автоматическое управление памятью, 3) имеет такое количество биндингов "искаропки", 4) предлагает максимально упрощённый процесс создания биндингов для "не-искаропки"?

> Неужели кто-то осмелится оспорить революционность

И в чем революционность? В 1, 2, 3 или 4?

> и гениальную простоту Vala/Genie?

Бгг.

tailgunner ★★★★★
()
Ответ на: комментарий от vit122

>> куча микрософтовских программ использует MFC; и даже, говорят, WTL.

> Это где эта куча? вордпад штоле?

По остальным пунктам возражений нет? Отлично.

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

>> что (если верить Кастер) GDI и оконная система написаны на Си++;

> Эти две вещи с идиоматикой С++ совместимы меньше всего. После долгого ковыряния BoundsChecker'ом в MFC обвязках к GDI я решил никогда больше с GDI в плюсовом стиле не работать. MFC для перехода из оконной процедуры в метод использует union{}. WTL для кастинга HWND->CWnd* использует еще более злой хак - кусочек машинного кода

Отличный ответ, отличный. Не в тему, но зато демонстирует глубокие познания.

>>что (по слухам, конечно) DirectX написан на Си++;

>Без плюсового рантайма правда.

Ты что сказать-то хотел? Что DirectX - не на Си++?

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>Отличный ответ, отличный. Не в тему, но зато демонстирует глубокие познания.

Нет в тему. GDI написан так как будто авторов С++ совсем не волнует и они его совсем не знают. Оконная система - аналогично.

>>>что (по слухам, конечно) DirectX написан на Си++;

>>Без плюсового рантайма правда.

>Ты что сказать-то хотел? Что DirectX - не на Си++?

Нет, не Си++. Без C++ рантайма не работает ни C++ RTTI, ни экзепшены, ни STL. А объектная система там COM а не С++.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> GDI написан так как будто авторов С++ совсем не волнует и они его совсем не знают. Оконная система - аналогично.

А когда же будет "да и вообще все пидоры, один я Д'Артаньян"? Вполне резонным продолжением будет :)

gaa ★★
()
Ответ на: комментарий от Absurd

>>Ты что сказать-то хотел? Что DirectX - не на Си++?

>Нет, не Си++. Без C++ рантайма не работает ни C++ RTTI, ни экзепшены, ни STL

Прикинь, RTTI, исключения и STL не являются неотъемлемыми частями Си++. Не говоря о том, что могут быть влинкованы статически и снаружи незаметны.

Впрочем, неважно. Платформа Windows - это не чистый Си. но она здесь оффтопик, в конце концов.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>>>Ты что сказать-то хотел? Что DirectX - не на Си++?

>>Нет, не Си++. Без C++ рантайма не работает ни C++ RTTI, ни экзепшены, ни STL

>Прикинь, RTTI, исключения и STL не являются неотъемлемыми частями Си++.

Чего-то ты про объектную систему поскипал, которая в DX - COM, так что с помощью DX 3Д модели можно и из Вижуал Бэйсика рисовать.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Что там использовать? Оно одинаково плохо и для автоуказателей и для хендлов.

вон из профессии

anonymous
()
Ответ на: комментарий от gaa

>> GDI написан так как будто авторов С++ совсем не волнует и они его совсем не знают. Оконная система - аналогично.

>А когда же будет "да и вообще все пидоры, один я Д'Артаньян"? Вполне резонным продолжением будет :)

Судя по активному опросу, С++ даже вместе с С имеет меньше половины симпатий. Так что пидоров намного меньше половины.

Absurd ★★★
()
Ответ на: комментарий от anonymous

>> Что там использовать? Оно одинаково плохо и для автоуказателей и для хендлов.

>вон из профессии

ПТУ сначала закончи свой, а потом кидайся понтами.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> Прикинь, RTTI, исключения и STL не являются неотъемлемыми частями Си++.

> Чего-то ты про объектную систему поскипал, которая в DX - COM

Того, что COM можно изобразить хоть на VB, так что это вообще ни при чем.

tailgunner ★★★★★
()
Ответ на: комментарий от Absurd

> Судя по активному опросу, С++ даже вместе с С имеет меньше половины симпатий.

Судя по опросу, народ сильно прикалывается. Лично я тоже за мозготрах проголосовал.

gaa ★★
()
Ответ на: комментарий от tailgunner

>>> Прикинь, RTTI, исключения и STL не являются неотъемлемыми частями Си++.

>> Чего-то ты про объектную систему поскипал, которая в DX - COM

>Того, что COM можно изобразить хоть на VB, так что это вообще ни при чем.

При том. Из VB DX можно дергать потому что там есть Reflection + ABI. Деманглера для системы типов С++ в ВижуалБэйсике нет.

Absurd ★★★
()
Ответ на: комментарий от Absurd

> Чего-то ты про объектную систему поскипал, которая в DX - COM, так что с помощью DX 3Д модели можно и из Вижуал Бэйсика рисовать.

ага, щаз. из VB можно использовать только тот COM для которго интрфейсы писались в IDL и шенерилась библиотека типов. DX к этому не относится и напрямую без обертки его в VB использовать не получится

> Чего-то ты про объектную систему поскипал, которая в DX - COM,

маразм крепчал. можно подумать в С++ нельзя напрямую унаследоватся от COM интерфейсов.

anonymous
()
Ответ на: комментарий от Absurd

> Из VB DX можно дергать потому что там есть Reflection + ABI. Деманглера для системы типов С++ в ВижуалБэйсике нет.

Точно. А еще ты рылся в обвязках GDI при помощи BoundChecker'а, WTL использует кусок машинного кода, в огороде бузина, а в Киеве - дядька. А то, что в COM есть reflection и ABI, неопровержимо доказывает, что DirectX не написан на Си++.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> А еще ты рылся в обвязках GDI при помощи BoundChecker'а, WTL использует кусок машинного кода, в огороде бузина, а в Киеве - дядька. А то, что в COM есть reflection и ABI, неопровержимо доказывает, что DirectX не написан на Си++.

=> Ленин был грибом!

gaa ★★
()
Ответ на: комментарий от tailgunner

>> Из VB DX можно дергать потому что там есть Reflection + ABI. Деманглера для системы типов С++ в ВижуалБэйсике нет.

>Точно. А еще ты рылся в обвязках GDI при помощи BoundChecker'а, WTL использует кусок машинного кода, в огороде бузина, а в Киеве - дядька. А то, что в COM есть reflection и ABI, неопровержимо доказывает, что DirectX не написан на Си++.

Истерика -> слив засчитан.

Absurd ★★★
()
Ответ на: комментарий от Absurd

>> Что там использовать? Оно одинаково плохо и для автоуказателей и для хендлов. > ПТУ сначала закончи свой, а потом кидайся понтами.

RAII очень хорошо стыкуется с хендлами, без всяких костылей типа using в C#. Надо быть полным бездарем чтобы не осилить эту простую и мощную технику. А в __finally ресурсы освобождают только муд@ки. Во первых можно забыть освободить один из обьектов Во вторых код становится более громоздким. В третьих __finally нестандартное расширение, использовать которые по пустякам - признак хренового программиста.

anonymous
()
Ответ на: комментарий от anonymous

>> Чего-то ты про объектную систему поскипал, которая в DX - COM, так что с помощью DX 3Д модели можно и из Вижуал Бэйсика рисовать.

>ага, щаз. из VB можно использовать только тот COM для которго интрфейсы писались в IDL и шенерилась библиотека типов. DX к этому не относится и напрямую без обертки его в VB использовать не получится

А по моему для DX IDL в SDK написан и примеры DX+VB там есть.

>> Чего-то ты про объектную систему поскипал, которая в DX - COM,

>маразм крепчал. можно подумать в С++ нельзя напрямую унаследоватся от COM интерфейсов.

В С тоже можно.

Absurd ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.