Ads
Comments 14
Приятно видеть, что язык развивается, хотя, спустя почти год после его изучения, уже не видно смысла в языке, как в таковом — многие фички, которые так привлекали, перекочевали в новые C++. Я уже было подумал, что язык совсем умер, после долгого оффлайна dlang.ru, но он уже работает, что не может не радовать.
Вообще всё это крайне интересно, буду следить за развитием и распространением. Было бы интересно узнать как широко применяют D и с какими целями, поэтому предлагаю ниже поделится собственным опытом или познаниями, где и как он применяется.
Не думаю, что С++ можно как-то излечить — он фундаметально слишком замусорен.

Проблема с Dlang сейчас иная — он уже немного устарел, так и не успев войти в моду. Те же языки Nim и Rust, судя по всему, набирают силу, при этом нацеливаясь на ту же нишу. Если Dlang — просто «С++ made right», то эта пара предлагает интересные новые фичи. Rust, например, предлагает RAII и не имеет встроенной сборки мусора, что обычно очень нравится плюсистам.

Опять же, Dlang только сейчас получил поддержку серьезной корпорации, Rust же изначально пропихивается Мозиллой; не знаю про Nim.
D как ни странно тоже немного «замусорен». Но все-же он ближе всего к языку, на котором хочется писать после С++; Nim странный немного, не си-подобный (это минус), с кодогенерацией через Си; Rust имеет уж больно запутанную систему указателей, даже видел на hackernews несколько статей о переходе с Rust на Nim.
С указателями там уже всё подчистили, сейчас там, вроде, только указатель и ссылка, и пометка о небезопасности средства.
Действительно, создание множества «умных» указателе было плохой идеей, т.к. их сущность не скроешь. Да, можно ограничить область видимости, да, можно ограничить применение, но они, словно вселенское зло, всё равно смогут нагадить. Даже в их простейшей форме они способны сорвать крышу, не говоря уже об ухищренностях.
Ну… Я, в общем-то, попробовал пару прожектиков личных на D — выходит действительно намного чище; особенно приятно читать и писать темплейтный код.

Но вообще эта тройка (Dlang, Nim, Rust) еще должны каждая продемонстрировать какой-нибудь большой открытый проект. Вот перейдет Mozilla на Rust — можно будет смотреть. А пока это просто экспериментальные песочницы.

Синтаксис, кстати, не так уже и важен. Вопрос привычки. Скобки объективно ничего не меняют в жизни программиста по сравнению с отступами. А вот крупный проект и поддержка серьезной компании — это уже важней.
Nim это фактически та же Vala. И где она сейчас?

На Rust могут перейти только системщики. Да и то хардкорные. Может чистый Си он и заменит, но не более. Во всяком случае массовым он не будет никогда т.к. в ВУЗах его учить не станут, а переходить на него с какого нить Python'a согласится не каждый ввиду крайне своеобразности языка. Я не сморю может он чем то и крут, но я как программист средней руки вообще не понял где мне все его фишки применять.
Нет, Nim вообще не похож на Vala. Ну вообще.

Vala, кстати, в своей песочнице вполне себе варится. Она никогда для мейнстрима не создавалась, а Гном и ElementaryOS вполне себе этот язык используют. Почему нет? Быстрый, легко интегрируется с Си, маргинальные вещей не умеет, но все привычные — вполне себе. Осваивается, опять же, предельно быстро.
Ну вот и плохо, что она для мейнстрима не создавалась. Зачем собственно было плодить сущности? Язык гвоздями прибитый к одной очень узкой даже в рамках Linux платформе.

Кстати нашел интересное сравнение Nim и Rust. Получается, что код на Rust в среднем получается на 50% длиннее кода Nim при этом обладает субъективно меньшей читабельностью arthurtw.github.io/2015/01/12/quick-comparison-nim-vs-rust.html

Мне интересно, минусующие реально верят в то, что Rust будут изучать в ВУЗах и на него начнут переходить к примеру с C#?
а на Джаве код реально длинней, чем какой-либо другой :) Но Джава высоко в топе популярных языков, выше Си, С++ и всех прочих благодаря популярности в корпоративном софте.

Ибо дело не только в сравнении числа строчек на популярный алгоритм.
>как в таковом — многие фички, которые так привлекали, перекочевали в новые C++

Тут проблема в том, что D тоже не стоит на месте и новые фишки в него добавлять быстрее и проще, чем пытаться расширить С++. SDC хороший тому пример. Чистый идиоматический код на D оказался значительно компактнее и проще кода на С++ (30K против 300K строк кода).

Фактически если у LDC появится полная поддержка C/C++ библиотек из коробки, то можно будет говорить о том, что практической потребности в самом С++ не будет, кроме случаев когда люди принципиально не хотят переучиваться.
Ох, как я понимаю ваши эмоции. Действительно, в учебнике Александреску делает большой акцент на том, что компилятор должен делать практически всю грязную работу, и что программист не должен заботится о памяти, контроле типов, указателях (их не должно быть, хотя они широко используются внутри языка) и т.д. Но на деле, это очень плохо реализовано. Сам язык очень не плохо поддерживает LDC2, но с крупными библиотеками совсем беда, они написаны в основном для GDC и DMD, из которых первый генерирует огромные бинарники (в Linux точно), а второй генерирует просто плохой код, очень далекий по качеству от LDC2. Вот такой замкнутый круг.
При этом всём ещё и наблюдается тенденция создать кучу компиляторов, библиотек, тулкитов, биндов, которые по факту делают одно и тоже, при этом далеко не всегда хорошо. И это только касательно поддержи языка. Речь о «бурном развитии» даже идти не может.
Only those users with full accounts are able to leave comments. Log in, please.