I would like to know what lisp experts' opinions are in using CLOS to
write a large business application incorporating complex business rules
and a NLP interface--for example, an accounting software suite. I am
looking to either do this is Prolog + wxWidgets or in Lisp (Lispworks +
CAPI).
In evalulating lisp, I am trying to decide if CLOS should be used as
opposed to using a combination of macros, closures and run-time typing
with maybe a smattering of structures and hash tables. I find that
either lisp or prolog are very useful for NLP--which is an integrated
component of the software I am trying to write.
I have also done some prototyping using OCAML, SML, and Haskell;
I like Algebraic DataTypes but CLOS seems to simulate/give more or less
the same functionality.
The mantra for OOP is that it helps to deal with complexity. Some Lisp
experts say though that there are alternatives to OOP/CLOS.
So would you use CLOS for writing a large scale business application?
·········@yahoo.com wrote:
> I would like to know what lisp experts' opinions are in using CLOS to
> write a large business application incorporating complex business rules
> and a NLP interface--for example, an accounting software suite. I am
> looking to either do this is Prolog + wxWidgets or in Lisp (Lispworks +
> CAPI).
>
Do you know that Lispworks comes with a Prolog compiler as well?
> In evalulating lisp, I am trying to decide if CLOS should be used as
> opposed to using a combination of macros, closures and run-time typing
> with maybe a smattering of structures and hash tables. I find that
> either lisp or prolog are very useful for NLP--which is an integrated
> component of the software I am trying to write.
>
> I have also done some prototyping using OCAML, SML, and Haskell;
> I like Algebraic DataTypes but CLOS seems to simulate/give more or less
> the same functionality.
>
Similar, more in some sense, less in some other.
> The mantra for OOP is that it helps to deal with complexity. Some Lisp
> experts say though that there are alternatives to OOP/CLOS.
> So would you use CLOS for writing a large scale business application?
Absolutely yes.
Cheers
--
Marco
·········@yahoo.com wrote:
> So would you use CLOS for writing a large scale business application?
>
I did. Worked great. This included persistent CLOS (via Franz's
AllegroStore) and marrying that to the (at the time) metaclass
implementation of my Cells dataflow hack. (Yes, multiple inheritance for
metaclasses -- did I score a first?) A Cell formula is a great place for
a business rule. Cells also let OOP deliver on the promise of re-use
(because different instances can have different rules for the same slot).
[Please note that in one article I am pimping both Cells and AllegroCL,
which should really piss off the yobs. :)]
--
Kenny
Why Lisp? http://wiki.alu.org/RtL_Highlight_Film
"I've wrestled with reality for 35 years, Doctor, and I'm happy to state
I finally won out over it."
Elwood P. Dowd, "Harvey", 1950
"Kenny Tilton" <·······@nyc.rr.com> wrote:
>
>
> ·········@yahoo.com wrote:
>
>> So would you use CLOS for writing a large scale business application?
>>
>
> I did. Worked great. This included persistent CLOS (via Franz's
> AllegroStore) and marrying that to the (at the time) metaclass
> implementation of my Cells dataflow hack. (Yes, multiple inheritance for
> metaclasses -- did I score a first?) A Cell formula is a great place for a
> business rule. Cells also let OOP deliver on the promise of re-use
> (because different instances can have different rules for the same slot).
>
> [Please note that in one article I am pimping both Cells and AllegroCL,
Kenny is right to pimp Cells here - I built a fairly large warehouse
management / accounting / mail-order / e-commerce package using it and it
absolutely ROCKS. I really don't think I could have done this without:
a) Common Lisp
b) CLOS
c) Cells (also cells-gtk)
Certainly roll your own OO if you want (closures, etc.), but you are losing
out on some great stuff if you do.
Look out for UnCommon Web (UCW) as well - I've had some good configuration /
testing apps from this.
> which should really piss off the yobs. :)]
Maybe, but I'll be shipping you some beer when my bonus comes in, so I'm
sure you'll be able to take them all on...
Jamie
>
> --
> Kenny
>
> Why Lisp? http://wiki.alu.org/RtL_Highlight_Film
>
> "I've wrestled with reality for 35 years, Doctor, and I'm happy to state I
> finally won out over it."
> Elwood P. Dowd, "Harvey", 1950
>
cells-gtk seems very interesting. Kenny, Jamie, thanks for the link. I
wil try it out.
Marco, I heard there was a Edinburgh style prolog available. I have
been unable to test it out
because at the moment I only have the personal edition of lispworks to
play around with.
I am unsure what the LIPS count of that implementation is. For my needs
it might be adequate. Also they have a (LISA/CLIPS style) expert system
shell (knowledgeworks). Allegro also offers prolog, based, I believe on
norvig code. I want to invest in a commercial compiler for robustness
for final software deployment (LISP people need to be paid for their
efforts).
Jamie Border wrote:
> "Kenny Tilton" <·······@nyc.rr.com> wrote:
>
>>
>>·········@yahoo.com wrote:
>>
>>
>>>So would you use CLOS for writing a large scale business application?
>>>
>>
>>I did. Worked great. This included persistent CLOS (via Franz's
>>AllegroStore) and marrying that to the (at the time) metaclass
>>implementation of my Cells dataflow hack. (Yes, multiple inheritance for
>>metaclasses -- did I score a first?) A Cell formula is a great place for a
>>business rule. Cells also let OOP deliver on the promise of re-use
>>(because different instances can have different rules for the same slot).
>>
>>[Please note that in one article I am pimping both Cells and AllegroCL,
>
>
> Kenny is right to pimp Cells here - I built a fairly large warehouse
> management / accounting / mail-order / e-commerce package using it and it
> absolutely ROCKS. I really don't think I could have done this without:
>
> a) Common Lisp
> b) CLOS
> c) Cells (also cells-gtk)
Are you serious? I was about to announce the Official Cells Production
User Population, after ten years of my incessant flogging of the hack,
to have reached 2, based on a recent post by Mr. Burdick that makes it
look like he is ... oh, hang on, he told me a long time ago he had
shipped a Cells Inside(tm) app. Anyway...
I would count Vasilis as #3, but Cells-gtk was just an (amazing)
exercise to him.
> Maybe, but I'll be shipping you some beer when my bonus comes in, so I'm
> sure you'll be able to take them all on...
Thx, I could use the income. My dream of a Cells consulting business is
fading as user after user turns out not to be hindered at all by my
deliberate withholding of documentation. :(
--
Kenny
Why Lisp? http://wiki.alu.org/RtL_Highlight_Film
"I've wrestled with reality for 35 years, Doctor, and I'm happy to state
I finally won out over it."
Elwood P. Dowd, "Harvey", 1950
Kenny Tilton <·······@nyc.rr.com> writes:
> Are you serious? I was about to announce the Official Cells Production
> User Population, after ten years of my incessant flogging of the hack,
> to have reached 2, based on a recent post by Mr. Burdick that makes it
> look like he is ... oh, hang on, he told me a long time ago he had
> shipped a Cells Inside(tm) app. Anyway...
A few, actually. As far as I can tell, all but one are still in production.
--
/|_ .-----------------------.
,' .\ / | Free Mumia Abu-Jamal! |
,--' _,' | Abolish the racist |
/ / | death penalty! |
( -. | `-----------------------'
| ) |
(`-. '--.)
`. )----'
From: Wade Humeniuk
Subject: Re: To CLOS or not to CLOS that is the question...
Date:
Message-ID: <qEi7f.37400$yS6.16142@clgrps12>
·········@yahoo.com wrote:
>
> The mantra for OOP is that it helps to deal with complexity. Some Lisp
> experts say though that there are alternatives to OOP/CLOS.
> So would you use CLOS for writing a large scale business application?
>
Part of it. OOP gets in the way of finding your way to a solution
in the beginning. This is because OOP is another constraint that will
limit your creativity. When you understand it (in this case means
implementing a running solution) you will be more able to cast
it into an OOP form. Whether you would want to to at this point
is academic, as there is nothing like success.
Wade