Подтвердить что ты не робот

Какой компилятор D использовать?

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

Каковы преимущества каждого компилятора и каковы недостатки? Прямо сейчас компилятор DMD кажется мне лучшим, но я могу просто ввести в заблуждение устаревшую информацию.

4b9b3361

Ответ 1

Все 3 основных компилятора D (dmd, gdc, ldc) используют один и тот же интерфейс, но dmd, как правило, немного опережает остальных, поскольку он является ссылочным компилятором. Кроме того, я считаю, что есть несколько случаев, когда другие 2 еще не реализуют некоторые функции (в первую очередь на Windows или OS X IIRC), хотя в целом они работают нормально. Основным преимуществом gdc или ldc является то, что они генерируют более быстрый код (хотя, насколько быстрее он зависит от кода). Тем не менее, они также занимают гораздо больше времени, чтобы скомпилировать код.

Итак, если вы только начинаете, я предлагаю вам просто использовать dmd и не беспокоиться об этом. Он гарантированно является самым современным компилятором, и я считаю, что это то, что используют большинство людей. Основной недостаток заключается в том, что код, который он генерирует, не так быстр, но позже вы можете просмотреть другие компиляторы, если/когда вам это действительно нравится.

Для производственного кода подход, который я обычно использовал бы, заключался бы в разработке с использованием dmd, а затем генерации производственного кода с помощью gdc или ldc. Таким образом, вы быстро получаете время компиляции при разработке кода, но все же получаете более быстрые исполняемые файлы.

Ответ 2

Добавление к ответу Джонатана:

Ваш выбор также ограничен операционной системой, которую вы используете. В Linux доступны все 3 (DMD, GDC и LDC). В Windows DMD - ваш единственный практический выбор, особенно если вы привыкли к Visual Studio (получите дополнение Visual D). Использование GDC или LDC в Windows связано с различной степенью боли (см. это обсуждение).

Если вы хотите играть с SIMD, используйте DMD. Другие компиляторы имеют неполные или отсутствующие реализации (на основе переговоров DConf 2013).