Здравствуйте, psg, Вы писали:
psg>Помучил я немного D — и так и не понял, зачем нужно было пихать в одну кучу низкоуровневые и высокоуровневые features?... Все эти конструкции IMHO выглядят как-то незаконченно и "грязновато". Это — личное впечатление.
Я ж и говорю, трудно его отклассифицировать.
D это "С++ без оператора ->" и "Java указателями и union".
Я для себя его классифицирую как Java, JNI и С/C++ в одном флаконе.
Просто удобно.
Здравствуйте, AndrewVK, Вы писали:
CS>>Если программера то имхо что msil, что D asm все едино. CS>>Ты сходи по ссылке — asm достаточно высокоуровневый в D.
AVK>Глядел я D, еще полгода назад. До MSIL он не дотягивает.
MSIL не дотягивает до чего? До asm x86?
AVK>Да и не в этом дело. Дело в другом — этот MSIL можно тут же и выполнять.
Ну и? А машинные инструкции нельзя тут же исполнять?
AVK>Да и вобще — исходный мой пост был не о применимости эмита, а о том что твой тезис о том что в дотнете нет средств создания кода на лету не соответствует действительности.
Это я понял. Спасибо.
Только вопрос был насколько я понял типа:
Есть ли *в языке* конструкция типа eval("source code").
Ответ — нет. Ни в C# ни в D, ни в Java, ни в С/С++. Как в любом другом компилируемом языке.
В JavaScript (JS.NET и JS.D) — да есть. Как наверное и в любом другом *интерпретируемом* языке/системе.
Здравствуйте, c-smile, Вы писали:
CS>Андрей, ты можешь предложить способ используя Reflection.Emit CS>решить задачу: CS>"Вот приходит большая XML-на из сетки, мы её можем без интеллектуальной работы руками превратить в нормальный объект класса языка C#(было D)?" (С) LCR
Этим remoting с сотоварищами справляются без всяких имитов. Сериализация, тыксызыть Да и теже веб-сервисы легко делают из XML рантайм-классы. Там правда классы уже определены и сгенерированы, но поставленная задача решается.
С другой стороны, генерация классов как самоцель никому не нужна. Класс — это прежде всего декларация, смысл которой помочь разработчику в compile time.
PS. По поводу D вообще и его универсальности. Один из моих самых первых учителей (мудрый старик) любил поговаривать — "Возможности программ не могут превышать на порядок возможностей средств, на которых они разработаны". Применительно к D, отсутствие run-time фрэймворка может оказаться его фатальным недостатком. Сотню мегобайт работающего и отлаженного кода в .NET Framework ещё никто не отменял. А кроме своей ещё чуть-чуть большей гибкости, как я понял, D ничем существенным от C-семейства языков не отличается. Вот если бы в нём было хотя бы что-то от АОП...
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Если нам не помогут, то мы тоже никого не пощадим.
c-smile,
CS>Как я понимаю базовый use case это CS>"Generate source code from an XML Schema" CS>Чтобы его скомпилировать (класс) и включить в свой проект. Т.е. не динамически, а статически.
Нет. Можно классы генерить из командной строки, а можно в рантайме — все средства для этого есть. А вообще это отъезд в сторону. Я Кастор привёл для пояснения того, что я называю DataBinding и на чём основываюсь.
CS>Я бы не назвал это binding, это скорее какой-то class builder.
Это неважно вообще как ты это назовёшь.
CS>Вполне возможная конструкция как для D так и для C/C++ и вообще всего чего шевелится.
Все современные языки полны по Тьюрингу. Тем не менее важность адекватной нотации трудно переоценить.
CS>Динамически же (в runtime) создавать классы ( .class files ) имхо бессмысленно. CS>Или я ошибаюсь? Если да то можно ли use case?
Это существенно для asp.net, JSP, JSF. Текущий мой проект содержит генерацию иерархий классов из спецификации в XML как необходимый ингредиент. Эти спецификации могут меняться, размножаться и т.п., перекомпиляция и перезапуск недопустимы.
Здравствуйте, IT, Вы писали:
IT>Здравствуйте, c-smile, Вы писали:
CS>>Андрей, ты можешь предложить способ используя Reflection.Emit CS>>решить задачу: CS>>"Вот приходит большая XML-на из сетки, мы её можем без интеллектуальной работы руками превратить в нормальный объект класса языка C#(было D)?" (С) LCR
IT>Этим remoting с сотоварищами справляются без всяких имитов. Сериализация, тыксызыть Да и теже веб-сервисы легко делают из XML рантайм-классы. Там правда классы уже определены и сгенерированы, но поставленная задача решается.
"классы уже определены и сгенерированы" в этом
и есть весь key point.
Я вообще не понимаю фишку с этим автоматическим XML генерированием.
XML вообще-то это lingua franca для т.н. слабосвязанных систем.
Т.е. как правило "тупая" десерлизация приходящих данных не работает.
Если строго известно что система A посылает всегда
данные класса C ситеме B то зачем тогда XML вообще?
В принципе сгенерировать классы (или описания структур) некоего DOM по XML Schema
задача линейная что для Java, .NET, C или того же D.
Обратная задача — генерация XML schema по code DOM тоже в общем-то
линейна. Для D можно воспользоваться например DMD Front End Starter Kit
если кому-то сильно требуется. Т.е. типов данных настолько много что невмоготу.
IT>С другой стороны, генерация классов как самоцель никому не нужна. Класс — это прежде всего декларация, смысл которой помочь разработчику в compile time.
Вот. И я о том.
IT>PS. По поводу D вообще и его универсальности. Один из моих самых первых учителей (мудрый старик) любил поговаривать — "Возможности программ не могут превышать на порядок возможностей средств, на которых они разработаны". Применительно к D, отсутствие run-time фрэймворка может оказаться его фатальным недостатком. Сотню мегобайт работающего и отлаженного кода в .NET Framework ещё никто не отменял. А кроме своей ещё чуть-чуть большей гибкости, как я понял, D ничем существенным от C-семейства языков не отличается. Вот если бы в нём было хотя бы что-то от АОП...
Хм... по мне (и не только по мне) наличие этого самого framework это просто один большой минус.
Если я пишу программу для некоего оффиса в одном здании то да — я могу
позволить себе роскошь использовать framework. Да и то...
Если я скажем пишу программу для основных GUI платформ то зачем мне "кузнец"?
Инвестиции в то что работает на отдельно взятой платформе и при хорошем раскладе меня не устраивают собственно как и ни одного нормального производителя ПО.
Честно говоря я не собирался, не собираюсь и не хочу противопоставлять .NET и D.
Для себя лично я не считаю возможным инвестировать в нечто работающее
на одной платформе и при хорошем раскладе карт. Во всяком случае
не GUI разработку. Уже четыре года я слышу, вот сейчас, сейчас что-то дяди сделают
и будет всем шастя великое.
Здравствуйте, c-smile, Вы писали:
IT>>Этим remoting с сотоварищами справляются без всяких имитов. Сериализация, тыксызыть Да и теже веб-сервисы легко делают из XML рантайм-классы. Там правда классы уже определены и сгенерированы, но поставленная задача решается.
CS>"классы уже определены и сгенерированы" в этом и есть весь key point.
А другое на сегодняшний день пока неопределено даже в теории. За исключением конечно случаев "доопределения и догенерирования" по заранее предопределённым правилам.
CS>Я вообще не понимаю фишку с этим автоматическим XML генерированием.
Какую фишку? XML как универсальный формат описания и хранения (в разумных пределах) чего-либо вполне хорош. Другого от него требовать не имеет смысла. Генерация на основе XML в design time очень даже удобная вещь. WSDL, XSD-схемы живое тому подтверждение.
CS>XML вообще-то это lingua franca для т.н. слабосвязанных систем.
XML — это универсальный формат хранения данных. Такой же как кома-разделители, фиксированные знакоместа и INI-файлы. Ожидать от него чего-то большего сегодня уже не модно. Но и принижать его значение тоже не стоит.
CS>Т.е. как правило "тупая" десерлизация приходящих данных не работает. CS>Если строго известно что система A посылает всегда данные класса C ситеме B то зачем тогда XML вообще?
Например, использование HTTP протокола может быть одним из non functional requirements.
CS>Хм... по мне (и не только по мне) наличие этого самого framework это просто один большой минус.
По мне и не только по мне (а по мнению тех миллионов, которые не используют D) это его фатальный недостаток.
CS>Если я пишу программу для некоего оффиса в одном здании то да — я могу позволить себе роскошь использовать framework. Да и то...
Странное дело... Разве большинство из нас не занимается именно этим? Ну хорошо... для двух зданий, ну может для десяти...
CS>Если я скажем пишу программу для основных GUI платформ то зачем мне "кузнец"?
Если речь идёт о ширпотребе, то я вполне с тобой согласен.
CS>Инвестиции в то что работает на отдельно взятой платформе и при хорошем раскладе меня не устраивают собственно как и ни одного нормального производителя ПО.
Это специфика твоей работы. Я бы даже сказал сегодняшняя специфика заказчика, на которого нацелен твой бизнес. Но это вовсе не означает что это специфика всей индустрии. Для примера скажу, что бюджет IT департмента Morgan Stanley составляет 5 миллиардов долларов в год. Не думаю, что весь экспорт софта в России даже близко приближается к этой цифре. Тем не менее, ребята там не пишут софт на "все платформы". Это просто не нужно.
CS>Честно говоря я не собирался, не собираюсь и не хочу противопоставлять .NET и D.
Раз уж зашла речь о D, как о полноценной современной среде для разработки софта, то этого не избежать. Более того, современное средство разработки должно соответствовать современным требованиям. Отсутствие фреймворка очень серьёзный недостаток сегодня. Очень.
CS>Для себя лично я не считаю возможным инвестировать в нечто работающее на одной платформе и при хорошем раскладе карт. Во всяком случае не GUI разработку.
Для GUI ещё долго не будет ничего работающего на всех платформах. Java уже обломалась, а в .NET это и не планируется. Специфика не та. Это вам не поля из базы данных на объекты мапить. Тут надо пиксель к пикселю, полутень к полутени. Раперы вещь конечно хорошая, но пока они перед гуями пасуют. Думаю, без помощи железячников нам тут не обойтись.
CS>Уже четыре года я слышу, вот сейчас, сейчас что-то дяди сделают и будет всем шастя великое. CS>Чего нынче модно ждать? XAML, да? ну подождем...
Дяди берут то что есть и делают. Если нужен универсальный гуй для любой платформы, то на сегодняшний день он только один — HTML.
ЗЫ. Что касается твоего поста в целом, то он мне вполне симпатичен Самое время задвинуть традиционную фразу RSDN тимера — а статейку про D для журнала не напишешь?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
CS>>Т.е. как правило "тупая" десерлизация приходящих данных не работает. CS>>Если строго известно что система A посылает всегда данные класса C ситеме B то зачем тогда XML вообще?
IT>Например, использование HTTP протокола может быть одним из non functional requirements.
Я не понял про http....
В http запросе есть поле Accept: mime type; xml — один из тысяч известных
типов. Другой известный тип кстати application/octet-stream.
CS>>Хм... по мне (и не только по мне) наличие этого самого framework это просто один большой минус.
IT>По мне и не только по мне (а по мнению тех миллионов, которые не используют D) это его фатальный недостаток.
Другие миллионы также не используют .NEt и что?
Давай разберемся что есть framework.
В терминах D (и С/C++) это набор библиотек — templates/classes/whatever.
Например для D известно что-то около 5 GUI имплементаций (шестая Harmonia).
Для .NET — одна и та толком даже родную платформу не держит.
Что лучше?
Или уже считается что отсутствие выбора это тот бенефит который заставит эти самые миллионы
использовать только .NET?
Не понимаю я твоего довода.
CS>>Если я пишу программу для некоего оффиса в одном здании то да — я могу позволить себе роскошь использовать framework. Да и то...
IT>Странное дело... Разве большинство из нас не занимается именно этим? Ну хорошо... для двух зданий, ну может для десяти...
Для десяти зданий уже не работает. Затраты на IT department и требования поддержки
framework up to date на всех машинах это уже нетривиальная задача.
CS>>Если я скажем пишу программу для основных GUI платформ то зачем мне "кузнец"?
IT>Если речь идёт о ширпотребе, то я вполне с тобой согласен.
Речь идет о разработке программных систем вообще а не только для корпоративных
приложений с клиентами на Wintel платформе.
CS>>Инвестиции в то что работает на отдельно взятой платформе и при хорошем раскладе меня не устраивают собственно как и ни одного нормального производителя ПО.
IT>Это специфика твоей работы. Я бы даже сказал сегодняшняя специфика заказчика, на которого нацелен твой бизнес. Но это вовсе не означает что это специфика всей индустрии. Для примера скажу, что бюджет IT департмента Morgan Stanley составляет 5 миллиардов долларов в год. Не думаю, что весь экспорт софта в России даже близко приближается к этой цифре. Тем не менее, ребята там не пишут софт на "все платформы". Это просто не нужно.
Morgan Stanley... и чего?
Вот выдержка из последнего Morgan Stanley CEO survey:
IT Vendor Spending Intentions Over the Next Twelve Months
1 Cisco 81% 162
2 Symantec 71% 120
3 IBM 71% 153
4 Red Hat 70% 118
5 Mercury 66% 100
6 Microsoft 66% 195
7 Juniper Networks 64% 92
Цифры мне не говорят о том что миллионы начали программировать .NET framework.
Crossplatform solutions — да, говорят.
Ниша для D в том числе? да, несомненно.
CS>>Честно говоря я не собирался, не собираюсь и не хочу противопоставлять .NET и D.
IT>Раз уж зашла речь о D, как о полноценной современной среде для разработки софта, то этого не избежать. Более того, современное средство разработки должно соответствовать современным требованиям. Отсутствие фреймворка очень серьёзный недостаток сегодня. Очень.
Еще раз. Дай определение framework. Что ты имеешь ввиду?
CS>>Для себя лично я не считаю возможным инвестировать в нечто работающее на одной платформе и при хорошем раскладе карт. Во всяком случае не GUI разработку.
IT>Для GUI ещё долго не будет ничего работающего на всех платформах. Java уже обломалась, а в .NET это и не планируется. Специфика не та. Это вам не поля из базы данных на объекты мапить. Тут надо пиксель к пикселю, полутень к полутени. Раперы вещь конечно хорошая, но пока они перед гуями пасуют. Думаю, без помощи железячников нам тут не обойтись.
Проблема Java/AWT и WinForms — они система врапперов.
Где-то это хорошо — где-то плохо.
Нужен оптимальный выбор под задачу.
CS>>Уже четыре года я слышу, вот сейчас, сейчас что-то дяди сделают и будет всем шастя великое. CS>>Чего нынче модно ждать? XAML, да? ну подождем...
IT>Дяди берут то что есть и делают. Если нужен универсальный гуй для любой платформы, то на сегодняшний день он только один — HTML.
Согласен. Но это не гуй. Явно ему требуется Виагра.
IT>ЗЫ. Что касается твоего поста в целом, то он мне вполне симпатичен Самое время задвинуть традиционную фразу RSDN тимера — а статейку про D для журнала не напишешь?
Чукча не писатель. Вернее писатель но не того.
Могу статью про D в контексте Harmonia — это мне интересно.
Здравствуйте, c-smile, Вы писали:
CS>Мысли (спорадические) по поводу D.
c-smile, а что повлияло на решение создать GUI для D? Личное любопытство в изучении D или интерес к D настолько возрос, что появился смысл в разработке библиотек для него?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, c-smile, Вы писали:
IT>>Например, использование HTTP протокола может быть одним из non functional requirements.
CS>Я не понял про http.... CS>В http запросе есть поле Accept: mime type; xml — один из тысяч известных типов. Другой известный тип кстати application/octet-stream.
Только вот не все файерволы пропускают бинарные данные.
CS>>>Хм... по мне (и не только по мне) наличие этого самого framework это просто один большой минус. IT>>По мне и не только по мне (а по мнению тех миллионов, которые не используют D) это его фатальный недостаток. CS>Другие миллионы также не используют .NEt и что?
Для .NET это миллионом больше миллионом меньше. Для D всегда меньше
CS>Давай разберемся что есть framework. CS>В терминах D (и С/C++) это набор библиотек — templates/classes/whatever.
Ok, согласимся с таким определением.
CS>Например для D известно что-то около 5 GUI имплементаций (шестая Harmonia).
И какую мне выбирать в случае чего? А между собой они совместимы?
CS>Для .NET — одна и та толком даже родную платформу не держит. CS>Что лучше?
Да ну? Не помню как называлась эта контора, кажется бывший Sybase, да уже и не важно, с сегодняшнего дня она подразделение IBM. Исторически сервера приложений там пишутся на Java, а вот GUI с некоторых пор на .NET. Симптоматично, не правда ли?
CS>Или уже считается что отсутствие выбора это тот бенефит который заставит эти самые миллионы использовать только .NET?
Самое печальное, что ты всё же свёл разговор к поиску недостатков в .NET, хотя мы вроде как обсуждаем D
CS>Для десяти зданий уже не работает. Затраты на IT department и требования поддержки framework up to date на всех машинах это уже нетривиальная задача.
.NET Framework меняется раз в год, обновляется через Windows Update. В чём проблема?
IT>>Если речь идёт о ширпотребе, то я вполне с тобой согласен.
CS>Речь идет о разработке программных систем вообще а не только для корпоративных приложений с клиентами на Wintel платформе.
И ты считаешь это возможным, особенно для гуёв? Вроде бы Java уже всем доказала, что write once, run everywhere не бывает. Зато очень даже бывает write once, debug everywhere В D даже ключевое слово есть version? Боюсь как бы оно не стало основной конструкцией языка при написании многоплатформенных приложений.
CS>Цифры мне не говорят о том что миллионы начали программировать .NET framework.
Занимаемся выдёргиванием слов из контекста? Напомню, я говорил о разработке многоплатформенных приложений, а не о .NET и не об использовании многих платформ. Я надеюсь, мы все пониаем разницу между "писать многоплатформенные приложения" и "иметь много платформ". .NET, кстати, раз уж ты его бесконечно упоминаешь, великолепно справляется с задачей интеграции с другими платформами. В D вообще предусмотрены какие-либо средства для этого или это вещь в себе?
CS>Crossplatform solutions — да, говорят. CS>Ниша для D в том числе? да, несомненно.
Вот это как раз и интересно. Как ты собираешься интегрировать свой D-приложение скажем с сервером приложений на Java?
CS>Проблема Java/AWT и WinForms — они система врапперов. CS>Где-то это хорошо — где-то плохо. CS>Нужен оптимальный выбор под задачу.
А Harmonia (и остальные 5 гуёв для D) разве не раперы? Ты хочешь сказать, что ты напрямую с железом работаешь?
IT>>Дяди берут то что есть и делают. Если нужен универсальный гуй для любой платформы, то на сегодняшний день он только один — HTML.
CS>Согласен. Но это не гуй. Явно ему требуется Виагра.
Может быть даже уже и не требуется совсем.
IT>>ЗЫ. Что касается твоего поста в целом, то он мне вполне симпатичен Самое время задвинуть традиционную фразу RSDN тимера — а статейку про D для журнала не напишешь?
CS>Чукча не писатель. Вернее писатель но не того. CS>Могу статью про D в контексте Harmonia — это мне интересно.
Напиши в контексте. Только желательно без упоминания .NET, а то получается, что мы не достоинства D обсуждаем, а недостатки .NET
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Если нам не помогут, то мы тоже никого не пощадим.
[ Поскипано про .NET. Закрыли тему ]
CS>>Например для D известно что-то около 5 GUI имплементаций (шестая Harmonia). IT>И какую мне выбирать в случае чего? А между собой они совместимы?
Если же тебе нужно на всех платформах иметь строго одинаковый look and
feel — Harmonia.
CS>>Речь идет о разработке программных систем вообще а не только для корпоративных приложений с клиентами на Wintel платформе.
IT>И ты считаешь это возможным, особенно для гуёв? Вроде бы Java уже всем доказала, что write once, run everywhere не бывает. Зато очень даже бывает write once, debug everywhere В D даже ключевое слово есть version? Боюсь как бы оно не стало основной конструкцией языка при написании многоплатформенных приложений.
Да это возможно. Если твои классы не используют внутри переключатели
version(Windows) version(linux) то они с вероятностью 99% переносимы.
Да, тестировать нужно на всех платформах.
Но не переписывать.
CS>>Crossplatform solutions — да, говорят. CS>>Ниша для D в том числе? да, несомненно.
IT>Вот это как раз и интересно. Как ты собираешься интегрировать свой D-приложение скажем с сервером приложений на Java?
Как обычно. Могу написать JNI модуль на D.
А могу на D запустить инстанс Java VM.
Это если это действительно нужно кому-нибудь.
CS>>Проблема Java/AWT и WinForms — они система врапперов. CS>>Где-то это хорошо — где-то плохо. CS>>Нужен оптимальный выбор под задачу.
IT>А Harmonia (и остальные 5 гуёв для D) разве не раперы? Ты хочешь сказать, что ты напрямую с железом работаешь?
Я работаю напрямую с window manager — использую только top level windows (no child controls)
Т.е. внутри чистых native классов всего ничего: NativeApplication, NativeGraphics и NativeWindow.
IT>>>Дяди берут то что есть и делают. Если нужен универсальный гуй для любой платформы, то на сегодняшний день он только один — HTML. CS>>Согласен. Но это не гуй. Явно ему требуется Виагра.
IT>Может быть даже уже и не требуется совсем.
Требуется.
Модель HTML — бесконечная плоская лента не работает толком
для экранных форм.
Набор базовых widgets — явно не достаточен.
Попытки создания чего-то своего типа datetime selector — плакать хочется.
CS>>Чукча не писатель. Вернее писатель но не того. CS>>Могу статью про D в контексте Harmonia — это мне интересно.
IT>Напиши в контексте. Только желательно без упоминания .NET, а то получается, что мы не достоинства D обсуждаем, а недостатки .NET
Ни сном ни духом не хотел и не хочу про .NET. Надоело.
Но как-то всегда находятся люди которые говорят "Если вы, гражданские, такие умные чего ж у вас фреймворка то нет"
Здравствуйте, c-smile, Вы писали:
CS>Harmonia не использует underlying os widgets. Посмотри demo через SPY++ CS>Т.е. использует подход browsers — os independent widget set.
Т.е. практически всё с самого нуля? Если так, то тебе один шаг до переноса этого и на C# и на Java. Или есть трудности?
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, eao197, Вы писали:
E>c-smile, а что повлияло на решение создать GUI для D? Личное любопытство в изучении D или интерес к D настолько возрос, что появился смысл в разработке библиотек для него?
Мотиваций много.
Одна из них:
Проект(исследовательская фаза) спонсируется фирмой (государственный контрактор) поддерживающую информационную
систему объединяющие полицию, пожарников и скорую североамериканского континента. Унифицированная клиентская платформа. После обсуждения возможности создания системы wrappers для HTMLayout я предложил D/Harmonia подход.
Они согласились.
Вторая: следующая версия BlockNote для Win и Mac.
Есть еще примерно десяток интересных проектов связанных с этим подходом.
Здравствуйте, LCR, Вы писали:
CS>>Вполне возможная конструкция как для D так и для C/C++ и вообще всего чего шевелится.
LCR>Все современные языки полны по Тьюрингу. Тем не менее важность адекватной нотации трудно переоценить.
О, да! Полноту по Тьюрингу и важность адекватной нотации трудно переоценить. И также факт что здоровым и богатым быть вельми как хорошо.
CS>>Динамически же (в runtime) создавать классы ( .class files ) имхо бессмысленно. CS>>Или я ошибаюсь? Если да то можно ли use case?
LCR>Это существенно для asp.net, JSP, JSF. Текущий мой проект содержит генерацию иерархий классов из спецификации в XML как необходимый ингредиент. Эти спецификации могут меняться, размножаться и т.п., перекомпиляция и перезапуск недопустимы.
Дашь IP сервера на попробовать? У меня есть пара XML Schemas прикольных. Размножаются — что те кошки.