LINUX.ORG.RU

Плавно переходим на D


0

0

В июньском выпуске LXF наткнулся на _очень_ заинтересовавшую меня статью об языке "D". В принципе, язык уже утрясся, имеет даже версию 2.0 и два компилятора. Правда есть проблемы с документацией, но работать с ним уже можно. Хотя сам язык и готов, то почти всех необходимых интерфейсов к нему для работы с БД, графическими библиотеками и остальным нету (наткнулся только на wxD - интерфейс для wxWidgets). В таком случае как мне показалось - разумно будет писать все интерфейсы, графику и прочее на старом-добром С, а логику уже описывать на D, что и продемонстрировано на скрине.

На скрине: код на языке D компилируется и ассемблируется D-компилятором в нелинкованный модуль, после чего подключается в готовое приложение на языке С, естественно компилятором gcc. Музыка - OST'ы из "Bleach'а" и "Welcome to N.H.K", так, чтобы плюсадинав заработать =)

Про компиляторы: использую GDC - открытое дополнение к GCC. DMD вроде как компилятор покруче, чем GDC, но он частично проприетарный. Единственное, что в DMD есть удобная фича - выполнение кода как скрипта. Т.е. обычные #!/usr/bin/dmd -run в начале исходника и код компилируется и запускается тут же, бинарник не сохраняется, удобно для отладки.

ИМХО: D - быть! Отличная семантика, много улучшений, разработка теперь стала гораздо проще и быстрее. По-моему хороший гибрид удобства Питона и мощности С.

>>> Просмотр (1280x800, 122 Kb)

> Единственное, что в DMD есть удобная фича - выполнение кода как скрипта. Т.е. обычные #!/usr/bin/dmd -run в начале исходника и код компилируется и запускается тут же, бинарник не сохраняется, удобно для отладки.

#!/usr/bin/gdmd -run

:)

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

> #!/usr/bin/gdmd -run

Man пишет, что это "wrapper script for gdc that emulates the dmd command". В нете читал, что этот gdmd очень-очень неполноценный по сравнению с gdc. Хотя наверное лучше дебагить на том, на чём будешь компилировать, и отказаться и от dmd в некоторый моментах в пользу одного компилятора.

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

> ну за "Welcome to N.H.K" - зачот :) и за vim тоже.

Vim использую потому, что у меня всего 512Mb ОЗУ, и почти всю её ест Azureus, Eclipse просто памяти не остаётся. Извиняюсь, но по-моему java не труЪ, если все её приложения требую столько оперативы.

NHK - отличный аниме - это слабо сказано. Самые лучшие впечатления.

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

> Это Listen =)

от блин точно, тото я смотрю иконка странно выглядит

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

> Vim использую потому, что у меня всего 512Mb ОЗУ, и почти всю её ест Azureus, Eclipse просто памяти не остаётся. Извиняюсь, но по-моему java не труЪ, если все её приложения требую столько оперативы.

У меня 1гб, потому использую и азурь, и эклипсу ;) vim только для linux kernel, на котором eclipse (вернее его сишный парсер) дохнет.

> NHK - отличный аниме - это слабо сказано. Самые лучшие впечатления.

Чобиты то же туда же :)

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

>на котором eclipse (вернее его сишный парсер) дохнет.

не осиливает..? =)

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

> Пока программисты заняты делом, кодеры переходят..

До чего закомплексованные анонимусы на ЛОРе =)

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

>Vim использую потому, что у меня всего 512Mb ОЗУ, и почти всю её ест Azureus, Eclipse просто памяти не остаётся. Извиняюсь, но по-моему java не труЪ, если все её приложения требую столько оперативы.

deluge чем не угодил? имхо, с его темпами - он скоро догонит uTorrent.

blessed
()

Что-то D не впечатлил, на фоне C привычный синтаксис выглядит чуток коряво.. writefln() какая-то сишно-делфийная пародия извините )) За саунды к ониме заслуженные +1024^1024 :)

anonymous
()

> D - быть!

Точно! Быть, быть! Быть еще одним никому не нужным поделием, коих было немало.

Еще один "велосипед". Никому не нужный. Приложение на скрине типа "Hello, world!" - лишнее тому подтверждение.

ЗЫ. Музон - незачОтный.

Bioreactor ★★★★★
()

ну по чати языка D чниего не скажу... но вот за блЫч тебе

ЖЫЫЫРНЫЙ +1 ))

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

> В слд номере LF написано о языке E, ждем отчетов =)

Серьёзно написано? До меня они долго доходят =)

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

> к нему для работы с БД, графическими библиотеками и остальным нету (наткнулся только на wxD - интерфейс для wxWidgets

Хм... вроде же есть и DBI и gtkD или DUI или как там его...

Anoxemian ★★★★★
()

А ничего, что:

darkstar ~ # cat a.d 
import std.stdio;

int main()
{
        writefln("Hello world");
        return 0;
}

gdc a.d -o a

stat ./a

darkstar download # stat ./a 
  File: `./a'
  Size: 190320          Blocks: 370        IO Block: 1024   regular file

Размерчик ничё так, ага, для драного хелловорлда?

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

> Размерчик ничё так, ага, для драного хелловорлда?

Туда libphobos.a (стандартная библиотека) статиком линкуется по умолчанию.

ero-sennin ★★
()

за OST +3
за остальное... хм... трудно что то сказать.

пока я не понимю таких промежуточных вариантов... обхожусь C/C++ + Python.

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

> Может нафиг его, э?

Пока gdc не появится во всех дистрибутивах - не нафиг. К тому же в D встроена "авточистка" памяти. Видимо поэтому размер бинарника и растёт на пару сотетн килобайт.

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

> обхожусь C/C++ + Python.

С и D куда более близки друг другу чем Python с С[++]. Хотя можно связать D и Python =)

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

Небольшая поправка - для D на самом деле уже написано не мало библиотек различных назначений. Смотреть http://www.dsource.org/projects/

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

>Плавно переходим на D Круто, значит я не один такой))) Вообще язык сам по себе понравился и все кто говорят что он скоро загнётся ИМХО неправы. Тем более что он всё-таки скорее замена C++ чем C.

anonymous
()

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

А вот С будет. Он как ассемблер -- сделать что-то намного лучше него невозможно, да и не нужно.

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

В детстве писал на Е. Очень хорошие воспоминания. Жаль его не портировали надругие платформы, а амига сдохла.... :(

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

Да, за блича незачет тебе, отаку-кун. Суровые отаку слушают OST к GITS... А блич.... что блич... ты б ещё от наруто слушал...

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

> Суровые отаку слушают OST к GITS... А блич.... что блич... ты б ещё от наруто слушал...

OST к GITS слушают только сопливые мальчики, не осилившие Кадзиуру Юки и Канно Ёко. А кто будет плохо говорить про НАРУТО, будет получать РАЗЕНГАНОМ ПО МОЗГАМ. Ещё вопросы?

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

> А кто будет плохо говорить про НАРУТО, будет получать РАЗЕНГАНОМ ПО МОЗГАМ. Ещё вопросы?

Больше вопросов не имею. Диагноз ясен, выносите. Следующий!

anonymous
()

что-то радостно переходят на d, а программ не видно. а есть ли что-нибудь крупнее хелловорлда? ну не кде или гном или ядро, но хотя бы редактор какой?

спрашиваю не потому, что я д-ненавистник, а правда интересно.

mic ★★★★★
()
Ответ на: комментарий от ero-sennin

>Туда libphobos.a (стандартная библиотека) статиком линкуется по умолчанию.

Мдаа... учитывая что "фобос" значит "страх" получается забавно :0)

php-coder ★★★★★
()
Ответ на: комментарий от mic

> а есть ли что-нибудь крупнее хелловорлда?

Посмотри http://www.dsource.org/projects/ . Там в основном библиотеки, но есть кое-какие проекты и игрушки. Хотя рано, наверное, говорить о выходе D на сцену конкурентных разработок. С рос десятилетиями, и этому языку нужно время.

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

>Там в основном библиотеки, но есть кое-какие проекты и игрушки.

win32, directx9 и тому подобное, хотя есть и кроссплатформенные.Время ему действительно нужно. ладно, через десять лет посмотрим

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

в 3.3 уже пофиксили - теперь он парсит не все сразу, а по мере надобности

lester ★★★★
()

"США" - это что, локаль us_US? ;)

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

> Vim использую потому, что у меня всего 512Mb ОЗУ, и почти всю её ест Azureus

кто заставляет использовать Azureus?

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

> кто заставляет использовать Azureus?

ИМХО лучший torrent-клиент среди gtk-шных.

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

Нормальный язык, не то что эта образина - цепепе

Joe_Bishop
()

Попробовал собрать подобную программу, но с использованием DMD:

tazik% dmd -c function.d
tazik% gcc -o test function.o main.c -lpthread -ldl -lm -lphobos
/usr/lib/gcc/i686-pc-linux-gnu/4.2.1/../../../libphobos.a(deh2.o): In function `_D4deh213__eh_finddataFPvZPS4deh213DHandlerTable':
internal/deh2.d:(.gnu.linkonce.t_D4deh213__eh_finddataFPvZPS4deh213DHandlerTabl
e+0x9): undefined reference to `_deh_beg'
internal/deh2.d:(.gnu.linkonce.t_D4deh213__eh_finddataFPvZPS4deh213DHandlerTabl
e+0xe): undefined reference to `_deh_beg'
internal/deh2.d:(.gnu.linkonce.t_D4deh213__eh_finddataFPvZPS4deh213DHandlerTabl
e+0x14): undefined reference to `_deh_end'
internal/deh2.d:(.gnu.linkonce.t_D4deh213__eh_finddataFPvZPS4deh213DHandlerTabl
e+0x37): undefined reference to `_deh_end'
collect2: выполнение ld завершилось с кодом возврата 1

Где я не прав? :(

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

> Попробовал собрать подобную программу, но с использованием DMD

Вероятно в связке DMD+GCC, но на самом деле черт его знает, не пробовал.

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

> Суровые отаку слушают OST к GITS... А блич.... что блич... ты б ещё от наруто слушал...

Исключительно Ольгу Витальевну (Origa) ;)

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