LINUX.ORG.RU

Андрей Александреску, The Case for D

 , ,


0

0

Перевод статьи The Case for D, выполненный сообществом сайта http://dprogramming.ru/d/

Мы, программисты, — странный народ. Достатчно взглянуть на то, как мы выбираем любимые языки и придерживаемся этих предпочтений в дальнейшем. Ожидаемая реакция программиста, заметившего на полке книжного магазинаиздание “Язык программирования XYZ” — “Даю себе ровно 30 секунд, чтобы найти в нём что-нибудь, что мне не понравится”. Изучение языка программирования требует времени и усилий, а результаты появляются не сразу. Попытка избежать этого — проявление инстинкта выживания. Ставки высоки, вложения рискованны, так что лучше уметь принимать быстрое решение “против”.

Изучение нового языка программирования может представлять интерес только в том случае, если язык удовлетворяет принципам, которые программист высоко ценит. Любое несовпадение создаёт у программиста впечатление небрежного и небезопасного или же навязчивого и нудного языка. Язык не может одновременно устраивать всех и каждого, он должен аккуратно выбирать основные координаты, позиционируя себя среди языков программирования.

>>> Перевод (pdf)

★★★★★

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

Так и не понял, чего нового в мир принесли изобретатели языка D?

Сборку кучи?
Конструкторы/деструкторы?
Многопоточность?
Ексепшены ввода/вывода?
Классы?

Что нового? Чем D круче, хотя бы Оберона, которому сто лет в обед?

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

Скорость C. Удобство пайтона. Привычность идиом для тех, кто хорошо знаком с С++. Объектная совместимость с С и даже немного с С++. Мне в последнее время пришлось писать на С#, и многими вещами я был приятно удивлён, а-ля а в джаве это есть, но через одно место, а тут они реализовали как надо, молодцы. Такое же чувство когда программируешь на D, после С++.

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

>Сборку кучи?

Конструкторы/деструкторы?

Многопоточность?

Ексепшены ввода/вывода?

Классы?

Осильте посмотреть доки к языку, хотя бы бегло, а то настолько толсто, что в экран не влазит.

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

> Что нового? Чем D круче, хотя бы Оберона, которому сто лет в обед?

Прочитайте таки перевод. Там Александреску чёрным по белому сказал, что ничего нового со времён Лиспа не было.

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

Оберон при всей своей инновационности на то время слишком простой. Язык очень страдает от недостаточной выразительности и хотя когда пишешь на том же Component Pascal возникает ощущение уюта, в то же время пилит необходимость писать кучу boilerplate кода потому что иначе в обероне нельзя. К тому же оберон это не только язык, это система и определенная философия. По отдельности они не работают.

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

> Прочитайте таки перевод. Там Александреску чёрным по белому сказал, что ничего нового со времён Лиспа не было.

Почитаем. Но это видимо неправда. Появился параметрический полиморфизм вместе с зависимыми типами.

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

ничего нового со времён Лиспа не было.


Ну и зачем тогда он нужен? Как замена С++? Ну так то что С++ угробище было понятно еще тогда когда он появился.

vada ★★★★★
()
Ответ на: комментарий от Sun-ch

Ну, не совсем так:

(На самом деле большинство языков обязаны своим стилем Lisp’у, просто некоторые не хотят этого признавать.)

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

Монады? И логическое программирование.


Во, сейчас сюда подтянутся фанаты Haskell и будет совсем весело!


Пролог забыли! Пролог наше фсе!!!!

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

По отдельности они не работают.


JAVA, C# Тоже самое по своей сути.

ЗЫ. А вот меня интересует вот что. В Ди есть низкоуровневая работа с указателями. Интересно, а как они будут кучу при этом всем собирать? Не напорятся на программера?

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

>>> Монады? И логическое программирование.

>> Во, сейчас сюда подтянутся фанаты Haskell и будет совсем весело!


> Пролог забыли! Пролог наше фсе!!!!


Программируемое программирование - единственное Ъ программирование, а хороших языков нет, кроме Lisp и Tcl.

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

Уже началось! :) Срачь про Си заплющенный будет отдыхать.

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

Ну вот, вам смешно, а кому-то лабы приходилось на этом чуде сдавать...


Всем приходилось. А что! Чем пролог плох? Борьбой с бесконечной рекурсией? :)

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

> а хороших языков нет, кроме Lisp и Tcl.

Я б даже сильнее сказал: «хороших языков нет». Надо же на мажорной ноте закончить мысль!

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

> ЗЫ. А вот меня интересует вот что. В Ди есть низкоуровневая работа с указателями. Интересно, а как они будут кучу при этом всем собирать? Не напорятся на программера?

Есть. Консервативный сборщик мусора убирает память, только когда уверен, что она не используется. Т.е. пока есть указатель куда-то в выделенную область памяти, она не будет убрана.

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

> Надо же на мажорной ноте закончить мысль!

Ну тогда... Кроме Lisp и Tcl, *хороших языков нет*!

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

Ээээээ... ребяты! Вы со СНОБОЛом не знакомы! Вот где изврата можно дыло налепить!
Например, там можно во время работы программы нагенерить кода, который запустить выполняться. Тот, в сою очередь, будет генерить другой код.... «У попа была собака...» ВЕЩЬ!!!!!!!!!!

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

Есть. Консервативный сборщик мусора убирает память, только когда уверен, что она не используется. Т.е. пока есть указатель куда-то в выделенную область памяти, она не будет убрана.


Вот я и говорю! Программер!!!!! Вобщем, сборщик никогда не заработает, если программеру дать глумиться над указателями. :)

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

> Я б даже сильнее сказал: «хороших языков нет».

хороших языков общего назначения нет. // FIXED

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

Кстати да, про CTFE забылось совсем. Сейчас, если это возможно, функция будет запускаться на этапе компиляции.

В природе есть такие монструозные вещи как compile-time трассировщик лучей и компилятор регулярных выражений

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