<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: What do they do at the Lisp Conference?</title>
	<atom:link href="http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/</link>
	<description>A posting every day; an interesting idea every three months...</description>
	<lastBuildDate>Sat, 05 Dec 2009 00:12:52 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Alok</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-14308</link>
		<dc:creator>Alok</dc:creator>
		<pubDate>Sat, 19 Aug 2006 23:31:37 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-14308</guid>
		<description>I am looking forward to attend the ILC 2007 in Cambridge http://www.alu.org/alu/alu-ilc-2007 I am a Lisp newbie who professionally codes in C++ most of the time. But I am very interested in exploring Lisp and its style of programming and indeed using Lisp for my personal purposes.</description>
		<content:encoded><![CDATA[<p>I am looking forward to attend the ILC 2007 in Cambridge <a href="http://www.alu.org/alu/alu-ilc-2007" rel="nofollow">http://www.alu.org/alu/alu-ilc-2007</a> I am a Lisp newbie who professionally codes in C++ most of the time. But I am very interested in exploring Lisp and its style of programming and indeed using Lisp for my personal purposes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tom Solomon</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5554</link>
		<dc:creator>Tom Solomon</dc:creator>
		<pubDate>Wed, 03 Sep 2003 03:47:41 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5554</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Didn&#039;t you found Lisp?</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Didn&#8217;t you found Lisp?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymous</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5436</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Tue, 26 Aug 2003 09:10:50 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5436</guid>
		<description>&lt;a&gt;&lt;/a&gt;

I&#039;m trying to learn java and lisp(scheme) at the same time. But why should I. Won&#039;t I be replaced by a programmer in the third world?</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>I&#8217;m trying to learn java and lisp(scheme) at the same time. But why should I. Won&#8217;t I be replaced by a programmer in the third world?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Johnson</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5415</link>
		<dc:creator>Justin Johnson</dc:creator>
		<pubDate>Sun, 24 Aug 2003 07:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5415</guid>
		<description>&lt;a&gt;&lt;/a&gt;

I&#039;m learning Common Lisp now for a class, after taking Scheme several years ago, and programming professionally in Java for a few years.

My highest level impression of Lisp is that it&#039;s too clever.  I can see how Lisp enables certain very elegant programming structures, how a 20 year veteran could whip something up that would wow an audience in less than 100 lines, how it&#039;s an extremely artful language.  And that may be its problem.

At the same time as Lisp offers great aesthetic possibilities, it stands in my way of accomplishing small things simply.  I&#039;m left with the nagging suspician that I&#039;m doing something wrong, even after I&#039;ve wittled things down to a beautiful, recursive nubbin of a function.  It&#039;s all parentheses and nested closures, and it seems incredibly un-intuitive, such that I despair of making it to that expert level where the universe unfolds for me in Lisp.

If I may analogize it to my art education, Lisp seems like brush drawing: a tool of great skill and delicacy allowing impossible things, but also one that seems out of reach to most actual artists.  It seems to rarefied to be useful to most.</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>I&#8217;m learning Common Lisp now for a class, after taking Scheme several years ago, and programming professionally in Java for a few years.</p>
<p>My highest level impression of Lisp is that it&#8217;s too clever.  I can see how Lisp enables certain very elegant programming structures, how a 20 year veteran could whip something up that would wow an audience in less than 100 lines, how it&#8217;s an extremely artful language.  And that may be its problem.</p>
<p>At the same time as Lisp offers great aesthetic possibilities, it stands in my way of accomplishing small things simply.  I&#8217;m left with the nagging suspician that I&#8217;m doing something wrong, even after I&#8217;ve wittled things down to a beautiful, recursive nubbin of a function.  It&#8217;s all parentheses and nested closures, and it seems incredibly un-intuitive, such that I despair of making it to that expert level where the universe unfolds for me in Lisp.</p>
<p>If I may analogize it to my art education, Lisp seems like brush drawing: a tool of great skill and delicacy allowing impossible things, but also one that seems out of reach to most actual artists.  It seems to rarefied to be useful to most.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: William Morton</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5335</link>
		<dc:creator>William Morton</dc:creator>
		<pubDate>Fri, 15 Aug 2003 19:51:22 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5335</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Fazal,

In truth, many areas have too much healthcare (see http://www.dartmouthatlas.org/) - and &quot;more&quot; often does not translate to &quot;better&quot;. As I&#039;m sure you&#039;re aware, the same can be said for software engineering. Possibly why Lisp gets short-shrift?

Two other quick comments:

- The debate over the MMR vaccine and autism stemmed from a highly flawed study published in The Lancet (e.g. very small, non-random sample). The concern with Thimerosal (mercury-containing vaccine preservative) has more scientific merit.

- I believe France has socialized medicine, which means the government foots most of the bill.</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Fazal,</p>
<p>In truth, many areas have too much healthcare (see <a href="http://www.dartmouthatlas.org/)" rel="nofollow">http://www.dartmouthatlas.org/)</a> &#8211; and &#8220;more&#8221; often does not translate to &#8220;better&#8221;. As I&#8217;m sure you&#8217;re aware, the same can be said for software engineering. Possibly why Lisp gets short-shrift?</p>
<p>Two other quick comments:</p>
<p>- The debate over the MMR vaccine and autism stemmed from a highly flawed study published in The Lancet (e.g. very small, non-random sample). The concern with Thimerosal (mercury-containing vaccine preservative) has more scientific merit.</p>
<p>- I believe France has socialized medicine, which means the government foots most of the bill.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kristian SÃ¸rensen</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5324</link>
		<dc:creator>Kristian SÃ¸rensen</dc:creator>
		<pubDate>Thu, 14 Aug 2003 17:46:20 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5324</guid>
		<description>&lt;a&gt;&lt;/a&gt;


Having learned Lisp over the eight months and presently being in the process of creating a product using Common Lisp, I could not resist to commetn on this thread.



Boradly speaking todays Common Lisp implementations offers all I can get from the SUN Standard Edition java except a cross OS/hardware/Common Lisp implementation GUI toolkit.



Yes Common Lisp of today does have threads and tcp/ip sockets. Though they are not a part of the ANSI standard, libraries exists that gives them a uniform API no matter which Common Lisp implementation you are targeting. The threads comes on both flawors, ie. in-process simulated ones (called green threads in java), and threads the OS is aware of and can spread over multiple CPUs etc. Of course you can also fork in Common Lisp.



What Common Lisp gives me that Java does not give strait away me is:

macros (which again can give me a great amount of features unavailable in java, C++, c#, VB etc.)
continuations (only available in CL after a little extra work - see &quot;ANSI Common Lisp&quot;)
signals and restarts
generic functions and the dispatch model of CLOS
multiple return values, optional arguments
type checks that can be switched on and off as needed in the various phases of program creation
multiple vendors of mature compiler and runtime implementations




Regarding the alleged lack of substitutes for J2EE, Xerces etc. I have experienced this as less of a disadvantage than I had anticipated. It turns out that by using macros and lambda functions combined with restarts and signals while taking advantage of closures it is possible to do what JSP/Servlets/EJB are trying to do, and do it with so few lines of code that J2EE seems extremely cumbersome in comparison. Basically what is happening is that you are able to get a few layers of abstraction above the level on which J2EE operates, and this is what gives the productivity gain. I am exploring this at the moment, and being both surprised and very pleased at what I discover!




Regarding the programming environment it is a mixed bag. The Franz implementation has a wonderfully productivity enhancing IDE while implementations such as the CMU CL comes without an IDE, and you are supposed to use xemacs, which btw. is a surprisingly effective way of working with the ilisp package.



What I am doubting at the moment is how well Common Lisp lends itself to projects with more than two-three programmers, or with programmers who are less than very good at understanding a program in great detail as well as on all the higher levels of abstraction at the same time.



Java seems to be very good for situations where you need to enforce processes upon a great number of programmers in order to avoid having them shoot each other in the foot, and instead actually being able to produce something. This makes Java a likely &quot;COBOL for the 21 century&quot;. 
</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Having learned Lisp over the eight months and presently being in the process of creating a product using Common Lisp, I could not resist to commetn on this thread.</p>
<p>Boradly speaking todays Common Lisp implementations offers all I can get from the SUN Standard Edition java except a cross OS/hardware/Common Lisp implementation GUI toolkit.</p>
<p>Yes Common Lisp of today does have threads and tcp/ip sockets. Though they are not a part of the ANSI standard, libraries exists that gives them a uniform API no matter which Common Lisp implementation you are targeting. The threads comes on both flawors, ie. in-process simulated ones (called green threads in java), and threads the OS is aware of and can spread over multiple CPUs etc. Of course you can also fork in Common Lisp.</p>
<p>What Common Lisp gives me that Java does not give strait away me is:</p>
<p>macros (which again can give me a great amount of features unavailable in java, C++, c#, VB etc.)<br />
continuations (only available in CL after a little extra work &#8211; see &#8220;ANSI Common Lisp&#8221;)<br />
signals and restarts<br />
generic functions and the dispatch model of CLOS<br />
multiple return values, optional arguments<br />
type checks that can be switched on and off as needed in the various phases of program creation<br />
multiple vendors of mature compiler and runtime implementations</p>
<p>Regarding the alleged lack of substitutes for J2EE, Xerces etc. I have experienced this as less of a disadvantage than I had anticipated. It turns out that by using macros and lambda functions combined with restarts and signals while taking advantage of closures it is possible to do what JSP/Servlets/EJB are trying to do, and do it with so few lines of code that J2EE seems extremely cumbersome in comparison. Basically what is happening is that you are able to get a few layers of abstraction above the level on which J2EE operates, and this is what gives the productivity gain. I am exploring this at the moment, and being both surprised and very pleased at what I discover!</p>
<p>Regarding the programming environment it is a mixed bag. The Franz implementation has a wonderfully productivity enhancing IDE while implementations such as the CMU CL comes without an IDE, and you are supposed to use xemacs, which btw. is a surprisingly effective way of working with the ilisp package.</p>
<p>What I am doubting at the moment is how well Common Lisp lends itself to projects with more than two-three programmers, or with programmers who are less than very good at understanding a program in great detail as well as on all the higher levels of abstraction at the same time.</p>
<p>Java seems to be very good for situations where you need to enforce processes upon a great number of programmers in order to avoid having them shoot each other in the foot, and instead actually being able to produce something. This makes Java a likely &#8220;COBOL for the 21 century&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tayssir John Gabbour</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5313</link>
		<dc:creator>Tayssir John Gabbour</dc:creator>
		<pubDate>Wed, 13 Aug 2003 08:31:29 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5313</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Language features seem like OS features -- bring in the investment, they&#039;ll be shoved in somehow.

Someone (whose name escapes me -- an AI guy who famously telecommutes for $35/hr) proposed to a large Common Lisp vendor that he&#039;d happily contract with them to build .NET support.  Xml, soap, yadda yadda.  He says they haven&#039;t taken him up on that offer.  If they&#039;re at all rational, and they did survive the AI winter, we can assume their customers haven&#039;t exactly been clamoring for these features.  I would extend this to type-inferencing and design by contract.

But I wonder why anyone would assume Lisp is in a terrible position.  People are slowly ingesting the usefulness of optional typing.. functional style.. gc.. is it maybe that the world needs to learn block by block?</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Language features seem like OS features &#8212; bring in the investment, they&#8217;ll be shoved in somehow.</p>
<p>Someone (whose name escapes me &#8212; an AI guy who famously telecommutes for $35/hr) proposed to a large Common Lisp vendor that he&#8217;d happily contract with them to build .NET support.  Xml, soap, yadda yadda.  He says they haven&#8217;t taken him up on that offer.  If they&#8217;re at all rational, and they did survive the AI winter, we can assume their customers haven&#8217;t exactly been clamoring for these features.  I would extend this to type-inferencing and design by contract.</p>
<p>But I wonder why anyone would assume Lisp is in a terrible position.  People are slowly ingesting the usefulness of optional typing.. functional style.. gc.. is it maybe that the world needs to learn block by block?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ross Judson</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5312</link>
		<dc:creator>Ross Judson</dc:creator>
		<pubDate>Wed, 13 Aug 2003 04:53:28 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5312</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Love what&#039;s under LISP, have a lot of trouble reading it.  Total lack of signposts in the language; it doesn&#039;t get tokenized by my brain very well.

The most powerful thing about Lisp is eval, and s-expressions.  In fact, that pretty much defines the language.  

The barrier I&#039;m worried about is how well the runtimes behave in the large.  Java runtimes run very comfortably with multi-gigabyte, heavily collected heaps these days, which is something our customers play with every day.  I haven&#039;t see or heard much about how the LISP runtimes play in those kinds of environments.  I&#039;m curious.</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Love what&#8217;s under LISP, have a lot of trouble reading it.  Total lack of signposts in the language; it doesn&#8217;t get tokenized by my brain very well.</p>
<p>The most powerful thing about Lisp is eval, and s-expressions.  In fact, that pretty much defines the language.  </p>
<p>The barrier I&#8217;m worried about is how well the runtimes behave in the large.  Java runtimes run very comfortably with multi-gigabyte, heavily collected heaps these days, which is something our customers play with every day.  I haven&#8217;t see or heard much about how the LISP runtimes play in those kinds of environments.  I&#8217;m curious.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shimon Rura</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5307</link>
		<dc:creator>Shimon Rura</dc:creator>
		<pubDate>Tue, 12 Aug 2003 23:11:18 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5307</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Old-style Lisp or Scheme is not the best we can do.  Languages with the kinds of semantic straightjacketing you mention, however, do indeed result in programs that are excessively resistant to exploratory development.

But consider one way to adress this deficiency: instead of using formal specifications purely to constrain what the programmer can do, we could use them to enable richer, more meaningful changes.  After all, we want restrictions on our programs that will make them do the right thing when they can, and make it clear when they cannot.  The problem is too many unneccessary alarms.  But your language (or development environment) could tell you where and why you broke a precondition or failed a type check, and offer you options for fixing this including changing types or broadening preconditions.  Then you could not only explore and improve the program but rework the straightjacket so that you end up with the strongest rules supporting the most essential parts of your program, and flexibility where it is required.

Automatic tools can already help you move a method between classes, but that&#039;s elementary.  What if you could find out exactly what changes would be needed to have some off-the-shelf component handle a new kind of input?  Type systems and preconditions help a lot when doing the kinds of formal analysis that could help answer a question like &quot;how is this input to this function used?&quot;.

Sure, some of the changes you make will only be small steps to recovering the flexibility of less structured languages.  But the changes will be fast and no-risk, made automatically by your IDE.  The payoff, hopefully, would be to take advantage of constraints by using them not just to eliminate options but to discover them.</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Old-style Lisp or Scheme is not the best we can do.  Languages with the kinds of semantic straightjacketing you mention, however, do indeed result in programs that are excessively resistant to exploratory development.</p>
<p>But consider one way to adress this deficiency: instead of using formal specifications purely to constrain what the programmer can do, we could use them to enable richer, more meaningful changes.  After all, we want restrictions on our programs that will make them do the right thing when they can, and make it clear when they cannot.  The problem is too many unneccessary alarms.  But your language (or development environment) could tell you where and why you broke a precondition or failed a type check, and offer you options for fixing this including changing types or broadening preconditions.  Then you could not only explore and improve the program but rework the straightjacket so that you end up with the strongest rules supporting the most essential parts of your program, and flexibility where it is required.</p>
<p>Automatic tools can already help you move a method between classes, but that&#8217;s elementary.  What if you could find out exactly what changes would be needed to have some off-the-shelf component handle a new kind of input?  Type systems and preconditions help a lot when doing the kinds of formal analysis that could help answer a question like &#8220;how is this input to this function used?&#8221;.</p>
<p>Sure, some of the changes you make will only be small steps to recovering the flexibility of less structured languages.  But the changes will be fast and no-risk, made automatically by your IDE.  The payoff, hopefully, would be to take advantage of constraints by using them not just to eliminate options but to discover them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Cohen</title>
		<link>http://blogs.law.harvard.edu/philg/2003/08/12/what-do-they-do-at-the-lisp-conference/comment-page-1/#comment-5305</link>
		<dc:creator>David Cohen</dc:creator>
		<pubDate>Tue, 12 Aug 2003 20:40:52 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.law.harvard.edu/philgtest/2003/08/12/what-do-they-do-at-the-lisp-confere#comment-5305</guid>
		<description>&lt;a&gt;&lt;/a&gt;

Actually, Lisp is lurching forward into the 21st century as people develop new IDEs, SOAP implementations, web tools, etc.--a good place to keep up with new developments is John Wiseman&#039;s weblog, Lemon Odor: http://www.lemonodor.com 

Be sure to read the archives too.</description>
		<content:encoded><![CDATA[<p><a></a></p>
<p>Actually, Lisp is lurching forward into the 21st century as people develop new IDEs, SOAP implementations, web tools, etc.&#8211;a good place to keep up with new developments is John Wiseman&#8217;s weblog, Lemon Odor: <a href="http://www.lemonodor.com" rel="nofollow">http://www.lemonodor.com</a> </p>
<p>Be sure to read the archives too.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
