Уже почти год как я начал писать на малоизвестном системной языке программирования D. Это очень мощный инструмент для создания эффективного и удобочитаемого кода с множеством плюшек, о которых приходилось только мечтать при разработке на C/C++. Но не все так безоблачно как казалось вначале, я столкнулся с множеством не очевидных проблем и подводных камней. Ниже находится мой обзор языка D2, рассмотрены все плюсы и недостатки важные для меня и, наверно, для большинства разработчиков.
2 3 845
0
18
12 лет назад
0
  1. В D2 одна либа Phobos, D1 постепенно отдаляется на второй план, его вторую либу Tango так и не портировали на D2.
  2. Знак $ в конце - оператор, который возвращает длину массива, его можно перегружать и используется именно в slicing. Регулярки перловские, находятся в модуле std.regex, пробовал, очень удобно.
  3. По дефолту все потоки имеют копию окружения, все static поля и глобальные переменные для них копируются и хранятся в TLS (Thread Local Storage), что немного замедляет доступ. Есть модификатор __gcshared, такой бекдор, позволяющий сделать переменную глобальной для всех потоков как в других языках, но компилятор не будет гарантировать защиту от гонок и неправильного использования.
  4. OpenGL поддерживается полностью, мой следующий пост будет про его подключение.
  5. Я связался с разрабом D-IDE, вместе фиксим баги, которые появляются в больших проектах.
D2 релизнулся совсем недавно, весной прошлого года
Можно ли в этой конструкции использовать регулярку?
В слайсинге нельзя пользоваться регулярками, там нужно явно указывать начало и конец среза. Регулярки в основном для строк используются, для других массивов их нельзя применять. (Как я посмотрел в std.regex стоят guard выражения isSomeString!T)
0
29
12 лет назад
0
Пока не прочел, но D мне тоже нравится, единственная проблема - 2 стандарт либы. А так - вроде неплохая альтернатива плюсам и шарпу.
А, D2. Не слышал про него, на вики этого не было. Ну и отлично.
А вот такой вопрос, у тебя строка:
s = s[6..$];
$ - знак конца строки в regexp. Можно ли в этой конструкции использовать регулярку?
Годный синтаксис. Действительно смей плюсов, шарпа и жавы.
(даже имеют по своей копии всех глобальных переменных)
По дефолту? В жаве это определялось атрибутом volatile.
В общем, прекрасный пост, интересно было почитать.
Думаю, попробую Ди, когда появятся нормальные IDE. (Лучше всего нормального плагина на эклипс)
Как я понял, OpenGL не поддерживается. Печально, жду поддержки. Ясно что язык пока молод =)
Пост может быть немного несвязный, писал по мере чтения.