From: Davor on

topmind wrote:
> Davor wrote:
> > topmind wrote:
> >
> > > In this twisted analogy, what is my counterpart to VIM and reg-ex?
> >
> > VIM = (let's say) Microsoft Access
> >
> > (both very complex systems)
>
> Perhaps unnecessarily so :-)
>
> >
> > reg-ex = SQL
> >
> > (both very nice domain specific declarative languages based on solid
> > mathematical theory)
>
> This implies that if you have relational tools, you don't need OO. Is
> this what you are implying or agreeing to?

No, I was not implying anything - I was just trying to understand what
problem you'd like us to work on... It appears that you are implying
something along these lines...

> How many others would consider relational a "domain specific" tool?

I have said domain specific *declarative languages* - not tools...
Regex and SQL are not general purpose programing languages... They are
domain specific, where domain for

regex - simple(?) text data pattern matching
sql - data that is a subset of the Cartesian product of finite number
of sets and it's manipulation

So, if anything you should be happy since I have constructed another
clear example where OOP and what can be done using typical OOP langs
clearly sucks as compared to what we can do with already built
applications and domain specific languages for manipulation of well
defined data...

So in summary your challenge and my challenge to this community is:

DATA
--------
your problem - relational data
my problem - unstructured text

APPLICATIONS
-----------------------
your problem - RDBMS with SQL support
my problem - text editors with regex support

LANGUAGES
--------------------
your problem - SQL
my problem - regex


Also, what Dmitry was pointing out is the limitations of regex, in my
example, and how you'd have to go back to building full blown parsers
for some of the problem, and implied that you'd throw back at him the
issue that in day-to-day work you don't need to build a parser (ie. you
wouldn't use VIMs regex capabilities to parse Linux kernel for example
- since parsing Linux kernel is not your day-to-day activity)...

So, we have two problem areas where they won't beat us with general OOP
solution, but I'm also not sure how fair it is to throw these examples
at them - unless you let them build from scratch another RDBMS and text
editor with SQL and regex compilers, what two of us are taking for
granted in our solutions ;-))

Davor

From: Davor on
OK, here is an integrated OO/relational model

http://www.djangoproject.com/documentation/model_api/

so, as you can see OO is not a substitute for relational processing...

Davor

From: topmind on

Davor wrote:
> topmind wrote:
> > Davor wrote:
> > > topmind wrote:

> So in summary your challenge and my challenge to this community is:
>
> DATA
> --------
> your problem - relational data
> my problem - unstructured text
>
> APPLICATIONS
> -----------------------
> your problem - RDBMS with SQL support
> my problem - text editors with regex support
>
> LANGUAGES
> --------------------
> your problem - SQL
> my problem - regex
>
>
> Also, what Dmitry was pointing out is the limitations of regex, in my
> example, and how you'd have to go back to building full blown parsers
> for some of the problem,

That may not necessarily be the case. It may be that regex could do
some of the work, and regular looping code do the rest. Regex might
provide the candidates and imperative then processes those for final
determination, or visa-versa. SQL is often like this: it takes you 80%
of the way to a solution, but imperative diddling is required for the
final 20%, for example. Thus, it may not be an all-or-nothing thing.
One may not have to completely abandon reg-ex to make say a language
parser. (Although I am not a reg-ex or lang parse whiz at this point,
so take it only as a suggestion to look into.)

> Davor

-T-

From: Davor on
topmind wrote:
> That may not necessarily be the case. It may be that regex could do
> some of the work, and regular looping code do the rest. Regex might
> provide the candidates and imperative then processes those for final
> determination, or visa-versa. SQL is often like this: it takes you 80%
> of the way to a solution, but imperative diddling is required for the
> final 20%, for example. Thus, it may not be an all-or-nothing thing.

Well, that's exactly what I'm talking about too - if you want a
comparison, I think it's appropriate to ask only for the comparison if
procedural part is compared, so given an example that a good solution
requires

20% of requirements to be handled using *procedural* processing
80% of requirements to be handled using *relational* processing

how would a solution look like if we require 20% of procedural part to
be handled OO style... i.e., preserve exactly same tables and SQL
statements in both solutions and compare only the rest...

This is what I see as a meaningful challenge. I've never seen OO as a
substitute for *relational* processing *since* the underlying type of
processing supported by mainstream OO languages is *imperative*
processing! And this is exactly what is done in practice as you can see
with the example system I linked to in my previous post.

Davor

From: topmind on

Dmitry A. Kazakov wrote:
> On 8 Jul 2006 18:06:05 -0700, topmind wrote:
>
> > Dmitry A. Kazakov wrote:
> >> On 8 Jul 2006 12:46:09 -0700, Davor wrote:
> >>
> >>> topmind wrote:
> >>>> Besides my criticisms are about OO, not imperative. I thus don't
> >>>> understand your complaint.
> >>>
> >>> OK, maybe this will help, my feeling is that you are throwing at
> >>> comp.object community a challenge that follows following pattern:
> >>>
> >>> In *my* application area people write text. That text is data that
> >>> people constantly manipulate. I think OOP solution to this type of data
> >>> manipulation sucks. In particular in my application area, I use text
> >>> editor with advanced text processing capabilities, including regex, and
> >>> so on, that completely satisfies all my needs. If your OOP is so good,
> >>> show me a better way of doing what I do regularly using my VIM editor.
> >>>
> >>> Here is a concrete example that everyone who has went to a college has
> >>> accounted:
> >>>
> >>> In the following text replace all occurrences of "bla" with "alb":
> >>>
> >>> aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla
> >>> aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla
> >>> aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla aaaa bla
> >>>
> >>> My solution is
> >>>
> >>>:%s/bla/alb/g
> >>>
> >>> Let me see your OOP solution to this problem if OOP is so good!
> >
> > In this twisted analogy, what is my counterpart to VIM and reg-ex?
> >
> >> And if somebody pointed out that this solution won't work if bla shouldn't
> >> be replaced in quoted strings and comments, because standard regular
> >> expressions fundamentally cannot match nested things. He would answer that
> >> it is academic and out of biz.
> >
> > Are you accusing me of intentionally misrepresenting what my domain
> > requires? Where have I done such? Your analogies make no sense.
>
> No, it is merely a refutation of your argumentation. You voluntarily vary
> the borders of what you call your domain to elude uncomfortable questions
> about applicability of the methods you propose.

I deny intentionally doing such. If you have a clear-cut example of it
happening, I would like to inspect it.

> If you want to convince
> other people, show how your methods work in their domains!

That is not my goal. If OOP works better in systems software, so be it.
I am just protecting domains I care about from being oversold or
force-fed OO.

>
> --
> Regards,
> Dmitry A. Kazakov

-T-