I have heard some say on the Net that Lisp-based development is fast as well as intellectually very elegant and fulfilling. That Lisp is "the programmable programming language"... All this is certainly very encouraging; I tend to even believe all this, esp after reading Paul Graham's success story and a few articles here and there. However, since it may be a while before I know Lisp enough to be able to find my own answers, (just got my copies of Ansi Common Lisp and Practical Common Lisp) could some of you fine Lispers share your insights on the following in the meantime?
1. How could Lisp be exploited in building enterprise applications (versus going the J2EE or .NET route)? In Web tier and in Biz Logic tier?
2. While I (am not afraid to and in fact) love writing code from scratch if needed (and if permitted), what community support (in the form of free/opensource libraries/packages similar to Perl CPAN and various Java/C/C++ sites) is available for Lisp?
3. Could folks who have tried both J2EE and Lisp for enterprise computing share their experiences and insights?
4. How much of a pure functional style of programming (with no setf's) could be used in building a non-trivial enterprise application? I'm coming from primarily an imperative programming background (Java/C/C+ +) and am wondering how could one possibly write a nontrivial/large application without side-effects!
5. What arguments could I give to my mgt (of primarily a J2EE shop) to give Lisp a small and cautious try?
> I have heard some say on the Net that Lisp-based development is fast > as well as intellectually very elegant and fulfilling. That Lisp is > "the programmable programming language"... All this is certainly very > encouraging; I tend to even believe all this, esp after reading Paul > Graham's success story and a few articles here and there. However, > since it may be a while before I know Lisp enough to be able to find > my own answers, (just got my copies of Ansi Common Lisp and Practical > Common Lisp) could some of you fine Lispers share your insights on the > following in the meantime?
> 1. How could Lisp be exploited in building enterprise applications > (versus going the J2EE or .NET route)? In Web tier and in Biz Logic > tier?
Yes.
> 2. While I (am not afraid to and in fact) love writing code from > scratch if needed (and if permitted), what community support (in the > form of free/opensource libraries/packages similar to Perl CPAN and > various Java/C/C++ sites) is available for Lisp?
> 3. Could folks who have tried both J2EE and Lisp for enterprise > computing share their experiences and insights?
I've not tried J2EE.
> 4. How much of a pure functional style of programming (with no setf's) > could be used in building a non-trivial enterprise application? I'm > coming from primarily an imperative programming background (Java/C/C+ > +) and am wondering how could one possibly write a nontrivial/large > application without side-effects!
A very big lot. Of course, it would be silly to try to implement 100% of your code in a purely functional way, but a lot of internal and library code can be written this way, with big profits in debugging time and integration time.
> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to > give Lisp a small and cautious try?
This is hard to say.
To switch over, you'd basically have to fire all the java monkeys^W coders and hire one tenth or one fiftieth of CL programmers. Paying the CL coders three or four times a java m^coder, you'd divide the salary mass by anything between 3 and 12. If you'd rewrite all the code base you'd reduce it to one hundredth at least (that means, you'd divide the number of bugs by at least one hundred).
But doing just one small a cautious step, it'd be less obvious.
> I have heard some say on the Net that Lisp-based development is fast > as well as intellectually very elegant and fulfilling. That Lisp is > "the programmable programming language"... All this is certainly very > encouraging; I tend to even believe all this, esp after reading Paul > Graham's success story and a few articles here and there. However, > since it may be a while before I know Lisp enough to be able to find > my own answers, (just got my copies of Ansi Common Lisp and Practical > Common Lisp) could some of you fine Lispers share your insights on the > following in the meantime?
> 1. How could Lisp be exploited in building enterprise applications > (versus going the J2EE or .NET route)? In Web tier and in Biz Logic > tier?
I do not know anything about tiers or j2ee, I was lucky enough to miss all that.
> 2. While I (am not afraid to and in fact) love writing code from > scratch if needed (and if permitted), what community support (in the > form of free/opensource libraries/packages similar to Perl CPAN and > various Java/C/C++ sites) is available for Lisp?
Anything in C, and if you are all enterprise-y and everything and use Franz I hear they have a Java FFI.
> 3. Could folks who have tried both J2EE and Lisp for enterprise > computing share their experiences and insights?
> 4. How much of a pure functional style of programming (with no setf's) > could be used in building a non-trivial enterprise application? I'm > coming from primarily an imperative programming background (Java/C/C+ > +) and am wondering how could one possibly write a nontrivial/large > application without side-effects!
CL is a multi-paradigm language. The pure FP nutjobs will try to sell you on monads. No, that is not a joke.
> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to > give Lisp a small and cautious try?
Point out to them that it will be small and cautious. This will confuse them long enough for you to finish the experiment.
What I did was not tell the boss until the experiment was succeeded. Most bosses appreciate not having to decide these things.
>> I have heard some say on the Net that Lisp-based development is fast >> as well as intellectually very elegant and fulfilling. That Lisp is >> "the programmable programming language"... All this is certainly very >> encouraging; I tend to even believe all this, esp after reading Paul >> Graham's success story and a few articles here and there. However, >> since it may be a while before I know Lisp enough to be able to find >> my own answers, (just got my copies of Ansi Common Lisp and Practical >> Common Lisp) could some of you fine Lispers share your insights on the >> following in the meantime?
>> 1. How could Lisp be exploited in building enterprise applications >> (versus going the J2EE or .NET route)? In Web tier and in Biz Logic >> tier?
> I do not know anything about tiers or j2ee, I was lucky enough to miss > all that.
>> 2. While I (am not afraid to and in fact) love writing code from >> scratch if needed (and if permitted), what community support (in the >> form of free/opensource libraries/packages similar to Perl CPAN and >> various Java/C/C++ sites) is available for Lisp?
> Anything in C, and if you are all enterprise-y and everything and use > Franz I hear they have a Java FFI.
>> 3. Could folks who have tried both J2EE and Lisp for enterprise >> computing share their experiences and insights?
>> 4. How much of a pure functional style of programming (with no setf's) >> could be used in building a non-trivial enterprise application? I'm >> coming from primarily an imperative programming background (Java/C/C+ >> +) and am wondering how could one possibly write a nontrivial/large >> application without side-effects!
> CL is a multi-paradigm language. The pure FP nutjobs will try to sell > you on monads. No, that is not a joke.
>> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to >> give Lisp a small and cautious try?
> Point out to them that it will be small and cautious. This will confuse > them long enough for you to finish the experiment.
> What I did was not tell the boss until the experiment was succeeded. > Most bosses appreciate not having to decide these things.
> hth, kenny
I agree - if you have the flexibility to do that, or are motivated enough to do it at home, then that's the best way. Asking to do an experiment may simply confuse and raise abstract objections - showing a result misses all that bit out...
>>> I have heard some say on the Net that Lisp-based development is fast >>> as well as intellectually very elegant and fulfilling. That Lisp is >>> "the programmable programming language"... All this is certainly very >>> encouraging; I tend to even believe all this, esp after reading Paul >>> Graham's success story and a few articles here and there. However, >>> since it may be a while before I know Lisp enough to be able to find >>> my own answers, (just got my copies of Ansi Common Lisp and Practical >>> Common Lisp) could some of you fine Lispers share your insights on the >>> following in the meantime?
>>> 1. How could Lisp be exploited in building enterprise applications >>> (versus going the J2EE or .NET route)? In Web tier and in Biz Logic >>> tier?
>> I do not know anything about tiers or j2ee, I was lucky enough to miss >> all that.
>>> 2. While I (am not afraid to and in fact) love writing code from >>> scratch if needed (and if permitted), what community support (in the >>> form of free/opensource libraries/packages similar to Perl CPAN and >>> various Java/C/C++ sites) is available for Lisp?
>> Anything in C, and if you are all enterprise-y and everything and use >> Franz I hear they have a Java FFI.
>>> 3. Could folks who have tried both J2EE and Lisp for enterprise >>> computing share their experiences and insights?
>>> 4. How much of a pure functional style of programming (with no setf's) >>> could be used in building a non-trivial enterprise application? I'm >>> coming from primarily an imperative programming background (Java/C/C+ >>> +) and am wondering how could one possibly write a nontrivial/large >>> application without side-effects!
>> CL is a multi-paradigm language. The pure FP nutjobs will try to sell >> you on monads. No, that is not a joke.
>>> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to >>> give Lisp a small and cautious try?
>> Point out to them that it will be small and cautious. This will >> confuse them long enough for you to finish the experiment.
>> What I did was not tell the boss until the experiment was succeeded. >> Most bosses appreciate not having to decide these things.
>> hth, kenny
> I agree - if you have the flexibility to do that, or are motivated > enough to do it at home, then that's the best way. Asking to do an > experiment may simply confuse and raise abstract objections - showing a > result misses all that bit out...
And if the OP *really* wants to get early buy-in from management they can point out the trend implicit in Perl/Python/Ruby towards agile dynamic languages actually points at CL which has the advantage of being mature, compiled, and standardized.
Then have a beerfest where everyone takes turns reading aloud from:
this is what hibernate does for java, but as a co-author i'm not in the position of sharing my opinion on how they compare to each other... :)
> 3. Could folks who have tried both J2EE and Lisp for enterprise > computing share their experiences and insights?
j2ee is a goddamn bullshit. take a static language without syntactic abstractions, write a lot of code that is supposed to glue together easily to form actual applications, realized that it doesn't, and then bring in XML to the rescue... should i continue? i've spent 3-4 years fighting that shit before i quit to work as a full-time lisp freelancer.
> 4. How much of a pure functional style of programming (with no setf's) > could be used in building a non-trivial enterprise application? I'm > coming from primarily an imperative programming background (Java/C/C+ > +) and am wondering how could one possibly write a nontrivial/large > application without side-effects!
the point is to minimize sideeffects, not to live without them. where you have no sideeffects you can have lazy evaluation (not with stock CL, though) and testing functional code is much simpler.
> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to > give Lisp a small and cautious try?
been there, done that. the most you can get out of it is that you'll be the black sheep of the company. or, if memory serves well, you "start your own f*ing company!"... :D
On Mar 17, 5:52 am, Harry <simonsha...@gmail.com> wrote:
> 5. What arguments could I give to my mgt (of primarily a J2EE shop) to > give Lisp a small and cautious try?
I'm using lisp (sbcl) myself after years of J2EE and MS (COM, ASP, dotnet) development. So if you can use common lisp. If you can't for some reason (management is against) then you can use Clojure http://clojure.sourceforge.net/ It is a lisp like (not CL and not scheme) language on JVM, that comes in a normal java jar, and can be dropped into your J2EE application.
On Mar 17, 6:52 am, Harry <simonsha...@gmail.com> wrote:
> 4. How much of a pure functional style of programming (with no setf's) > could be used in building a non-trivial enterprise application? I'm > coming from primarily an imperative programming background (Java/C/C+ > +) and am wondering how could one possibly write a nontrivial/large > application without side-effects!
I think I work harder than the vast majority of Lisp programmers at using a functional style whenever it makes sense, but I've never tried to write an entire application without side effects, nor would I recommend such an undertaking to someone in your situation. (As a research exercise it might be interesting, but you need to write code that your colleagues could have some hope of maintaining.)
I will, however, take the opportunity to recommend FSet, my functional collections package for Common Lisp:
Well, I'm not saying you should try to use FSet from the beginning. First you need to learn to use lists in a functional way. But as you write Lisp applications, sooner or later you will come to a point where some part of your code is using lists that are getting too long to be efficient (since, for instance, finding something in a list requires a linear search). At that point you might consider substituting an FSet type for the long list. (Lisp also offers vectors and hash tables, but these are imperative types.)
Of course, this would be easier if I had gotten around to writing any tutorial material for FSet, which I have not :(
> 2. While I (am not afraid to and in fact) love writing code from > scratch if needed (and if permitted), what community support (in the > form of free/opensource libraries/packages similar to Perl CPAN and > various Java/C/C++ sites) is available for Lisp?
Any programming language is a human language, therefore shaped by its community. When you choose a language, you choose a community. Lisp is very good technically but has a very bad community spirit. Be warned. Bad vibrations float all around since it was born, with Greenblatt and the people from LMI hating Knight and Symbolics, Raymond hating Gabriel, and everyone hating and being hated by Stallman. The examples could go on and on... This translates most notably in the lack of a CLAN site comparable to CPAN. We are building now a renewed community which tries to overcome such bad habits. Be welcome to join efforts.