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 ()

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

x86 Linux это уже больше прошлый век. Не смогли x86_64 осилить ?

anonymous ()

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

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

troorl ★★ ()

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

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

realsmart ()

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

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

:-)

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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

anonymous ()

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

Интересно.. на какой букве нас всех оХватит истерика?)))

makkintosh ()

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

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

isden ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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 ()
Ответ на: Re: Язык программирования D 1.00 от troorl

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

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

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 ★★★★★ ()

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

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

Legioner ★★★★★ ()

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

А D# будет? ;)

GladAlex ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от Darklight

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

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

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

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

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

realsmart ()

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

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

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

:-)

anonymous ()

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от Legioner

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

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

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

GladAlex ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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

GladAlex ★★★★★ ()

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

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

anonymous ()

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

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

DemonZLa ()
Ответ на: Re: Язык программирования D 1.00 от DemonZLa

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

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

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

zenith ★★★ ()

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

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

UserUnknown ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от dotcoder

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

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

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

r ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от zenith

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

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

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

geekkoo ()

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

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

Cy6erBr4in ★★★ ()

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

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

gra ()
Ответ на: Re: Язык программирования D 1.00 от gra

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

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

Cy6erBr4in ★★★ ()
Ответ на: Re: Язык программирования D 1.00 от Cy6erBr4in

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

>О Патрег!!! Там есть габидж коллектор 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 ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от dotcoder

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

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

Cy6erBr4in ★★★ ()
Ответ на: Re: Язык программирования D 1.00 от dotcoder

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

>D offers many options for managing memory.

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

r ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от Cy6erBr4in

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

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

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

dotcoder ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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

tailgunner ★★★★★ ()

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

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

Zulu ★★☆☆ ()
Ответ на: Re: Язык программирования D 1.00 от tailgunner

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

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

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

Lumi ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от gra

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

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

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

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

Текст:

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от r

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

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

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

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

Clean, OCaml, Haskell...

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

Clean, OCaml, Haskell...

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

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

r ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от geekkoo

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

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

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

GladAlex ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

stalkerg ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от GladAlex

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

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

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

tailgunner ★★★★★ ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от GladAlex

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

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

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

anonymous ()
Ответ на: Re: Язык программирования D 1.00 от anonymous

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

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

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