"Ricardo Borges" <[EMAIL PROTECTED]> writes:

> "Common Lisp is a multiparadigm, general-purpose programming
> language that: Supports a combination of procedural, functional and
> object-oriented programming paradigms."

> The question is not about the best paradigm to develop a solution. The
> idea for ORM is: if you choosen a OO language ( Java, C#, ...) is
> better design the project in OO world (UML) and coding OO (ORM) for a
> relational database. We doeas not have a OO database with the power of
> oracle, postgresql, etc...

First of all: The Java and C# way is not the only possible way to
design OO systems. Other OO systems are quite different and thus allow
rather different designs. CLOS (Common Lisp Object System) is in no
way comparable to Java or C# OO model. There exists an ORM for CLOS
(the ORM part is AFAIK not widley used and it doesn't get much
development effort), but it's quite different from the design of
(N)Hibernate.

The main problem is that mainstream tools are really dumb. If all you
know is the mainstream, then yes, (N)Hibernate really shines. I don't
know Hibernate much, but I'm really astonished what the NHibernate
people did and as said before I'm really impressed by the ideas
realised in the sources (and the quality of the sources).

But a look at solutions outside the mainstream may be really mind
opening. Concentrating on databases, you can find (AFAIK experimental)
products really implementing the ideas of The Third Manifesto and
Tutorial-D -- if you have played with these ideas, todays RDBMS and
SQL look really... stoneaged.

That's not all. Have a look at Allegro Cache (a commercial persistence
solution for the Common Lisp implementation Allegro CL). Maybe not a
solution for every database problem, but at least it compares very
well to MySQL and is capable of holding billions of records/objects
and terabyte of data. In this case, there just is no OO-RM
mismatch. SQL? Boring. Use an embedded prolog (first order logic) to
query and to really reason about your data -- complete AI technology
directly build in your persistence solution and at the same time
completly compatible with other AI and Common Lisp libraries and
technologies!

That's the way to go... but I think it will take at least another
30-50 years until these ideas of the Lisp community will reach the
mainstream.

You want to see new possibilities, revolutionary ideas? You want to
know how it feels to develop software in 30 year? Have a look at the
(Common) Lisp community today! :)

I found another really great idea in the Common Lisp community. An
individual developed a library called Cells and combined it with a GUI
library -- that's GUI development done right. Astonishing! Think of
Cells as a spreadsheet. Your objects have dynamically calculated
formulas attached (like the cells in a spreadsheet) and this is used
extensively in the GUI layer. Today you write masses of event handlers
that then go through many of your controls, menu items etc. and change
their states accordingly (like enabling/disabling menu items). With a
Cells enabled GUI library, you just define a cell for your menu item
declarativly describing it's behavior. If any dependency of this
formula changes, the formula is automatically recalculated and the
menu item changes it's state automatically.

Ever looked at Squeak (a modern implementation of Smalltalk with many
enhancements)? It's used by Alan Kay to teach kids programming. Just
great! He reinvented GUI and user interface in a quite different way.

I'm sure there are other niche communities out there with much more of
these astonishingly new (and sometimes repolished old) ideas. It is so
sad, that so many developers are ignorant of anything outside the
mainstream and that so many really great ideas never have a realistic
chance of reaching the mainstream...

OK, enough lamenting for today. Maybe more in another session. :)

-- 
Until the next mail...,
Stefan.

Attachment: pgpihDkjQfKQd.pgp
Description: PGP signature

Reply via email to