LINUX.ORG.RU

QtD 0.1

 ,


0

0

Вышел первый релиз QtD — биндинга языка D к фреймворку Qt. Уже работает более чем 150 Qt классов из core, gui и opengl.

Полный список

QtD использует tango и распространяется под GNU GPL v3. Сейчас можно собрать только под GNU/Linux.

>>> Подробности



Проверено: svu ()

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

>Это здорово, но я спрашивал о претензиях. Они у тебя есть, да или нет?

Определённо есть. К примеру мне не нравится реализация механизма exception'ов.

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

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

У меня довольно неплохо поставленный голос (и совсем не гнусавый), так что идите в печку. :)

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

>> Это здорово, но я спрашивал о претензиях. Они у тебя есть, да или нет?

> Определённо есть.

Тогда странно, что ты еще не удавился, с такими-то советами.

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

>Тогда странно, что ты еще не удавился, с такими-то советами.

Мусье имеет недоразвитый моск? Вы хоть поняли что я до Вас в том числе хотел донести, нет?

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

Хорошо... раз уж пошла такая пьянка, то напомню Вам Ваши же высказывания о С++:

"Городи уебищный код только ради проверки выхода за границу?"

"куча ручной работы, а не один простой макрос (использующий нестандартную конструкцию)"

(про итераторы и выход за границы) "Про определение - не знаю, но на практике - может."

И здесь я присоединюсь к тому что Вам уже говорили: "Так что обращаемся к литературе и поменьше демонстрируем свою неграмотность."

Далее, если ситуация симметрична, как Вы утверждаете, то может Вы приведёте мои подобные высказывания про D?

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

>"Городи уебищный код только ради проверки выхода за границу?"

Своим знанием отладочного режима STL ты на ЛОР-е никого не удивишь.

>"куча ручной работы, а не один простой макрос (использующий нестандартную конструкцию)"

Умением вместо простого макроса написать десятиэтажный шаблон - тоже.

>"Так что обращаемся к литературе и поменьше демонстрируем свою неграмотность."

То что С++ - это золотое дно для книгоиздателей тоже не для кого ни секрет.

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

>Своим знанием отладочного режима STL

Быть того не может, правда что-ль?.. Ну раз Вы такой великий лор-аналитик, поясните что же это за режим такой? А то мужики не знают - сидят и плачут. :)

>Умением вместо простого макроса написать десятиэтажный шаблон

У-ля-ля... какие подробности. :) А в чём недостаток макросов который серьёзно ограничивает их применение сможете сказать?

>То что С++ - это золотое дно для книгоиздателей тоже не для кого ни секрет.

Уже плачу... Вам завидно чтоле? ;)

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

> напомню Вам Ваши же высказывания о С++:

> "Городи уебищный код только ради проверки выхода за границу?"

Код с использованием .at() выглядит уебищно, причем мой анонимный собеседник против этого особо не возражал. Если тебе код с at() нравится, ради ТНБ.

> "куча ручной работы, а не один простой макрос (использующий нестандартную конструкцию)"

Здесь возражений нет?

> "Про определение - не знаю, но на практике - может."

> здесь я присоединюсь к тому что Вам уже говорили: "Так что обращаемся к литературе и поменьше демонстрируем свою неграмотность."

Доказательство того, что итератор не может выйти за границу - в студию.

> Далее, если ситуация симметрична, как Вы утверждаете, то может Вы приведёте мои подобные высказывания про D?

"Сииметрично" относилось вот к этой фразе:

> "Мусье имеет недоразвитый моск? Вы хоть поняли что я до Вас в том числе хотел донести, нет?".

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

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

>>У D терпимая совместимость с C++, до тех пор пока либа на C++ не имеет шаблонов и текстовых макросов в интерфейсе.

>А причём тут либа??? При компиляции и шаблоны и текстовые макросы разворачиваются в обычный код....


И как же мне "скомпилированный текстовый макрос" из библиотеки использовать в своей программе? :)

(Кто-то кого-то недопонял...)

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

>Доказательство того, что итератор не может выйти за границу - в студию.

Он наверно осилил Мейерса (Effective STL) и теперь писает кипятком оттого что в отладочном режиме в итераторах есть спец.поле со обратной ссылкой на коллекцию с которыми они ассоциированы, что дает возможность итераторам проверять валидность самих себя.

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

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

А виделы бы Вы, какой высший пилотаж Александреску творит в std.algorithm и std.range. :) Он не жалуется, но по другой причине. Какой смысл тратить время на жалобы если можно просто сделать что-то лучшее?

http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/algorithm.d

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

>Код с использованием .at() выглядит уебищно, причем мой анонимный собеседник против этого особо не возражал. Если тебе код с at() нравится, ради ТНБ.

Послушайте... ну раз он Вам так не нравится - не используйте, какие вопросы?

Вообще-то моё имхо состоит в том, что в обсуждении подобных вопросов необходимо идти от задачи, поэтому приведите при решении какой практической задачи Вам встретился столь "ненавистный" .at()? :)

>Доказательство того, что итератор не может выйти за границу - в студию.

Хехе.... у мега-хацкеров и kewl zyzopz и не то ещё бывает. Однако если писать правильно - то всё очень даже безопасно получается. Расскажите как может выйти итератор за границы при использовании его, к примеру, вот так:

vector<int> my_vec; vector<int>::iterator iter;

// blah-blah-blah...

for( iter = my_vec.begin(); iter != my_vec.end(); ++iter; ) { //some code here }

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

И в конце концов, Вас никто не наклоняет - пишите на чём вам удобно.

>На всякий случай я объясню, что имел в виду: не надо хамить

Мне кажется, что после своих феерических "каментов" Вы потеряли право раздавать подобные советы.

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

Пока не видно что-то... :)

>людям, о которых ничего не знаешь

Как Вы там говорите, ах да - "симметрично"! :)

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

> http://www.dsource.org/projects/phobos/browser/trunk/phobos/std/algorithm.d

я конечно понятия не имею что там в этом файле написанно , но там *обильно* используются ключевые слова "int" .

еслибы это был  C++, то "int" обозначалобы данные целого типа *стандартной_длинны* (зависит от того какие возможности у компьютера . например компьютеры не запрещают быть и 128 битными :-) ) 

а вот в D -- судя по докуменации (которую далеко выше предоставляли) -- "int" обозначает данные *32-битной* длинны..

тоесть для 64-титных (и 128-битных) компьютеров -- этот "algorithm.d" будет выступать в роли ГЕМОРОЯ .

// p.s. даже в Python и PHP (а не то что уж C/C++) -- не допустили такой *оплошности* с int . и в результате код получается переносимым .

// p.p.s. а такой идиотский подход (как в D с его "int") напоминает Mono и .NET -- которые и были сделаны лишь для того чтобы *временно* удовлетворить массы людей , а потом придумать новые "уникальные и супер пупер мегаклассные" языки


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

ГЕМОРОЯ = "\"узкого места\" , непозваляющего использовать всю арифметическую (целочисленную) мощь текущей N-битно архитектуры"

// p.s. ато вдруг ктото непоймёт что я имел ввиду :-) :-) ..

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

>А виделы бы Вы, какой высший пилотаж Александреску творит в std.algorithm и std.range. :) Он не жалуется, но по другой причине. Какой смысл тратить время на жалобы если можно просто сделать что-то лучшее?

А я, кстате, очень даже поддерживаю такой подход. :)

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

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

>И как же мне "скомпилированный текстовый макрос" из библиотеки использовать в своей программе? :)

Ээээ... давайте перейдём к конкретным вещам, чувствую так мы быстрее понимание найдём. Что за библиотека? :)

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

>Просто я не понимаю с какой стати надо обхаивать технологии,в которых ты явно недостаточно разобрался (шпилька в сторону tailgunner).

У TG более 10 лет стажа реального кодинга на С++.

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

> я конечно понятия не имею что там в этом файле написанно , но там *обильно* используются ключевые слова "int" .

В юниттестах. В действующем коде нет ни одного конкретного типа. :)

Поведение программы при переполнении неопределено, т.е. компилятор волен использовать бОльшие типы, если считает, что это повысит производительность. Программу нужно писать думая не о том, на какой машине она будет работать, а о том, влезет ли в 2^31 все значения, которые может принимать данная переменная.

Если Вам станет легче тип size_t определяется как целочисленная переменная, имеющая размер машинного слова целевой архитектуры.

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

>я конечно понятия не имею что там в этом файле написанно , но там *обильно* используются ключевые слова "int" .

Гы, int там используется *юниттестах*.

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

>> Доказательство того, что итератор не может выйти за границу - в студию.

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

Доказательство сводится к "а если не сделать ошибки, всё работает правильно"? Крутое доказательство. Как болид "Формулы-1".

>>людям, о которых ничего не знаешь

>Как Вы там говорите, ах да - "симметрично"! :)

Дитё горькое, я тебе вообще ничего не хотел советовать, пока ты не попросил об этом явно.

</thread>

Извиняюсь за оффтопный Си++-флейм.

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

>У TG более 10 лет стажа реального кодинга на С++.

У меня есть знакомые у которых по 25 лет стажа реального кодинга real-time систем, пишущих софт работающий под виндой с микросекундными задержками, и они нифига не знают про STL. Так что не агрумент. :)

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

> Ээээ... давайте перейдём к конкретным вещам, чувствую так мы быстрее понимание найдём. Что за библиотека? :)

Не в том вопрос. И не против C++ вообще. Я просто попытался опровергнуть утверждение о плохой совместимости с C++. Либы на C++ достаточно легко используются из D, если в их интерфейсе нет макросов, шаблонов и левых препроцессоров. Как, например, в Qt. :)

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

>Доказательство сводится к "а если не сделать ошибки, всё работает правильно"

А так оно по жизни и получается. С понятием coding style сталкивались? Код на review отсылали?

>Дитё горькое,

Я, если честно, вообще несъедобное. :)

>я тебе вообще ничего не хотел советовать, пока ты не попросил об этом явно.

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

Да, не доскажите в каком это посте я у Вас совета просил? :)

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

> Поведение программы при переполнении неопределено, т.е. компилятор волен использовать бОльшие типы, если считает, что это повысит производительность. Программу нужно писать думая не о том, на какой машине она будет работать, а о том, влезет ли в 2^31 все значения, которые может принимать данная переменная.

а зачем об этом думать (праграммируя на C/C++/PHP/Python) , когда нужно просто произвольная _нормальная_ целочисленная переменная , того размера с которым хорошо работает компьютер ..

.. а вот *если_уж_нада_подумать* "влезет ли в 2^31 все значения" -- то в этих случаях в C++ используются int16_t , int32_t , int64_t , .... и прочее....


> Если Вам станет легче тип size_t определяется как целочисленная переменная, имеющая размер машинного слова целевой архитектуры.

почемуже тогда автор того *.d документа использовал именно int а не size_t ????? УМЫШШЛЕННО чтобы сделать код НЕРОДНЫМ для 64-битных (и 128-битных .. ну так на будущее) компьютеров?

просто недогадался и ступил? если так то ладно, тогда мои негодования (по поводу переменных в D) немного утихли :-) ....

...но вообщето в компьютере разречаются могут (как например в x84_64) арифметические возможности и аддресные возможности..
в этом случае в C++ 
sizeof(int) != sizeof(void *)
а как назвывается в D переменная эквевалентная C++-овскуму "int" ?

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

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

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

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

>Не в том вопрос. И не против C++ вообще.

Ну мы этот вопрос вроде уже прояснили. :)

>Я просто попытался опровергнуть утверждение о плохой совместимости с C++. Либы на C++ достаточно легко используются из D, если в их интерфейсе нет макросов, шаблонов и левых препроцессоров. Как, например, в Qt. :)

А, в этом смысле - да... :)

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

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

Спит небось, а может купил пивка ящик и футбол смотрит или какает... кто ж его знает?

О МАЙ ГОД!!!! Александреску... это ты????

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

> а как назвывается в D переменная эквевалентная C++-овскуму "int" ?

Такой нет. И судя по стандарту, автор забыл, что размер указателя и размер слова могут несовпадать. :)

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

>Лично мне после D в плюсах больше всего не хвататет делегатов

C++0x

>foreach

std::for_each + лямбда-функции в C++0x

>нормальных массивов с проверкой границ

не нужно

>полем размера и нормальной многомерностью

не нужно

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

shty собственно и не говорил, что Александреску не знает горя с C++. Было сказано "не особо жалуются" :D

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

>так вот нефига говорить что он горя не знает с С++.

нефига, нефига... нефига онанизмом заниматься!

1) в каком посте я говорил что он "горя не знает с С++"?

2) откуда Вы-то это знаете?

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

>>Доказательство сводится к "а если не сделать ошибки, всё работает правильно"

>А так оно по жизни и получается

По жизни получается так, что в языки надо закладывать способность противодействовать ошибкам. Лучшая похвала Хаскелу. которую я читал - "Если программа скомпилировалась, она обычно работает". В Си++ этого нет вообще. В D - немного есть.

>> я тебе вообще ничего не хотел советовать, пока ты не попросил об этом явно.

> Вы, видимо, уже забыли с чего это всё началось,

Мы не забыли. Все мои фразы, которые ты процитировал, были сказаны в обсуждении макроса foreach для Си++. Мы так же помним, что ты не указал ни одной моей конкретной ошибки.

> Да, не доскажите в каком это посте я у Вас совета просил? :)

Скажу, конечно. Вот эта фраза:

> Далее, если ситуация симметрична, как Вы утверждаете, то может Вы приведёте мои подобные высказывания про D?

продемонстрировала полное непонимание мягкого намека на неуместность совета "удавитесь", и необходимость явного совета "не хами".

Теперь точно </thread>, чесслово :)

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

>1) в каком посте я говорил что он "горя не знает с С++"?

Какая разница. Не жалуется потому что не пользуется.

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

> Именно поэтому на с++ так много говнокода, просто тонны говнокода. покажите мне пальцем человека, который "умеет его готовить". восторг по поводу ++ показывает лишь некомпетентность школоты, дорвавшейся до студии. С++ должен был еще с 20 веке сдохнуть...10 лет назад. Но инертность мышления и общее отупение масс ...

Покажи мне лучшую альтернативу для тех задач, которые решаются на C++.

обязательные условия: 1) возможность написания драйверов, работающих с железом, библиотек, выполняемых программ. 2) эффективное использование процессора и памяти, небольшой размер создаваемых выполняемых файлов. 3) быстрый старт программы, а не только быстрая работа после старта. 4) возможность написания широкого круга программного обеспечения от операционной системы, ее драйверов до ворда, например. 5) работа на разном железе 6) независимость от одного поставщика, патентодержателя, споснора. Т.е. невозможность ограниченного числа людей определять развитие языка 7) работа под разными операционными системами 8) хорошая обратная совместимость при выходе очередной версии или стандарта языка. (типа, чтобы код страуструпа пятнадцатилетней давности собирала максимум с варнингами :)

Так вот, недавно тут был тред, в котором на много страниц писали, что плюсы гавно. Меня это коробило. В итоге выяснили, что ничего лучше для этих задач нет.

Прикол в том, что недостатки плюсов знают лучше всего те, кто на них пишет всерьез. И эти люди знают не один язык и постоянно ищут чем бы эти плюсы заменить. Нет альтернативы.

IMHO, если бы очень умные люди, которые трындят, что плюсы должны умереть много лет назад предложили 1. лучшую альтернативу, которая 2. поддерживала существующий код на C++ (хотябы на уровне библиотек).

Тогда такой язык заменил бы C++ за несколько лет (на плюсах только поддерживали бы существующие большие проекты). Лет через 10 переписали бы на нем все, что используется сейчас.

Разговор про то, что C++ гавно и должен умереть - чисто выражение эмоций без какой-либо практической ценности. Т.к. из альтернатив пара проприетарных поделок под нужные частникам платформы + куча тормозных интерпретируемых язаков + куча очень узкоспецифических языков.

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

> Так что у D еще есть время :)

Сомневаюсь что D конкурент C++. Скорее java, C#. И если java от выхода до стандартизации шла долго, то C# быстро стандартизовали.

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

> Ну и плохая совместимость с С++.

Ну с C++ у кого только не плохая совместимость. Даже у самого C++ плохая совместимость с C++.

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

> (/me, кстати, водит только трактор :D )

/me поражен в пятку.

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

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

> И, заметьте, не особо жалуются.


Есть такое. Однако возникает другой вопрос. За сколько времени ты сможешь набрать команду из 20 разработчиков способных понимать C++ как его понимает Александреску? Упростим задачу. Хотя бы таких же как ты сам?

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

> На тракторе этап F1 не выиграешь. :)

Зависит от стартовой позиции и ширины ковша.

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

> Просто уровень вхождения у С++ довольно высок по сравнению, к
> примеру, с тем же Python или C#.


Уровень вхождения в C# растет с каждым новым релизом языка. Хотя как показывает опыт набирания кандидатов даже C# 1.0 осиливает один из 50.

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

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

>А Вы бы как ответили на этот вопрос???

На какой конкретно? Ветка там была длинная...

>Кстати, вот Вы на чём бы стали писать если бэ был свободный выбор?

А у меня итак выбор свободный. Я уже много лет выбираю язык под задачу. И на Си/Си++ я не пишу уже лет 10. И не потому, кстати, что они плохие :) Потому что у меня нет задач, где их использование было бы оправдано.

>На тракторе этап F1 не выиграешь. :)

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

...

А, вообще, вопрос в том, что трактора несравнимо более востребованы, чем болиды F1. И пользы куда как больше приносят :)

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

>Просто уровень вхождения у С++ довольно высок по сравнению, к примеру, с тем же Python или C#.

Увы, с точки зрения новичка оценить не могу, но я не вижу, чем Си++ приницпиально сложнее Питона, а уж тем более, C#. Да, сложнее. Но не намного. Да, потенциально можно допустить больше ошибок. Но это мало относится к уровню вхождения. Да, требует много больше возни для написания того же продукта, но это к уровню вхождения не относится уже совсем :)

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

>>У TG более 10 лет стажа реального кодинга на С++.

>У меня есть знакомые у которых по 25 лет стажа реального кодинга real-time систем, пишущих софт работающий под виндой с микросекундными задержками, и они нифига не знают про STL. Так что не агрумент. :)

Кстати, я "ушёл" с Си++ раньше, чем появились массовые решения с STL. Так что тоже его не знаю, только самые общие представления имею :) А опыт программирования на момент ухода имел около 7 лет.

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

> У D терпимая совместимость с C++, до тех пор пока либа на C++ не имеет шаблонов и текстовых макросов в интерфейсе.

Если из С++ убрать шаблоны, получится почти что С -- в стиле gobject, так что:

У D терпимая совместимость с C++, до тех пор пока либа на C++ написана на С.

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

> Разговор про то, что C++ гавно и должен умереть - чисто выражение эмоций без какой-либо практической ценности.

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

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

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