Re[31]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.03.05 05:19
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.03.05 05:19
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Через неделю тестов мне OGNL стал нравится намного больше, чем JXPath,

C>как раз из-за ориентации на _графы_ объектов без явной иерархии.

Что я могу сказать? Мне хватает ХПаза. Мне бы скорость по выше. Так как задачи слишьком объемные.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.03.05 05:19
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Верно. Термин компактифицировать == shrink.


А можно shrink == уплотнение?
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[34]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 12.03.05 05:25
Оценка:
VladD2 пишет:

> C>Это мы уже проходили на примере С++. Там в язык добавили столько

> C>средств, что сейчас в полной мере все возможности С++ не знает и
> C>Страуструп, наверное.
> Кстати, глубокое заблуждение. С++ проктически ничерта не имеет.

Это только кажется. С помощью шаблонов в С++ делается: сериализация,
reflection и даже можно сделать небольшой встроенный функциональный язык:
int
main()
{
    int init[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    vector<int> c(init, init + 10);
    typedef vector<int>::iterator iterator;

    find_if(c.begin(), c.end(),
        context<bool>()
        [
            cout << arg1,
            result = arg1 > 5,
            if_(!result)
            [
                cout << val(", ")
            ]
            .else_
            [
                cout << val(" found result == ") << arg1
            ]
        ]
    );

    return 0;
}

Это пример из 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]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.03.05 06:57
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 12.03.05 07:52
Оценка:
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]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 12.03.05 07:53
Оценка: +1
VladD2 пишет:

> C>Через неделю тестов мне OGNL стал нравится намного больше, чем JXPath,

> C>как раз из-за ориентации на _графы_ объектов без явной иерархии.
> Что я могу сказать? Мне хватает ХПаза. Мне бы скорость по выше. Так
> как задачи слишьком объемные.

Повезло, значит.

Кстати, еще один аргумент против введения XPath'а и SQL в язык — а
почему именно ИХ в язык добавлять?

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[32]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 12.03.05 07:59
Оценка:
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]: Объектно-ориентированные БД: основные принципы, орга
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.03.05 10:08
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: prVovik Россия  
Дата: 12.03.05 11:30
Оценка: 14 (1)
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: _FRED_ Черногория
Дата: 13.03.05 07:03
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 13.03.05 07:16
Оценка:
_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]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.03.05 16:41
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.03.05 16:41
Оценка:
Здравствуйте, 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]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.03.05 16:41
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Вот. Как выяснилось компилятор у нас уже не все проверяет. А если

C>подумать, то можно накопать и еще таких камешков подводных.

Ну, то-есть если компилятор все проверить не может, то ничего проверять не нужно? Логика еще та.

C>А проверки типов из такого никуда не уйдут — они просто спрячутся.


Нда. Клинический случай. Да, спрячутся. В процесс компиляции.

C>Есть ли в Линуксе OLE и DCOM?


За бабки есть. Хотя наверно, кое что есть и бесплатно.

C>Так вся OLE вокруг IDispatch'а построена.


Ну, ты оказывается еще в ОЛЕ знакток. Может не стоит рассуждать о том, в чем не понимашь?
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[29]: Объектно-ориентированные БД: основные принципы, орга
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.03.05 16:41
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Повезло, значит.


Ага. Ужасно.

C>Кстати, еще один аргумент против введения XPath'а и SQL в язык — а

C>почему именно ИХ в язык добавлять?

XPath и XQuery стандарты.
... << RSDN@Home 1.1.4 beta 4 rev. 351>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[30]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 13.03.05 18:16
Оценка:
VladD2 пишет:

> C>Кстати, еще один аргумент против введения XPath'а и SQL в язык — а

> C>почему именно ИХ в язык добавлять?
> XPath и XQuery стандарты.

ASN1 тоже стандарт. И что?

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[36]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 13.03.05 18:25
Оценка:
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]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 13.03.05 18:33
Оценка:
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]: Объектно-ориентированные БД: основные принципы, орга
От: Cyberax Марс  
Дата: 13.03.05 18:42
Оценка: :))
VladD2 пишет:

> C>Что кажется? Сериализацию я вот прямо сейчас использую.

> Что делается. Это слезы.

А чего такого? Все очень просто:
class mapiprop_t
{   
    template<class Archive>
        friend void serialize(Archive &, mapiprop_t & , const unsigned 
int);   

    mapitag_t tag;
    mapival_t value;   
public:
    ....
};
template<class Archive>
    void serialize(Archive & ar, mapiprop_t& val, const unsigned int 
version)
{
    ar & val.tag & val.value;
}

...
mapiprop_t val;
...
std::ofstream ofs("testfile",std::ios::binary);
boost::archive::binary_oarchive oa(ofs);
oa<<val;

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));
> }
>}
>
>
>
>
> Если вдруг удастся (в чем я сииильно сомневаюсь), то погляди на объем
> используемого библиотечного кода. Для сравнения — это чистый язык.

boost::function func<>(_arg1++ + _arg2);
func(4,5);

Чуть пооптимизировал

> C>Есть. Шаблонное метапрограммирование — очень мощная техника.

> Ага. Если других не видел. А если видел, то постыбился бы это
> внеполовое извращение вещью называть, не то что мощьно.

Видел.

> C>sizeof(a) не катит? Компилируется в константу.

> Ну, передай в другую функцию и попробуй. Для сравнения:
>
>array.Length
>
>
std::vector — и ваши волосы будут мягкими и шелковистыми.

>>> C>После WinForms я начинаю в этом сомневаться...

>>> И чем не угодила эта баблиотека? Слишком просто использовать?
> C>Там СТОЛЬКО всего, что мне не нравится, что я даже говорить не буду
> Правильно так проще, а то ведь подбирать аргументы, да еще там где их
> и быть неможет — это сложная задача.

0. Мне нравится как спроектирован Swing..
1. В WF нет разделения на модель и вид.
2. Нет layout'ов.
3. СЛИШКОМ сильное использование наследования.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.