LINUX.ORG.RU

Вышел GtkD 1.0

 ,


0

0

GtkD - привязка Gtk+ для языка D. Лицензия: LGPL.

Что нового:

  • полностью автоматизированный binding/wrapping
  • отсутствие зависимостей от других библиотек (без dool, без класса String)
  • структура пакетов и др. наименования близки к GTK+ (очень близки)
  • более полная обертка над GTK
  • поддержка Cairo
  • работает с Phobos и Tango
  • поддерживает D 1.0 и D 2.0
Примеры кода: http://www.dsource.org/projects/gtkd/...

>>> Источник



Проверено: svu ()
Ответ на: комментарий от ip1981

> Ведь говорят, что LGPL - зло замедленного действия.

ну если говорят, то да... ;)

> Не слушают старших...


а ты хороший мальчик и слушаешь?

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

Зло - это GPL для библиотек без разрешающих исключений.

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

> Не слушают старших.

man культура Unix-хакеров

GFORGX ★★★
()

Седня прочел:

<< Буквально вчера всё-таки нашел время разобраться с этим языком. Нашёл у себя какую-то старую версию GDC (скачать последнюю версию DMD-бандл не могу по причине GPRS-интернета). Я ещё до этого знал, что он продвигается как замена C++, что даже Андрей Александреску плюнул на C++ и ушёл делать D, что по возможностям и красоте кода этот язык превосходит C++, но боялся, что в этом относительно молодом языке встанет проблема с библиотеками. Я ошибался!!! Мало того, что стандартная библиотека Phobos сочетает положительные стороны C++, Delphi, C#, Java, а к тому же и имеет сразу модули для Windows- и Linux-зависимых системных вызовов, но и уже созданные сторонние библиотеки очень впечатляют. Знакомый Java-программист, которому я начал описывать возможноcти D, резонно спросил насчёт поддержки GUI. Я, ссылаясь на отсутсвие такой поддержки со стороны Phobos, сослался на возможность конвертировать хедеры GTK+ и обращаться к этой библиотеке. Но после этого, на одном из сайтов по D с удивлением обнаружил, что для этого языка уже существуют 4 мощных GUI-библиотеки: DFL, wxD, DWT и GtkD. DFL оказалась пратически копией WinForms из .NET; wxD - обёртка на wxWidgets; DWT - клон Java-библиотеки SWT, на которой написан Eclipse (сходство настолько велико, что разработчики просто ссылаются на Javadocs и прочую документацию к SWT, упоминая лишь некоторые различия в именовании); GtkD - как можно догадаться, обёртка для GTK+. Как говорится, выбирайте по вкусу. Таким образом, об уродских (ну за исключением Qt, хотя тот и использует свои "расширения" C++) GUI-тулкитах для C++, думаю, можно забыть. Но этого мне было мало, т.к. в первую очередь для меня интересны 3D-приложения. Что интересно, уже существует полноценная обёртка над OpenGL, GLU, SDL, OpenAL, ODE, DevIL и т.п. - Derelict. Причём требует она со стороны программиста только включения и выключения модулей, в остальном работа с этими библиотеками очень похожа на сишную с точностью до различий синтаксиса между C и D, причём в заметно лучшую сторону. Вдобавок язык D предоставляет нам свои богатые объектно-ориентированные и некоторые функциональные возможности без запутанных конструкций C++. Вдобавок и скорость компиляции D-программ намного выше, т.к. компилятору не приходится постоянно перелопачивать гигантские хедеры с нагромождениями #include-директив, а также макросами и запутанными шаблонными конструкциями, т.к. применяется принцип модульности. Имхо скорость компиляции (к сожалению не замерял) должна сравниваться со скоростью компиляции Delphi и Java. У меня даже появилась идея бросить к чертям этот инопланетный C++, в котором оптимизация зависит от каждой лишней строчки const, virtual или inline (в D данные оптимизации применяются автоматически исходя из опций компиляции), а постоянные невидимые преобразования типов (коих к каждому типу C++ может применить кучу, причём по цепочке и плевать он хотел на то, что думал программист - лишь бы скомпилировалось), якобы призванные упростить код, на самом деле придают больше головной боли из-за малоявных эффектов. Интересно, что низкоуровневость при этом никуда не исчезла, убрали только всё лишнее (например оператор -> заменили на точку - компилятор всё-таки не настолько тупой, чтобы не понять когда ему предлагают SomeClass, а когда SomeClass*). Шаблоны переделали, сделали их, как мне показалось, более чёткими, добавили микшины вместо множественного наследования - имхо к лучшему. Да, рантайм-возможностей Java, C# или Objective-C у языка D нет... Думается, что этот недостаток всё-таки был обоснован... Тем более, что D может выполняться и интерпретатором DMDScript. Причём скрипты эти получаются достаточно низкоуровневые. >>

http://steps3d.ixbb.ru/viewtopic.php?pid=45 http://steps3d.ixbb.ru/viewtopic.php?id=14

Очень восторженно чел написал:)

Не ради флейма и холиваров, но кто реально использует в проектах, что думаете о нем? Присматриваюсь к нему.

anonymous
()

Хорошой язык. А в нем можно без лишнего геморроя подставить свой аллокатор и сборщик мусора? Было бы интересно применить его на голом железе.

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

При большом желании точно можно - он в исходниках стандартной библиотеки.

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

>Хорошой язык. А в нем можно без лишнего геморроя подставить свой аллокатор и сборщик мусора? Было бы интересно применить его на голом железе.

там вообще можно вроде как отключить сборщик. в Танго, например, свой собственный сборщик.

jet_bird
() автор топика
Ответ на: комментарий от ip1981

не слушай, что говорит быдло, а LGPL это единственная нормальная лицензия.

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

>Шаблоны переделали, сделали их, как мне показалось, более чёткими

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

xTERM ★★
()

Надо будет попробывать на досуге. :)

---
С Уважением,

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

> Не слушают старших...

А кто "старший"?

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

У этого языка есть серьезная проблема, которая блокирует его популярность: до сих пор не вышел стабильный GNU D Compiler. Притом неизвестно, выйдет ли он в ближайшие (годы?). Последняя версия - 0.24, датирована августом 2007-ого. Разработчиков всего два.

Без этого компилятора не приходится надеяться на появление приемлемой кроссплатформенности, а также на включение D в стандартную поставку с gcc.

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

Компилер gdc есть 64х разрядный, но версия 0.24. DMD от Digital Mars, но только 32-х разрядный o_o

anonymous
()

Выглядит довольно читабельно.

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

>В ослаблении "вирусного" эффекта GPL. Меньше причин проприетарщикам открывать программу.

Есть такие области, где GPL будет работать плохо. В отличии от LGPL. Например, пользовательский интерфейс. Adobe не откроет Acrobat. А EMC - VMware. Они просто забьют на GTK и напишут на другом тулките. Кто от этого выиграет? Никто. Медвежья услуга.

anonymous
()

Код местами на яву похож, читаемо. :) Хотя все они в чём-то похожи.

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

> Ведь говорят, что LGPL - зло замедленного действия.

Зло -- это GPL. Вот от чего всем еще предстоит поплакать горючими слезами.

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

>В ослаблении "вирусного" эффекта GPL. Меньше причин проприетарщикам открывать программу.

Ни один проприетарщик не открыл программу потому что воспользовался GPL. Таких в природе нет.

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

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

Так же как в C++.

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

> Без этого компилятора не приходится надеяться на появление приемлемой кроссплатформенности, а также на включение D в стандартную поставку с gcc.

llvmdc, разрабатываемый под лицензией bsd, уже научился компилировать без ошибок. Правда часто генерит неправильный код. dil (лицензия gpl) скорее всего будет привязан к gcc. Оба проекта в активной разработке.

На данный же момент остаётся использовать trunk gdc (последнее обновление - 8 недель).

naryl ★★★★★
()

Я вот чего не пойму. Пилят-пилят этот D уже который год, так и не допилят, какие-то Digital Mars, Александреску какой-то, две ветки, GNU-компилятора нету. Полный разброд и шатание. Появление каждых новых биндингов встречают радостными возгласами и "в-воздух-чепчиков-киданьем", и новостью на ЛОРе.

А в то же время скромный швейцарский паренёк Jurg Billeter практически в одиночку за полгода наваял язык Vala, где всё то же самое. Плюс куча биндингов искаропки, да могучий рантайм (GLib). Чего-то я не понимаю в этой жизни.

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

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

> На месте спонсоров разработки D

Спонсоров? 0_0

DMD и спецификацию языка пишут 3 человека в свободное от ничегонеделания время. GDC - ещё один. dil - ещё один. llvmdc - ещё два. Спонсоров просто нет и никогда не было.

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

>Спонсоров просто нет и никогда не было.

Вот-вот. Нам бабки никто не платит :) Уже достало, правда, порядком :)))))))))))

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

На этом языке так же пишется игра (точнее движок для игры)

OpenMW — свободная (GPLv3) реализация движка The Elder Scrolls 3: Morrowind. Цель проекта — создать свободную кросс-платформенную играбельную замену проприетарному TES:Morrowind. Планируется поддержка всех существующих ESP, включая дополнения Tribunal и Bloodmoon, исправление багов, улучшение интерфейса и добавление некоторых возможностей, не сильно меняющих геймплей.

На данный момент реализованы следующие возможности:

* загрузка карт из командной строки, * отрисовка карт, * перемещение по миру, * отрисовка моделей PC и NPC (без анимации), * базовая поддержка музыки и звуков, * загрузка ESM от Morrowind, Tribunal и Bloodmoon и любых сочетаний модов.

При разработке используются следующие технологии:

* Язык программирования: D * Графика: OGRE * Звук: Audiere * Ввод: OIS * Скриптовый язык: Mons ter

http://openmw.snaptoad.com/

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

Благодарю за копипаст, но автора всё-же надо указывать. ;)

> Звук: Audiere


Уже OpenAL.

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

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

Вообще никак

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

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

>Так же как в C++.

Красноглазый 4.2

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

> Я вот чего не пойму. Пилят-пилят этот D уже который год, так и не допилят, какие-то Digital Mars, Александреску какой-то, две ветки, GNU-компилятора нету. Полный разброд и шатание. Появление каждых новых биндингов встречают радостными возгласами и "в-воздух-чепчиков-киданьем", и новостью на ЛОРе.

Язык находится в отличном состоянии! Им занимаются Digital Mars с Александреску, есть две ветки. Появляются новые биндинги. Прогресс налицо.

Разброс и шатание, говорите? И это из-за того что нет GNU компилятора? А почему он должен быть?

Не единым GNU, так сказать. Если честно, фанатики, которые считают что вне GPL/GNU жизни нет, порядком поднадоели.

Откройте глаза.

Респект DM.

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

> Язык находится в отличном состоянии! Им занимаются Digital Mars с Александреску, есть две ветки. Появляются новые биндинги. Прогресс налицо.

Язык хз в каком состоянии находится. http://www.linux.org.ru/view-message.jsp?msgid=3076729&page=17#3095756

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

>Так QT значит нету?

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

jet_bird
() автор топика

За такое написание названий функций (setDefaultSize, showAll) руки надо отрывать ещё в детстве!

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

Фронт енд нельзя включить в дистр из-за этого в составе gcc. Соответственно, чтобы скомпилить проги из скачанных сурсов надо будет лезть на сайт DMD. И нет 64-х битной версии.

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

>Adobe не откроет Acrobat. А EMC - VMware.

Acrobat просто никому не нужен. А WMware... Они уже забили на gpl со своим ESXом. Забьют и ещё...

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

> За такое написание названий функций (setDefaultSize, showAll) руки надо отрывать ещё в детстве!

Ну и как же "правильно" называть функции?

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

> Ну и как же "правильно" называть функции?

Для начала -- в нижнем регистре. При наборе текста это гораздо удобнее. Или вы программируете клацая мышкой по проводнику классов? Я против именно смеси верхнего и нижнего регистра. А уж с подчёркиванием или слитно -- тут как заблагорассудится. Но если уж декларировать "наименования близки к GTK+ (очень близки)", то стоит и функции называть как в gtk: gtk_widget_show.

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

>Но если уж декларировать "наименования близки к GTK+ (очень близки)", то стоит и функции называть как в gtk: gtk_widget_show.

для начала посмотри как они называются в gtkmm и gtk#. Обычно придерживаются нотации стандартной библиотеки. phobos/tango в данном случае.

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

>Для начала -- в нижнем регистре. При наборе текста это гораздо удобнее.

shift+Буква vs Shift+-, Буква

Не будь таким категоричным. Пальцы набирают оба варианта одинаково не задумываясь.

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