Здравствуйте, Cyberax, Вы писали:
C>Почему? Берем матрицы, векторы (можно еще и тензоры ), добавляем их в C>язык. Затем добавляем в язык геометрические тела в виде примитивов и C>операции над ними в виде примитивных операций.
И что это даст? Они и в виде классов вписываются в концепции языка очень хорошо.
C>Ну так и sqlj тоже есть давно для SQL. А я вот хочу в 3D-графику в C#!
Я думаю, что в данном случае речь идет о совсем других понятиях нежеле sqlj. В том же Cw ребята вводят такие фичи из ФЯ как кортежи. Например, одной из проблем при работе с SQL-ем является то, что невозможно возвращать типизированные наботы данных. Обязательно будет приведение. А с кортежами все решается на раз. Ну, а если синтаксис запроса можно будет проверить во время компиляции...
В общем, главно, чтобы эти фичи не мешали остальным возможностям языка.
C>Я помню что произошло с COM'ом (точнее с OLE). МС кричала, что это будет C>кроссплатформенная кроссязыковая технология, для любого языка C>программирования и т.п.
Так оно и вышло.
C> А получилось, что OLE по странному совпадению C>лучше подходит для VisualBasic'а.
Дельфи тоже был ничем не хуже. Это как раз и есть встраивание в язык. Забавно, что и Дельфи и Васик с успехом пережили КОМ.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[27]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали:
C>Через неделю тестов мне OGNL стал нравится намного больше, чем JXPath, C>как раз из-за ориентации на _графы_ объектов без явной иерархии.
Что я могу сказать? Мне хватает ХПаза. Мне бы скорость по выше. Так как задачи слишьком объемные.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Это мы уже проходили на примере С++. Там в язык добавили столько > C>средств, что сейчас в полной мере все возможности С++ не знает и > C>Страуструп, наверное. > Кстати, глубокое заблуждение. С++ проктически ничерта не имеет.
Это только кажется. С помощью шаблонов в С++ делается: сериализация,
reflection и даже можно сделать небольшой встроенный функциональный язык:
Это пример из Boost.Spirit.Phoenix.
> Тут Шарп его еще в первой версии делал. У плюсов в другом проблема. > Из-за непродуманности и борьбе за совместимость с С каждая фигня в С++ > имеет тучу нюансов. Из-за этого геморрой порой возникает на ровном месте.
Просто в С++ фичи немного другую направленность имеют, чем в С#.
> C> Причем обычно создателям не удается просмотреть > C>все взаимные влияния фич на этапе их добавления, и недостатки > выявляются > C>уже во время использования. Так было с С++ным bool'ом, например. > Полно те. Сколько тех изменений в нем было?
Много. Еще были: исключения, автоматические cast'ы, выведение типов и т.п.
> C>НЕЛЬЗЯ сделать язык, система типов которого будет совместима со всем, > C>чем только можно. Лучше бы создателям С# это понять, а не пытаться > C>адаптировать систему типов под SQL, XML и т.п. > Не боись. Они явно не тупее нас с тобой.
После WinForms я начинаю в этом сомневаться...
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[35]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали:
C>VladD2 пишет:
>> C>Это мы уже проходили на примере С++. Там в язык добавили столько >> C>средств, что сейчас в полной мере все возможности С++ не знает и >> C>Страуструп, наверное. >> Кстати, глубокое заблуждение. С++ проктически ничерта не имеет.
C>С помощью шаблонов в С++ делается: сериализация, C>reflection
Это только кажется. (с)
C>и даже можно сделать небольшой встроенный функциональный язык:
Надеюсь ты понимашь насколько проще данный пример будет выглядеть на функциональном языке или даже на C#? Ну, а теперь попытайся расширить своей пример разрешив задавать параметр с консоли.
C>Просто в С++ фичи немного другую направленность имеют, чем в С#.
Просто их в С++ нет. Их нужно постоянно эмулировать. Иногда это проходит гладко, а иногда выливается в поистене юмористические сложности для решения примитивных задач.
Вот, например, сколько нужно написать кода чтобы выяснить длинну статически инициализированного массива:
int a[] = { 1, 3, 4 };
? И сколько компилятор будет обдумывать каждый такой изыск?
C>После WinForms я начинаю в этом сомневаться...
И чем не угодила эта баблиотека? Слишком просто использовать?
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[36]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>С помощью шаблонов в С++ делается: сериализация, > C>reflection > Это только кажется. (с)
Что кажется? Сериализацию я вот прямо сейчас использую.
> C>и даже можно сделать небольшой встроенный функциональный язык: > Надеюсь ты понимашь насколько проще данный пример будет выглядеть на > функциональном языке или даже на C#? Ну, а теперь попытайся расширить > своей пример разрешив задавать параметр с консоли.
На C# проще не будет — тут получается именно функциональный язык с
ленивым выполнением. Почти Хаскель А чтение с консоли сделать просто
— заменить, например "cout << arg1" на "cin >> arg1".
> C>Просто в С++ фичи немного другую направленность имеют, чем в С#. > Просто их в С++ нет. Их нужно постоянно эмулировать. Иногда это > проходит гладко, а иногда выливается в поистене юмористические > сложности для решения примитивных задач.
Есть. Шаблонное метапрограммирование — очень мощная техника.
> Вот, например, сколько нужно написать кода чтобы выяснить длинну > статически инициализированного массива: > >int a[] = { 1, 3, 4 }; > > ? И сколько компилятор будет обдумывать каждый такой изыск?
sizeof(a) не катит? Компилируется в константу.
> C>После WinForms я начинаю в этом сомневаться... > И чем не угодила эта баблиотека? Слишком просто использовать?
Там СТОЛЬКО всего, что мне не нравится, что я даже говорить не буду
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[28]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Через неделю тестов мне OGNL стал нравится намного больше, чем JXPath, > C>как раз из-за ориентации на _графы_ объектов без явной иерархии. > Что я могу сказать? Мне хватает ХПаза. Мне бы скорость по выше. Так > как задачи слишьком объемные.
Повезло, значит.
Кстати, еще один аргумент против введения XPath'а и SQL в язык — а
почему именно ИХ в язык добавлять?
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[32]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Почему? Берем матрицы, векторы (можно еще и тензоры ), добавляем их в > C>язык. Затем добавляем в язык геометрические тела в виде примитивов и > C>операции над ними в виде примитивных операций. > И что это даст? Они и в виде классов вписываются в концепции языка > очень хорошо.
Ну так и SQL тоже.
> C>Ну так и sqlj тоже есть давно для SQL. А я вот хочу в 3D-графику в C#! > Я думаю, что в данном случае речь идет о совсем других понятиях нежеле > sqlj. В том же Cw ребята вводят такие фичи из ФЯ как кортежи. > Например, одной из проблем при работе с SQL-ем является то, что > невозможно возвращать типизированные наботы данных. Обязательно будет > приведение. А с кортежами все решается на раз. Ну, а если синтаксис > запроса можно будет проверить во время компиляции...
Все красиво на бумаге, да забыли про овраги...
Вот, например, Firebird поддерживает домены значений — я там могу на тип
поставить ограничение, что он принимает значения от -1 до 1. Аналога
доменов в Cw нет — как мапить их будем? Далее, статическая проверка SQL
потребует наличие схемы базы данных и DB-specific-драйвера при
компиляции исходника — а это выглядит слегка странно. Про различные
поведения типов в разных БД я уже вообще молчу.
Ну и что самое главное — сейчас многие УЖЕ используют OR-mapping решения
и УЖЕ имеют типизированные объектные средства работы с базой. Зачем еще
чего-то добавлять в язык?
> C>Я помню что произошло с COM'ом (точнее с OLE). МС кричала, что это > будет > C>кроссплатформенная кроссязыковая технология, для любого языка > C>программирования и т.п. > Так оно и вышло.
Кроссплатформенности нормальной нет, только.
> C> А получилось, что OLE по странному совпадению > C>лучше подходит для VisualBasic'а. > Дельфи тоже был ничем не хуже. Это как раз и есть встраивание в язык. > Забавно, что и Дельфи и Васик с успехом пережили КОМ.
Дельфи в этом не сильно отличается от VB. А вот в С++ идеология
IDispatch вообще не вписывается, например.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[30]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, prVovik, Вы писали:
V>Здравствуйте, eao197, Вы писали:
E>>А как будет выглядеть запрос в XPath, если XML выглядит так (идея в том, что b -- это ссылки на другие объекты): E>>
E>><some-root>
E>><a f="10">
E>> <b ref="#0001" />
E>> <b ref="#0002" />
E>></a>
E>><b id="0001" f="15" />
E>><b id="0002" f="20" >
E>> <c f="25" />
E>> <c f="30" >
E>> <d f="40" /> <!-- значение атрибута f этого узла и надо получить -->
E>> </c>
E>></b>
E>></some-root>
E>>
V>
/b[ /a[@f=10]/b/@ref=@id and @f=20 ]/c[ f=30 ]/d/@f
Вероятно я не совсем точно выразился. Нужно было найти такой узел a/b, который ссылается на соседний b, у которого b.f == 20 && b/c.f == 30 && b/c/d.f == 40.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[31]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, eao197, Вы писали:
E>>>А как будет выглядеть запрос в XPath, если XML выглядит так (идея в том, что b -- это ссылки на другие объекты): E>>>
E>>><some-root>
E>>><a f="10">
E>>> <b ref="#0001" />
E>>> <b ref="#0002" />
E>>></a>
E>>><b id="0001" f="15" />
E>>><b id="0002" f="20" >
E>>> <c f="25" />
E>>> <c f="30" >
E>>> <d f="40" /> <!-- значение атрибута f этого узла и надо получить -->
E>>> </c>
E>>></b>
E>>></some-root>
E>>>
V>>
/b[ /a[@f=10]/b/@ref=@id and @f=20 ]/c[ f=30 ]/d/@f
E>Вероятно я не совсем точно выразился. Нужно было найти такой узел a/b, который ссылается на соседний b, у которого b.f == 20 && b/c.f == 30 && b/c/d.f == 40.
/a/b[ @ref=/b[ @f=20 and c[@f=30]/d[@f=40] ]/@id ]
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[33]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали: C>VladD2 пишет: >> C>Почему? Берем матрицы, векторы (можно еще и тензоры ), добавляем их в >> C>язык. Затем добавляем в язык геометрические тела в виде примитивов и >> C>операции над ними в виде примитивных операций. >> И что это даст? Они и в виде классов вписываются в концепции языка >> очень хорошо. C>Ну так и SQL тоже.
В SQL синтаксис есть, например, который компилятор проверить может. Так же есть описание того, как база данных устроена, по каким правилам "живёт". Значит и семантику проверить можно. А в графике чем он жизнь упростит?
>> C>Ну так и sqlj тоже есть давно для SQL. А я вот хочу в 3D-графику в C#! >> Я думаю, что в данном случае речь идет о совсем других понятиях нежеле >> sqlj. В том же Cw ребята вводят такие фичи из ФЯ как кортежи. >> Например, одной из проблем при работе с SQL-ем является то, что >> невозможно возвращать типизированные наботы данных. Обязательно будет >> приведение. А с кортежами все решается на раз. Ну, а если синтаксис >> запроса можно будет проверить во время компиляции... C>Все красиво на бумаге, да забыли про овраги... C>Вот, например, Firebird поддерживает домены значений — я там могу на тип C>поставить ограничение, что он принимает значения от -1 до 1. Аналога C>доменов в Cw нет — как мапить их будем?
Тип данных от этого не меняется. Что произойдёт, если в такое поле двойку попытаться записать? Если он её к ближайшей стенке (к 1) приведёт и запишет 1, то да, это надо будет учесть, аттрибут какой-нить выдумать . А если Firebird при этом только сообщает об ошибке, то это равнозначно и ошибке в рантайме.
C>Далее, статическая проверка SQL C>потребует наличие схемы базы данных и DB-specific-драйвера при C>компиляции исходника — а это выглядит слегка странно.
Что именно в этом "странно"?
C>Про различные поведения типов в разных БД я уже вообще молчу.
Да к любому можно найти подход ...
C>Ну и что самое главное — сейчас многие УЖЕ используют OR-mapping решения C>и УЖЕ имеют типизированные объектные средства работы с базой. Зачем еще C>чего-то добавлять в язык?
Избавить от бесконечных проверок типов разработчиков ОРМ и повысить тем самым надёжность их продукции.
>> C>Я помню что произошло с COM'ом (точнее с OLE). МС кричала, что это >> будет >> C>кроссплатформенная кроссязыковая технология, для любого языка >> C>программирования и т.п. >> Так оно и вышло. C>Кроссплатформенности нормальной нет, только.
В чём именно? Её может не поддерживать код, реализующий объект. А OLE — это ж только описание
>> C> А получилось, что OLE по странному совпадению >> C>лучше подходит для VisualBasic'а. >> Дельфи тоже был ничем не хуже. Это как раз и есть встраивание в язык. >> Забавно, что и Дельфи и Васик с успехом пережили КОМ. C>Дельфи в этом не сильно отличается от VB. А вот в С++ идеология C>IDispatch вообще не вписывается, например.
Коряво выглядит? Да. Но разве IDispatch как раз не для бэйсика- и js- подобных языков задумывался?
Ultra playing "Roxette — Neverending Love [Frank Mono 7" mix]"
<< RSDN@Home 1.1.4 beta 4 rev. 0 >>
Help will always be given at Hogwarts to those who ask for it.
Re[34]: Объектно-ориентированные БД: основные принципы, орга
_FRED_ пишет:
>>> И что это даст? Они и в виде классов вписываются в концепции языка >>> очень хорошо. > C>Ну так и SQL тоже. > В SQL синтаксис есть, например, который компилятор проверить может.
А в 3D компилятор мне не сможет проверить, что у меня матрица не
сингулярная.
> Так же есть описание того, как база данных устроена, по каким правилам > "живёт". Значит и семантику проверить можно. А в графике чем он жизнь > упростит?
В графике есть, например, языки шейдеров.
> C>Все красиво на бумаге, да забыли про овраги... > C>Вот, например, Firebird поддерживает домены значений — я там могу на > тип > C>поставить ограничение, что он принимает значения от -1 до 1. Аналога > C>доменов в Cw нет — как мапить их будем? > Тип данных от этого не меняется. Что произойдёт, если в такое поле > двойку попытаться записать? Если он её к ближайшей стенке (к 1) > приведёт и запишет 1, то да, это надо будет учесть, аттрибут > какой-нить выдумать
Firebird выдаст domain violation и откатит транзакцию.
> . А если Firebird при этом только сообщает об ошибке, то это > равнозначно и ошибке в рантайме.
Вот. Как выяснилось компилятор у нас уже не все проверяет. А если
подумать, то можно накопать и еще таких камешков подводных.
> C>Далее, статическая проверка SQL > C>потребует наличие схемы базы данных и DB-specific-драйвера при > C>компиляции исходника — а это выглядит слегка странно. > Что именно в этом "странно"?
Что для компиляции требуется DB-specific модули.
> C>Ну и что самое главное — сейчас многие УЖЕ используют OR-mapping > решения > C>и УЖЕ имеют типизированные объектные средства работы с базой. Зачем еще > C>чего-то добавлять в язык? > Избавить от бесконечных проверок типов разработчиков ОРМ и повысить > тем самым надёжность их продукции.
А проверки типов из такого никуда не уйдут — они просто спрячутся. А для
ORM обычно есть инструменты, которые позволяют провалидировать maping
относительно данной БД.
> C>Кроссплатформенности нормальной нет, только. > В чём именно? Её может не поддерживать код, реализующий объект. А OLE > — это ж только описание
Есть ли в Линуксе OLE и DCOM?
> C>Дельфи в этом не сильно отличается от VB. А вот в С++ идеология > C>IDispatch вообще не вписывается, например. > Коряво выглядит? Да. Но разве IDispatch как раз не для бэйсика- и js- > подобных языков задумывался?
Так вся OLE вокруг IDispatch'а построена.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[37]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали:
C>Что кажется? Сериализацию я вот прямо сейчас использую.
Что делается. Это слезы.
C>На C# проще не будет — тут получается именно функциональный язык с C>ленивым выполнением.
Чже же тут ленивого?
C> Почти Хаскель А чтение с консоли сделать просто
Гы. Ну, уж если мериться пенисами, то не на такой фигне. На вот сэмулируй на своем хецкере:
using System;
class Program
{
delegate int Inner(int x);
delegate Inner Outer1(int y);
static void Main(string[] args)
{
Outer1 a = delegate(int x)
{
Inner c = delegate(int y)
{
x++;
return x + y;
};
return c;
};
Console.WriteLine(a(4)(5));
Test(a(4));
}
static void Test(Inner inner)
{
Console.WriteLine(inner(5));
}
}
Если вдруг удастся (в чем я сииильно сомневаюсь), то погляди на объем используемого библиотечного кода. Для сравнения — это чистый язык.
>> C>Просто в С++ фичи немного другую направленность имеют, чем в С#. >> Просто их в С++ нет. Их нужно постоянно эмулировать. Иногда это >> проходит гладко, а иногда выливается в поистене юмористические >> сложности для решения примитивных задач.
C>Есть. Шаблонное метапрограммирование — очень мощная техника.
Ага. Если других не видел. А если видел, то постыбился бы это внеполовое извращение вещью называть, не то что мощьно.
C>sizeof(a) не катит? Компилируется в константу.
Ну, передай в другую функцию и попробуй. Для сравнения:
array.Length
>> C>После WinForms я начинаю в этом сомневаться... >> И чем не угодила эта баблиотека? Слишком просто использовать?
C>Там СТОЛЬКО всего, что мне не нравится, что я даже говорить не буду
Правильно так проще, а то ведь подбирать аргументы, да еще там где их и быть неможет — это сложная задача.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[33]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали:
C>Ну так и SQL тоже.
Ты прикидываешся или правда разницы не видишь?
C>Все красиво на бумаге, да забыли про овраги...
Я одно не пойму что ты за других так переживаешь? Сделают — посмотришь. Что злословить, то бес толку?
C>Вот, например, Firebird поддерживает домены значений — я там могу на тип C>поставить ограничение, что он принимает значения от -1 до 1. Аналога C>доменов в Cw нет — как мапить их будем?
Ограничения поддерживаются SQL 99, так что можно про птичек не вспоминать. Думаю, как есть так и мапить. Констрэйны проблема сервера. А вообще — это проблема МС. Сделают — посотрим.
C> Далее, статическая проверка SQL C>потребует наличие схемы базы данных и DB-specific-драйвера при C>компиляции исходника — а это выглядит слегка странно.
Про то что SQL имет стандартный синтаксис не думал? Может проще его парсить заранее?
C> Про различные C>поведения типов в разных БД я уже вообще молчу.
Да что тебя так разная фигня трогает? Ну, предположим можно в виде ХМЛ-я описать и на диск бросить. Да мало ли решений может быть?
C>Ну и что самое главное — сейчас многие УЖЕ используют OR-mapping решения C>и УЖЕ имеют типизированные объектные средства работы с базой. Зачем еще C>чего-то добавлять в язык?
Затем что многеи не имеют и использовать это ... не хоатя.
C>Кроссплатформенности нормальной нет, только.
Просто потому-что тебе так хочется? А ничего, что несколько поставшиков все же предлагает КОМ на других платформах?
C>Дельфи в этом не сильно отличается от VB. А вот в С++ идеология C>IDispatch вообще не вписывается, например.
Дык где в язык КОМ не встроен, так монечно было не здорово. Но где был встроен, там опять таки все ОК. Погляди на VC и C++Builder. В них можно довольно просто использовать любые КОМ-объекты обладающие библиотекой типов.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[35]: Объектно-ориентированные БД: основные принципы, орга
Здравствуйте, Cyberax, Вы писали:
C>Вот. Как выяснилось компилятор у нас уже не все проверяет. А если C>подумать, то можно накопать и еще таких камешков подводных.
Ну, то-есть если компилятор все проверить не может, то ничего проверять не нужно? Логика еще та.
C>А проверки типов из такого никуда не уйдут — они просто спрячутся.
Нда. Клинический случай. Да, спрячутся. В процесс компиляции.
C>Есть ли в Линуксе OLE и DCOM?
За бабки есть. Хотя наверно, кое что есть и бесплатно.
C>Так вся OLE вокруг IDispatch'а построена.
Ну, ты оказывается еще в ОЛЕ знакток. Может не стоит рассуждать о том, в чем не понимашь?
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Кстати, еще один аргумент против введения XPath'а и SQL в язык — а > C>почему именно ИХ в язык добавлять? > XPath и XQuery стандарты.
ASN1 тоже стандарт. И что?
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[36]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Вот. Как выяснилось компилятор у нас уже не все проверяет. А если > C>подумать, то можно накопать и еще таких камешков подводных. > Ну, то-есть если компилятор все проверить не может, то ничего > проверять не нужно? Логика еще та.
Если компилятор не может проверить _адекватно_, то лучше уж пусть не
проверяет вообще. Сейчас такая ситуация, что у каждой СУБД куча своих
заморочек — и если сделать что-то общее для всех СУБД, то получится
весьма ограниченная функциональность.
Кстати, то почти все, что есть в Омеге для SQL замечательно ложится на
С++ные шаблоны и переопределенные операторы.
> C>Есть ли в Линуксе OLE и DCOM? > За бабки есть. Хотя наверно, кое что есть и бесплатно.
Даже за бабки нет ничего нормального (мы искали, причем взяли бы за
почти любую цену).
> C>Так вся OLE вокруг IDispatch'а построена. > Ну, ты оказывается еще в ОЛЕ знакток. Может не стоит рассуждать о том, > в чем не понимашь?
Пальцем в небо — OLE я знаю досконально. Сейчас вот как раз дописываю
ActiveX-контейнер из ATL
OLE зависим от IDispatch'а, это ключевая фишка для ActiveX-контролов. В
теории возможны AX-контролы и без IDispatch'а, но на практике они будут
малополезны, так как их свойства нельзя будет редактировать из VB/Delphi/...
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[34]: Объектно-ориентированные БД: основные принципы, орга
VladD2 пишет:
> C>Ну так и SQL тоже. > Ты прикидываешся или правда разницы не видишь?
Я смысла не вижу.
> C>Все красиво на бумаге, да забыли про овраги... > Я одно не пойму что ты за других так переживаешь? Сделают — > посмотришь. Что злословить, то бес толку?
Так этого и боюсь, что сделают. У моего коллеги по работе как раз
недавно заказчик попросил _переделать_ (!!!) приложение с ADO на ADO.NET
(хорошо, видать, мозги ему промыли МСовские консультанты), хотя из
доступа к данным там было 3 запроса. А если бы этот заказчик услышал про
омегоподобные вещи....
> C> Далее, статическая проверка SQL > C>потребует наличие схемы базы данных и DB-specific-драйвера при > C>компиляции исходника — а это выглядит слегка странно. > Про то что SQL имет стандартный синтаксис не думал? Может проще его > парсить заранее?
Новая шутка: стандартный синтаксис SQL. Запомню.
> C> Про различные > C>поведения типов в разных БД я уже вообще молчу. > Да что тебя так разная фигня трогает? Ну, предположим можно в виде > ХМЛ-я описать и на диск бросить. Да мало ли решений может быть?
А _ЗАЧЕМ_ добавлять ради этого новые сущности в язык?
> C>Ну и что самое главное — сейчас многие УЖЕ используют OR-mapping > решения > C>и УЖЕ имеют типизированные объектные средства работы с базой. Зачем еще > C>чего-то добавлять в язык? > Затем что многеи не имеют и использовать это ... не хоатя.
А омегу сразу все захотят.
> C>Кроссплатформенности нормальной нет, только. > Просто потому-что тебе так хочется? А ничего, что несколько > поставшиков все же предлагает КОМ на других платформах?
Мы тестировали несколько продуктов. В основном там перенесены простейшие
функции типа создания объектов, маршалирование по библиотекам типов и
т.п. Но ни один из них не поддерживает полностью модель
ActiveX-контролов и полную спецефикацию RPC.
> C>Дельфи в этом не сильно отличается от VB. А вот в С++ идеология > C>IDispatch вообще не вписывается, например. > Дык где в язык КОМ не встроен, так монечно было не здорово. Но где был > встроен, там опять таки все ОК. Погляди на VC и C++Builder. В них > можно довольно просто использовать любые КОМ-объекты обладающие > библиотекой типов
Получается уродство в красивой обертке.
--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[38]: Объектно-ориентированные БД: основные принципы, орга
mapitag_t и mapival_t — это сложные типы, для которых тоже прописана
сериализация.
> C>На C# проще не будет — тут получается именно функциональный язык с > C>ленивым выполнением. > Чже же тут ленивого?
Вычисления производятся только тогда, когда они нужны, а не когда
впервые встретились.
> C> Почти Хаскель А чтение с консоли сделать просто > Гы. Ну, уж если мериться пенисами, то не на такой фигне. На вот > сэмулируй на своем хецкере: > >using System; > >class Program >{ > delegate int Inner(int x); > delegate Inner Outer1(int y); > > static void Main(string[] args) > { > Outer1 a = delegate(int x) > { > Inner c = delegate(int y) > { > x++; > return x + y; > }; > > return c; > }; > > Console.WriteLine(a(4)(5)); > > Test(a(4)); > } > > static void Test(Inner inner) > { > Console.WriteLine(inner(5)); > } >} > > > > > Если вдруг удастся (в чем я сииильно сомневаюсь), то погляди на объем > используемого библиотечного кода. Для сравнения — это чистый язык.
Чуть пооптимизировал
> C>Есть. Шаблонное метапрограммирование — очень мощная техника. > Ага. Если других не видел. А если видел, то постыбился бы это > внеполовое извращение вещью называть, не то что мощьно.
Видел.
> C>sizeof(a) не катит? Компилируется в константу. > Ну, передай в другую функцию и попробуй. Для сравнения: > >array.Length > >
std::vector — и ваши волосы будут мягкими и шелковистыми.
>>> C>После WinForms я начинаю в этом сомневаться... >>> И чем не угодила эта баблиотека? Слишком просто использовать? > C>Там СТОЛЬКО всего, что мне не нравится, что я даже говорить не буду > Правильно так проще, а то ведь подбирать аргументы, да еще там где их > и быть неможет — это сложная задача.
0. Мне нравится как спроектирован Swing..
1. В WF нет разделения на модель и вид.
2. Нет layout'ов.
3. СЛИШКОМ сильное использование наследования.