The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Вышла версия 2.066 компилятора языка D, opennews (??), 19-Авг-14, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


27. "Вышла версия 2.066 компилятора языка D"  +1 +/
Сообщение от arisu (ok), 19-Авг-14, 14:01 
> в этом вашем цпп есть аналог mixin-ов?

и ctfe, ага. впрочем, цпп-шники будут говорить, что «нинада». ровно до тех пор, пока в очередном стандарте такое не введут — тогда оно сразу станет Уберфичей.

Ответить | Правка | Наверх | Cообщить модератору

29. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от анон (?), 19-Авг-14, 14:16 
ну лицемеры они такие. в цпп нет и доли интроспекции d. отвратные шаблоны вообще отдельный разговор
Ответить | Правка | Наверх | Cообщить модератору

30. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 19-Авг-14, 14:22 
дык на то Александреску в ди и пришёл: нормальные шаблоны сделать. и ему таки удалось.
Ответить | Правка | Наверх | Cообщить модератору

58. "Вышла версия 2.066 компилятора языка D"  –1 +/
Сообщение от anonymous (??), 20-Авг-14, 01:04 
> дык на то Александреску в ди и пришёл: нормальные шаблоны сделать. и ему таки удалось.

А что, Александреску правда в D ушел?

Ответить | Правка | Наверх | Cообщить модератору

64. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 04:39 
>> дык на то Александреску в ди и пришёл: нормальные шаблоны сделать. и ему таки удалось.
> А что, Александреску правда в D ушел?

не то, чтобы «ушёл с концами»: C++ он не бросил, пишет статьи, выступает на конференциях. но в то же время он весьма активный разработчик на D, написал практически весь костяк std.algorithm (это такой дальний родственник алгоритмов из STL, только использует ranges) и ещё много всякой шаблонной магии в D.

книгу, опять же, написал: «The D Programming Language» (TDPL). как и полагается — отличная книга. её даже перевели на русский, и не так уж плохо, скорее даже хорошо.

Ответить | Правка | Наверх | Cообщить модератору

72. "Вышла версия 2.066 компилятора языка D"  –1 +/
Сообщение от anonymous (??), 20-Авг-14, 10:09 
> не то, чтобы «ушёл с концами»: C++ он не бросил, пишет статьи, выступает на конференциях.

Хорошо, что ушел. Плохо, что не бросил C++.

"Не читайте Александреску." (C) А. Степанов.

Ответить | Правка | Наверх | Cообщить модератору

33. "Вышла версия 2.066 компилятора языка D"  +1 +/
Сообщение от Crazy Alex (ok), 19-Авг-14, 14:40 
Ну, constexpr уже весьма близок к ctfe. А вот более гибкая объектная система за счет UFCS и alias this - это уникальные фичи D - особенно когда используются с шаблонами.
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

34. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 19-Авг-14, 14:46 
по-моему, alias this — это какая-то невнятная мерзопакость. чемодан без ручки. его надо или выкинуть, или уже приделать нормальную ручку и обивку поменять.
Ответить | Правка | Наверх | Cообщить модератору

41. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Crazy Alex (ok), 19-Авг-14, 16:59 
А за что так? Как по мне - удобная и контролируемая альтернатива множественному наследованию. Для реализации тех же аспектов - в самый раз, тем более, что с шаблонами его, насколько я помню, уже подружили.
Ответить | Правка | Наверх | Cообщить модератору

65. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 04:44 
> А за что так?

как минимум потому, что alias this допускается только одно. то есть, никакая это не альтернатива, а именно чемодан без ручки.

если уж так надо — есть интерфейсы, их можно присобачивать к классу много. а лучше вообще писать на шаблонах, которые тупо проверяют наличие нужных методов, и тогда совершенно пофиг на типы и наследования: нужные методы есть? ок, поехали. ranges, например.

единственное, что даёт alias this и чего нельзя добиться иначе (и то не всегда, есть нюансы) — неявное преобразование типов. то есть, когда класс A можно использовать как класс B, хоть они и не особо родственники. я, впрочем, считаю, что это лишняя фича, только затрудняющая понимание кода.

Ответить | Правка | Наверх | Cообщить модератору

83. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Crazy Alex (ok), 20-Авг-14, 14:39 
То, что alias this единственный - насколько я помню, бага, которая есть в багзилле.

А интерфейсы (хоть формальные, хоть проверки через is и тому подобное) - это хорошо, но тогда надо для всего подряд ляпать прокси, если у тебя данный интерфейс реализуется отдельным готовым объектом, от которого ты не хочешь наследоваться. Как примитивный пример - допустим, есть объект и ты хочешь иметь возможность его лочить снаружи. Одно дело - когда ты создал внутри мьютекс, написал alias myMutex this и всё. Другое - когда тебе lock|unlock надо явным образом пробрасывать. Шаблонам оно ортогонально.

Ответить | Правка | Наверх | Cообщить модератору

84. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 14:46 
> То, что alias this единственный - насколько я помню, бага, которая есть
> в багзилле.

и давно. и всем пофигу.

алсо, template mixins. на кой тебе этот alias? спокойно делаешь mixin template и миксинишь его в класс/структуру. с методами lock и unlock. потому что высовывать детали реализации (mutex) наружу — моветон. а для универсальной лочки — опять же шаблон, который проверит наличие нужного метода.

хватит уже крестами мыслить, D — не кресты.

Ответить | Правка | Наверх | Cообщить модератору

89. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Crazy Alex (ok), 20-Авг-14, 16:25 
Ну, они неспешно, но всё чинят.

mixin template - можно, std.typecons.Proxy. Но это ни  хрена не "is a" - то есть оно крякать умеет, но не утка а, скажем, уткоробот. Если у тебя чисто шаблонный код - нормально, но если еть еще и объектные иерархии - ты захочешь иметь возможность именно неявного преобразования. И ещё когда хочется красивые штуки сделать - ну там, ORM прозрачно работающий и тому подобное - тоже очень к месту оно оказывается, именно из-за неявного преобразования.

Я, в общем-то, с чего начинал - в отличие от плюсов в D есть масса вариантов реализовать ООП, и этого в плюсах не будет никогда, в отличие от более-менее человеческих шаблонов или тех же лямбд.

Ответить | Правка | Наверх | Cообщить модератору

90. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 20-Авг-14, 16:40 
> Ну, они неспешно, но всё чинят.

стараемся. ;-)

> если еть еще и объектные иерархии

да ну их нафиг, шаблонная магия вкуснее.

> Я, в общем-то, с чего начинал - в отличие от плюсов в
> D есть масса вариантов реализовать ООП, и этого в плюсах не
> будет никогда, в отличие от более-менее человеческих шаблонов или тех же
> лямбд.

ну, по гамбургскому счёту, та же шаблонная магия в крестах есть. вот только писать её — это как удалять аппендикс зубами, с завязанными глазами и связанными руками. их SFINAE вместо нормальных constraints — вообще песня, йопт.

Ответить | Правка | Наверх | Cообщить модератору

99. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от Crazy Alex (ok), 21-Авг-14, 18:34 
Да я о том, что сделать более человеческие шаблоны в плюсах можно - и даже совместимость не сломать. А вот тот же UFСS со всеми плюшками, которые он даёт шаблонам - в жизни не впихнуть.

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

Мне, в общем-то, D тем в основном и понравился, что особо нет попыток запихнуть в рамки "истинно правильной веры". Хочешь ООП с деревом классов - бери. Хочешь шаблоны - бери. Хочешь функциональный подход - тоже можно, хотя хаскелистам не понравится. Хочешь перемешать - вперёд.

Ответить | Правка | Наверх | Cообщить модератору

101. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 21-Авг-14, 18:41 
rdmd тоже крутая штука. я как-то уже и привык скрипты на D писать… ;-)
Ответить | Правка | Наверх | Cообщить модератору

103. "Вышла версия 2.066 компилятора языка D"  +/
Сообщение от arisu (ok), 21-Авг-14, 18:44 
кстати, ребята сейчас допиливают автотранслятор фронтэнда с c++ на d. и планируют после стабилизации перейти на дишный фронтэнд. оно (ddmd), в принципе, уже даже «приветмиры» собирает. благо, фронтэнд написан без изысков, так что большинство кода вполне автоматически транслируется.
Ответить | Правка | К родителю #99 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру