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)

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

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

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

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

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

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

geek ★★★
()

Мне вот что интересно: почему во всех питоноязыках boo, cobra, теперь еще вот эта поделка любят корёжить синтасис a:int = 5 либо а as int = 5 имхо бред, имхо нужно что то типа Pyrex. вот.

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

> Наоборот, это самый простой язык для быдлокодеров и пионеров. Быдлокодливей даже Жавы и Питона.

лол, ты по себе-то не суди.

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

> Мне вот что интересно: почему во всех питоноязыках boo, cobra, теперь еще вот эта поделка любят корёжить синтасис a:int = 5 либо а as int = 5

Потому что люди хотят статическую типизацию.

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

>Потому что люди хотят статическую типизацию. int a = 5 чем не подходит? зачем тут нужны двоеточия и as. P.s. мну тоже не против статической типизации.

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

> int a = 5 чем не подходит?

Считается, что менее наглядно, и вызывает больше сложностей в парсинге (или выдаче сообщений о синтаксических ошибках).

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

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

C++ не может заменить свое подмножество Си? ай лолд. афтар пеши еще.

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

>>Считается, что менее наглядно Да тут и не поспориш %), наглядность у всех разная

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

> подмножество? Бугагец.

ха-ха-ха. сишники пытаются всеми силами открестится от плюсов. тем не менее факт есть факт и сним не поспоришь. С++ может все тоже что и си, только гораздо больше.

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

>докажи обратное

что тебе доказать? То, что существуют корректные с точки зрения Си и некорректные с точки зрения плюсов операции? Ты это можешь найти на той же википедии. Или тебе рассказать, для чего придумывали extern "C" ? =)

сколько заплатишь за ликбез? =)

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

> То, что существуют корректные с точки зрения Си и некорректные с точки зрения плюсов оп

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

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

>про синтаксические отличия я и без тебя знаю.

ну раз знаешь, выходит - с++ не суперсет сей, ага?

>что можно сделать в Си и принципиально нельзя в С++

хороший вопрос. А что можно сделать в плюсах и принципиально нельзя сделать на delphi? :)

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

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

Я скажу прямо наоборот....
В плюсах МОЖНО передать указатель на класс!
За это надо расстреливать сразу, на месте! Если применение
указателей в гладком С еще оправдано (читай кросс-ассемблер), то в
плюсах - это 3.14здец!

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

> хороший вопрос. А что можно сделать в плюсах и принципиально нельзя сделать на delphi

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

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

> За это надо расстреливать сразу, на месте! Если применение...

закопайся обратно, здесь и без тебя идиотов хватает.

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

> С++ может все тоже что и си, только гораздо больше.

ниправдо. В Си благодаря прозрачному ABI можно за уши протянуть функциональщину: атомы -- это переменные (жёстко типизированные, да), символы - указатели, списки-формы -- функции с переменным числом параметров (первый символ -- указатель на функцию, остальной список -- параметры).

Лисповые макры, правда на препроцессоре не сделать -- нужно функции вызывать во время компиляции.

чтобы CLOS или MOP сделать надо сделать динамическую типизацию в Си. В рантайме, ага. Будет что-то вроде рантайма в Objective C с маршрутизацией сообщений (те же списки-формы передаются как замыкания "объектному рантайму" с продолжениями). При этом эти псевдообъекты -- полноценные символы, списки-формы, то есть, объекты первого класса.

А вот в С++ так не сделать. Что нужно, чтобы сделать MOP на C++? Типизация слишком жёсткая, с++ ОО ABI прозрачно использользовать нельзя, ибо mangled. То есть, отдельно "статические" объекты С++, отдельно динамические MOP (это уродство можно наблюдать в Objective C++ 2.0). Получается какой-то MOP-мутант из шаблонов аспектами, но шаблонами тоже всё не сделать. Тот же препроцессор moc, например в Qt почему тащат?

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

> В Си благодаря прозрачному ABI можно за уши протянуть функциональщину: ат

ABI то здесь при чем? олсоу функциональщину можно и средствами С++ сделать, правда это не особо востребовано за счет весьма мощных императивных средств в языке.

http://www.interhack.net/projects/lpp/ Lpp (Lisp Plus Plus), is a library of Lisp like functions and macros usable in C++ programs. The philosophy behind Lpp is to provide as close as possible the semantics and style of Lisp rather than try to force it to fit a static style of programming. Lpp tries to emulate Common Lisp as much as possible in this regard

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

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

Qt не нужно ничего заменять. Оно just works. Давай, скажи ещё что-нибудь умное по типу "идиот".

http://www.linux.org.ru/view-message.jsp?msgid=2882804 - это нормальный код ? Ни разу не умаляя знаний тамошних ораторов, но это просто п*здец какой-то, а не код, даже хорошо оформленный. С++ до этого далеко, да. Хватит уже слюнями брызгать.

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

на самом деле уже давно всё сложнее. google => Incompatibilities Between ISO C and ISO C++ By David R. Tribble

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

>> Наоборот, это самый простой язык для быдлокодеров и пионеров. Быдлокодливей даже Жавы и Питона.

>лол, ты по себе-то не суди.

Я сужу по тебе и прочим персонажам из армии С++-быдлокодеров.

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

> Я сужу по тебе и прочим персонажам из армии С++-быдлокодеров.

ты не видел ни мой код ни моих программ. а я видел твой код: неумение испольовать RAII, в результате раздутый индусский код, с нестандартными __finally для освобождения GDI. при виде такого всегда хочется сказать: вон из профессии.

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

>я не знаю дельфи. в си, например, невозможно сделать деструктор.

лол.

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

>Qt не нужно

fixed ;)

>это нормальный код ?

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

>это просто п*здец какой-то, а не код

это вы, батенька, просто привыкли везде подвох ждать в виде перегруженных операторов и неявных кастингов =)

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

Хм похоже мой вопрос про то что :
C++ это путь Windows а Си путь Linux/Unix - умолчали.
Ну да ладно.

А кто может тогда хотя бы назовет программы в Linux написаные на С++ ?
( КДЕ-ешные и КуТ не в счет ! )

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

debian clouds говорит мне, что в дебиане 1178 пакетов с тэгом devel::lang:c++, мало?

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

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

это добровольное анальное рабство

> это вы, батенька, просто привыкли везде подвох ждать в виде перегруженных операторов и неявных кастингов =)

подвох - это не операторы а их отсуствие. олсоу, когда void* спокойно кастуется к любому типу вот это настоящий подвох.

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

>В Ruby, как известно, ширина отступа 2 пробела

Эмм... Кхе-кхе... Феерический нуб? Вы вообще знаете, что такое Ruby? В руби есть блоки, заканчивающиеся end, или даже в фигурные скобки можно брать. Какие нах отступы? Не путайте этот благородный язык с тупым Питоном.

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

>это добровольное анальное рабство

сочувствую. Когда тебя выкупят - сможешь закончить школу

>подвох - это не операторы а их отсуствие. олсоу, когда void* спокойно кастуется к любому типу вот это настоящий подвох.

для безмозглых - подвох, да =)

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

Это единицы. С++ программы - это редкость. KDE, конечно же, не в счет, правильно было сказано. KDE вообще мало относятся к UNIX. Да, они написаны на этой платформе (правда это уже не верно - кеды портировали). Но работая в кедах ты как бы находишься в своей ОС, другой. Я не могу назвать это UNIX. Другие DE и программы не идут так в разрез с платформой, а компетентно взаимодействуют, объединяют unix мир в одно целое. Есть два мира в gnu/linux - "кеды" и "не кеды".

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

Хм а я всегда считал по другому.

Firefox = Gecko(90%) + интерфейс на XUL(10%) ...

Не понятно как может Firefox состоять из 99% написаных на
языке разметки.

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

В Firefox много *.c файлов. Там не только С++. Да и javascript довольно много.

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

А ты обрати внимание на размер libxul.so, которая одна больше Оперы.

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

>> По исторически-психологическим причинам.

> на самом деле это заговор, ага.

Расскажи об этом прокурору, тебе станет легче.

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

> А ты обрати внимание на размер libxul.so, которая одна больше Оперы.

Ну так libxul.so это наверное либа для исполнения XUL и она скорее
всего написана на Си или С++. Или я не прав ?

Вот у меня тогда вопрос :
Если бы переписали из FireFox выкинули С++ и кругом заменили на Cи
от этого стало бы хуже ? И возможно ли это ?

> По исторически-психологическим причинам.

Причем если взять Windows то тама вроде вроде наоборот сплошной С++
Хотя если я не ошибаюсь windows95 была в основном на Си написана ...

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

>> По исторически-психологическим причинам.

> Причем если взять Windows то тама вроде вроде наоборот сплошной С++

Вот именно. Потому что платформа гораздо моложе, единообразнее и имеет поддержку Си++-компиляторами чуть ли не с самого рождения. А Unix - старше, многообразнее, компиляторами Си++ не избалован, и развивается в последние 15 лет людьми, которые относятся к применяемым в венде технологиям, мягко говоря, без симпатии.

P.S. кое-кто считает, что "Страуструп - тайный MLщик, поэтому он сознательно сделал говноязык, чтобы быдло не лезло своими шаловливыми кривыми ручонками в ML" ;)

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

> Если бы переписали из FireFox выкинули С++ и кругом заменили на Cи

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

> Причем если взять Windows то тама вроде вроде наоборот сплошной С++

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

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

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

Совсем не поэтому. Просто Unix-вендоры слишком долго были слишком жадными, а Билли был слишком умным и умело разыграл свой козырь.

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

пока что всё что есть можно назвать XUL'ом, т.к. все эти компоненты (XML+nspr+xpcom+gecko+...) по сути и являются XUL'ом. Интерфейсы (коих очень много) написаны на С++, на Си переписывать запаришься.

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

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

А что разве юникс стоял на рабочих станциях ?

Я все таки думаю что они ( windows ) опомнились и поняли что С++
не нужен. Написали Виртуальную Машину на Си(ну или С++ тут не важно так как ограничено ) и будут ее юзать через С#

Конечно слабо разбираюсь в языках но мне кажеться что для системного програмирования С++ не нужен так как в этой ниши можно свободно обойтись
Си и это будет даже лучше. А вот прикладного уровня С++ слишком низок
и пораждает много проблем и трудностей ( это только мое мнение )

P.S. Кстати JVM на С++ ?

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