Пятая часть перевода D Programming Language Tutorial от Ali Çehreli. В этой части переведена глава Logical Expressions. Материал главы рассчитан на новичков.
![](http://habrastorage.org/getpro/habr/hub/a14/5fa/b6c/a145fab6c510fec3352ddef71f051aa1.png)
7.5
Рейтинг
D *
Мультипарадигмальный компилируемый язык
Сначала показывать
Порог рейтинга
Уровень сложности
+14
Учебник по языку программирования D. Часть 3
2 мин
11KТуториал
Перевод
Третья часть перевода D Programming Language Tutorial от Ali Çehreli. Содержание главы расчитано для начинающих и, как мне кажется, даже не раскрывает темы. Но это перевод одной из глав.
Предыдущие части:
Предыдущие части:
+14
REST интерфейс генератор фреймворка vibe.d
9 мин
4.2KТуториал
В этой статье я поэтапно покажу как пользоваться rest interface генератором встроенным во фреймворк vibe.d. Если вы интересуетесь D и его особенностями, то данная статья, надеюсь, немного прояснит новичкам как на практике использовать D и познать всю его мощь.
Для этого нами понадобится:
В документации к vibe.d имеется пример пользования генератором. Однако данный пример, на мой взгляд, слишком прост и не раскрывает механизма работы генератора.
Для этого нами понадобится:
- Настроить eclipse для работы с vibe.d.новичкам
- Запустить «Hello World» на vibe.d. новичкам
- Создать клиента для api OpenWeatherMap.
- Создать дублирующий сервер на основе api OpenWeatherMap
В документации к vibe.d имеется пример пользования генератором. Однако данный пример, на мой взгляд, слишком прост и не раскрывает механизма работы генератора.
+6
Истории
Учебник по языку программирования D. Часть 2
9 мин
16KТуториал
Перевод
Вторая часть перевода D Programming Language Tutorial от Ali Çehreli. Большая часть материала ориентирована на начинающих, но так как большая часть аудитории уже имеет базовые знания в программировании, то этот материал убран под хабракаты. В данной части рассматриваются фундаментальные типы, свойства типов, основы компиляции и императивного программирования.
+22
Compile-time функциональное программирование в D
7 мин
8KСегодня мы рассмотрим одну из главных фич языка D, ради которой он и создавался — это продвинутое программирование на этапе компиляции. Некоторые могут припомнить как на C++ высчитывается факториал или, что посложнее, реализацию игры «Жизнь» и испугаться. Не стоит, шаблоны в D на порядок проще и мощнее аналога из C++, но все равно они требуют особого подхода в размышлениях, поэтому для акклиматизации сложность материала будет нарастать постепенно.
+16
Использование в языке D сторонних библиотек
3 мин
7.5KТуториал
На волне интереса к языку D решил и я внести свой вклад в его популяризацию. Статья не для новичков, а больше для тех кто рассматривает D как второй язык. Известно, что на заре своего развития, языки программирования имеют небогатый набор библиотек и это часто не позволяет начинать писать на них что-то серьёзное. Надеюсь статья поможет кому-нибудь переступить этот барьер.
Ниже будут рассмотрены возможности утилиты dub, а так же подключение сторонних пакетов и библиотек написанных на C/C++ на примере замечательной библиотеки libev.
Ниже будут рассмотрены возможности утилиты dub, а так же подключение сторонних пакетов и библиотек написанных на C/C++ на примере замечательной библиотеки libev.
+16
Учебник по языку программирования D. Часть 1
10 мин
41KТуториал
Перевод
Данный пост начинает серию переводов D Programming Language Tutorial, дабы компенсировать информационный вакуум об этом системном языке. Каждая часть будет содержать константое количество материала из книги, так как оригинальные главы имеют широкий разброс в размере: от пары абзацев до нескольких печатных страниц. Все примеры кода проверяются на текущем релизе компилятора dmd 2.065, и если возникают проблемы с технической частью, прошу отписываться в комментариях.
+26
Сравнение D и C++ и Rust на примерах
8 мин
37KДанный пост основывается на Сравнение Rust и С++ на примерах и дополняет приведенные там примеры кодом на D с описанием различий.
Все примеры были собраны с помощью компилятора DMD v2.065 x86_64.
Все примеры были собраны с помощью компилятора DMD v2.065 x86_64.
+53
Под капотом: сборка и открытие исходников flint
10 мин
6.5KПеревод
Программы статического анализа кода — это необычный класс программ-верификаторов, и в течение некоторого времени я не был убежден в необходимости их использования при разработке для фейсбука. Я не терплю стилистические правила на своей шее, и ложные предупреждения об ошибках могут испортить всю задачу. Впрочем, в них есть и хорошее: если проверяющий механически ищет проблемы, которые традиционно не контролируются компилятором, то это должно почти всегда улучшать качество кода, как только проблема будет исправлена.
Флинт, программа Фейсбука для статического анализа, выдает ошибки анализа, которые автоматически появляются в нашей системе ревью (phabricator) рядом с каждым предложенным изменением кода, уведомляя программиста, что что-то может пойти не так. Flint стал важной частью работы, которую мы делаем в Фейсбуке, и я очень рад открыть его исходники, чтобы каждый мог проверить, что же мы делаем, и попробовать это для себя.
Флинт, программа Фейсбука для статического анализа, выдает ошибки анализа, которые автоматически появляются в нашей системе ревью (phabricator) рядом с каждым предложенным изменением кода, уведомляя программиста, что что-то может пойти не так. Flint стал важной частью работы, которую мы делаем в Фейсбуке, и я очень рад открыть его исходники, чтобы каждый мог проверить, что же мы делаем, и попробовать это для себя.
+24
Функциональная обработка изображений в D
11 мин
9KПеревод
![image](https://habrastorage.org/getpro/habr/post_images/95e/84f/d1d/95e84fd1dfcaf235e8d9fa3e5c771ea9.png)
Недавно я завершил переработку графического пакета для моей D библиотеки. Вдохновленный модулями std.algorithm и std.range, я пытался достичь следующих целей:
- Представить все в виде малых комбинируемых компонентов
- Избежать неявного копирования и предпочтительно использовать ленивые вычисления
- Использовать шаблоны для улучшения производительности и эффективности написания кода
Начиная с первой версии, все компонеты пакета обработки изображений были параметризированы типом цвета. Это не стандартный способ реализации графических библиотек — большинство абстрагируют конкретный тип цвета изображения через ООП интерфейс, или просто конвертируют все изображения в единый формат пикселей, с которыми далее работают в памяти. Однако для большинства случаев это является тратой памяти и времени, обычно разработчики заранее знают в каком конкретно формате будет представлено изображение, за исключением приложений, где графические данные вводятся пользователем (например, граф. редакторы). Вместо этого моя библиотека объявляет все типы изображений как шаблоны с типом-параметром для цвета.
Я весьма доволен результатами работы над библиотекой, поэтому я хочу поделиться несколькими интересными моментами в данном посте.
+30
Facebook совместно с Digital Mars платят за исправление багов в компиляторе D
1 мин
7.4KRecovery Mode
![Digital Mars logo](https://habrastorage.org/getpro/habr/post_images/c17/b5c/3c0/c17b5c3c06d5542717cefb161b4f3802.gif)
+27
Свой Web проект на D под ОС Ubuntu
4 мин
5.4KЭтот материал родился благодаря статье Простой сайт на D автора danial72. Только там был разобран момент под ОС Windows. В моей же статье, будет пошагово рассмотрен процесс подготовки рабочего окружения для создания собственного Web-проекта на языке программирования D на примере ОС Ubuntu 13.04.
+4
Ближайшие события
![](https://habrastorage.org/getpro/habr/upload_files/bf4/631/f01/bf4631f011648a7b245e86bc3a0ff802.png)
Больше событий в календаре
Разработка
Администрирование
Тестирование
![](https://habrastorage.org/getpro/habr/upload_files/8b2/ebc/2ff/8b2ebc2ff5e3fe5058f221d272f7dc34.png)
Больше событий в календаре
Разработка
Дизайн
Менеджмент
![](https://habrastorage.org/getpro/habr/upload_files/f93/f60/d69/f93f60d69445a778e22e7453b2846d95.png)
Больше событий в календаре
Разработка
![](https://habrastorage.org/getpro/habr/upload_files/dea/f03/88f/deaf0388fd29b95ea852399e8528ddcc.jpg)
Больше событий в календаре
Менеджмент
Тестирование
![](https://habrastorage.org/getpro/habr/upload_files/7c3/b61/482/7c3b61482762ad78b83e5deb921dfaa5.jpg)
Больше событий в календаре
Разработка
![](https://habrastorage.org/getpro/habr/upload_files/fd0/255/4d3/fd02554d346912bf8fc4bc81f9406174.png)
Больше событий в календаре
Разработка
Менеджмент
Маркетинг
Voldemort типы в D
4 мин
17KТуториал
Данный пост расскажет об уникальной фишке D — Voldemort типы. Типы, которые можно использовать, но нельзя назвать. Данное название не очень подходит им, но Walter Bright очень любит так их называть. Voldemort типы очень часто встречаются в стандартной библиотеке Phobos, особенно в модулях std.algorithm и std.array. Осваивающие D могут часами штудировать документацию в поисках типа, возвращаемого из splitter или joiner, а возвращают они именно Voldemort типы. После этого поста можно смело открывать исходники std.algorithm, ибо никакие Сами-Знаете-Кто вам будут не страшны.
![Он самый](https://habrastorage.org/getpro/habr/post_images/079/1ab/1d2/0791ab1d2fff16c5d6cbb5d9359885d3.jpg)
Иногда, взаимодействие существующих возможностей может привести к неожиданным сюрпризам. Мне нравится считать, что мы изначально заложили Voldemort типы в D, но на самом деле они были найдены Андреем Александреску. Что это за Voldermort типы? Читайте дальше.
![Он самый](https://habrastorage.org/getpro/habr/post_images/079/1ab/1d2/0791ab1d2fff16c5d6cbb5d9359885d3.jpg)
Иногда, взаимодействие существующих возможностей может привести к неожиданным сюрпризам. Мне нравится считать, что мы изначально заложили Voldemort типы в D, но на самом деле они были найдены Андреем Александреску. Что это за Voldermort типы? Читайте дальше.
+32
+20
Kickstarter + D = DConf 2013
3 мин
5KНа слуху множество разнообразных проектов, успешно получивших финансирование на Kickstarter. И если обычно они относятся к тематике Habrahabr лишь в том, что тут есть хаб Crowdfunding, то этот случай более примечателен — требуемая сумма была набрано проектом по финансированию конференции по языку программирования D.
+12
Разрушая распространённые мифы о 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 должно как можно лучше объяснить остальным программистам. Вот эти темы:
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 позволяет ручное управление памятью
- Статическая типизация НЕ означает непродуктивность
+68
Message dispatching на D
10 мин
2.7KМногие разработчики игр сталкиваются с проблемой описания и реализации протокола общения клиента и сервера, особенно если пишут свои велосипеды для работы с сокетами. Ниже я расскажу о моей попытке решить задачу как можно элегантнее и удобнее для дальнейшего использования и масштабирования приложения. Будет много compile-time'a с автоматической кодогенерацией, нежно приправленный щепоткой run-time'a.
+18
Web-сервер на D?
1 мин
5.7KЧитая официальный twitter-канал языка D, попал на интересный пост о новом движке на D (vibe.d) для разработки web-приложений, ну или даже web-сервера.
Стало интересно — полез смотреть и разбираться!
Стало интересно — полез смотреть и разбираться!
+24
Почему я выбираю D
19 мин
13KВместо введения
Добрый день, Хабралюди.
Хотел бы поделиться со всеми моим скромным опытом выбора языка программирования для своих проектов. Сразу хочу подчеркнуть – я выбирал язык исходя из собственных нужд, и, вполне вероятно, что ваш выбор в аналогичных условиях может быть другим. Все же я искренне надеюсь, что эта статья будет полезной, так как в ней достаточно подробно и аргументировано проводится сравнение D с C++ и C#, а так же упоминаются свыше десяти различных языков, принадлежащих к различным классам и реализующих различные парадигмы. Сам D разрабатывается как высокоуровневый язык для системного и прикладного программирования.
+68