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)

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

> Истерика

Это конспект твооего доказательства утверждения "DirectX не написан на Си++".

> слив засчитан.

То есть более качественных аргументов у тебя нет? Я так и думал.

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

> WTL использует кусок машинного кода кусок машинного кода использует ATL, а WTL построена поверх ATL. и то и другое - эпическое быдлокодерское гавно. олсоу, за машкод ATL програмистов надо гнать ссаными тряпками из профессии, т.к. в винде есть более чистый способ для связи обьекта с hwnd: SetProp/GetProp.

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

>Во первых можно забыть освободить один из обьектов

Проблемы "забывания" не существует

>Во вторых код становится более громоздким.

А от того что каждую хрень надо заворачивать в resource guard код становится еще и помойкой.

>В третьих __finally нестандартное расширение, использовать которые по пустякам - признак хренового программиста.

А GDI - стало быть стандартная библиотека?

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

>> Истерика

>Это конспект твооего доказательства утверждения "DirectX не написан на Си++".

От Си++ там практически ничего нет. Примеры кодеков в SDK можно посмотреть.

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

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

ты сначала узнай точно, а потому уже лезь в дискуссию.

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

> А от того что каждую хрень надо заворачивать в resource guard код становится еще и помойкой.

помойка - это код без RAII. а заворачивать следует всегда т.к. это гарантирует освобождение ресурса.

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

>олсоу, за машкод ATL програмистов надо гнать ссаными тряпками из профессии

А кто останется? Анальный копипаста-гей вроде тебя?

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

>> А от того что каждую хрень надо заворачивать в resource guard код становится еще и помойкой.

>помойка - это код без RAII.

Помойка - это код с RAII, да и вообще любой С++-ный код.

>а заворачивать следует всегда т.к. это гарантирует освобождение ресурса.

Оно не позволяет задать порядок освобождения.

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

> От Си++ там практически ничего нет.

d3d9.dll слинкована с msvcrt.dll и видно, что используется как минимум обработка исключений и type_info.

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

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

>ты сначала узнай точно, а потому уже лезь в дискуссию.

Ради обсирания плюсов допустима и подтасовка фактов.

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

> Оно не позволяет задать порядок освобождения.

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

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

>> Оно не позволяет задать порядок освобождения.

> ха-ха-ха. разговор окончен. выучи хотябы основы языка, быдло.

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

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

> Ради обсирания плюсов допустима и подтасовка фактов.

Ты только не удаляй это сообщение, мы будем его цитировать :D

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

>> Оно не позволяет задать порядок освобождения.

>ха-ха-ха. разговор окончен.

Нахрена тогдf монстроидальное говно типа Loki::Singleton & Loki::SetLongievity ?

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

>> Ради обсирания плюсов допустима и подтасовка фактов.

>Ты только не удаляй это сообщение, мы будем его цитировать :D

Да цитируйте на здоровье.

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

>> Ради обсирания плюсов допустима и подтасовка фактов.

>Твой девиз?

Анализ плохих вещей намного сложней чем анализ хороших вещей. Нередко получается что все составляющие, скажем фильма, приемлемые, а фильм "в общем" - отстой.

Absurd ★★★
()

Блин. Вам не надоело ещё обсуждение любого ЯП превращать в холивар С++ vs С. Достало, если честно.

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

> Блин. Вам не надоело ещё обсуждение любого ЯП превращать в холивар С++ vs С. Достало, если честно.

ну так, прибегают цепепешники с гипертрофированным ЧСВ, и начинают доказывать, что другие языки не нужны.

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

Вам не надоело ещё обсуждение любого ЯП превращать в холивар С++ vs С

Ну елы-палы, прибегают юные хаскеляторы (или еще кто), изаявляют вещи типа "цепепешники с гипертрофированным ЧСВ, и начинают доказывать, что другие языки не нужны". Начинаешь им объяснять, что никто не считает так, слово за слово, и понеслась %)

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

>Ну елы-палы, прибегают юные хаскеляторы (или еще кто), изаявляют вещи типа

Плюсофилы все же первые приходят. Кроме того, в основной своей массе они пионеры.

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

>> Ну елы-палы, прибегают юные хаскеляторы (или еще кто), изаявляют вещи типа

> Плюсофилы все же первые приходят.

Это замечательный пример: http://www.linux.org.ru/jump-message.jsp?msgid=2893758&cid=2897880

:D

> Кроме того, в основной своей массе они пионеры.

Пионерам Си++ не преподают.

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

>> Ну елы-палы, прибегают юные хаскеляторы (или еще кто), изаявляют вещи типа

>> Плюсофилы все же первые приходят.

>Это замечательный пример:

Нет, все началось с этого: http://www.linux.org.ru/view-message.jsp?msgid=2893758#2894431

>> Кроме того, в основной своей массе они пионеры.

>Пионерам Си++ не преподают.

С текущей программой не знаком, на системном программировании AFAIK преподают Си, на алгоритмах - Паскаль, на ООП - Java, на компьютерной графике - MathCad.

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

> С текущей программой не знаком, на системном программировании AFAIK преподают Си, на алгоритмах - Паскаль, на ООП - Java, на компьютерной графике - MathCad.

И? От того, что в институте человеку прочитали курс языка X+-, он сразу стал не_пионером? Я вот видел, какие отличные знатоки ц получаются после годового курса, сданного на "отл".

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

>> Пионерам Си++ не преподают.

> С текущей программой не знаком, на системном программировании AFAIK преподают Си, на алгоритмах - Паскаль, на ООП - Java, на компьютерной графике - MathCad.

Это такой длинный ответ "да"? 8)

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

> Нет, все началось с этого: http://www.linux.org.ru/view-message.jsp?msgid=2893758#2894431

По моей от-tklor-енной информации, начало треда в 142 сообщения идёт от мессаги анонимуса со словами "И че только не придумают , чтоб qt неюзать". Потом появился [ string reverse "keeg" ], который затянул свою волынку про gobject vs c++, я его макнул в c89 как подмножество c++, вот тут и накастовался Absurd с продолжением былинного треда под шапкой "Планы по выпуску Gtk+ v3" :)

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

>От того, что в институте человеку прочитали курс языка X+-, он сразу стал не_пионером?

Не понял мысль. Дело в том, что я вообще не представляю себе курса на котором С++ можно преподавать. Это индивидуальный выбор. Часть ставит себе LFS, часть пишет шаблонные шаблонные функции.

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

>>> Пионерам Си++ не преподают.

>> С текущей программой не знаком, на системном программировании AFAIK преподают Си, на алгоритмах - Паскаль, на ООП - Java, на компьютерной графике - MathCad.

>Это такой длинный ответ "да"? 8)

А что, есть что-то в вузовской программе что на С++ завязано?

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

>> От того, что в институте человеку прочитали курс языка X+-, он сразу стал не_пионером?

> Не понял мысль. Дело в том, что я вообще не представляю себе курса на котором С++ можно преподавать.

В моем вузе этот курс назывался "языки программирования и методы трансляции". Быстро в полгода рассказаны основы ооп на примере c++, потом лекция-рассказ о "технологии" дотнет. Разумеется, научиться сиплюсплюсу за это время невозможно.

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

> А что, есть что-то в вузовской программе что на С++ завязано?

А в вузовской программе есть что-то, что завязано на конкретный язык?

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

>> А что, есть что-то в вузовской программе что на С++ завязано?

>А в вузовской программе есть что-то, что завязано на конкретный язык?

А зачем там плюсы? В MIT-овском трактате по Computer Science дается простой паскалеобразный псевдокод.

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

>> А в вузовской программе есть что-то, что завязано на конкретный язык?

> А зачем там плюсы?

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

> В MIT-овском трактате по Computer Science дается простой паскалеобразный псевдокод.

Ну рад за них. Сферический современный студент из такого псевдокода в код на си/яве/чёмугодно не переведёт.

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

>> Ради обсирания плюсов допустима и подтасовка фактов.

>Ты только не удаляй это сообщение, мы будем его цитировать :D

UPD: Факты таки подтасовали плюсофилы. Я был уверен что я прав, но не хотел только ставить SDK.

http://www.gamedev.net/reference/articles/article1308.asp

1. A general knowledge of the Visual Basic language. While complicated things will be explained, I will assume that you can write a reasonably complex program. 2. A copy of Visual Basic 5 or later. Earlier versions of Visual Basic do not support the Component Object Model (COM), and therefore will not be able to use DirectX 8. 3. A copy of DirectX 8. The runtimes are perfectly acceptable (the ones that you get from the Microsoft site or magazine CDs). If you’re serious about learning and using DirectX getting the SDK (Software Development Kit) will be a huge advantage.

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

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

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

>> В MIT-овском трактате по Computer Science дается простой паскалеобразный псевдокод.

>Ну рад за них. Сферический современный студент из такого псевдокода в код на си/яве/чёмугодно не переведёт.

? RMS - выпускник MIT вроде бы.

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

>> Ну рад за них. Сферический современный РОССИЙСКИЙ УСРЕДНЁННЫЙ студент из такого псевдокода в код на си/яве/чёмугодно не переведёт.

> ? RMS - выпускник MIT вроде бы.

fixed in text

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

>я его макнул в c89 как подмножество c++

gaa, давай ты сначала школу закончишь, а потом продолжишь нас смешить =)

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

>> я его макнул в c89 как подмножество c++

> gaa, давай ты сначала школу закончишь, а потом продолжишь нас смешить =)

Ты сам-то как егэ сдал?

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

> Он тут, между прочим, прав. Порядок вызова деструкторов в случае, когда у нескольких переменных одновременно заканчивается область видимости, не определён.

это верно только для глобальных обьектов. для автоматических обьектов и переменных класса порядок вызова деструкторов определен. Олсоу, для глобалдьных обьектов из одной еденицы трансляции порядок тоже определен. Этого вполне достаточно для RAII, если руки не кривые

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

> для автоматических обьектов и переменных класса порядок вызова деструкторов определен. Олсоу, для глобалдьных обьектов из одной еденицы трансляции порядок тоже определен. Этого вполне достаточно для RAII, если руки не кривые

Откуда такие замечательные дровишки?

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

>>> Ради обсирания плюсов допустима и подтасовка фактов.

>> Ты только не удаляй это сообщение, мы будем его цитировать :D

> UPD: Факты таки подтасовали плюсофилы.

Даже если это и так, как подтасовка фактов другими оправдывает твою готовность подтасовывать факты?

tailgunner ★★★★★
()

А в AnjutaIDE, интересно, появится возможность писать/отлаживать проекты на Vala/Genie? Хорошо, что GtkSourceView поддерживает синтаксис Vala. Но хотелось бы конечно folding, autocomplete и т. д.

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

Нашел какой-то anjuta-vala-plugin Сейчас гляну, что за оно

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

>Даже если это и так, как подтасовка фактов другими оправдывает твою готовность подтасовывать факты?

за готовность убить надо сажать так же, как за убийство. Это мне прокурор(тм) сказал

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

> Я был уверен что я прав, но не хотел только ставить SDK. > DirectX 8.

лол, ты хотябы на версию посмотрел. DX8 ты сейчас даже на помойке не найдешь. А в актуальных DX9 и DX10 поддержки VB6 из коробки нет.

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

>DX8 ты сейчас даже на помойке не найдешь. А в актуальных DX9 и DX10 поддержки VB6 из коробки нет.

Ну и что? Был COM, стал .NET. Убогонькой плюсовой объектной модели нет ни там ни там.

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

> Был COM, стал .NET. Убогонькой плюсовой объектной модели нет ни там ни там.

В дотнете моделька тоже убогая. Но в другую сторону.

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

>>> Оно не позволяет задать порядок освобождения.

>> ха-ха-ха. разговор окончен. выучи хотябы основы языка, быдло.

>Он тут, между прочим, прав. Порядок вызова деструкторов <...>

Да. Вечно всякие плюсятнеки вместо корректных аргументов переходит сразу на личности и начинают оскорбления. Долой таких тупых ублюдков с ЛОРа.

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

>для автоматических обьектов и переменных класса порядок вызова деструкторов определен.

Расскажи еще сказку что у тебя зависимостей между локальными объектами никогда не бывает.

>Олсоу, для глобалдьных обьектов из одной еденицы трансляции порядок тоже определен.

Давай все синглтоны объявлять в одном файле.

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

> А в AnjutaIDE, интересно, появится возможность писать/отлаживать проекты на Vala/Genie?

на второй-третьей странице флейма анонимный брат сказал, что это уже возможно %)

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

> Во-первых, их пока нет

Во-первых, они есть. http://live.gnome.org/Vala/Release

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

В 1, 2, 3 и 4 _одновременно_. Вы не сможете назвать другой язык, сочетающий в себе все эти свойства разом.

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