То есть «было бы», как я понимаю? Очень уж объемная и расплывчатая задача. Если выбрать один какой-то другой язык программирования и одну какую-то задачу — это уже будет тянуть на неплохой обзор.
Быть может, немного конкретизируете?
Я бы сказал так, изюминка языка как раз в том, что он не заманивает какой-то особой изюминкой — это отлично спроектированный язык для практиков, созданный инженером, а не математиком :) Практичность, мощность и эффективность в нём ценятся выше какой-то Великой Концепции.
Это круто :)
Там всё весьма хорошо с многопоточностью. Green threads нет и, насколько мне известно, не планируется. «D-way» многопоточности на данный момент — message passing. Конечно же поддерживаются и треды в стиле pthread, но в чистом виде к использованию не рекомендуются, т.к. слишком error-prone.
Есть нативная поддержка в самом языке для синхронизации доступа к данным, основанная на системе типов. Тут парой линков не отделаться, гуглить сайт D по synchronized, shared, immutable
Если возникнут какие-то конкретные практические вопросы — с удовольствием отвечу.
Но и код библиотечного map несколько менее тривиален, чем требуется для этой статьи. Зато, как видите, можно указывать функцию не только лямбдой/делегатом, но и обычной строкой. Дополнительная плюшка — map высчитывается лениво.
P.S. equal, а не == т.к. идёт сравнение двух range, строго говоря, являющихся разными типами.
Mkay, благое начинание, дерзайте.
Cтоило бы рассмотреть то, что упрощает функциональный стиль — ranges, immutable, pure/weak pure, std.algorithm. Но в этой области не уверен, что моей компетенции хватит :(
Насчёт (2) — не возражаете против небольшой конкуренции? :) Я вижу по количеству плюсов, что определённый интерес к языку есть, хочу написать небольшой обзор метапрограммирования/CTFE в D. Как раз то самое, что С++11 и не снилось :)
Покупают перспективные технологии, которых не оказалось в собственном арсенали, покупают потенциальное усиление для конкурентов. Не вижу «Места для D» тут.
Собственно, моя мечта — Google вместо всяких Go и Darth'ов просто покупает Digitalmars с потрохами и даёт допилить эту няшку :) Несбыточная, конечно же.
Как легко можно понять по моему профилю, я — преданный поклонник D2 и считаю его лучшим образчиком _дизайна языка_ из представленных широкой публике вариантов. Но D2 своенравен и регулярно испытывает моё терпение, даже несмотря на то, что я не использую его ни для чего, кроме любительских экспериментов.
На мой взгляд, язык отчаянно нуждается в сильном open-source сообществе и главная проблема сейчас — то, что Walter всё ещё хочет сохранить за собой старые наработки Digitalmars. Люди, участвующие в разработке компилятора и стандартной бибилиотеки, вне всякого сомнения, гениальны — из регулярного чтения обсуждений тех или иных исправлений в newsgroup я узнал больше о дизайне языков, чем из любой книги. Но их довольно мало и они физически не могут выдать достаточный темп разработки для такого сложного по техническому обеспечению языка. Да, есть gdc и ldc — но в их разработке как раз «мастодонты» участия не принимают, более фанатские проекты, обречённые на постоянную синхронизацию с новыми релизами dmd.
Характерно, что самый заметный прирост скорости разработки совпал с банальным переездом проекта на github.
Жаль, если так. Очень хотелось бы иметь хоть одну сеть как инструмент для общения реальных людей. Я считаю, это дискриминация противников анонимности, надо организовывать деанон-парады :(
На самом деле, учитывая планируемый ребрендинг и унификацию ( Picasa -> Google Photos, Blogger -> Google Blogs AFAIR ), им и не должно быть очень жалко этой потери. mail.google.com как бы.
Быть может, немного конкретизируете?
Выхлоп:
Или интересует что-то более конкретное?
Это круто :)
www.informit.com/articles/article.aspx?p=1609144 — опубликованная в открытый доступ глава из книги Александерсу «The D Programming Language», посвящённая concurrency вообще.
www.d-programming-language.org/phobos/std_concurrency.html — стандартная message-passing библиотека
www.d-programming-language.org/phobos/std_parallelism.html — symmetric multiprocessing (SMP)
Есть нативная поддержка в самом языке для синхронизации доступа к данным, основанная на системе типов. Тут парой линков не отделаться, гуглить сайт D по synchronized, shared, immutable
Если возникнут какие-то конкретные практические вопросы — с удовольствием отвечу.
Но и код библиотечного map несколько менее тривиален, чем требуется для этой статьи. Зато, как видите, можно указывать функцию не только лямбдой/делегатом, но и обычной строкой. Дополнительная плюшка — map высчитывается лениво.
P.S. equal, а не == т.к. идёт сравнение двух range, строго говоря, являющихся разными типами.
Cтоило бы рассмотреть то, что упрощает функциональный стиль — ranges, immutable, pure/weak pure, std.algorithm. Но в этой области не уверен, что моей компетенции хватит :(
На мой взгляд, язык отчаянно нуждается в сильном open-source сообществе и главная проблема сейчас — то, что Walter всё ещё хочет сохранить за собой старые наработки Digitalmars. Люди, участвующие в разработке компилятора и стандартной бибилиотеки, вне всякого сомнения, гениальны — из регулярного чтения обсуждений тех или иных исправлений в newsgroup я узнал больше о дизайне языков, чем из любой книги. Но их довольно мало и они физически не могут выдать достаточный темп разработки для такого сложного по техническому обеспечению языка. Да, есть gdc и ldc — но в их разработке как раз «мастодонты» участия не принимают, более фанатские проекты, обречённые на постоянную синхронизацию с новыми релизами dmd.
Характерно, что самый заметный прирост скорости разработки совпал с банальным переездом проекта на github.
Профит.