From: frebe on
> Provide a resource manager for your map object and it
> can participate in global transactions managed by Tuxedo or similar
> products.
My point if you are using a RDBMS the resource manager is already
there. If you are using maps, lists, etc, you also need a resource
manager specially written for these kind of collection classes.

Fredrik Bertilsson
http://butler.sourceforge.net

From: Dmitry A. Kazakov on
On 28 Jan 2006 22:58:08 -0800, topmind wrote:

> Christian Brunschen wrote:

>> And you will be right to a point, but only to a point. Everything is a
>> 'representation' on some level. But with objects, I can represent the
>> _behaviour_, rather than just the _data_. The objects expose the behaviour
>> and hide the data; the database can expose only the data, because that is
>> the only thing it has. (Again, excluding for this argument the fact that
>> database engines these days have grown extensions which include
>> programming languages, precisely to circumvent these restrictions in the
>> relational model.)
>
> But data is more "mathable" than behavior in this point in history

This deserves an explanation, why do you think so. It seems obviously
wrong. Mathematics deals with categories such as rings, fields, graphs,
topos etc and studies their behavior. It has very little to do with
processing data.

>>>In fact, DB tables are more sharable across languages than objects.
>>>Thus, by that criteria they are more generic.
>>
>> ... but only for storage of and sharing data. If you want to do more than
>> that, the database is simply not sufficient.
>
> Perhaps, but OO is no improvement over other approaches. Plus, many
> things that OO calls "behavior" can be *turned* into attributes if one
> knows how.

This is an argument to Turing completeness, so it is irrelevant, because a
finer measure than equivalence is required here to judge. What you call
tables can be converted to "behavior", and everybody knows how.

>> Similarly, just because different object-oriented programming languages
>> may have problemsinteroperating with each other's objects, isn't a failing
>> of object-orientation.
>
> Non-OOP protocols are usually easier to share.

True, when they are low-level. But note:

1. If they aren't then it is wrong

2. If they are and communication is inherently complex, then it is a heavy
burden for the participants. Example: the boot time of well-known OSes
paradoxically grows with the CPU speed, because protocols are so low-level.

So your argument is actually: simple things are simple...

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Dmitry A. Kazakov on
On 28 Jan 2006 23:58:38 -0800, frebe wrote:

>> Provide a resource manager for your map object and it
>> can participate in global transactions managed by Tuxedo or similar
>> products.
> My point if you are using a RDBMS the resource manager is already
> there.

*A* resource manager, you mean.

For my application I was forced to implement a sort of my own higher-order
GC over the DBMS, because triggers were unable to collect what and how I
needed it.

> If you are using maps, lists, etc, you also need a resource
> manager specially written for these kind of collection classes.

Yes, because containers are decoupled from resource management for a good
reason. There cannot be universal resource manager. Therefore all good
container libraries are usually designed to be independent on resource
management. However, if it is known in advance, which kind of management is
needed, then it is [sometimes] possible to implement that on top of
existing components. This is the power of OO (ADT) software design
paradigm: an ability to decompose larger problems into relatively
independent smaller ones.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Dmitry A. Kazakov on
On 28 Jan 2006 22:43:11 -0800, topmind wrote:

>> OK, show us some use cases that support your assertions, then - that show
>> that it is even _possible_. Show how a 'general-purpose string
>> matching/finding tool' is a 'general-purpose tool' _outside_ of its domain
>> - which is finding predefined patters within strings.
>
> That is an interesting challenge that I am not up to. I've encountered
> programmers who claimed they could do such and they gave some
> interesting examples of what can be done. However, I don't have the
> link right now. I suggest you try a Perl forum perhaps. Generally they
> can use strings to represent stacks, queues, lists, passible
> "functions" (code snippets that are later Eval'ed), etc. and regex's to
> parse and unparse such strings.

Write a pattern that inverses an arbitrary string: "abcd" --> "dcba". You
cannot do it with regular expressions, which are very limited in power.
SNOBOL can this, but it is Turing-complete language. [ For all you need a
user stack or equivalent and recursion. Standard regular expressions lack
both. ]

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
From: Patrick May on
"frebe" <fredrik_bertilsson(a)passagen.se> writes:
> > Provide a resource manager for your map object and it can
> > participate in global transactions managed by Tuxedo or similar
> > products.
>
> My point if you are using a RDBMS the resource manager is already
> there. If you are using maps, lists, etc, you also need a resource
> manager specially written for these kind of collection classes.

A resource manager for the entities within the domain of the
RDBMS is available, yes. You are, however, moving the goalposts.
Your original question was: "Can you name any other product offering
transaction support for things not within their domain?" Transaction
managers do exactly that.

Sincerely,

Patrick

------------------------------------------------------------------------
S P Engineering, Inc. | The experts in large scale distributed OO
| systems design and implementation.
pjm(a)spe.com | (C++, Java, Common Lisp, Jini, CORBA, UML)