LINUX.ORG.RU

D


0

0

Привет. Объясните что такое D. Насколько я понял это нормально сделанный C++, который еще сильно нестабилен. Есть сейчас смысл его учить и использовать? Как там обстоят дела с производительностью? Много рантайма тащат за собой программы?


Ответ на: комментарий от guest-3484-2009

> Рантайм за собой таскает даже Си. И этот рантайм широко известен в узких кругах под названием "операционная система"

Эти узкие круги - пользователи CL, что ли? Тогда простительна столь вызывающе неверная информация.

> А у плюсов - куда вы уедете без того же Qt?

Бред какой-то.

Spectr ★★★
()
Ответ на: комментарий от guest-3484-2009

> когда приложения жрут память и место *сотнями* мб и гигабайтами?

Вызывающе неверная информация. Вы не можете разделить понятия "приложение" и "обрабатываемые данные", что ли? Ниразу не видел, чтобы приложение "жрало память" сотнями MB или GB.

Spectr ★★★
()
Ответ на: комментарий от guest-3484-2009

>>Это не наезд а констатация факта - то что ты написал прямо указывает на это - кроме lisp ты ничего не видел.

> О, мудрейшая, а может поведаете, что ж я такого сказал то?

> Почему в VB(до .NET, по крайней мере) никогда не было функций высших порядков?

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

Spectr ★★★
()
Ответ на: комментарий от guest-3484-2009

>Для гуя есть средства получше

ну так список в студию - что словами зря кидаться

>с плюсами вообще мало чего хорошо работает

не спорю. только с лиспом оно работает и того хуже

>Области применения D

те же, что сейчас у связки C++/Qt, например. давай уже добьём этот примерчик, что ли :)

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

>Эти узкие круги - пользователи CL, что ли? Тогда простительна столь вызывающе неверная информация.
И что, много вы сишных программ поназапускаете без ОС? А что ж исполняемые файлы в разных ОС свои, и никак на других работать не хотят?
Вот ассемблерам рантайм, безусловно, не нужен. Хотя, если считать железо рантаймом... :)
>Бред какой-то.

А на чем, в контексте линукса, писать приплюснутым прикажете?

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

>Почему в VB(до .NET, по крайней мере) никогда не было функций высших порядков?

talking to yourself is a bad habit for a dungeoneer

в недавнем споре касательно CL и Haskell ни одного примера, показывающего практическое превосходство макросов, ты так и не привёл. как правило все примеры сводятся к расширению исходно бедной (by design) модели языка, и различным костылям к этой самой макросистеме (вроде проблемы захвата имён). если у тебя появились новые, интересные аргументы - с радостью их выслушаю

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

>есть какойто язык для империативного программирования с нормальной реализацией, достаточно мощный и не являющийся кровавым месивом?

Common Lisp ;) Мощнее уже некуда)

Sectoid ★★★★★
()
Ответ на: комментарий от guest-3484-2009

>И что, много вы сишных программ поназапускаете без ОС?

а лисповских? хватит бредить, ОС так же необходима для компилятора CL, как и для GCC. или ты занимаешься реализацией LISP-машин на FPGA/ASIC?

jtootf ★★★★★
()
Ответ на: комментарий от guest-3484-2009

Ты сам с каждым постом подтверждаешь тезис monika. Не буду ответами на твои посты дальше тебя топить :)

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

>Common Lisp ;) Мощнее уже некуда)

о, ещё один. на свет лезут!

jtootf ★★★★★
()
Ответ на: комментарий от guest-3484-2009

>Но, на самом деле, это я факт констатировал; с троллием общаться желания нет.

Да-да, иди искуственный интеллект создавай, а лучше треники постирай а то дерьмо которым ты исходишь рассказыая про лисп давно пора кувалдой откалачивать.

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

>ну так список в студию - что словами зря кидаться
Tk - совершенно замечательная библиотека.
Для CL есть Ltk, которая работает тоже совершенно замечательно. CLIM/McCLIM. На худой конец - биндинги к GTK. Cells-gtk очень даже ничего; по крайней мере, оно стабильно и имеет приятный интерфейс.

>лиспом оно работает и того хуже

А это потому, что, по идее, лиспу другие языки и не нужны совсем.
Хотя, если напрямую разговаривать с интерпретатором - вполне себе нормально работает.

Вообще, я имел ввиду нейм мэнглинг и abi.
>те же, что сейчас у связки C++/Qt,

У D есть биндинги к Qt?

guest-3484-2009
()
Ответ на: комментарий от jtootf

Для современных реализаций CL - безусловно. Хотя, есть вот Movitz, или как его там.

Ты сам упомянул про лисп-машины. Они были, да. И на них работали лисп-системы, которым не нужен был никакой GCC.

Это были рантаймы лиспа. А современные ОС - рантаймы Си.

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

>Tk - совершенно замечательная библиотека

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

>На худой конец

вот то-то и оно. как ни глянь - везде худой конец :(

>А это потому, что, по идее, лиспу другие языки и не нужны совсем

сферическому лиспу в вакууме - да. а так даже Tk как бы совсем не на лиспе, не? ;)

jtootf ★★★★★
()
Ответ на: комментарий от guest-3484-2009

>Я, честно признаюсь, не знаю, как показать макросы в действии на примерах-однострочниках

ну покажи многострочник, только с комментариями. до сотни строк кода готов с удовольствием изучить. сотни для примера достаточно?

jtootf ★★★★★
()
Ответ на: комментарий от guest-3484-2009

> Какое великодушное предложение, однако.

Я рад, что вы оценили.

> Только смотри не обосрись от гордости.

По вашему примеру видно что это плохая практика.

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

>можно в одной весовой категории, т.е. какое-нибудь средство порождения свистелок?
В проприетарных системах есть. В открытом доступе, я думаю, немного. Биндинги к glade и еще что-то, вроде.
Но, надо признать, с гуйней не все так радостно.
Я как раз над этой проблемой работаю, в свободное время :)

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

У тебя хватает ума говорить о малой применимости С на форуме unix like ОС где правила диктует стандарт posix, и ты заявляешь что ты компетентен ?

monika
()
Ответ на: комментарий от guest-3484-2009

> И что, много вы сишных программ поназапускаете без ОС?

Без OS ты ничего не запустишь - если только не будешь писать программу для выполнения на "голой" машине.

> А что ж исполняемые файлы в разных ОС свои, и никак на других работать не хотят?

Потому что OS - они всё же разные, и форматы запускаемых файлов у них тоже разные.

> Вот ассемблерам рантайм, безусловно, не нужен. Хотя, если считать железо рантаймом... :)

Ассемблер - это язык, а не байт-код. Но на "голом" ассемблере обычно тоже не пишут, а используют библиотеки, обычно с ABI языка C.

Компилируемые языки преобразуются в байткод нативный для машины; который потом запускается операционной системой. Для взаимодействия приложения с OS используется библиотека доступа к ресурсам и сервисам OS. OS предоставляет доступ к аппаратным ресурсам посредством высокоуровневых абстракций. Обычно используется ABI принятый в C для API OS - однако у Вирта есть OS написанная на языке Oberon и плевал он на ABI других систем. ABI C принят как компромисс, и спокойно используется без использования языка C как такового.

В осадке: что такое runtime, OS, компилируемые языки, и как они взаимодействуют - вы уже показали, что не знаете, но тем не менее вы уверенно газируете лужи на эту тему.

О какой вашей компетентности тогда может идти речь?

Spectr ★★★
()

Статически скомпонованный рантайм - 300КБ. Производительность - +-5% от С. Стабильная ветка языка получает только багфиксы и иногда улучшения, если они не сломают существующий код. Есть три открытых компилятора - dmd, ldc, gdc. В экспериментальной ветке что-нибудь ломают в каждом релизе. Компилятор один - dmd.

Использовать есть смысл, если хочешь помочь с toolchain'ом ;)

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

Код не покажу, пожалуй, по крайней мере, пока, но могу на пальцах объяснить.

Вот например, гуи.

У нас есть заголочные файлы на Си, FFI, умеющий вызывать сишные функции, ворочать сишными структурами и примитивами, и, скажем, коллбэки, и генератор врапперов, который переводит определения из хедеров в s-выражения и выплевывает их в файл.

Мы пишем макрос, во время компиляции запускающий генератор, и считывающий из файлов, выплюнутых генератором, определения. Макрос парсит эти s-выражения и переводит их в некоторые другие макросы, которые и оставляет после себя.

Эти макросы находят соответствия сишным типам и определяют способ перевода этих типов с помощью FFI в типы лиспа, и обратно, и, например, определяют соглашения вызова функций. Эти макросы раскрываются уже в другие макросы, которые генерируют определения лисповских структур и функций-врапперов. На выходе получаем полноценный интерфейс, в естественном для лиспа виде.

Таким образом, нам, скажем, достаточно вставить по макросу первого вида в каждый файл-аналог сишного заголовочного файла, и просто скомпилировать все это.

При измемениях в сишной библиотеке, опять же, требуется всего-навсего перекомпиляция - процесс автоматизирован.

Естественно, таким макросам, при их раскрытии, нужно "состояние" - как минимум - временные переменные, хранящие определения типов и функций.

Учитывая, что макросы имеют полный доступ к рантайму лиспа - все это дело, в теории, кажется, мало того, что реализуемым, но и даже довольно тривиальным :)

guest-3484-2009
()
Ответ на: комментарий от Spectr

>Без OS ты ничего не запустишь ...
А мы о чем тут спорим? Не об этом. А то том, что и юниксы, и все их последователи, в т.ч. виндоузы, это рантаймы Си. Поэтому сишка и может запускаться в них *просто так*, а остальным, даже компилируемым языкам, нужен *рантайм*.
На лисп-машинах, в лисп-системах, *просто так* запускались лисп-программы.
Ты совершенно не то, что не понял даже - не прочитал, что я пишу, но уже успел просто так нахамить.
>В осадке: что такое runtime, OS, компилируемые языки, и как они взаимодействуют - вы уже показали, что не знаете, но тем не менее вы уверенно газируете лужи на эту тему.

Ты показал, что имеешь привычку встревать в тему, и, даже толком не прочитав комментарии, начинать хамить, и притом с невиданной самоуверенностью.

guest-3484-2009
()
Ответ на: комментарий от tailgunner

История создания это прекрасно.

Однако вы вот и двух вещей не назовете, которые бы в CL были не к месту, или противоречили друг другу.

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

> А то том, что и юниксы, и все их последователи, в т.ч. виндоузы, это рантаймы Си.

"это рантаймы Си" - это голословное утверждение. Они _написаны_ на C. Рантайм C - это либа поддержки GCC, к примеру - к OS это не имеет никакого отношения (кроме ABI).

> Поэтому сишка и может запускаться в них *просто так*

Это голословное утверждение, ничем не подтвержденное. К скомпилированной программе на C добавляется код запуска на OS - точно так же, как и к программе на другом компилируемом языке.

Напиши программу на Haskell, скомпилируй её, запусти - нигде в этой стадии ты не встретишся с языком C. Ну да, OS написана на C - но с тем же успехом она могла бы быть написана и на Haskell, и на Oberon'е, и на D.

> На лисп-машинах, в лисп-системах, *просто так* запускались лисп-программы.

Я прекрасно слышал про это, и про forth машины, и про java процессоры, и про векторные дисплеи, и про процессоры для отрисовки векторной графики - что с того?

Кстати, в лисп-системах программы тоже не запускались "просто так". Или скажешь что там небыло средств для работы с FS, дисплеем, хоть какой-то поддержки многозадачности - хотя бы пакетной?

Spectr ★★★
()
Ответ на: комментарий от guest-3484-2009

> Ты показал, что имеешь привычку встревать в тему

> А у плюсов - куда вы уедете без того же Qt? А оно пожирнее многих рантаймов будет.

> И, да - ну вот кого сейчас заботят какие-то там 20-30 лишних мегабайт, когда приложения жрут память и место *сотнями* мб и гигабайтами? Вы что, ембеддед пишите? Сомневаюсь.

Это не самоуверенность и не встревание? Топикстартер написал что его интересует компилируемый язык, а ты ему продаешь CL, при этом в качестве аргументов используешь некорректную инфу.

Spectr ★★★
()
Ответ на: комментарий от guest-3484-2009

> Однако вы вот и двух вещей не назовете, которые бы в CL были не к месту, или противоречили друг другу.

Я - нет, зачем _мне_ это? А так - даже на ЛОР по этому поводу говорили. Например, den73 недавно (и это не единственный раз).

tailgunner ★★★★★
()
Ответ на: комментарий от guest-3484-2009

> юниксы, и все их последователи, в т.ч. виндоузы, это рантаймы Си

Аааа держите меня трое!!!111 %)

Ты хоть знаешь, что такое freestanding implementation? "Рантайм Си" - это, к примеру, libgcc. И _всё_.

tailgunner ★★★★★
()
Ответ на: комментарий от guest-3484-2009

>Учитывая, что макросы имеют полный доступ к рантайму лиспа - все это дело, в теории, кажется, мало того, что реализуемым, но и даже довольно тривиальным :)
>Код не покажу, пожалуй, по крайней мере, пока, но могу на пальцах объяснить.


Вот это называется по-русски просто - пиздабол.

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

>Рантайм C - это либа поддержки GCC, к примеру - к OS это не имеет никакого отношения
Ты не понимаешь, что такое рантайм. Runtime environment.
Сишные программы без сишной ОС не запустятся. Точно так же, как без рантайма SBCL не запустятся бинарники SBCL.
Меня невыносимо достает нытье разных недоучек о том, что де разным "интерпретируемым" языках нужен рантайм, а вот сишка и плюсы конпелируются и просто так и работают.
>(кроме ABI).

Ну, и что же такое ABI?
>Напиши программу на Haskell, скомпилируй её, запусти - нигде в этой стадии ты не встретишся с языком C

Можно стать воздушной планетой.
А что, у хаскеля внезапно исчезла необходимость в поддержке рантайма?

guest-3484-2009
()
Ответ на: комментарий от a3

да нет у него ниши. кода на нем очень мало и много не предвидется. изучать его не стоит.

Tu3eK
()
Ответ на: комментарий от guest-3484-2009

>Сишные программы без сишной ОС не запустятся.

Какой болван...

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

>Ты хоть знаешь, что такое freestanding implementation?
Я что, говорил, что рантаймы сишки это _только_ ОС? :)
>"Рантайм Си" - это, к примеру, libgcc. И _всё_.

Не все, представь себе.

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

Ох, оказывается - сказал, не удержался.
Естественно, кроме ОС у сишки могут быть рантаймы.
Она _сама_по_себе_ не заработает.

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

>> Ты хоть знаешь, что такое freestanding implementation?

> Я что, говорил, что рантаймы сишки это _только_ ОС? :)

Ты назвал ОС рантаймом Си, этого достаточно.

>>"Рантайм Си" - это, к примеру, libgcc. И _всё_.

> Не все, представь себе.

И что же еще входит в рантайм Си? :D

tailgunner ★★★★★
()
Ответ на: комментарий от guest-3484-2009

> Ты не понимаешь, что такое рантайм. Runtime environment.

Я уже писал тебе выше - ты смешиваешь понятия runtime поддержки языка, и OS которая предоставляет доступ к ресурсам на определенном уровне абстракции. Учи матчасть.

> Сишные программы без сишной ОС не запустятся.

Вот я писал загрузчик системы на asm'е, который потом загружал в память код написанный на C, к которому была прилинкована C runtime библиотека GCC. Почему я совершенно не использовал "OS" как ты пишешь необходимую для запуска программы на C?

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

Твои проблемы.

> Ну, и что же такое ABI?

Сам учи. Runtime, OS, ABI.

Засчитывай слив, разрешаю - мне надоело с переучкой-астронавтом обсуждать сферических коней в вакууме на птичьем языке который "используется в узких кругах"

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

>И что же еще входит в рантайм Си?
Мудрец tailgunner, персонально.
Крутит педали и ручками перекладывает байтики, чтоб это говно работало вообще.

guest-3484-2009
()
Ответ на: комментарий от guest-3484-2009

>> И что же еще входит в рантайм Си?

> Мудрец tailgunner, персонально.

Ути-пути. Тебе не нравятся, когда к тебе относятся так, как ты к другим? Ну так будь повежливее.

P.S. "Это ЛОР, здесь могут и на х*й послать" (c) Sun-ch.

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

>OS которая предоставляет доступ к ресурсам на определенном уровне абстракции
Нисколько не путаю.
И подразумеваю именно поддержку времени выполнения.
>Вот я писал загрузчик системы на asm'е, который потом загружал в память код написанный на C, к которому была прилинкована C runtime библиотека GCC. Почему я совершенно не использовал "OS" как ты пишешь необходимую для запуска программы на C?

Потому что надо меньше красноглазить.
>Засчитывай слив, разрешаю - мне надоело с переучкой-астронавтом обсуждать сферических коней в вакууме на птичьем языке который "используется в узких кругах"

Да хоть что засчитывай, счетовод. Суровые программисты говнокодят исключительно на материализованных квадратных собаках, безусловно, никого переубеждать не собираюсь.

guest-3484-2009
()
Ответ на: комментарий от tailgunner

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

Хотя, еще во всяких гадюшниках, вроде двача, да.
Правильной дорогой идете, товарищи!
анонимус тут хоть как-то скрашивал обстановку.

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