From: Dmitry A. Kazakov on
On Thu, 3 Jan 2008 21:17:54 -0800 (PST), frebe wrote:

>>> Who's mindset are you talking about, mine? Regardless the mindset, do
>>> you think it is a mistake to use SQL databases in applications for
>>> accounting, invoicing, inventory management, etc?
>>
>> That depends on the functional and non-functional requirements of each
>> concrete system. The two basic ideas - of separation of data from semantics
>> (meaning) and of client-server architecture are ugly remnants of deep past.
>
> So building an application for inventory management without an
> relational database is actually an option for you?

I must see the requirements first. If they do not contain "shall use MS
Access," then I would certainly consider this option.

>>> Would it be better
>>> to use some other kind of database instead or implement the data
>>> management logic in the application instead?
>>
>> If you can factor out these accounting etc as an abstraction, then do it. I
>> just don't see why it should be "database." Call it "accounting subsystem."
>> There is no "data management logic," there is only logic of "accounting."
>> This logic is implemented by the program. Who runs the program is of no
>> interest.
>
> Don't you realize that by abstracting "data management" logic, one can
> create components (database engines) that handles this logic in a
> generic way. At least you would use some low-level data management
> components like arrays and maps? Relations are a more high-level way
> of doing it.
>
> It sound like you want to write all logic from scratch? Wouldn't you
> benefit from pre-made reusable components?

I am vehemently for reusing containers. I am against equating the logic of
some specialized class of containers (in this case
RA+persistence+concurrency+SQL-interface=SQL database) to the logic of an
application.

If you try to express all application logic exclusively as one of
containers, to think it as containers, then we are exactly where this
discussion started. It is low-level when it works, otherwise it doesn't...

>> Others
>> quietly create their *libraries*. They might call them "engine",
>> "middleware", "framework", but show nothing alike that manic disorder the
>> former suffer... (:-))
>
> What libraries are you suggesting instead of a SQL database? Please
> show me some example.

There exist lots of container libraries. I see no need in a special
language in order to implement RA at the library level. There might exist
issues of making the syntax sugar sweeter (for returned tuples etc). But
that is irrelevant, after all SQL is far uglier than anything the most
poorly designed library could ever present...

Now I have a question to you. Why don't you implement RA (as it has to be
in your opinion) at the library level in some decent OOPL? Make it in
several variants with concurrency and persistency support as options. I bet
OO folks will embrace it. That dead DB horse you'll sell to no one.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: frebe on
> >> Others
> >> quietly create their *libraries*. They might call them "engine",
> >> "middleware", "framework", but show nothing alike that manic disorder the
> >> former suffer... (:-))
>
> > What libraries are you suggesting instead of a SQL database? Please
> > show me some example.
>
> There exist lots of container libraries.

Please point out one library that could be used instead of a SQL
database for an inventory management application?

> I see no need in a special
> language in order to implement RA at the library level.

Just show one example of a RA library, please.

> There might exist
> issues of making the syntax sugar sweeter (for returned tuples etc). But
> that is irrelevant, after all SQL is far uglier than anything the most
> poorly designed library could ever present...

I think we all agree that SQL isn't the most beautiful language. Even
if the standardization issue is important, I think there are room for
more than one family of relational languages. What do you think of
Tutorial D?

> Now I have a question to you. Why don't you implement RA (as it has to be
> in your opinion) at the library level in some decent OOPL?

Actually I once did (http://butler.sf.net). But later I realized that
I was just reinventing the wheel (that wasn't really round). Using SQL
directly is far more powerful than building a complex class model.

> Make it in
> several variants with concurrency and persistency support as options. I bet
> OO folks will embrace it.

If this should be done without a database back-end, you are simply
writing a new database engine. If you are using a database back-end,
you are just putting a procedural interface on top of the database,
loosing a lot of the power with a 4GL. A lot of people have tried
making an OO interface on top of a relational database (Hibernate,
JDO, EJB, Rails) and they have not been very successful.

Why doesn't you show an OO API that could be used on top of, or
instead of a relational database, and that would be useful for example
inventory management applications.

> That dead DB horse you'll sell to no one.

Are your observation of the current software industry, that SQL
databases are dead?

//frebe
From: Dmitry A. Kazakov on
On Fri, 4 Jan 2008 02:06:31 -0800 (PST), frebe wrote:

>>>> Others
>>>> quietly create their *libraries*. They might call them "engine",
>>>> "middleware", "framework", but show nothing alike that manic disorder the
>>>> former suffer... (:-))
>>
>>> What libraries are you suggesting instead of a SQL database? Please
>>> show me some example.
>>
>> There exist lots of container libraries.
>
> Please point out one library that could be used instead of a SQL
> database for an inventory management application?

As I said, write the requirements. The problem of you and the OP is that
you don't care to write the requirements down. Instead of that you think in
terms of DB records, i.e. an implementation. The rest follows. In OO one
would first identify and describe the things and only then say, "hey, that
looks much like a relation!"

> What do you think of Tutorial D?

Too much C to my taste. I admire the Third Manifesto, but I consider it
rather as a home work for relational guys to do, before they teach the rest
of the world. Let's see how it will evolve.

>> Now I have a question to you. Why don't you implement RA (as it has to be
>> in your opinion) at the library level in some decent OOPL?
>
> Actually I once did (http://butler.sf.net). But later I realized that
> I was just reinventing the wheel (that wasn't really round). Using SQL
> directly is far more powerful than building a complex class model.

Huh, know what? Nobody needs a class model of cr*p (read SQL). A model of
cr*p is itself cr*p. There is the ODBC mess for those who like such things.
You promised me clean RA instead.

>> Make it in
>> several variants with concurrency and persistency support as options. I bet
>> OO folks will embrace it.
>
> If this should be done without a database back-end, you are simply
> writing a new database engine.

I don't care about back-ends. I want to see the interface of. How do you
implement it, is not my business.

>> That dead DB horse you'll sell to no one.
>
> Are your observation of the current software industry, that SQL
> databases are dead?

You know, there is [economical] life after death... (:-))

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: frebe on
> >>>> Others
> >>>> quietly create their *libraries*. They might call them "engine",
> >>>> "middleware", "framework", but show nothing alike that manic disorder the
> >>>> former suffer... (:-))
>
> >>> What libraries are you suggesting instead of a SQL database? Please
> >>> show me some example.
>
> >> There exist lots of container libraries.
>
> > Please point out one library that could be used instead of a SQL
> > database for an inventory management application?
>
> As I said, write the requirements. The problem of you and the OP is that
> you don't care to write the requirements down. Instead of that you think in
> terms of DB records, i.e. an implementation. The rest follows. In OO one
> would first identify and describe the things and only then say, "hey, that
> looks much like a relation!"

You claim that it does exists libraries that can be used instead of an
SQL database, and do the job better. You have yet failed to point one
single library suitable for example an inventory management
application. I will not explain in detail for you what such an
application do, you have to use you experience or imagination.

Please give some examples of libraries that would be suitable instead
of a SQL database. Otherwise we have to assume that such library
doesn't exists.

//frebe
From: Dmitry A. Kazakov on
On Fri, 4 Jan 2008 07:14:02 -0800 (PST), frebe wrote:

>>>>>> Others
>>>>>> quietly create their *libraries*. They might call them "engine",
>>>>>> "middleware", "framework", but show nothing alike that manic disorder the
>>>>>> former suffer... (:-))
>>
>>>>> What libraries are you suggesting instead of a SQL database? Please
>>>>> show me some example.
>>
>>>> There exist lots of container libraries.
>>
>>> Please point out one library that could be used instead of a SQL
>>> database for an inventory management application?
>>
>> As I said, write the requirements. The problem of you and the OP is that
>> you don't care to write the requirements down. Instead of that you think in
>> terms of DB records, i.e. an implementation. The rest follows. In OO one
>> would first identify and describe the things and only then say, "hey, that
>> looks much like a relation!"
>
> You claim that it does exists libraries that can be used instead of an
> SQL database, and do the job better.

Which job? Describe it in the form of requirements.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de