Как стать автором
Обновить
7.5

D *

Мультипарадигмальный компилируемый язык

Сначала показывать
Порог рейтинга
Уровень сложности

Учебник по языку программирования D. Часть 5

Время на прочтение9 мин
Количество просмотров8.6K
Пятая часть перевода D Programming Language Tutorial от Ali Çehreli. В этой части переведена глава Logical Expressions. Материал главы рассчитан на новичков.
  1. Часть 1
  2. Часть 2
  3. Часть 3
  4. Часть 4
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии15

Учебник по языку программирования D. Часть 4

Время на прочтение9 мин
Количество просмотров9K
Четвертая часть перевода D Programming Language Tutorial от Ali Çehreli.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии7

Учебник по языку программирования D. Часть 3

Время на прочтение2 мин
Количество просмотров11K
Третья часть перевода D Programming Language Tutorial от Ali Çehreli. Содержание главы расчитано для начинающих и, как мне кажется, даже не раскрывает темы. Но это перевод одной из глав.

Предыдущие части:
  1. Часть 1
  2. Часть 2

Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии5

REST интерфейс генератор фреймворка vibe.d

Время на прочтение9 мин
Количество просмотров4.2K
В этой статье я поэтапно покажу как пользоваться rest interface генератором встроенным во фреймворк vibe.d. Если вы интересуетесь D и его особенностями, то данная статья, надеюсь, немного прояснит новичкам как на практике использовать D и познать всю его мощь.

Для этого нами понадобится:
  1. Настроить eclipse для работы с vibe.d.новичкам
  2. Запустить «Hello World» на vibe.d. новичкам
  3. Создать клиента для api OpenWeatherMap.
  4. Создать дублирующий сервер на основе api OpenWeatherMap

В документации к vibe.d имеется пример пользования генератором. Однако данный пример, на мой взгляд, слишком прост и не раскрывает механизма работы генератора.
Вперед
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Истории

Учебник по языку программирования D. Часть 2

Время на прочтение9 мин
Количество просмотров16K
Вторая часть перевода D Programming Language Tutorial от Ali Çehreli. Большая часть материала ориентирована на начинающих, но так как большая часть аудитории уже имеет базовые знания в программировании, то этот материал убран под хабракаты. В данной части рассматриваются фундаментальные типы, свойства типов, основы компиляции и императивного программирования.

Читать дальше →
Всего голосов 32: ↑27 и ↓5+22
Комментарии4

Compile-time функциональное программирование в D

Время на прочтение7 мин
Количество просмотров8K
Сегодня мы рассмотрим одну из главных фич языка D, ради которой он и создавался — это продвинутое программирование на этапе компиляции. Некоторые могут припомнить как на C++ высчитывается факториал или, что посложнее, реализацию игры «Жизнь» и испугаться. Не стоит, шаблоны в D на порядок проще и мощнее аналога из C++, но все равно они требуют особого подхода в размышлениях, поэтому для акклиматизации сложность материала будет нарастать постепенно.

Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии29

Использование в языке D сторонних библиотек

Время на прочтение3 мин
Количество просмотров7.5K
На волне интереса к языку D решил и я внести свой вклад в его популяризацию. Статья не для новичков, а больше для тех кто рассматривает D как второй язык. Известно, что на заре своего развития, языки программирования имеют небогатый набор библиотек и это часто не позволяет начинать писать на них что-то серьёзное. Надеюсь статья поможет кому-нибудь переступить этот барьер.
Ниже будут рассмотрены возможности утилиты dub, а так же подключение сторонних пакетов и библиотек написанных на C/C++ на примере замечательной библиотеки libev.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии17

Учебник по языку программирования D. Часть 1

Время на прочтение10 мин
Количество просмотров41K
Данный пост начинает серию переводов D Programming Language Tutorial, дабы компенсировать информационный вакуум об этом системном языке. Каждая часть будет содержать константое количество материала из книги, так как оригинальные главы имеют широкий разброс в размере: от пары абзацев до нескольких печатных страниц. Все примеры кода проверяются на текущем релизе компилятора dmd 2.065, и если возникают проблемы с технической частью, прошу отписываться в комментариях.

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии54

Сравнение D и C++ и Rust на примерах

Время на прочтение8 мин
Количество просмотров37K
Данный пост основывается на Сравнение Rust и С++ на примерах и дополняет приведенные там примеры кодом на D с описанием различий.

Все примеры были собраны с помощью компилятора DMD v2.065 x86_64.
Читать дальше →
Всего голосов 63: ↑58 и ↓5+53
Комментарии50

Под капотом: сборка и открытие исходников flint

Время на прочтение10 мин
Количество просмотров6.5K
Программы статического анализа кода — это необычный класс программ-верификаторов, и в течение некоторого времени я не был убежден в необходимости их использования при разработке для фейсбука. Я не терплю стилистические правила на своей шее, и ложные предупреждения об ошибках могут испортить всю задачу. Впрочем, в них есть и хорошее: если проверяющий механически ищет проблемы, которые традиционно не контролируются компилятором, то это должно почти всегда улучшать качество кода, как только проблема будет исправлена.
Флинт, программа Фейсбука для статического анализа, выдает ошибки анализа, которые автоматически появляются в нашей системе ревью (phabricator) рядом с каждым предложенным изменением кода, уведомляя программиста, что что-то может пойти не так. Flint стал важной частью работы, которую мы делаем в Фейсбуке, и я очень рад открыть его исходники, чтобы каждый мог проверить, что же мы делаем, и попробовать это для себя.
Читать далее
Всего голосов 28: ↑26 и ↓2+24
Комментарии7

Функциональная обработка изображений в D

Время на прочтение11 мин
Количество просмотров9K
image

Недавно я завершил переработку графического пакета для моей D библиотеки. Вдохновленный модулями std.algorithm и std.range, я пытался достичь следующих целей:
  • Представить все в виде малых комбинируемых компонентов
  • Избежать неявного копирования и предпочтительно использовать ленивые вычисления
  • Использовать шаблоны для улучшения производительности и эффективности написания кода


Начиная с первой версии, все компонеты пакета обработки изображений были параметризированы типом цвета. Это не стандартный способ реализации графических библиотек — большинство абстрагируют конкретный тип цвета изображения через ООП интерфейс, или просто конвертируют все изображения в единый формат пикселей, с которыми далее работают в памяти. Однако для большинства случаев это является тратой памяти и времени, обычно разработчики заранее знают в каком конкретно формате будет представлено изображение, за исключением приложений, где графические данные вводятся пользователем (например, граф. редакторы). Вместо этого моя библиотека объявляет все типы изображений как шаблоны с типом-параметром для цвета.

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

Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии13

Facebook совместно с Digital Mars платят за исправление багов в компиляторе D

Время на прочтение1 мин
Количество просмотров7.4K
Digital Mars logo Вчера на форуме forum.dlang.org Андрей Александреску (Разработчик языка D и автор книги: The D Programming Language" — 2010 г. ) объявил о начале бонусной программы по исправлению багов в языке D.
Какой бюджет?
Всего голосов 35: ↑31 и ↓4+27
Комментарии7

Свой Web проект на D под ОС Ubuntu

Время на прочтение4 мин
Количество просмотров5.4K
Этот материал родился благодаря статье Простой сайт на D автора danial72. Только там был разобран момент под ОС Windows. В моей же статье, будет пошагово рассмотрен процесс подготовки рабочего окружения для создания собственного Web-проекта на языке программирования D на примере ОС Ubuntu 13.04.
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии9

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
14 июля
Фестиваль Selectel Day Off
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн

Voldemort типы в D

Время на прочтение4 мин
Количество просмотров17K
Данный пост расскажет об уникальной фишке D — Voldemort типы. Типы, которые можно использовать, но нельзя назвать. Данное название не очень подходит им, но Walter Bright очень любит так их называть. Voldemort типы очень часто встречаются в стандартной библиотеке Phobos, особенно в модулях std.algorithm и std.array. Осваивающие D могут часами штудировать документацию в поисках типа, возвращаемого из splitter или joiner, а возвращают они именно Voldemort типы. После этого поста можно смело открывать исходники std.algorithm, ибо никакие Сами-Знаете-Кто вам будут не страшны.

Он самый

Иногда, взаимодействие существующих возможностей может привести к неожиданным сюрпризам. Мне нравится считать, что мы изначально заложили Voldemort типы в D, но на самом деле они были найдены Андреем Александреску. Что это за Voldermort типы? Читайте дальше.

Читать дальше →
Всего голосов 46: ↑39 и ↓7+32
Комментарии27

Прошла DConf 2013 — конференция, посвящённая языку программирования D

Время на прочтение2 мин
Количество просмотров7K
Чуть больше недели назад закончилась трёхдневная конференция по языку программирования D.
Про него уже неоднократно писали на Хабрахабре, а самой конференции был посвящён отдельный пост, где можно посмотреть полный список докладов.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии10

Kickstarter + D = DConf 2013

Время на прочтение3 мин
Количество просмотров5K
На слуху множество разнообразных проектов, успешно получивших финансирование на Kickstarter. И если обычно они относятся к тематике Habrahabr лишь в том, что тут есть хаб Crowdfunding, то этот случай более примечателен — требуемая сумма была набрано проектом по финансированию конференции по языку программирования D.

Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии3

Разрушая распространённые мифы о D

Время на прочтение6 мин
Количество просмотров30K
Оригинальный текст: semitwist.com/articles/article/view/dispelling-common-d-myths
Reddit: www.reddit.com/r/programming/comments/118y4m/dispelling_common_d_myths

Вступление


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

Все эти заблуждения вполне объяснимы. Многие связаны с проблемами, которые играли важную роль в прошлом, так что не удивительно, что эти устаревшие представления продолжают существовать. Мне кажется, что это как раз те области, которые сообщество D должно как можно лучше объяснить остальным программистам. Вот эти темы:

  • Для D есть IDE
  • DSource угасает, но проекты на D активны как никогда ранее
  • Разделения на D1 и D2 больше нет
  • Phobos — стандартная библиотека? А как же Tango?
  • D — open source
  • D позволяет ручное управление памятью
  • Статическая типизация НЕ означает непродуктивность

Читать дальше →
Всего голосов 82: ↑75 и ↓7+68
Комментарии56

Message dispatching на D

Время на прочтение10 мин
Количество просмотров2.7K
Многие разработчики игр сталкиваются с проблемой описания и реализации протокола общения клиента и сервера, особенно если пишут свои велосипеды для работы с сокетами. Ниже я расскажу о моей попытке решить задачу как можно элегантнее и удобнее для дальнейшего использования и масштабирования приложения. Будет много compile-time'a с автоматической кодогенерацией, нежно приправленный щепоткой run-time'a.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии16

Web-сервер на D?

Время на прочтение1 мин
Количество просмотров5.7K
Читая официальный twitter-канал языка D, попал на интересный пост о новом движке на D (vibe.d) для разработки web-приложений, ну или даже web-сервера.
Стало интересно — полез смотреть и разбираться!
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии9

Почему я выбираю D

Время на прочтение19 мин
Количество просмотров13K

Вместо введения


Добрый день, Хабралюди.
Хотел бы поделиться со всеми моим скромным опытом выбора языка программирования для своих проектов. Сразу хочу подчеркнуть – я выбирал язык исходя из собственных нужд, и, вполне вероятно, что ваш выбор в аналогичных условиях может быть другим. Все же я искренне надеюсь, что эта статья будет полезной, так как в ней достаточно подробно и аргументировано проводится сравнение D с C++ и C#, а так же упоминаются свыше десяти различных языков, принадлежащих к различным классам и реализующих различные парадигмы. Сам D разрабатывается как высокоуровневый язык для системного и прикладного программирования.
Читать дальше →
Всего голосов 138: ↑103 и ↓35+68
Комментарии169