Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Создам "пятничную" темку, а то в Страустраповской уже доехали до флуда, и добавлять неохота. 1. В общем так - я даже! почитал спецификацию языка D и сложилось мнение, что в нем уже сейчас есть все (или почти все), что только вводят в C++0x и даже несколько больше. Конечно, его пока нельзя с чистой совестью назвать промышленным языком, но... 2. А в плюсах мое мнение, что с шаблонным метапрограммированием перемудрили - порождает очень много неочевидных ошибок компиляции. Например, попробуйте собрать boost неродным для него компилятором и понять, чего оно хочет... В общем предлагаю дискуссию по пунктам выше. Ссылка на его хоум. Основные фичи и отличия от C++ тут и тут . Спецификация языка в pdf 200 страниц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 15:07 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl, так там вроде множественного наследования нет и не предвидится, ну и "Garbage Collector| Yes". на первый взгляд, остальное по ознакомлению со спецификацией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 15:32 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorychSiemargl, так там вроде множественного наследования нет и не предвидится, ну и "Garbage Collector| Yes". на первый взгляд, остальное по ознакомлению со спецификацией Некоторые вещи убрали, еще например препроцессор. Garbage Collector как основное средство, но delete тоже можно свободно пользоваться. В принципе есть Garbage Collector либы и для С. Вот еще, забыл - на хабре есть перевод статьи Александреску о D. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 15:47 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl, блин, ну вот опять: D-FAQD2.0 — развивающаяся в данный момент ветка языка, куда периодически вносятся изменения функционала и новые возможности. Эта ветвь жертвует некоторой обратной совместимостью с D1.0 ради большей выразительности. что за отвратительная привычка-то? ещё 2ю версию недоработали, а уже об обратной совместимости можно забыть. имхо, пока не появится стабильная версия языка, говорить не о чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 15:55 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorychSiemargl, блин, ну вот опять: D-FAQD2.0 — развивающаяся в данный момент ветка языка, куда периодически вносятся изменения функционала и новые возможности. Эта ветвь жертвует некоторой обратной совместимостью с D1.0 ради большей выразительности. что за отвратительная привычка-то? ещё 2ю версию недоработали, а уже об обратной совместимости можно забыть. имхо, пока не появится стабильная версия языка, говорить не о чем. Там по моему совсем мелочей касается. (И Breaking Changes есть и в плюсах) Есть более другая проблема - ДВЕ стандартных либы Фобос(от разработчика) и Танго(от комьюнити). И их в версии 1.0 было нельзя совмещать. В 2.0 уже можно использовать параллельно, но совершенно разный стиль программирования. Я сразу сделал оговорку про непромышленный язык =) Тоже только начал кусками разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 16:03 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl, а вообще интересно, подожду выхода книжки от Александреску, можно будет попробовать осилить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 16:38 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl wrote: Так без базару D симпатичнее. Только одна проблема есть -- мало распространён. Наверное, ещё меньше, чем Common Lisp. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 18:44 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Велик соблазн портировать С++шные разработки на D. Интересно как с этим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 20:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
MasterZiv Так без базару D симпатичнее. Только одна проблема есть -- мало распространён. Наверное, ещё меньше, чем Common Lisp. По Тиобе - да, в полтора раза меньше. Кстати, динамическая кодогенерация это в D из Лиспа =) maytonВелик соблазн портировать С++шные разработки на D. Интересно как с этим.Не ахти . Реализация шаблонов слишком разная, много переписывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 21:00 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Судя по ньюсгруппам, Александреску лично участвует по крайней мере в ревью разработок над D. К сожалению, его книгу скачать не удалось, нашлась только "Learn to Tango with D", а покупать через Амазон долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2010, 21:19 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Ссылка на его хоум. Основные фичи и отличия от C++ тут и тут . Спецификация языка в pdf 200 страниц. много букав, много обещаний. сравнения с++ и D кода убогие. аффтар не знает C++ =автор Arrays are declared with the [] after the identifier. This leads to very clumsy syntax to declare things like a pointer to an array: Код: plaintext 1. вывод: не взлетит, по крайней мере лет на 5 про него можно забыть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2010, 20:50 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность, Поздравляю Шарик,ты балбес! (с) Простоквашино Почитай в Вике, кто такие Вальтер Брайт и Андрей Александреску (который все же со-разработчик) =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2010, 21:14 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglалчность, Поздравляю Шарик,ты балбес! (с) Простоквашино Почитай в Вике, кто такие Вальтер Брайт и Андрей Александреску (который все же со-разработчик) =) Ну вот, хамите и ссылками кидаетесь, линукс надоело "пиарить" так за новый ЯП принялись Нечего по теме сказать, зайко? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.07.2010, 23:49 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность, Чего сказать хотел то? Я дал подтверждение, что авторы _весьма_ знающие люди в С++. И про массивы что? Си-шный синтаксис тоже поддерживается для указателей на массивы и функции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2010, 00:01 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчностьSiemargl Ссылка на его хоум. Основные фичи и отличия от C++ тут и тут . Спецификация языка в pdf 200 страниц. много букав, много обещаний. сравнения с++ и D кода убогие. аффтар не знает C++ Думаю, человека написавшего компилятор С++ трудно назвать незнающим его =автор Arrays are declared with the [] after the identifier. This leads to very clumsy syntax to declare things like a pointer to an array: Код: plaintext 1. вывод: не взлетит, по крайней мере лет на 5 про него можно забыть Пока на взлетит, да. А может и вообще не. Но по совершенно другим причинами, связанным с личностью его создателя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2010, 00:53 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Про массивы : автор одной из статей по ссылкам из первого поста данного топика приводит пример "неуклюжего" синтаксиса С++ Код: plaintext 1. Код: plaintext 1. Но синтаксис С++ не чуть не уступает: Код: plaintext 1. Ну так вот, пройдя по нескольким ссылкам, мне не встретилось ни одного приличного примера, показывающего явные приемущества D над C++. Пропоганда работает из рук вон плохо. Во-вторых: Отсутствие препроцессора и наличие сборщика мусора - очень сомнительные фичи. В-третьих: D, конечно, лучше чем С++. Но чтобы разработчики на него перешли, он должне быть заметно лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2010, 21:26 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчностьНо синтаксис С++ не чуть не уступает: Код: plaintext 1. Это массив указателей, а не указатель на массив, как первые два примера )))))) алчность Ну так вот, пройдя по нескольким ссылкам, мне не встретилось ни одного приличного примера, показывающего явные приемущества D над C++. Пропоганда работает из рук вон плохо. Во-вторых: Отсутствие препроцессора и наличие сборщика мусора - очень сомнительные фичи. В-третьих: D, конечно, лучше чем С++. Но чтобы разработчики на него перешли, он должне быть заметно лучше. Сборщик мусора - опционален, можно паралелльно использовать delete. Шаблоны заметно лучше, в т.ч.легко заменяют препроцессор, умеют "шаблониться" не только от типа или частичной специализации, но от всего на свете (модули, переменные, тьюпли, выражения!), включая переменное количество произвольных параметров. В общем, пока у меня впечатление, что - что бы ни написал в шаблонах, компилятор поймет. (Вспомним мучения Cerebrum, ни и свои тоже, связанные с плюсовым синтаксисом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2010, 22:13 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglалчностьНо синтаксис С++ не чуть не уступает: Код: plaintext 1. Это массив указателей, а не указатель на массив, как первые два примера )))))) да, мне следовало быть повнимательнее) Указатель на массив такого вида ( int (*array)[3] ) мне ни разу не встречался, говорю честно. И вряд ли этому вообще можно найти применение, разве что в хитрых алгоритмах прохода по массивам, НО , в таких алгоритмах зачастую легче использовать отдельную функцию с передачей указателя на массив: Код: plaintext 1. 2. 3. 4. Siemargl Сборщик мусора - опционален, можно паралелльно использовать delete. Дурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядут, и в конце концов окажется что аналогичная программа на java/c#/python будет работать быстрее и меньше памяти потребляет. Siemargl Шаблоны заметно лучше, в т.ч.легко заменяют препроцессор, умеют "шаблониться" не только от типа или частичной специализации, но от всего на свете (модули, переменные, тьюпли, выражения!), включая переменное количество произвольных параметров. Интересно, а такое можно на шаблонах организовать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Siemargl В общем, пока у меня впечатление, что - что бы ни написал в шаблонах, компилятор поймет. хотелось бы взглянуть на реальные примеры :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 21:11 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность Siemargl Сборщик мусора - опционален, можно паралелльно использовать delete. Дурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядут, и в конце концов окажется что аналогичная программа на java/c#/python будет работать быстрее и меньше памяти потребляет. Смотрите на это с положительной стороны. У нас появились варианты работы с указателями (ссылками). Это как стакан коньяку который более наполовину полон чем пуст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 21:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчностьУказатель на массив такого вида ( int (*array)[3] ) мне ни разу не встречался, говорю честно. И вряд ли этому вообще можно найти применение, разве что в хитрых алгоритмах прохода по массиваммассив указателей на int, имхо, действительно, экзотика. А вот массивы указателей на функции - вполне себе распространённое явление. Особенно в старом С-коде. Сам использовал такие фишки несколько раз, бывает удобным, когда надо выбрать операцию в зависимости от индекса. Там конструкция ещё более внушительно смотрится )) алчностьДурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядутздесь согласен полностью ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2010, 22:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность Указатель на массив такого вида ( int (*array)[3] ) мне ни разу не встречался, говорю честно. Указатели на ф-ции с таким же синтаксисом встречаются очень часто. алчность Siemargl Сборщик мусора - опционален, можно паралелльно использовать delete. Дурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядут, и в конце концов окажется что аналогичная программа на java/c#/python будет работать быстрее и меньше памяти потребляет. Утверждается, что на реальных задачах GC работает не медленнее прямого освобождения. Видимо за счет зачистки "оптом". алчность Интересно, а такое можно на шаблонах организовать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Почти такое же, но менее удобно (переменную в текст не преобразуешь, а вот наоборот - текст в код - можно!): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Полное сравнение с препроцессором (кроме mixin) тут . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 02:22 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglалчность Указатель на массив такого вида ( int (*array)[3] ) мне ни разу не встречался, говорю честно. Указатели на ф-ции с таким же синтаксисом встречаются очень часто. в таких случаях говорят "палка на 2х концах", с одной стороны - синтакс С++ жутко выглядит, с другой - указатели на функции невозможно спутать с какими-либо другими указателями, даже находясь в нетрезвом состоянии ) Siemargl алчность Siemargl Сборщик мусора - опционален, можно паралелльно использовать delete. Дурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядут, и в конце концов окажется что аналогичная программа на java/c#/python будет работать быстрее и меньше памяти потребляет. Утверждается, что на реальных задачах GC работает не медленнее прямого освобождения. Видимо за счет зачистки "оптом". Создатели java и C# наверняка утверждают то же самое. Siemargl алчность Интересно, а такое можно на шаблонах организовать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Почти такое же, но менее удобно (переменную в текст не преобразуешь, а вот наоборот - текст в код - можно!): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Что и тебовалось доказать, Вместо тупой замены текста с помощью препроцессора городить абстракции из шаблонов - это програмирование ради программирования! Полностью заменить препроцессор без оверхэда не получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 21:17 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчностьПолностью заменить препроцессор без оверхэда не получитсяименно поэтому он до сих пор жив и здравствует. Хотя все согласны с тем, что он - зло )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 23:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность в таких случаях говорят "палка на 2х концах", с одной стороны - синтакс С++ жутко выглядит, с другой - указатели на функции невозможно спутать с какими-либо другими указателями, даже находясь в нетрезвом состоянии ) Тут беда в том, что указатель на функцию, возвращающую указатель на функцию, плохо читается и в трезвом состоянии ( алчность Дурной пример - заразителен. Если один из группы разработчиков начнёт это применять, то вскоре и все остальные подсядут, и в конце концов окажется что аналогичная программа на java/c#/python будет работать быстрее и меньше памяти потребляет. Siemargl Утверждается, что на реальных задачах GC работает не медленнее прямого освобождения. Видимо за счет зачистки "оптом". Создатели java и C# наверняка утверждают то же самое. Пока не проверю, не поверю ни те ни другим. Но в корпоративе GC считаю выгоднее. алчность Что и тебовалось доказать, Вместо тупой замены текста с помощью препроцессора городить абстракции из шаблонов - это програмирование ради программирования! Полностью заменить препроцессор без оверхэда не получится Надо уверенно понять, какие темплейты удобнее в работе. Отказ от макросов не поддержу - привык ) Но оверхед - т.е потеря скорости, тут не вносится. Чисто компилятивный изыск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2010, 23:30 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНо оверхед - т.е потеря скорости, тут не вносится. Чисто компилятивный изыск.а как у них с потерями скорости при компиляции шаблонов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 01:58 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Тут беда в том, что указатель на функцию, возвращающую указатель на функцию, плохо читается и в трезвом состоянии Я бы вообще предложил подумать над тем, что усложнение текста программы не является плюсом. Александреску наверное такой гуру, что его это не касается. А ведь усложнение текста ведет к увеличению времени, требуемого для понимания программы. Их ведь не только писать приходится, но и понимать то, что написал кто-то, кого уже нельзя спросить - что он тут хотел выразить. Так ли хорошо вводить в язык все новые и новые фичи? Может быть, для совершенствования редко используемых вещей лучше не изменять язык широкого применения? Синтаксическая сложность текста - одна из трудностей при изучении кода. Вторая сложность (бОльшая, на мой взгляд) - что за увеличением сложности языка, расширением стандартных библиотек, стоит необходимость в более светлых головах. Не знаю как в столицах, а у нас например переизбытка в них нет. Программы же пока надо и сопровождать и расширять и дорабатывать. И опять же, чем меньше народу может писать на языке, тем менее популярен и применим будет этот язык. Когда в стандарт из boost вносят shared_ptr - это понятно. А вот скажем вносить в стандарт C++ (или в STL) из того же boost функционал по обработке изображений вряд ли хорошая идея. В STL надо вносить то, что широко применяется. D получается экзотичным языком на мой взгляд, не конкурирующим с С++, а уходящим дальше от него, и он не видится мне массовым языком, все-таки массовое должно быть довольно простым. А С++ уже довольно не прост, и без изучения, кроме С++ и MSDN, книг типа Саттера наверняка будет применяться с косяками, это уже на его (С++) уровне сложности. На D будут писать те, кого порадует изучение его прибамбасов. А реальность заставит находить тех, кто есть в наличии, и выбирать то, на чем они смогут писать - С++. И получилось у меня, отвечая на вопрос топика, что D не альтернатива ни С++, ни С++0х как его следующей версии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 09:58 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorychSiemarglНо оверхед - т.е потеря скорости, тут не вносится. Чисто компилятивный изыск.а как у них с потерями скорости при компиляции шаблонов? Никак. Все же однозначно компилируется. Процесс компиляции сильно быстрее чем в С++ (заголовков нет), скорость выполнения программ - мало нашел тестов, в тех что нашел - чуть медленнее gcc. Оптимизатор у Брайта никогда не был топовым. teo609, C++ непростой язык. D пытаются создать немного проще, чем C++. Но поскольку основные парадигмы совпадают, в общем он по сложности такой же. Единственное, исходники STL в реализации D должны проще выглядеть =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 10:11 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl wrote: > Единственное, исходники STL в реализации D должны проще выглядеть =) Блин, если и там есть STL, не буду его использовать. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 10:50 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Там Фобос =) Про переписывание STL на D Александреску писал, что в лоб красивше не вышло. Потому библиотека другая, без итераторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 11:00 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl wrote: > Там Фобос =) > > Про переписывание STL на D Александреску писал, что в лоб красивше не > вышло. Потому библиотека другая, без итераторов. Тогда другое дело. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 11:19 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglMasterZiv, Там Фобос =) А вместо boost-а Демос ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 11:21 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglалчностьНо синтаксис С++ не чуть не уступает: Код: plaintext 1. Это массив указателей, а не указатель на массив, как первые два примера )))))) В данном примере array это и массив указателей, и указатель на массив одновременно. Интерпретация зависит от контекста кода, в котором используется этот идентификатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 14:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglалчность в таких случаях говорят "палка на 2х концах", с одной стороны - синтакс С++ жутко выглядит, с другой - указатели на функции невозможно спутать с какими-либо другими указателями, даже находясь в нетрезвом состоянии ) Тут беда в том, что указатель на функцию, возвращающую указатель на функцию, плохо читается и в трезвом состоянии ( Та ладно. Давным давно можно делать так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 15:45 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Ну вот. Первое расстройство. Пример генерации ряда Фиббоначи не хочет компилиться. И я не могу в исходниках Фобоса найти, почему =( Т.е. синтаксис шаблонов не слаще. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. hello_fib.d(8): Error: template std.range.take(R) if (isInputRange!(R) && !hasSlicing!(R)) cannot deduce template function from argument types !()(int,Recurrence!(fun,int,2u)) hello_fib.d(8): Error: foreach: _error_ is not an aggregate type Пошел дочитывать книжку про Танго на 200стр окромя 200стр доки =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 21:39 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
MasterZiv Siemargl wrote: > Единственное, исходники STL в реализации D должны проще выглядеть =) Блин, если и там есть STL, не буду его использовать. Вы не любите кошек? Вы просто не умеете их готовить! :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 21:48 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Офф/2 Anatoly Moskovsky Та ладно. Давным давно можно делать так: Точно. я так и делал, пока компилятор не загнулся. Точнее, один компилятор (Watcom) и один линкер (optlink) на такой вот конструкции =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 22:29 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность Интересно, а такое можно на шаблонах организовать: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Нашел способ проще ( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2010, 23:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Точно. я так и делал, пока компилятор не загнулся. Точнее, один компилятор (Watcom) и один линкер (optlink) на такой вот конструкции =) Ну во-первых в том топике не "конструкция" а сообщение об ошибке без примера кода. Во-вторых, из той ошибки никак не следует что typedef с прототипами вместо указателей не будет работать в Watcom'е. Хотя действительно не все компиляторы поддерживают такой синтаксис. Но мейнстримные - поддерживают, а этого достаточно. А для остальных всегда можно переписать так: Код: plaintext 1. 2. 3. 4. А как будет на D инлайновая декларация для указателя на функцию, возвращающую указатель на функцию? Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 02:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemargl Точно. я так и делал, пока компилятор не загнулся. Точнее, один компилятор (Watcom) и один линкер (optlink) на такой вот конструкции =) Ну во-первых в том топике не "конструкция" а сообщение об ошибке без примера кода. Во-вторых, из той ошибки никак не следует что typedef с прототипами вместо указателей не будет работать в Watcom'е. Там 4 вложенных map<>. Проблема не в синтаксисе, а в переполнении буфера компилятора - слишком длинно разворачивается конструкция. Anatoly Moskovsky А как будет на D инлайновая декларация для указателя на функцию, возвращающую указатель на функцию? Код: plaintext 1. 2. 3. 4. Именно. А на массив Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 10:26 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
blinded wrote: > Вы не любите кошек? > Вы просто не умеете их готовить! :D Да умею я их готовить. Просто как не приготовь, такое Г получается, что тошнит. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 11:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
MasterZiv, на вкус и цвет советчиков нет, один любит арбуз, другой свиной хрящик... Может я конесно чего-то е понимаю, но меня stl устаривает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2010, 11:27 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНу вот. Первое расстройство. Пример генерации ряда Фиббоначи не хочет компилиться. И я не могу в исходниках Фобоса найти, почему =( Т.е. синтаксис шаблонов не слаще. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Нашел причину - Александреску активно переписывает этот модуль (range.d) в текущей версии - слишком новаторский и пока нерабочий. Кстати заказал его книжку по D на Амазоне =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 14:34 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНашел причину - Александреску активно переписывает этот модуль (range.d) в текущей версии - слишком новаторский и пока нерабочий. Кстати заказал его книжку по D на Амазоне =) Ааа, для. Скомпилил, взяв range.d из предыдущей версии =) И даже такое Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2010, 18:59 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
teo609Я бы вообще предложил подумать над тем, что усложнение текста программы не является плюсом Надо же, откуда иногда те же мысли приходят... Хоть и понимаю, что в топике пишут в основном любители сложных языковых конструкций, но все же... Один из инженеров Google Один из ведущих инженеров Google — Роб Пайк (Rob Pike) — выступил на конференции O'Reilly Open Source Convention (OSCON) и выразил мнение корпорации о современных языках разработки и месте C++ и Java в них. Он отозвался об этих индустриальных китах очень негативно, назвав их многословными, чрезмерно сложными и неадекватными к применению в решении задач современной компьютерной инфраструктуры. "Я думаю, что эти языки слишком сложны для использования, слишком трудны для понимания, слишком замысловаты. Они очень многословны, их сложность, громоздкость и непонятность возрастают со временем", — заявил Роб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2010, 19:08 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
teo609 На D будут писать те, кого порадует изучение его прибамбасов. А реальность заставит находить тех, кто есть в наличии, и выбирать то, на чем они смогут писать - С++. И получилось у меня, отвечая на вопрос топика, что D не альтернатива ни С++, ни С++0х как его следующей версии. Если D будет обеспечивать кодогенерацию, достаточно низкоуровневую чтобы писать драйверы оборудования и части ОС, сопрягаться по способу передачи аргументов с другими языками и технологиями - то он будет конкурировать с C/С++. Если нет - то это обычный язык коих уже очень много. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2010, 09:38 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
maytonteo609 На D будут писать те, кого порадует изучение его прибамбасов. А реальность заставит находить тех, кто есть в наличии, и выбирать то, на чем они смогут писать - С++. И получилось у меня, отвечая на вопрос топика, что D не альтернатива ни С++, ни С++0х как его следующей версии. Если D будет обеспечивать кодогенерацию, достаточно низкоуровневую чтобы писать драйверы оборудования и части ОС, сопрягаться по способу передачи аргументов с другими языками и технологиями - то он будет конкурировать с C/С++. Если нет - то это обычный язык коих уже очень много. С этим вопросов нет, транслируется в обычный код, почти как Сишный, но с вызовами функций при операциях с массивами итп. Совместим полностью с С , COM , и частично с С++ . Но поддерживает пока только x86 платформу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2010, 16:11 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Нашел способ проще ( Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ! после _TRACE2 - это опечатка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 13:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность! после _TRACE2 - это опечатка?не, так они в D шаблонные функции вызывают, их пугает конструкция _TRACE2< int >( i ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 13:34 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorychалчность! после _TRACE2 - это опечатка?не, так они в D шаблонные функции вызывают, их пугает конструкция _TRACE2< int >( i ); Да. Целая дискуссия была по поводу ограниченности конструкций templX < x < 3 >, потому решили использовать круглые скобки. Но в большинстве случаев компилятор D позводяет опускать и ! и тип и вызов метода шаблона. Всегда, когда определенность однозначна. А там однозначность достигается специализациями и типов и значений и умолчаниями и еще десятком способов ) Например, вместо templateMethod!(templParam).templateMethod(var) можно писать templateName(var). Пока я завязал с подробностями в D, пока не получу и не почитаю манифест Александреску (TDPL), как они это задумывали. А читать исходники стандартной библиотеки Фобос (замена STL) тяжело себя заставить (хотя выглядит проще чем STL). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2010, 13:51 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglПока я завязал с подробностями в D, пока не получу и не почитаю манифест Александреску (TDPL), как они это задумывали.Ура, приехала книжка. Будет чем заняться в отпуске =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2010, 12:26 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
В общем итоги. Сначала о книге Александреску: - хорошо написана с грамотными примерами, которые отвечают на еще незаданные вопросы - чувствуется рука практика - поясняется почему и для каких случаев применения задуман тот или иной синтаксис языка, и какие накладные расходы это тянет - введение в метапрограммирование очень мягкое, но кроме базовых понятий и примеров, детально вглубь не уходит (мне жаль) - похоже, что автор изучил _все_ языки и концепции и сравнений с ними много и библиография очень широкая Что касается языка. Нет никаких сомнений, что D как язык уже сейчас мощнее C++0x Ключевые отличия: -продуманный аспект безопасного использования. То что скомпилировалось, с более высокой вероятностью будет вылетать редко. К этой стороне относятся: -- встроенные массивы (в т.ч.ассоциативные) с проверками границ (отключаемыми в релизе), концепции работы с объектами (только безопасные ссылки в динамической памяти) - это делает работу с указателями в большинстве случаев ненужной; -- design by contract, инварианты для объектов, встроенные юниттесты и тесты покрытия; -- более жесткая модульность программ (почти дельфийские юниты), неизменяемые типы данных immutable (с наследованием связанных членов), неделимость данных между потоками по умолчанию -- исключения могут порождать цепочки для анализа первопричины -- концепция scope(exit/success/failure), упрощающая RAII в реализации - без многоуровневых try/catch -- встроенные безопасные Variadic Parameters для функций -продвинутость/гибкость самого языка -- параметризованные типы, классы и функции с более широким выбором (возможно условных!) специализаций, Variadic Template Parameters -- CTFE с typeof и условными шаблонами дают сумасшедшую гибкость -- tuples, делегаты, лямбды, замыкания (closures), в т.ч.для вложенных классов, а не только функций -- alias, которые подобны макросам, но могут применяться везде вместо любого литерала -- встроенные через перегрузку операторов таблицы диспетчеризации -подход к производительности -- pure, математически "чистые", т.е.без побочных эффектов функции. Проверяется на этапе компиляции, может дать в будущем продвинутые оптимизациии -- потоки встроены в язык и приняты меры для устранения race conditions и выбивания кэша. Данные по умолчанию не делятся между потоками, либо являются заведомо immutable. Базовая концепция - обмен между потоками через очереди сообщений (построенные на механизме exception'ов), хотя есть и обычные synchronized классы (но со своей фичей - умением делит мютекс с подэлементами и мульти-мьютексами) -- встроенная поддержка атомарных операций, cas (Compare-and-swap) и ассемблера дает возможность писать lock-free многопоточные программы (хотя нетривиально) Ну и целая гора синтаксического сахара - не перечислишь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2010, 19:29 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Вот еще семинар по D с Александреску, который недавно в Гугле был. http://www.youtube.com/watch?v=RlVpPstLPEc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2010, 23:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВот еще семинар по D с Александреску, который недавно в Гугле был. http://www.youtube.com/watch?v=RlVpPstLPEc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 11:41 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Так что, за D будущее, или очередная околопрогрессивная поделка для узкого круга специалистов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 11:54 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Ну что-же. Я рад за Александреску. Прогрессирует. А-то уже хотел записать его в сектанаты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 11:56 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl, как на Д реализовать функцию с переставляемыми параметрами типа template<class T1,class T2> void func(T1 &, T2& ); чтобы при определении для func(T1 &, T2& ) работало и для func(T2& ,T1 & ) и для случая T1=T2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 12:09 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность, Вопрос неточный. Тела функции должны отличаться при специализациях или как? Нужно видеть полный аналог на С++. ЗЫ. Подозреваю, что в любом случае обойдется заменой угловых скобок на круглые ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 12:21 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Нужно видеть полный аналог на С++. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 13:58 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
на шаблонах мне такое реализовать не удалось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 14:03 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Общий шаблон. Подойдет и для (int,int) и для разных, но специализации имеют преимущество Код: plaintext 1. 2. 3. Специализации на вкус и цвет (кстати пример - возврат функции вычисляется = deduce) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 14:27 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglОбщий шаблон. Подойдет и для (int,int) и для разных, но специализации имеют преимущество Код: plaintext 1. 2. 3. Специализации на вкус и цвет (кстати пример - возврат функции вычисляется = deduce) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. - ощущение, что здесь чего-то не хватает. в какой строчке указывается что функция может вызываться в 2х вариантах : как binary(double,int) и binary(int,double) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 14:47 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Если быть _абсолютно_ точным, то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. x = 1.5, y = 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 15:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
- это copy-paste. фишка в том, что если определено тело функции int func(double d,int i), то тело функции int func(int i,double d) должно определяться _автоматически_ если бы в с++ можно было объявление шаблона распространить сразу на 2 функции, это выглядело бы вот так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 15:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Никак не пойму, чего надобно....Такой вариант Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. int value = 4, double value = 2.4 А еще можно сделать variadic func(...){ foreach(param) ...} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2010, 18:30 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly MoskovskyВот еще семинар по D с Александреску, который недавно в Гугле был. http://www.youtube.com/watch?v=RlVpPstLPEc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 01:56 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНикак не пойму, чего надобно надобно одним шаблоном создавать несколько функцию у которой порядок передачи аргументов не важен, т.е. каждый аргумент определяется только своим типом, т.е., объявляя функцию так: Код: plaintext 1. на самом деле получаем 6 функций foo Код: plaintext 1. 2. 3. с одним(одинаковым) телом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 08:14 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
k0rvin надобно одним шаблоном создавать несколько функцию у которой порядок передачи аргументов не важен, т.е. каждый аргумент определяется только своим типом, т.е., объявляя функцию так: ... s/несколько // ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 08:15 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
k0rvinSiemarglНикак не пойму, чего надобно надобно одним шаблоном создавать несколько функцию у которой порядок передачи аргументов не важен, т.е. каждый аргумент определяется только своим типом, т.е., объявляя функцию так: Код: plaintext 1. на самом деле получаем 6 функций foo Код: plaintext 1. 2. 3. с одним(одинаковым) телом. Тогда пример за вчера 18:30 верный. Anatoly MoskovskyСправдливости ради, с оглядкой на тему, надо отметить что в C++0x все эти фичи есть безо всяких бустов :) Есть в стандарте, но пока не в реализациях (хотя может уже в передовых компиляторах типа Metrowerks или Comeau). Ждемс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 09:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglk0rvinSiemarglНикак не пойму, чего надобно надобно одним шаблоном создавать несколько функцию у которой порядок передачи аргументов не важен, т.е. каждый аргумент определяется только своим типом, т.е., объявляя функцию так: Код: plaintext 1. на самом деле получаем 6 функций foo Код: plaintext 1. 2. 3. с одним(одинаковым) телом. Тогда пример за вчера 18:30 верный. верный, но обеспечение обратного порядка заняло более чем в 10 раз больше кода, чем на с++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 10:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность, Ну не на с++, а на чистом с =) Проверки на этапе компиляции часто стоят того. Например, мой пример с (bool, double) точно не скомпилится, а вот с макросом - может ) ЗЫ. Переводил вчера шаблонные тесты Степанова (там врапперы и итераторы) с шаблонов С++ на D. Оказалось не очень тривиально и результат по скорости хуже =( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 10:32 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl Ну не на с++, а на чистом с =) проигрывать в возможностях процедурному языку - совсем стыдно :) хотелось бы посмотреть, как авторы Д реализуют этот пример. пример то вполне практический Siemargl Проверки на этапе компиляции часто стоят того... но только не для расмматриваемого примера Siemargl ЗЫ. Переводил вчера шаблонные тесты Степанова (там врапперы и итераторы) с шаблонов С++ на D. Оказалось не очень тривиально и результат по скорости хуже =( feedback нужно посылать авторам: может это вы что-то не так делаете, а может это у них идеалогия сырая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2010, 15:03 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Нашел такой простенький визуальный дизайнер под DWT (порт SWT) и DFL (D Forms Library). Возможностей минимум, зато простой читаемый код библиотеки DFL под Win32. Результирующая программа заняла 1Мб на диске (статическая линковка) и 2! Мегабайта в памяти. Чего я давно не видел для программ с GUI. Сделать что ли клона Дельфи ))) ЗЫ. Очень порадовало, потому что в обед собрал unittest для dlib (ищу замену бусту). Так вот - получилось .exe 10 Мб, не считая g++*.dll (после стрипа, MinGW 4.5) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2010, 20:57 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
"Обратный ход маятника" Я уже тут делал оговорку про проблемы развития. Немного позанимавшись, теперь могу подробнее осветить "обратную сторону луны", т.е. недостатки и неудобства. 1. Поскольку язык - не Си, есть проблема импорта системных хидеров ОС. Она не такая страшная, как в Pascal и VB, т.к. есть прямые аналоги типов, но все же ручная работа требуется. Например, в версии 1.0 нет поставляемой библиотеки импорта Win32 API, и потому сообщество создало много своих версий - я встретил 4 разных реализации, и все неполные. /2Off полные реализации Win32 API есть и не во всех C++ компиляторах. Например, нужные мне CreateFileTransacted есть только в MSVC и WatcomC, а в MinGW, DMC - нет. 2. Переход на UTF-8 в строках и исходниках. char[] str = "русский текст" - это не 14 байт, а больше. И хотя способ посимвольно итерироваться встроен (итератор UTF-32), но печать в консоли - автоматически не декодируется (и chcp 65001 не спасает). А требуемая ф-ция Win32 CharToOEM не включена как оказалось, в стандартную либу 2.0. "Простой вопрос, а ставит Вас в тупик" (с) -Компилятор не понимает исходники в 1251, только любой Юникод. 3. Неразвита инфраструктура и вторичные неудобства. -Местами компилятор дает невнятную диагностику ошибок - ссылаясь не на первопричину ошибки, а на место возникновения, и наоборот. - Поскольку компилятор однопроходный, пока часть критичных ошибок не устранишь (импорт модулей, описание и инстанциация шаблонов) - все ошибки не покажет. Зато быстрый. /2off В C++ такое веселье в основном только в шаблонах, и то всем силами с ним борются. -Нет полноценного отладчика и профайлера скорости выполнения. -Нет фреймворков - GUI, Database, GameDev, см.также ниже. Особенно касается версии 2.0 4. Полным ходом неразбериха "оперсорсного типа". Что где валяется и когда это все кончится! (с) -в разных библиотеках применены разные утилиты сборки. Я насчитал make (Borland-style), make (GNU-style), bud/build, dsss, rake, bob - библиотеки написаны в основном под D1+Tango и нихрена не идут без большого! напильника под D2+Phobos stdlib и даже хуже. Пример: Плановая стандартная GUI = порт GUI Java SWT 3.4 +JavaFX называется DWT. 16,5 Mb исходников. Написана под dmd1.33+tango0.99.7. При этом наотрез отказывается собираться и если взять DMD1.63 (текущая) и если взять Tango 0.99.9 в любой их комбинации. Теоретически, есть версия DWT под текущую версию D1+Tango, но ее надо качать из девелоперской ветки (это еще проверю). Под D2.0 - есть только совсем сырая - еще даже не альфа DWT2. 5. Документация. Для компилятора, стандартных тулзов и phobos - хорошая. Другие либы относительно опенсорса - неплохой уровень, но не более. Короче, нужно быть достаточно упертым или быть корпорацией, чтобы подготовить под себя полный тулсет. В текущем состоянии он далеко отстает от C++/Java/C# и местами от Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 13:32 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglТеоретически, есть версия DWT под текущую версию D1+Tango, но ее надо качать из девелоперской ветки (это еще проверю).Работает на текущих D1.063+Tango0.99.9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 20:06 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl 2. Переход на UTF-8 в строках и исходниках. char[] str = "русский текст" - это не 14 байт, а больше. И хотя способ посимвольно итерироваться встроен (итератор UTF-32), но печать в консоли - автоматически не декодируется (и chcp 65001 не спасает). А требуемая ф-ция Win32 CharToOEM не включена как оказалось, в стандартную либу 2.0. "Простой вопрос, а ставит Вас в тупик" (с) -Компилятор не понимает исходники в 1251, только любой Юникод. и правильно, 1251 не нужна и должна сдохнуть, чем скорее, тем лучше, юникод -- наше фсьо =) Siemargl -Нет фреймворков - GUI, Database, GameDev, см.также ниже. Особенно касается версии 2.0 ну знаете, Вы хотите прям всего и сразу, будет язык популярен -- будут фреймворки/библиотеки, а пока чего-то не хватает... пишите! как буд-то для всех остальных языков фреймворки появились сразу и в наилучшем качестве (ну может только в "корпоративных платформах" типа дотнета и джавы, но и то, там именно что на это ставки и делали, а не на языки Java и C#) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 21:41 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Навеяно темкой про Delphi x64. 1. В язык D специально добавлены ассемблерные вставки с единым синтаксисом, т.к. язык позиционируется как системный. 2. В настоящее время задача №1 у Брайта - он делает 64-битный компилятор. Референсный, хотя через LDC (или LLVM - неважно) уже можно получать 64-битный код. => Интересно, что сделает с ассемблером ? Я в жизни не видел, что там за инструкции в x64, сильно отличаются или нет. ЗЫ. Готов зуб ставить, что Уолтер сделает компилятор быстрее чем муБардакеро.=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2010, 18:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 Siemargl: SiemarglНавеяно темкой про Delphi x64. Этой что ли? Siemargl1. В язык D специально добавлены ассемблерные вставки с единым синтаксисом, т.к. язык позиционируется как системный. Единый синтаксис для x86-32 и x86-64? Или что имеется в виду? Siemargl2. В настоящее время задача №1 у Брайта - он делает 64-битный компилятор. Референсный, хотя через LDC (или LLVM - неважно) уже можно получать 64-битный код. Зачем большинству программ 64-битность? 2 гб адресного пространства (в 32-битном Windows) мало? Или Вы работаете со string-ами, в которых > 2 миллиарда элементов? SiemarglЗЫ. Готов зуб ставить, что Уолтер сделает компилятор быстрее чем муБардакеро.=) C++ Builder реально используется при программировании-за-деньги, D этим похвастаться не может (пока?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2010, 20:15 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр Седов, >Единый синтаксис для x86-32 и x86-64? Или что имеется в виду? Сейчас сделан единый asm для Win и Lin. Для x64-64 пока офиц.доки нет. >Зачем большинству программ 64-битность? 1. Серверная сторона уже сейчас, 2. Системные тулзы, мелкие утилиты, т.к.нафиг такая утилита, которой нужно подгружать 32бит подсистему совместимости. 3. Видел пожелания юзеров на форуме - для выполнения расчетных задач - массивы не влазят. >C++ Builder реально используется при программировании-за-деньги, D этим похвастаться не может (пока?). D сейчас хорош для обучения, для задач п.3, ждем-с пока. Это EDGE. ЗЫ. За последние два месяца вышло две минорных версии. А минимальный тулсет для работы я таки насобирал (DB+GUI). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2010, 21:05 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemargl D сейчас хорош для обучения, для задач п.3, ждем-с пока. Это EDGE. А при чем тут EDGE ? Это же вроде что-то из мобильной связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2010, 21:20 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petrav, technology edge ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 08:41 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Модератор: По теме ничего не сказано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 14:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 Siemargl: Siemargl>Зачем большинству программ 64-битность? 1. Серверная сторона уже сейчас, 2. Системные тулзы, мелкие утилиты, т.к.нафиг такая утилита, которой нужно подгружать 32бит подсистему совместимости. 3. Видел пожелания юзеров на форуме - для выполнения расчетных задач - массивы не влазят. Получается, что большинству GUI-программ (да те же Firefox/Opera, например) 64-битность не нужна. Да, с одной стороны, при выполнении Win32-exe-шника в 64-битном Windows имеем overhead из-за слоя-переходника, который marshal-ит 32-битные WinAPI-вызовы в 64-битную среду. Но, с другой стороны, переход к Win64-exe-шнику тоже повлечёт overhead, из-за увеличения размера указателей (и, возможно, некоторых ассемблерных инструкций). SiemarglА минимальный тулсет для работы я таки насобирал (DB+GUI). Какая GUI-библиотека? Она вся на D написана, или является binding-ом к GUI-библиотеке, написанной на другом языке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 17:29 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр Седов2 Siemargl: Зачем большинству программ 64-битность? 2 гб адресного пространства (в 32-битном Windows) мало? Или Вы работаете со string-ами, в которых > 2 миллиарда элементов? злые языки говорят 64-битный софт на 15% быстрее на 64-битной ОС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 19:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 Lepsik: Lepsikзлые языки говорят 64-битный софт на 15% быстрее на 64-битной ОС Если программа непрерывно делает WinAPI-вызовы, то может так оно и есть. Но ведь обычная GUI-программа большую часть времени «спит», ожидая прихода оконного сообщения. Не всё ли равно, отреагировала программа на щелчок мыши за 100 мс или 115 мс? Кстати, есть какие-нибудь замеры, насколько возрастает расход памяти при переходе с Win32-exe-шника на Win64-exe-шник? (а он обязательно возрастает) А то вполне может оказаться, что 32-битный soft в 64-битном Windows имеет смысл. Вон в Windows 95/98/ME (которые 32-битные) реализация GDI была 16-битной, для экономии памяти. Я клоню к тому, что, по-моему, зря Брайт себе задачей № 1 выбрал создание 64-битного компилятора D. (Siemargl: «В настоящее время задача №1 у Брайта - он делает 64-битный компилятор.») Лучше бы делал удобную IDE с интегрированным отладчиком, позволяющим, например, смотреть содержимое hash-таблиц (встроенных в D). Без неё D вряд ли составит конкуренцию C++0x (см. название обсуждения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 20:22 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЛучше бы делал удобную IDE с интегрированным отладчиком, позволяющим, например, смотреть содержимое hash-таблиц (встроенных в D). Без неё D вряд ли составит конкуренцию C++0x (см. название обсуждения). Вы шо! Ни в коем случае нельзя авторам языков и компиляторов доверять создание программ GUI и заставлять всех потом работать в них. Это был бы ужас-ужас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 21:57 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр Седов Какая GUI-библиотека? Она вся на D написана, или является binding-ом к GUI-библиотеке, написанной на другом языке? DWT = портирована (переписана на D) с SWT Пётр Седов Я клоню к тому, что, по-моему, зря Брайт себе задачей № 1 выбрал создание 64-битного компилятора D. (Siemargl: «В настоящее время задача №1 у Брайта - он делает 64-битный компилятор.») Лучше бы делал удобную IDE с интегрированным отладчиком, позволяющим, например, смотреть содержимое hash-таблиц (встроенных в D). Без неё D вряд ли составит конкуренцию C++0x (см. название обсуждения). Было такое обсуждение. Итог такой - язык должен быть настолько простым и диагностируемым, чтобы обходиться без плюшек в виде IDE. Потому создатель языка длжен заниматься фреймворком - язык + стандартная библиотека, а остальное - коммьюнити. Сейчас например есть Visual D, есть плагин к VStudio, я пробовал Codeblocks+GDB. Терпимо, но до VS конечно далеко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2010, 22:37 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
А у этой альтернативы C++0x (D т.е.) случайно не предусматривается какая нибудь совместимость с С++ ? Ну типа один файл-модуль-obj-dll на С++, другой на D и все это линкуется штатно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 15:14 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravА у этой альтернативы C++0x (D т.е.) случайно не предусматривается какая нибудь совместимость с С++ ? Ну типа один файл-модуль-obj-dll на С++, другой на D и все это линкуется штатно... Предусматривается. В принципе, проблемы те же, что и собрать вместе модули от разных С++ компиляторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 15:39 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglpetravА у этой альтернативы C++0x (D т.е.) случайно не предусматривается какая нибудь совместимость с С++ ? Ну типа один файл-модуль-obj-dll на С++, другой на D и все это линкуется штатно... Предусматривается. В принципе, проблемы те же, что и собрать вместе модули от разных С++ компиляторов. Тогда и посмотреть на D можно... только осторожно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 16:07 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petrav... Тогда и посмотреть на D можно... только осторожно. Да-да, развлекайся: Siemargl DWT = портирована (переписана на D) с SWT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 16:21 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчность, Обвинить соавторов языка в его не знании это реально epic fail )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 17:05 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
А что у D с функциональным программированием ? Лямбды там всякие... А то в С++ с этим как-то совсем тяжело. А можно ли программно генерировать классы и их интерфейсы ? Т.е. программный код порождает не только данные, но сам код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 04:06 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petrav, 1. Лямбды и и замыкания есть. Т.к.сказать необходимый минимум ФП. 2. Язык со статической типизацией. Компилится в нативный код. Так что нет. Зато есть продвинутые шаблоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 08:03 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
k0rvinи правильно, 1251 не нужна и должна сдохнуть, чем скорее, тем лучше, юникод -- наше фсьо Она не сдохнет, пока существуют исходники в однобайтной виндозной кодировке. И по моему вопрос стоит в другой плоскости. Надо всего-лишь, доукомплектовать среду конвертером. Это проще чем найти все-все исходники на всех-всех рабочих станциях в старой кодировке и уничтожать с гарантией невосстановления ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 11:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 petrav: petravА можно ли программно генерировать классы и их интерфейсы ? Т.е. программный код порождает не только данные, но сам код. Так это в любом языке можно :). Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. Если хочется во время выполнения программы генерировать ассемблерный код и запускать его, можно использовать библиотеку LLVM . А в простых случаях можно и самому. Как, например, библиотеки ATL/WTL: они создают функции-thunk-и «на лету» (ищите в исходниках вызов FlushInstructionCache). 2 mayton: maytonk0rvinи правильно, 1251 не нужна и должна сдохнуть, чем скорее, тем лучше, юникод -- наше фсьо Она не сдохнет, пока существуют исходники в однобайтной виндозной кодировке. И по моему вопрос стоит в другой плоскости. Надо всего-лишь, доукомплектовать среду конвертером. Зачем? У Вас что, скопилось много D-шных исходников в кодировке code page 1251? В любом случае, конвертировать текстовый файл из code page 1251 в UTF-8 -- это любой Notepad может, поэтому разработчику компилятора не обязательно заморачиваться поддержкой устаревших кодировок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 16:21 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЗачем? У Вас что, скопилось много D-шных исходников в кодировке code page 1251? В любом случае, конвертировать текстовый файл из code page 1251 в UTF-8 -- это любой Notepad может, поэтому разработчику компилятора не обязательно заморачиваться поддержкой устаревших кодировок. Вы достигаете преемстенности такой ценой? Это, знаетели-всё равно что "рубить головы" если шляпа мешает в дверь входить. А по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Готов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Lepsikзлые языки говорят 64-битный софт на 15% быстрее на 64-битной ОС Думаю - вранье. Он может быть быстрее, если со сменой архитектуры "на борт" влепили больше планок памяти (8-32 Гб). И те, механизмы, которые раньше работали через PAE стали получать доступ к сегментам непосредственно. В остальном - 64 битный код ничем не лучше. А в плане структур данных (struct) с указателями - он более громоздкий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:31 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 mayton: maytonПётр СедовЗачем? У Вас что, скопилось много D-шных исходников в кодировке code page 1251? В любом случае, конвертировать текстовый файл из code page 1251 в UTF-8 -- это любой Notepad может, поэтому разработчику компилятора не обязательно заморачиваться поддержкой устаревших кодировок. Вы достигаете преемстенности такой ценой? Какая преемственность? Речь о D-шных исходниках: поддерживает D-компилятор code page 1251 или нет. maytonЭто, знаетели-всё равно что "рубить головы" если шляпа мешает в дверь входить. Не понял аналогию. maytonА по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Говоря «устаревшая кодировка», я не имел в виду «исчезнувшая кодировка» :). maytonГотов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу. Да пожалуйста. Но зачем разработчику компилятора нового языка программирования поддерживать code page 1251? Пишите D-шные исходники сразу в UTF-8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:36 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр СедовДа пожалуйста. Но зачем разработчику компилятора нового языка программирования поддерживать code page 1251? Пишите D-шные исходники сразу в UTF-8. Да я и не пишу вовсе. Просто есть задачи ... может портировать чего-нибудь С-шное на D. Вот такие пирожки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 17:54 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
mayton, Портируется элементарно, неудобно только приведение типов по другому писать вместо (char*)__var нужно cast(char*)__var И немного другая семантика массивов (внимательно в 1.0 и 2.0 в функции передаются по разному - или по ссылке или по значению). Пётр Седов, исходники понимаются впроде в любом Юникоде, не только UTF-8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2010, 18:57 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
maytonА по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Готов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу.вот реально, +1. имхо, все эти utf - проблемы китайцев и прочих юговосточных, зачем нам то эти проблемы? мы в 256 символов совершенно нормально вписываемся ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 03:14 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
2 mayton: maytonLepsikзлые языки говорят 64-битный софт на 15% быстрее на 64-битной ОС Думаю - вранье. Если спросить у Google-а «Firefox 64 bit», то выскакивает ссылка: http://li.qosys.info/post90910383/ Также, на 15% быстрее декодирование JPEG на Windows x64 с помощью IJG’s JPEG library Возможно, Lepsik это имел в виду. 2 Siemargl: SiemarglПётр Седов, исходники понимаются впроде в любом Юникоде, не только UTF-8. Это приятно, но не вижу смысла хранить исходники в UTF-16. В исходниках же английские буквы в основном, хранить в UTF-8 будет в 2 раза экономнее. Да и вряд ли я буду что-то серьёзное на D писать. По-моему, язык с обязательной (или добровольно-принудительной, как в D) сборкой мусора не сможет похоронить C++. 2 egorych: egorychmaytonА по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Готов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу.вот реально, +1. имхо, все эти utf - проблемы китайцев и прочих юговосточных, зачем нам то эти проблемы? мы в 256 символов совершенно нормально вписываемся ))) Что, VCL не поддерживает Unicode? (здесь должен быть дразнящий смайлик с высунутым языком) Использование стандартных Unicode-ных кодировок (UTF-8, UTF-16), по-моему, упрощает жизнь как разработчикам, так и пользователям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 19:48 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЕсли спросить у Google-а «Firefox 64 bit», то выскакивает ссылка: http://li.qosys.info/post90910383/ Также, на 15% быстрее декодирование JPEG на Windows x64 с помощью IJG’s JPEG library Мы с вами, коллеги как это ни прискорбно (тоже) часто становимся жертвами маркетинговых уловок. Какой смысл вкладывает реклама в "64bit"? Я не знаю! Регистры с разрядностью 64-бит были еще в Pentium-1 MMX (если мне не изменяет память это 1993 год). Гордый лэйбл можно было уже тогда клеить на софтваре и спекулировать этим. Спросите у создателей Огнелиса, благодаря чему было достигнуто ускорение производительности при декодировании JPEG. Расришение доступной памяти? Я не верю. Не соответствует моим представлениям об алгоритмах декодирования картинок. Использование инструкций SSE4 ? Может быть. Это уже похоже на правду. Но при чём здесь 64 бит? Короче вот такие пирожки.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 20:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Пётр СедовЧто, VCL не поддерживает Unicode?теперь поддерживает принудительно, не сказать, что это каким-то образом упростило мою жизнь, скорее наоборот, всплыл баг, который я пока не знаю, как победить. Пётр Седов(здесь должен быть дразнящий смайлик с высунутым языком)вот так он пишется: ":-Ь" ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2010, 23:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
mayton, хотя бы при том, что в 64-бит режиме больше регистров доступно по сравнению с x86 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 00:08 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
pszMyNickmayton, хотя бы при том, что в 64-бит режиме больше регистров доступно по сравнению с x86 Тоже похоже на правду. Тогда надо указать нечто вроде "x64_64". Это по смыслу другое обозначение. И более корректное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 11:13 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
mayton, Насколько я знаю Intel позиционирует 64-битную архитеруру как расширешие x86 и обозначают её в связи с этим в основном как x86_64 или даже x86e, вообщем какой-то оффтоп уже пошёл... =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2010, 14:56 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
В х64 вдвое больше регистров процессора, что дает оптимизатору существенную выгоду, например при работе с вычислениями с массивами. Недавно в форуме по Дельфи проверили затык и GCC и VC на таком примере. Наткнулся на баг оптимизации GC в D. Операции освобождения памяти LRU не дают отпустить массив после расширения. пример Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Тем не менее, D гораздо симпатичнее Go. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2010, 11:57 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Наткнулся на казус для меня, но может быть кому то интересно. Существует проект портирования Qt для D Надеюсь, обошлись без moc =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2010, 00:47 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Вот какую новость откопал! Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes Nov 09 2010: Just got word from my editor that TDPL has been approved for translation in Russian. Andrei TDPL = The D Programming Language, библия для D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2010, 00:50 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglВот какую новость откопал!переведут, почитаем, а как же )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2010, 01:42 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНаткнулся на казус для меня, но может быть кому то интересно. Существует проект портирования Qt для D Надеюсь, обошлись без moc =) ну если там moc ещё нужен будет, то нафик такой :D интересно, обошлись ли без сборщика мусора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2010, 10:38 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
алчностьSiemarglНаткнулся на казус для меня, но может быть кому то интересно. Существует проект портирования Qt для D Надеюсь, обошлись без moc =) ну если там moc ещё нужен будет, то нафик такой :D интересно, обошлись ли без сборщика мусора Бе сборщика мусора в D2 никак. Более того, delete объявили deprecated и пилят баги GC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2010, 20:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglБе сборщика мусора в D2 никак. Более того, delete объявили deprecated и пилят баги GC. А что ж так ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2010, 20:49 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravSiemarglБе сборщика мусора в D2 никак. Более того, delete объявили deprecated и пилят баги GC. А что ж так ?Там идейные чуваки. Хотят сделать реальный GC. Я еще пока не понял, хорошо GC или плохо. Для мейнстрима вроде хорошо. Для понимающих недостатки людей, которые правильно пользуют вроде бы тоже.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2010, 21:11 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
А что такое реальный GC ? Я так понимаю что если народ хочет получить time-critical язык то нужно либо отказаться от GC, либо усложнить его работу настолько, что его тюннинг станет неотъемлемой частью любого проекта, так-же как и настройка планов работы SQL-курсоров в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2010, 21:27 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglалчностьпропущено... ну если там moc ещё нужен будет, то нафик такой :D интересно, обошлись ли без сборщика мусора Бе сборщика мусора в D2 никак. Более того, delete объявили deprecated и пилят баги GC. Извиняюсь за частичный ввод в заблуждение. Убирают delete, но для желающих навсегда остается std.c.stdlib.malloc (Навеяно обсужением Go.vs.Python.vs.D ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2010, 11:36 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Интересная новинка, построенная полностью возможностями языка memoize Готовый кэш вычислений и чего-угодно. На С++ это приходится делать вручную. Книжка советов по оптимизации С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2011, 11:28 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglИнтересная новинка, построенная полностью возможностями языка memoize Готовый кэш вычислений и чего-угодно. На С++ это приходится делать вручную. Почему приходится? Ничего не мешает сделать в C++ шаблон, который бы можно было вызывать так: Код: plaintext 1. 2. А вот здесь обсуждается вариант попроще: http://lists.boost.org/Archives/boost/2009/01/147447.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2011, 14:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglИнтересная новинка, построенная полностью возможностями языка memoize Готовый кэш вычислений и чего-угодно. На С++ это приходится делать вручную. Книжка советов по оптимизации С++. Извините, а зачем нужны такие оптимизации если мы теряем реинтерабальноть? Ни один программист не догадается по сигнатуре функции что она имеет кучу побочных эффектов. static на изменяемые данный - самый лучший способ получить невоспроизводимый глюк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2011, 14:57 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petrav, где теряем? На D сделано через шаблоны. Причем была возможность сделать их pure, но потеряли бы в удобстве. На шаблон С++ я бы посмотрел. Фишка в том, что это со многими другими фичами (Pipes, interpocess, unittest) попадает в stdlib. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2011, 15:58 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglpetrav, где теряем? На D сделано через шаблоны. Причем была возможность сделать их pure, но потеряли бы в удобстве. На шаблон С++ я бы посмотрел. Фишка в том, что это со многими другими фичами (Pipes, interpocess, unittest) попадает в stdlib. Я код D не очень понял, если честно. Но в С++ коде данные кешируются в нескольких static переменных. Что будет если такую функцию вызывать из нескольких потоков? А если добавить туда мьютекс - так его блокировка тоже не мгновенный процесс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2011, 16:05 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravНо в С++ коде данные кешируются в нескольких static переменных. Что будет если такую функцию вызывать из нескольких потоков? А если добавить туда мьютекс - так его блокировка тоже не мгновенный процесс. В данном случае вполне можно хранить свой кеш в каждом потоке (через TLS) - тогда не нужна блокировка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 06:11 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВ данном случае вполне можно хранить свой кеш в каждом потоке (через TLS) - тогда не нужна блокировка. К сожалению использование TLS тут имеет ряд проблем. Положим мы разрабатываем функцию из сигнатуры и логики которой прямо следует ее реинтерабельность. У TLS тут начинаются проблемы. Количество элементов в массиве TLS ограничено. Если мы начинаем насиловать такие приемы, да еще и на шаблонах, вы не боитесь переполнения массива указателей в TLS ? Кроме того функция должна просто быть и просто вызываться. Кто обеспечит регистрацию индекса в TLS для шаблонной функции количество вариантов инстанцирования которой заранее не известно ? Прямо внутри ее? Но это будет проверка, что индекс в TLS мы уже получили. Плюс сами функции доступа к TSL сколько времени занимают? По выходу из потока данные все же лучше бы удалить. Как ? Шедевральное решение всех проблем в boost::thread_specific_ptr<>. Там operator->() осуществляет поиск указателя по списку всех указателей переменных которые используют boost::thread_specific_ptr<>. Да, просто цикл по списку внутри operator->()... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 07:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravAnatoly MoskovskyВ данном случае вполне можно хранить свой кеш в каждом потоке (через TLS) - тогда не нужна блокировка. К сожалению использование TLS тут имеет ряд проблем. Понятно что есть проблемы. Но всегда можно найти компромис. Ведь речь идет об оптимизации. Значит чем-то нужно будет пожертвовать, т.к. ничего даром не дается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 09:00 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglНа шаблон С++ я бы посмотрел. В качестве зарядки с утра сделал :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 09:06 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravSiemarglpetrav, где теряем? На D сделано через шаблоны. Причем была возможность сделать их pure, но потеряли бы в удобстве. На шаблон С++ я бы посмотрел. Фишка в том, что это со многими другими фичами (Pipes, interpocess, unittest) попадает в stdlib. Я код D не очень понял, если честно. Но в С++ коде данные кешируются в нескольких static переменных. Что будет если такую функцию вызывать из нескольких потоков? А если добавить туда мьютекс - так его блокировка тоже не мгновенный процесс. Достаточно блочить только конец кэша при его добавлении. Остальное реентерабельности не помеха. Anatoly Moskovsky, идею как сделано понял, но это не отменяет того, что буст-это супер-мега костыли ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2011, 21:28 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglбуст-это супер-мега костыли ) Ну на самом деле очень большой плюс буста, что он изолирует эти все костыли от програмиста, взамен давая удобные и простые в использовании фичи, изначально не предусмотренные при проектировании языка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 08:12 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, не возражаю против достоинств (хотя сам выбрал попроще и полегче либу d-lib). Но иногда цена высокая: Оптимизирующие компиляторы Я тут пересобрал себе буст под MinGW 4.5 - перепроверил результат. Из-за какой то фигни с бустом и оптимизатором VC9 проигрывает ему в 10 раз =( Перемудрили где-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 10:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, не возражаю против достоинств (хотя сам выбрал попроще и полегче либу d-lib). Но иногда цена высокая: Оптимизирующие компиляторы Я тут пересобрал себе буст под MinGW 4.5 - перепроверил результат. Из-за какой то фигни с бустом и оптимизатором VC9 проигрывает ему в 10 раз =( Перемудрили где-то Тут не обязательно проблема в Бусте. Например в том коде по ссылке что вы привели - работа с регексами. А как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 11:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, Не думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 12:08 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglВ D - строки строго иммутабельные, а скорость близка к GCC. Не вижу противоречия. Если нет модификаций in-place, то строки COW имеют такую же производительность как и immutable (и там и там копируется только ссылка, а не тело строки) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 12:27 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyА как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. Не верится. Нет исходников проверить, но в MSDN написано MSDNReferences, pointers, and iterators that designate elements of the controlled sequence can become invalid after any call to a function that alters the controlled sequence, or after the first call to a non-const member function. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 13:01 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly MoskovskyА как выяснилось в GCC используется реализация строк с COW, а в VS - нет. Естественно что при активной работе со строками это существенно влияет на производительность. Не верится. Нет исходников проверить, но в MSDN написано MSDNReferences, pointers, and iterators that designate elements of the controlled sequence can become invalid after any call to a function that alters the controlled sequence, or after the first call to a non-const member function. Во что не верится? Что в VS нет COW в строках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 13:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, Не думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. Извините, а чем COW отличается от иммутабельности ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 16:59 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglпропущено... Не верится. Нет исходников проверить, но в MSDN написано пропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. petrav>Извините, а чем COW отличается от иммутабельности ? Это разные несвязанные концепции. Иммутабельность - это наследуемый const. Соответственно, если строка иммутабельна, то поменять можно только через COW или аналог. Хотя надо иметь в виду, что есть разница: 1. immutable (char)[] str; // тут строку, т.е указателю можно присвоить другой массив или расширить этот, но содержимое менять низзя. Это строки D2 2. immutable (char[] str) // тут строку переприсвоить нельзя, а содержимое изменяемое 3. immutable (char[]) str; // как 1, но расширить массив тоже нельзя Из-за наследуемости компилятору легче оптимизировать иммутабельные вещи. Они же легко разделяются между потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:23 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
petravSiemarglНе думаю, что дело в этом. В D - строки строго иммутабельные, а скорость близка к GCC. Извините, а чем COW отличается от иммутабельности ? Буквочкой W :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovskyпропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. А вы запустите студию. Скопируйте одну строку в другую и на содержимое объектов - в отладчике. Там разные указатели будут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:49 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Siemarglpetrav>Извините, а чем COW отличается от иммутабельности ? Это разные несвязанные концепции. Иммутабельность - это наследуемый const. Соответственно, если строка иммутабельна, то поменять можно только через COW или аналог. Хотя надо иметь в виду, что есть разница: 1. immutable (char)[] str; // тут строку, т.е указателю можно присвоить другой массив или расширить этот, но содержимое менять низзя. Это строки D2 2. immutable (char[] str) // тут строку переприсвоить нельзя, а содержимое изменяемое 3. immutable (char[]) str; // как 1, но расширить массив тоже нельзя Из-за наследуемости компилятору легче оптимизировать иммутабельные вещи. Они же легко разделяются между потоками. Ничего не понял, если честно. Какой-то ад по моему. То строку можно перезаписать, то только расширить. Как так можно программировать не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:52 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovskyпропущено... Во что не верится? Что в VS нет COW в строках? Ну да. Судя по всему - типичная реализация со счетчиком ссылок. Я еще на обсуждение на RSDN наткнулся, что это так. Если взять конкретно VS2008, то я допускаю что возможно там некий счетчик и есть (не проверял). Но копирование там точно есть и это легко проверить не заглядывая в исходник STL. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 18:56 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, проверил. В VS2008 уже не COW, где-то по дороге с VS98 поменяли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 22:07 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
SiemarglAnatoly Moskovsky, проверил. В VS2008 уже не COW, где-то по дороге с VS98 поменяли. Ссылки по теме http://stackoverflow.com/questions/707014/why-vc-strings-are-not-reference-counted http://us.generation-nt.com/answer/vc6-stl-string-reference-counting-help-7938142.html Поменяли с VC6 на VC7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2011, 22:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Нашли важный workaround, мешавший интегрировать C/C++ и D библиотеки в Win32 из-за несовершенства тулкита Andrej Mitrovic Currently we have this issue where we can't link D combiled object files with C applications on Win32 (assuming the D code exports some names with extern(C)). The problem is optlink outputs OMF type object files, and pretty much all modern Win32 C compilers (VC/MinGW) expect COFF object file types. There's agner's objconv tool that can dissasemble optlink's OMF format, but it won't convert optlink's OMF to COFF since it keeps running into errors. However, there might be a workaround. *Please not that this is purely experimental*: First, download the Delphi Driver Development Kit (DDDK) from here: https://sites.google.com/site/delphibasics/home/delphibasicsprojects/delphidriverdevelopmentkit In the bin folder there's a tool called 'omf2d'. This is a tool that converts Borland's OMF to Intel OMF format, but it seems to be able to convert Optlink's OMF format to an OMF format that Objconv can use. My guess is that omf2d simply discards sections it doesn't understand and therefore Objconv uses the resulting object file without errors. I do not know how safe this is, so take it with a large grain of salt. Second, download objconv.exe from: http://www.agner.org/optimize/. Third, make sure you have MinGW installed since it comes with gcc.exe which we'll use, or you can modify the batch file I'm providing and use MSVC instead (I haven't tested this with MSVC yet). Make sure both omf2d and objconv are in PATH. Then, download the zip file with the sample project, extract and run the batch file that does all the work: http://dl.dropbox.com/u/9218759/staticObjLink.zip I've tried using this with .lib files, but Objconv couldn't convert the .lib file even after passing it through omf2d, it still keeps getting errors. So for now this only seems to work with .obj files (compiled with DMD -c). And I don't know to what extent this will work since this is the only example I've tried using this technique with for now. Jan 17 2011 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2011, 14:18 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Однако, красота. Сам себе ORM на шаблонах Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2011, 11:28 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Случилось!Version D 2.052 Feb 17, 2011 New/Changed Features 64 bit support for Linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2011, 10:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Не спеша подтягиваются графические библиотеки. Поддерживаются DMD2 теперь DWT и GtkD. Также доводится до ума с использованием возможностей D много кем любимый Qt (QtD). Хелловорлдный пример с комментами ниже Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2011, 20:48 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
egorych, А что, С++ уже стабильная ВЕРСИЯ появилась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 09:33 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
TIOBE Programming Community Index for September 2011 September Headline: Programming Language D back in the top 20 тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2011, 17:40 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
maytonА по поводу "устаревшей кодировки" вы очень сильно ошибаетесь. Готов спорить на любое количество коньяку, что 1251 еще не раз появится в вашей и моей жизни в самый неподходящий момент. Де-факто в ней работают сотни-тысяч БД вместе с загрузками-выгрузками, CSV, сетевыми протоколами и проч. Про глобальный интер/рунет я вообще молчу.Это конечно печально, что устаревшие кодировки всё ещё используются, особенно для неанглоязычного текста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2011, 18:26 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Опробовал немного в работе. Задача была - во всех XML файлах в каталоге с определенными форматом имени файла найти и изменить значение аттрибута XML-объекта. Решение заняло ровно 100 строчек. Удобно - в Фобосе есть поддержка XML и regexp. Неудобно - XML работает только с Юникодом (или ANSI), пришлось конвертировать русский XML в Юникод с помощью MultiByteToWideChar(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.12.2011, 18:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Вышли актуальные версии компилятора GDC в связке с MinGW32/64 GCC 4.6.1 http://prowiki.org/wiki4d/wiki.cgi?History/Year2011 Это должно кардинально решить проблему производительности (особенно на вычислениях с плавающей точкой). Ну и 64-бита пришли на Windows. Попутно выяснил, что при переходе с DMD 2.047 потеряли совместимость с Windows2000. Стек-трейсер задействовали с ф-цей из XP и выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2011, 10:55 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Помнится, трейсер там можно было задизейблить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2011, 20:16 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Попалась новая книжка Андрея Александреску (тот самый, который "Современное проектирование на C++"/" Стандарты программирования на С++") - "Язык программирования D" , 2012г. Вроде бы pdf уже в сети можно найти. Описывается D2 (вторая редакция языка). Перевод вот этой книжки. Читается с удовольствием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2012, 17:35 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
vvmПопалась новая книжка Андрея Александреску (тот самый, который "Современное проектирование на C++"/" Стандарты программирования на С++") - "Язык программирования D" , 2012г. Вроде бы pdf уже в сети можно найти. Описывается D2 (вторая редакция языка). Перевод вот этой книжки. Читается с удовольствием. Ну как, есть перспективы реального использования D? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2012, 18:53 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
перспективыvvmПопалась новая книжка Андрея Александреску (тот самый, который "Современное проектирование на C++"/" Стандарты программирования на С++") - "Язык программирования D" , 2012г. Вроде бы pdf уже в сети можно найти. Описывается D2 (вторая редакция языка). Перевод вот этой книжки. Читается с удовольствием. Ну как, есть перспективы реального использования D? Да ХЗ. Все классно, но в реале все уже не совсем так, как в книжке/документации. Даже примерчики, что в комплекте с самым последним Digital Mars D компилятором, не все компилятся: "deprecated", типа. В документации, что на сайте, упомянуты изменения, но не все. Сообщения компиляции забавные: Код: plaintext 1. - самое прикольное, что подсказка правильная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2012, 19:17 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
До чего же с эклипсом здорово: скачал, распаковал, запустил. Выбрал пункт меню "Help->Install New software", ввел нужный URL...загрузка - и все, эклипс стал IDE для D. Жаль, что с отладчиком "D-шным" пока не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2012, 22:31 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Аааа! Держите меня семеро! Я про DWT узнал... и оно даже работает! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 01:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Exe файлик при сборке с DWT не очень и пухлый: AddressBook из Examples получается 6,79 МБ (7 123 596 байт), а с опцией -release - 6,61 МБ (6 939 488 байт)... Никаких "левых" dll, все в одном .exe. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 01:51 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Ойоу, это чудо COM понимает , почти "искаропки"... завтра потесчЮ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 02:24 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Блин, эти опенсорсные заморочки... читаю http://dsource.org/projects/dwt - типа, как все круто, а там все уже устарело. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vvmExe файлик при сборке с DWT не очень и пухлый: AddressBook из Examples получается 6,79 МБ (7 123 596 байт), а с опцией -release - 6,61 МБ (6 939 488 байт)... Никаких "левых" dll, все в одном .exe. Это я все делал неправильно, потому что это касается старых версий: http://dsource.org/projects/dwt/wiki/Installation Это с версией D1 + tango, ну и swt тоже старая. Все лучше. Теперь проект переехал на github: https://github.com/d-widget-toolkit Если собрать с последней dwt, да с последним компилятором dmd (версия языка D2), да для phobos, вот так: - https://github.com/d-widget-toolkit/dwt - то ни один из примеров не вылезает из размера 3 Мб. Для включенного DEBUG = 1 - меньше 5 мБ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 05:37 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Вообще, конечно, методика работы сбивает с ног. Это я по примеру устройства некоторых пакетов сужу. Типа, для билда прикладной программки можно создать специализированное приложение, которое компилится, сразу запускается, анализирует внешние условия, генерит необходимое окружение и потом, если все ОК, билдит конечную прикладную программу. Или, к примеру, выполняется компиляция COM - клиента. В процессе компиляции может выполниться генерация интерфейса для доступа к СОМ - серверу в полном соответствии с последней версией сигнатур интерфейсов СОМ - сервера. Если сигнатуры изменились, то клиент просто не скомпилится из-за обнаруженных на этапе компиляции несоотвествий. Если СОМ - сервер не зарегистрирован (и неоткуда взять информацию о типах), то, например, можно уведомить об этом разработчика. И т.д. и т.п. Немеряно круто, то есть. Это вам не жалкий макропроцессор, тут в компайл-тайме что хочешь наворотить можно, средствами языка. Хотя, прогерам мало, подключают перл/питон/руби. :) Что плохо, это то, что от релиза к релизу D одно с другим несовместимо. Пик энтузиазма, ИМХО, пришелся на 2006-2009 года; в это время как раз было создано большинство интересных инструментов для D. А потом народ отхлынул. Некоторые энтузиасты просто забили, а кое-кто пытается перетащить то, что сделано, на С++. Куда не сунешься - везде либо очень сыро, либо уже засохло и отвалилось. Все на голом энтузиазме. При чем, сделано много, но в какой-то момент люди понимают, что их просто бросили (D1->D2). Посмотреть на тот же проект DWT - сколько сделано, и все в помойку. Поддержки со стороны дежнежных мешков нет. Александреску, типа, равлекается. :) А еще он грозится, что еще третья версия D будет. Надо полагать, традиционно несовместимая с D2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2012, 08:32 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Хорошая для ди-шников новость: Александреску для фейсбука пишет статический анализатор кода. На D. Поддержка со стороны фесбука - не хухры-мухры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2013, 17:55 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Давно не занимался, но вот руки зачесались посмотреть в эту область. Посмотрел я на интерфейсные библиотеки Итого: Плюсы: - синтаксис куда то утрясли, изменения минимальны. - сайт тут http://dlang.org - мульплатформа - сделали 64-бит - компилятор остался супербыстрым - код компактный, зависимостей обычно почти нет, программа стартует мгновенно - микролагов интерфейса (я про библиотеки), характерных для дотнета и явы тоже нет - стандартная либа Фобос _очень_ широкая, но см минусы ниже Минусы - оптимизатор кода не лучше чем в дельфи (но скорость в 100 питонов имеем) - оптимизатор вычислений с плавающей точкой отсутствует (кто хочет - вперед во встроенный ассемблер) - шаблоны хоть и не такие кривые как в С++, но достаточно головоломные и как по мне начали нарушать принцип понятности шаблонного кода - интерактивных отладчиков толковых не видел - ввели костыли в виде трейтов http://dlang.org/traits . ИМХО портят красоту языка - все еще меняют стандартную библиотеку Фобос, иногда теряется совместимость старого кода Кратко по живым библиотекам интерфейса (не стал свои пометочки переводить). Проверял на dmd 2.065 GtkD +may be 32- and 64-bit -see memory leak in clock.d sample -need GTK runtime DLL _install_ -app uses minimum 22 Mb RAM DWT +it's complete SWT 3.4 port (3.449.0) ?ver3.4 is some old, but no something very useful appears in new version of SWT up to 4.2 (WebKit m.b.) +app uses minimum 9 Mb RAM +no dll's, .exe size ~3Mb -no 64-bit (aug14) =( Tkd (Tcl/Tk) http://forum.dlang.org/thread/wdddgiowaidcojbrklsg@forum.dlang.org]http://forum.dlang.org/thread/wdddgiowaidcojbrklsg@forum.dlang.org -early release -need tcl/tk 8.6 DLLs, but only three (+tcl code folder) ~4.5Mb foot +app uses minimum 10.5 Mb RAM -no tix widgets -no 64-bit ?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2014, 15:43 |
|
||
|
Язык D как альтернатива C++0x
|
|||
|---|---|---|---|
|
#18+
Зимаргл, оптимизатор кода не лучше чем в дельфи (но скорость в 100 питонов имеем) Откуда 100 питонов? Цифра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2014, 16:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2019165]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
145ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 256ms |

| 0 / 0 |
