LINUX.ORG.RU

[не НГ] D в анабиозе


0

0

Как знают некоторые, я планировал написать свой едитор с использованием gtksourceview. У меня был выбор между языками: D, Vala, Python.
Я могу поспорить что D всех нагнёт по своему функционалу и возможностям. Да что там, вы посмотрите на семантику и синтаксис! И это _системный_ язык.
Однако, есть небольшая разница между «стандартом» и «реализацией».
Есть 3, как я знаю, реализации компилятора(хотя один из них по сути интерпритатор):
1) gdmd(gdc) - GNU D Compiler. http://dgcc.sourceforge.net/ Началось всё в 2006ом, заглохло не на много позже - через год, в 2007ом. Больше ничего не выходит, юзает D1.0.
2) dmd - не может юзать x86_64, деградация синтаксиса в последних версиях(что 1.0, что в 2.0), баги, закрытый код etc etc. В общем, хороший вариант, да вот очень сомнительный.
3) ldc - всё более или менее. Единственная надежда. Однако... слабая поддержка D2.0, баги. Стабильности никакой. gtkD при всём желании не компилится, при этом выдавая нормальную ошибку в нормальной строчке, но их не реально логически «состыковать» чтобы решить проблему.
Остальное:
1) dsss - тулза вроде make, но проще, удобнее, красивее. Не развивается уже сколько лет.
2) gtkD - не двигается. Вообще. Новых биндингов для виджетов нет, новых фич нет etc.

Страшно.
Теперь вопросы к вам, дорогие ЛОРовцы:
1) Вам нравится D?
2) Что вам не нравится в D?
3) Вы помогаете D?
4) Почему не помогаете?
5) У вас есть возможность помочь?
6) Почему не помогаете?

Пока, я трактую состояние компиляторов D как «не стабильное, с большими проблемами, без возможности писать что-то и получать разумный ответ». Сам я не системный программист. Скорее прикладник. По сему я просто не могу, не хочу, не обладаю возможностью допиливать компиляторы D. Будет хороший компилятор с поддержкой всех топовых платформ - я могу писать биндинг. Это максимум.
Собственно, цель треда - выявить проблемы D и заставить всех ленивых системнокодеров помочь такому языку.



Последнее исправление: tia (всего исправлений: 1)

Ответ на: комментарий от KRoN73

Дык а что boo? Платформа одна. Фронтэнды разные, но от этого генерируемый код особо не должен меняться.

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

>Дык а что boo?

ИМХО, приятнее IronPython'а.

Фронтэнды разные, но от этого генерируемый код особо не должен меняться.


Тогда можно сразу на ilasm писать :)

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

Паскаль, бейсик и фортран не дают GC и компиляцию в C с простой интеграцией библиотек, Эйфель это дает. Неужели проблема только в синтаксисе?

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

Если проблемы в синтаксисе, тогда ведь и Питон не подходит.

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

Проверил несколько программ из этого листа, где пайтон проигрывает с большим отрывом. Забавно что всё оказалось наоборот. Пайтон выигрывает на 5-15 процентов.

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

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

>emerge gnustep

А... Так это на нём была, выходит, написана недавно программа по калибровке монитора, что я тестировал... Тихий ужас! gtk1 и то лучше был :D

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

Еще etoile, но там настолько глюкавый ужас... :)

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

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

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html — D, как и следовало ожидать, в глубокой Ж.

Обратите внимание популярность говнопёрла так же пададает. Пока что его популярность держится из за таких библиотек как WWW::Mechanize.

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

> Обратите внимание популярность говнопёрла так же пададает.

Тебя в детстве изнасиловала толпа перловщиков? Обратись к психотерапевту, он поможет лучше, чем писанина о перле в каждой теме. Заодно глаза окруающих будут целее, так как не придётся смотреть на вырвиглазный кривой аватар.

Пока что его популярность держится из за таких библиотек как WWW::Mechanize.

А заодно и на всём остальном CPAN'е. И на возможности писать простые и эффективные однострочники.

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

Я могу ошибаться, но может дело во всяких там айфонах? Иначе не понятно, с чего б ObjC так резко зарулил.

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

>Я могу ошибаться, но может дело во всяких там айфонах?

Скорее всего именно в них. Скоро уже к 100 млн. проданных экземпляров цифра подойдёт. Что не может не порождать интерес программистов :)

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

>но в отличии от D есть хоть какойто свободный компилятор

Так компилятор D1.0 ещё под LLVM есть, не?

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

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

Биндинг к gtk и то полумертвый.

mono ★★★★★
()

Если захочешь реально разобраться с тем, что твориться в D вот ссылки:

http://goshawknest.wordpress.com/2009/09/20/gdc-d2-with-gcc-4-3-4-sees-light/

http://dprogramming.ru/d/

В гугле по запросу Walter Bright можно найти презентации.

С компилятором действительно жопа, но не полная. GDC движется. Документацию на сайте http://digitalmars.com/d/index.html в разделе Articles почитать полезно, независимо от того, на чем будешь писать. В статье http://digitalmars.com/d/2.0/memory.html, например, расписано, как использовать D при написании кода с GC и ручным управлением памятью одновременно. Примеры кода на сайте чуток не соответствуют текущей версии библиотеки.

Термины «анабиоз» и «полудохлый» больше подходят для прокачки ЧСВ, чем для определения статуса D.

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

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

Если захочешь реально разобраться с тем, что твориться в D вот ссылки

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

GDC движется

С помощью одного человека, да и то вяло. Как я уже говорил выше - по D2.0 движется только dmd.

Термины «анабиоз» и «полудохлый» больше подходят для прокачки ЧСВ, чем для определения статуса D.

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

Паскаль, бейсик и фортран не дают GC и компиляцию в C с простой интеграцией библиотек, Эйфель это дает. Неужели проблема только в синтаксисе?

Проблема в языке и его реализациях. Бейсик, фортран, паскаль - всё это было забыто как старые, ненужные языки без потенциала на развитие.
Вы же мне предлагаете заняться таким языком как эйффель, у коготорого развитие остановилось в 98 году. Будь вы чуть более «толстым», я бы сказал что вы троллите.

Если проблемы в синтаксисе, тогда ведь и Питон не подходит.

Почему? Вот вы так говорите чтобы никто не понял о чём вы. Мы же не можем прочитать что у вас в голове. Поясните какие у пайтона «проблемы» в синтаксисе.

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

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

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

Интерфейсы пользователя не писал, но в 2000 крутил вполне жизнеспособную связку с GTK. Так что, думаю, что слухи о смерти перечисленных языков сильно преувеличены :-).

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

Ну, поскольку в теме основной разговор идет вокруг D и Vala, я так понял, что C-подобный синтаксис — одно из непременных условий? Отсылка к Паскалю, Фортрану и Бейсику это как бы подтвердила. Или нет?

eugine_kosenko ★★★
()

D? Да даже какой-нибудь newLISP живее и практичнее этого угребищного плюсоподобного говна.
Не говоря уже о CL.

Хотя, я конечно понимаю, школьникам насрать на юзабельность и практичность технологий. Им главное чтоб модно и не слишком далеко от уютного мейнстрима.

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

> D? Да даже какой-нибудь newLISP живее и практичнее этого угребищного плюсоподобного говна.

конечно понимаю, школьникам насрать на юзабельность и практичность технологий.

Конкурс «Самый неадкватный лиспер ЛОРа» завершен, расслабься уже - ты выиграл с огромнм перевесом.

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

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

В обж-си, в отличие от с++, уже встроенны нормальные объекты и нормальные сообщения. Т.е. не нужно делать то, что сейчас делается каждым тулкитом. По-моему, это неплохой плюс.

Элементарные средства разработки - это что?

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

Никто не сказал о ocaml, а я его тут вспомнил... Очень быстрый, биндинги к гтк есть, будущее — хз, но мелкие свои окамлоподобный тащат. Правда, в нем не обошлось без веществ... :)

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

Оно obj-c не поддерживает. И биндингов никаких нет. И развивают его спустя рукава. В общем, в линупсе оно нафиг не нужно.

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

>Хотя, я конечно понимаю, школьникам насрать на юзабельность и практичность технологий.

Кучка глючных, работающих только после ручной правки библиотек это практично???

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

Это ты про D? Тогда не совсем правильно, потому как библиотек для него далеко не куча.

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

Конкурс «Самый неадкватный лиспер ЛОРа» завершен, расслабься уже - ты выиграл с огромнм перевесом.

лорчую это мнение

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

В каком месте неадекватный? В том, что утверждаю, что CL - практичный, юзабельный и, более того, самый удобный и навороченный язык программирования из существующих, что он подходит практически для всего, и что ты и подобные - долбоебы, которые «Пастернака не читали...»? Не вижу здесь неадекватности. Это всё факты. Все абсолютно адекватно реальности. Или сейчас неадекватно говорить правду?

Касательно D - то какой у него сракотан не то, что с библиотеками, а и с компиляторами и, более того, спецификациями - выше была ссылка.
А вот например newLISP - говно говном, конечно, но существуют реализации под все основные платформы, довольно стабильные, плюс есть куча всяких удобных фич вроде простой интеграции с шаред библиотеками, легкое создание исполняемых файлов, интеграция с sqlite и т.п.
И, тем более, CL - несколько навороченных коммерческих реализаций, порядочное число открытых, под практически все возможные платформы, в т.ч. с навороченными компиляторами, позволяющими тягаться по скорости если уж не с сями, то хотя бы с жабой сервером. Язык устоявшийся, стандартизированный ANSI. Во всех вменяемых реализациях есть все необходимое - и сокеты, и треды, и FFI к сишке, в коммерческих есть и высококлассная гуйня и другое. Ну и хороших библиотек довольно много - от регулярных выражений до гуйни, веб-серверов и биндингов к опенжлям всяким; конечно, не столько, сколько у жабы, но это поправимо.

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

А уж править мне приходилось их всех библиотек CL только две - cffi-grovel, указать там корректное местоположение gcc(на висте он у меня совсем не в c:/msys/bin) и cl+ssl - поменять местами порядок загрузки libssl и libeay32
Может и еще что-то, но не помню, и явно в примерно таком же ключе.

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

еще, правда, маленький патч в cffi был, но покажите где в опенсорсных проектах нет багов.

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

>Во всех вменяемых реализациях есть все необходимое - и сокеты, и треды, и FFI к сишке
Стандартизированные, или кто в лес, кто по дрова?

веб-серверов

И много их? Они хоть рабочие?

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

>Стандартизированные, или кто в лес, кто по дрова?
Тебе шашечки или ехать? Есть пакеты совместимости - usocket, bordeaux-threads и т.п.

И много их? Они хоть рабочие?

Несколько. Hunchentoot, AllegroServe, Tepeedee2 и т.п.
А на Си что, много? Апач, nginx, IIS, lighttpd да и всё.

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

>>Стандартизированные, или кто в лес, кто по дрова?

Тебе шашечки или ехать? Есть пакеты совместимости - usocket, bordeaux-threads и т.п.

Все ясно =) А ты еще хотел примеры неадекватности?

ЗЫ еще тред про монады прочитай. Там тоже ты неадекватен :3

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

>Тебе шашечки или ехать? Есть пакеты совместимости - usocket, bordeaux-threads и т.п.
Мне ехать и, желательно, не на разваливающемся на части запорожце.

Tepeedee2

This webserver is not finished and I wrote it to learn and experiment with Common Lisp. There is a lot to be tidied up

Классный сервер!

AllegroServe

Проприетарный по самые гланды, с грабительской лицензией?

Апач, nginx, IIS, lighttpd да и всё.

Проверенные, рабочие софтины. Во отличие от.

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

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

А монады к CL приделали? В виде фреймворка с каким-нибудь синтаксическим сахаром, чтобы легко и однообразно было создавать новые и использовать существующие монады. Кое-что нашел в интернете. Но полного решения так и не увидел. (Кстати, можно и без типоклассов обойтись, если пойти по пути F#)

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

>Мне ехать и, желательно, не на разваливающемся на части запорожце.
Тогда, очевидно, CL отлично подходит. В отличие от D и прочих говноязыков-однодневок.

Проприетарный по самые гланды, с грабительской лицензией?

Про лицензию у них на сайте прочитай.

Проверенные, рабочие софтины. Во отличие от.

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

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

>Все ясно =) А ты еще хотел примеры неадекватности?
Ну сокеты я еще пойму. А треды то стандартизировать как?!
Они вообще где стандартизированные то есть? C# 1.0 вроде, хотя не уверен. А еще где? И кто тут неадекватен? Может тебе еще гуйню стандартизировать?

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

> А нахера в CL монады? Или там, классы типов?

Я же говорю, что можно обойтись без типоклассов. А пригодится монады могут, например, для программирования асинхронных вычислений, смешанных с обычным кодом из let, progn, when, if, cond. Все это можно обернуть очень красиво. На макросах. Такой код будет легко читаться, мало отличаться от обычного неасинхронного. В F# это сделано просто превосходно. Можно перенести подход и на лисп, я думаю. А за этим частным случаем асинхронных вычислений скрывается более мощная абстракция монад, которую хотелось бы тоже видеть в лиспе.

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

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

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

>Чтобы удобно программировать асинхронные вычисления, ровно как и любые другие вычисления, совершенно не нужны явные монады

Что значит явные монады? Ты скорее всего ими и так пользуешься, просто так их не называешь.

которые, к тому же, не ложатся на языки с динамической типизацией, особенно такие, как CL

Разве это не ортогональные вещи?

Монады это внутренний костыль некоторых статических функциональных языков.

Вот здесь ты и опять показываешь свою неадекватность.

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

>Что значит явные монады? Ты скорее всего ими и так пользуешься, просто так их не называешь.
Точно так же, когда я в лиспе управляю памятью мне совершенно незачем постоянно использовать malloc/free, разыменовывать указатели, брать адрес чего-то и т.п.

Вот здесь ты и опять показываешь свою неадекватность.

Ну, скажем так, я, например, думаю, что в хаскель неплохо бы прилепить CLOS, макросы и eval(и compile). Но я же не говорю про это вслух. И кто тут после этого показывает неадекватность?

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