From: Rainer Joswig on
In article <m2d5gxpndo.fsf(a)gigamonkeys.com>,
Peter Seibel <peter(a)gigamonkeys.com> wrote:

> Next month I'm goin to be giving a talk[1] about the effect of
> programming language on software architecture. I'm thinking about what
> the heck I'm going to say and how to turn it into an oppotunity to
> brag on Lisp. So if you have any good war stories about how using Lisp
> (or any other language for that matter) had an affect on the
> architecture of the system you were working on, I'd love to hear
> them.
>
> -Peter
>
> [1] April 26th at the Software Architecture and Modeling SIG of
> SDForum in Palo Alto

I think there are lots of architecture- and Lisp-related topics:

- multiparadigm architectures (rules + objects + constraints + ...)
- very object-oriented architectures
- layered language architectures (objects on the bottom,
then functions, then macros)
- architectures which use exotic (non-mainstream) paradigms
- open architectures (-> Xerox, MIT Lispm)
- Meta-level architectures
- Architecture development (RAD, Prototypes, ...)
- Evolvable architectures
- 'Knowledge-based' systems and their architectures

and probably more...

For all of the above one should be able to find papers/examples.

--
http://lispm.dyndns.org/
From: Ken Tilton on
> Peter Seibel wrote:
>
>> Next month I'm goin to be giving a talk[1] about the effect of
>> programming language on software architecture. I'm thinking about what
>> the heck I'm going to say and how to turn it into an oppotunity to
>> brag on Lisp. So if you have any good war stories about how using Lisp
>> (or any other language for that matter) had an affect on the
>> architecture of the system you were working on, I'd love to hear
>> them.

Too bad you gave up on Cells at the first backtrace. Cells simply fell
out of an attack on an application problem, turned into a paradigm, took
over the whole application. Would never have happened without
first-class functions, closures, macros, CLOS, untyped variables...

kt
From: Wade Humeniuk on
Sacha wrote:

> I'm a lisp newbie, freelance programmer working for telephone companies.
> There is one thing i made and remade in about every language i worked with :
> the telephony pricelist.
> Though this looks like a simple task, the thing can be quite involved as my
> customers need all the configuration options you could imagine and a lot
> more too. It kind of became my benchmark implementation for language
> testing.
> They say lisp is different, so i'm building yet another pricelist using
> lisp.
> To say the truth, it looks like it'll eventually be quite the same thing as
> my other implementations. Maybe am i too much of a newbie still, but hey
> they say another thing : you need to build programs in order to learn =P
>

How about creating a Pricelist expert language instead? Then your
customers can specify/create/maintain their own "pricelists". Start
with one that has a Lisp syntax and then go from there.

Wade
From: Simon Brooke on
in message <m2d5gxpndo.fsf(a)gigamonkeys.com>, Peter Seibel
('peter(a)gigamonkeys.com') wrote:

> Next month I'm goin to be giving a talk[1] about the effect of
> programming language on software architecture. I'm thinking about what
> the heck I'm going to say and how to turn it into an oppotunity to
> brag on Lisp. So if you have any good war stories about how using Lisp
> (or any other language for that matter) had an affect on the
> architecture of the system you were working on, I'd love to hear
> them.

If you're using any Algol family language, up to and including
Java/C#/C++ etc, or FORTRAN and derivatives, then one of the issues is
data object size. Doing the equivalent of

(* pi (factorial 1000))

in most languages requires not only a lot of special libraries but also a
lot of special syntax. This leads you to think about your problem space
in two's complement 32 or 64 bit integers, and in 32 or 64 bit IEEE 754
encoded reals. That in turn leads you to accept rounding errors as
inevitable, even if they're not. You don't expect the equivalent of

(+ 22/7 1/7)

to return exactly 23/7. You expect rounding error. You say 'it's
inevitable'; you say 'it doesn't matter'.

If you use any statically typed language - Algol family, Fortran family,
any of them - you have to make early commitments to the type of an
object that you don't yet know much about. In Java (and its derivatives)
or C++, for example, you can't at all easily move an object about in the
class hierarchy; the class it was born in, it dies in. There's no social
mobility for objects.

All these things (and many others) limit the way you think about a
problem space. They limit what you can build because they limit what you
can think of.

If this post has been any use to you you might want to look at my
currently developing essay 'Post Scarcity Software', which is here
<URL:http://www.jasmine.org.uk:80/dogfood/story/article_42.html>

--
simon(a)jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/
"The result is a language that... not even its mother could
love. Like the camel, Common Lisp is a horse designed by
committee. Camels do have their uses."
;; Scott Fahlman, 7 March 1995


From: Ken Tilton on
Sacha wrote:
> "Peter Seibel" <peter(a)gigamonkeys.com> wrote in message
> news:m2d5gxpndo.fsf(a)gigamonkeys.com...
>
>>Next month I'm goin to be giving a talk[1] about the effect of
>>programming language on software architecture. <snip>
>
>
> Shouldn't the language be considered as an implementation detail ?
> It is my beleif that the architecture is on a different level.
>
> Now this might not hold true for dynamic languages. Until now I only used
> c++, c# and delphi for large projects, and these are all alike after all. So
> I migh be completely wrong here.
>
> On the other hand, it seems to me that my father was doing OO programming
> using bare bone pointers back in the days.
> That's a good example of a good concept crossing the language frontiers.
>
> I'm a lisp newbie, freelance programmer working for telephone companies.
> There is one thing i made and remade in about every language i worked with :
> the telephony pricelist.
> Though this looks like a simple task, the thing can be quite involved as my
> customers need all the configuration options you could imagine and a lot
> more too. It kind of became my benchmark implementation for language
> testing.
> They say lisp is different, so i'm building yet another pricelist using
> lisp.
> To say the truth, it looks like it'll eventually be quite the same thing as
> my other implementations.

Not after you post it to c.l.l. :)

> Maybe am i too much of a newbie still,...

No, that is not the problem. Many newbies (but not you, it seems) go too
far in straining to do things The Lisp Way. This is good, this is how
one learns something new, breaks the mold: throw oneself into it with
gusto, try to be functional, try to leverage CLOS and macros, yada yada.

> but hey
> they say another thing : you need to build programs in order to learn =P

Building programs will not help you; Lisp is a multi-paradigm language,
so you can write code as if it were C. Which it seems you are. Having
solved the problem several times already, you are just writing the same
code in Lisp. What do you think it is going to look like?

Most newbies in your situation are sharp enough to say, "Hey, my Lisp
code looks just like my C code, what am I doing wrong?" Your grand
conclusion is that Lisp is no different than C. Hmmmmm....

ken

First  |  Prev  |  Next  |  Last
Pages: 1 2 3 4 5 6 7 8 9 10 11 12
Prev: cosx - sinx + 3x2
Next: the Modernization of Emacs