LINUX.ORG.RU

Язык программирования D 1.00


0

0

Под покровом зимних каникул, 2 января, автор известного в своё время компилятора Zortech C++ Уолтер Брайт (Walter Bright) объявил о новой версии языка программирования D под индексом 1.00.

D является языком высокого уровня общего назначения, предназначенный для прикладного и системного программирования. Основной фокус языка - объединение мощи и высокой производительности языков С и С++, с уклоном на продуктивность разработчиков, достигающегося на таких современных языках, как Python и Ruby.

Программа на D является строго типизированным и компилируется в нативный код. Также, D является мультипарадигмным языком, в нём объединены следующие стили: императивный (процедурно-ориентированный), объектно-ориентированный, и шаблонное мета-программирование. Синтаксис относится к семейству языка С и очень похож на С++.

На данный момент существуют две реализации: Digital Mars DMD для Win32 и x86 Linux, и реализация GCC D Compiler для нескольких платформ, включая Windows и Mac OS X.

Основной сайт, описание, пример кода: http://www.digitalmars.com/d/index.html

Список изменений: http://www.digitalmars.com/d/changelo...

Опенсорс сайт, проекты для/на ЯП D: http://www.dsource.org/

>>> Анонс

★★★★★

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

Всё классно, но оно до сих пор не может генерировать 64bit код. Это существенный минус (для меня)

realsmart
()

Из энциклопедии будущего: язык С++ - промежуточный язык при переходе от C (см. язык C) к D (см. язык D). Был использован в качестве временного решения при недостаточной вычислительной производительности оборудования того времени для компиляторов языка D (конец XX века)

:-)

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

> Был использован в качестве временного решения при недостаточной вычислительной производительности оборудования того времени для компиляторов языка D (конец XX века)

Таки D похоже тоже времянка - CLR от Microsoft + .NET рулит, просто производительности компьютеров не хватает :)))))))))

anonymous
()

кто-нибудь видел на этом D какой-нибудь серьезный проект? или пока только проги уровня "Hello world" клепаются? и кстати, если на нем кто програмил, поделитесь плиз впечатлениями :)

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

Анонимусы в своем духе, по ссылкам не ходят.

http://www.digitalmars.com/d/overview.html

- Features To Drop

-- Support for 16 bit computers. No consideration is given in D for mixed near/far pointers and all the machinations necessary to generate good 16 bit code. The D language design assumes at least a 32 bit flat memory space. D will fit smoothly into 64 bit architectures.

Darklight
()
Ответ на: комментарий от troorl

>Один вопрос: зачем?

http://www.digitalmars.com/d/overview.html

Why D?

Why, indeed. Who needs another programming language?

The software industry has come a long way since the C language was invented. Many new concepts were added to the language with C++, but backwards compatibility with C was maintained, including compatibility with nearly all the weaknesses of the original design. There have been many attempts to fix those weaknesses, but the compatibility issue frustrates it. Meanwhile, both C and C++ undergo a constant accretion of new features. These new features must be carefully fitted into the existing structure without requiring rewriting old code. The end result is very complicated - the C standard is nearly 500 pages, and the C++ standard is about 750 pages! C++ is a difficult and costly language to implement, resulting in implementation variations that make it frustrating to write fully portable C++ code.

C++ programmers tend to program in particular islands of the language, i.e. getting very proficient using certain features while avoiding other feature sets. While the code is usually portable from compiler to compiler, it can be hard to port it from programmer to programmer. A great strength of C++ is that it can support many radically different styles of programming - but in long term use, the overlapping and contradictory styles are a hindrance.

C++ implements things like resizable arrays and string concatenation as part of the standard library, not as part of the core language. Not being part of the core language has several suboptimal consequences.

Can the power and capability of C++ be extracted, redesigned, and recast into a language that is simple, orthogonal, and practical? Can it all be put into a package that is easy for compiler writers to correctly implement, and which enables compilers to efficiently generate aggressively optimized code?

Modern compiler technology has progressed to the point where language features for the purpose of compensating for primitive compiler technology can be omitted. (An example of this would be the 'register' keyword in C, a more subtle example is the macro preprocessor in C.) We can rely on modern compiler optimization technology to not need language features necessary to get acceptable code quality out of primitive compilers.

dotcoder ★★★★★
() автор топика

Отличная новость. 1.0 это уже серьёзно, значит язык стабилизировался. Вот не нравится мне только, что dmd не open-source, а так, прекрасный язык. Хотя не верю я в его будущее, без крупной корпорации за спиной тяжело выжить. Тем более конкурируя с джавой и дотнетом.

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

>Анонимусы в своем духе, по ссылкам не ходят.

ага, а ты только overview читаешь, да?

hint: смотри в словаре перевод слова *will*

почитай ещё у них на сайте, дружок, и узнаешь, что 64 битами там и не пахнет. И неизвестно когда будет (will:))...

realsmart
()

"мультипарадигмным"

Напонило фильм "Астерикс и Обеликс": ..астерискм астериксм астеристм..

:-)

anonymous
()

А что на нём РЕАЛЬНО можно писать? Ну, например, собрался я написать мультиплатформенное (хотя бы Lin+Win) приложение с гуём. Рассказывайте, что мне делать дальше.

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

>Тем более конкурируя с джавой и дотнетом.

Не совсем то: я так понял, что он может заменить (войти в нишу С/С++) - говорят совместимость сохраняется. Если действительно такой замечательный язык + оптимизацию заявляют хорошую, то почему бы и нет? Развиваться всегда нужно, стремиться к новому более совершенному, я так считаю! :)

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

>А что на нём РЕАЛЬНО можно писать? Ну, например, собрался я написать мультиплатформенное (хотя бы Lin+Win) приложение с гуём. Рассказывайте, что мне делать дальше.

Ждать пока gtk или Qt перепишут на Ди ;)

GladAlex ★★★★★
()

Ужасно сложный язык. Явно переборщили с синтаксисом. Хотя профессионалам наверно будет удобно.

anonymous
()
Ответ на: комментарий от DemonZLa

> Наплодили языков..... ну их в качель.... будущее за декларативным программированием.....

+1. Извиняюсь за банальность :)

zenith ★★★
()

А почему не D++ ? Потом будут GDC, Turbo D, Microsoft Visual D.NET, D-Sharp, DJAVA, ADJAX...

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

>Сравнение возможностей

Это такой странный C#. С его фишками мешать разные вещи. Например посоветовал александреску с lazy в результате оно странно выглядеть стало: в одних функциях передача функций foo (int delegate() f)... в других (lazy int f)....

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

> Наплодили языков..... ну их в качель.... будущее за декларативным программированием....

Будущее за электриченскими двигателями. Давайте сейчас же откажемся от бензиновых двигателей?

geekkoo
()
Ответ на: комментарий от gra

В чём проблема? возьми компилятор... возьми этот самый хелоу ворлд... скомпиляй... дезасэмблируй - смотри на здоровье :)

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

>О Патрег!!! Там есть габидж коллектор O_o закупаем много много памяти?

D offers many options for managing memory.

The three primary methods for allocating memory in D are:

1. Static data, allocated in the default data segment.
2. Stack data, allocated on the CPU program stack.
3. Garbage collected data, allocated dynamically on the garbage collection heap.

http://www.digitalmars.com/d/memory.html

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

Да читал я :) это была ирония... всё же мне кажется, что если люди начнут им (D) пользоваться, лень возобладает... и начнётся жабабыдлокодинг :-D

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

>D offers many options for managing memory.

Это все конечнно хорошо - только что хорошего в самом языке? Yet Another C++ Ancestor?

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

>Да читал я :) это была ирония... всё же мне кажется, что если люди начнут им (D) пользоваться, лень возобладает... и начнётся жабабыдлокодинг :-D

А тут написано такое: Garbage collected programs are faster. :-o Да-да, и вот почему: http://www.digitalmars.com/d/garbage.html

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

> Ужасно сложный язык. Явно переборщили с синтаксисом. Хотя профессионалам наверно будет удобно.

Я хоть и профессионал, а не понимаю - нах нужен этот D? Новых идей - нет, огромный, с перегруженным синтаксисом. Cyclone выглядел акуда интереснее.

tailgunner ★★★★★
()

Забудьте его, учите OCaml.
Там и функциональщина, и ООП, и императивщина для любителей.
И строгая типизация, и опенсорс-компилятор, и работает на туевой хуче платформ (а это несчастье, D, на полутора).

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

> Я хоть и профессионал, а не понимаю - нах нужен этот D?

Добавишь в резюме одну лишнюю буковку :)

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

>Я хоть и профессионал, а не понимаю - нах нужен этот D?

+1

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

> хотелось бы глянуть на дизасмовский листинг программки на D, типа Hello World

На, глянь: http://www.mytempdir.com/1155331

Под венду, правда. С линуксом пока не разобрался.

Текст:

int main() { printf ("Hello, world!\n"); return 0; }

anonymous
()
Ответ на: комментарий от r

>Это все конечнно хорошо - только что хорошего в самом языке? Yet Another C++ Ancestor?

Главная особенность языка - наличие сборщика мусора без виртуальной машины! Редко такое встретишь.

D будет востребован там, где невозможно/не хочется использовать виртуальную машину, но нужны продвинутые возможности. По скорости, язык медленнее Java и C#, потому что реализовать эффективный сборщик мусора без VM невозможно. Требования к памяти низкие из-за того, что изначально генерится native-код.

Кто будет программировать на нём? Т.к. синтаксис достаточно сложный и нет платформы, то пользоваться им смогут, в основном, только профессионалы. Но профессионалу по барабану на чём писать, он и на С++ не хуже сделает. Так что целевая аудитория языка очень небольшая.

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

>Главная особенность языка - наличие сборщика мусора без виртуальной машины! Редко такое встретишь.

Clean, OCaml, Haskell...

>По скорости, язык медленнее Java и C#, потому что реализовать эффективный сборщик мусора без VM невозможно.

Clean, OCaml, Haskell...

>Так что целевая аудитория языка очень небольшая.

Мне не понравились некие странные половинчатые решения (что касается "типа замыканий", lazy и т.д.). ДАже в C#3.0 лямбды выглядят лучше. Или тот же синтаксис передачи делегата или lazy - с делегатом сигнатура объявляется, а с lazy александреску научил implicit convertion и сигнатура уже не нужна?

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

скорость в среднем на равне с C++ ( в зависимости от тестов D или обгоняет или отстаёт) синтаксис как раз наоборот более сложный у C++

anonymous
()
Ответ на: комментарий от geekkoo

>Будущее за электриченскими двигателями. Давайте сейчас же откажемся от бензиновых двигателей?

Давайте! :) Будущее за торсионными двигателями ;)

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

Всьма приятный и удобный язык, мощь C++ плюс современные технологии, но при этом без косяков C++.

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

всёже всё должно быть к месту.
Язык не к месту или к оооочень узкому.
С/C++ для быстрых прог и системных и Python(ну может для кого ruby) для быстрого программирования :) ИМХО

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

>Ты чё - торсионщик? Предупреждать надо...

Нет, я - человек! :)

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

> Будущее за торсионными двигателями ;)

Всем специалистов по торсионным двигателям - просьба проследовать в тред "Что за бред по теливизору?" 8)

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

>Таки D похоже тоже времянка - CLR от Microsoft + .NET рулит, просто производительности компьютеров не хватает :)))))))))

После .NET будет Java а потом Ruby. Просто пока производительности не хватает.

anonymous
()
Ответ на: комментарий от GladAlex

> Давайте! :) Будущее за торсионными двигателями ;)

Мне, как машиностроителю, очень обидно, что некие мудаки так испохабили слово "торсионный". Ведь есть, к примеру, торсионные валы. Никакого отношения к вечным двигателям, понятное дело, не имеющие.

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

Лично мне в С++ не хватает reflection api.Все остальное есть, и заменять чем-то нет смысла.

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