DC ALT.NET - 5/22/2008 - Applying Lessons Learned from Lisp

The May meeting of DC ALT.NET has been scheduled for May 22nd from 7-9PM.  Check out our mailing list and site for more information as it becomes available.  If you're in the Washington DC area, come check us out.  This month, we're having Craig Andera, of FlexWiki fame, speak about applying lessons learned from learning Lisp and how to be a better programmer because of it.  That's one of the true strength's of the DC ALT.NET, or even the ALT.NET movement as a whole, as we look outside our .NET community to the outside world to find better ways to solve problems and apply lessons learned from each community, and Lisp is one of those communities.  Dave Laribee, Jeremy Miller and Chad Myers spoke about this on the first episode of the ALT.NET Podcast with Mike Moore.  If you haven't listened to it yet, I highly recommend that you do.

Applying Lessons Learned from Lisp

There has been a lot of talk and some hype (deserved and undeserved) around functional programming lately, partly due to looking for ways for expressing parallel applications and multi-core scenarios.  Some might find it interesting that functional programming has its roots back in the 1950s, well before Object Oriented Programming, yet has been relegated mostly to the research community mostly. 

Back in 1958, John McCarthy from MIT designed Lisp and has been a mainstay in the Artificial Intelligence field for a long time after that.  Since that time, there have been quite a few Lisp dialects to pop up due to the fact that many of the universities and labs did not share their information before everyone was connected to ARPANET.  Two that have really emerged since then are Common Lisp, an attempt to standardize the Lisp variants into one, and Scheme.  Lisp is a strongly typed dynamic language, meaning that if when it is interpreted, the function does not exist, an exception will be thrown.  By it's nature, it is a functional language with such elements as lists, lambdas and so on.  Some of the interesting additions to Lisp is the Common Lisp Object System (CLOS) which adds OOP functionality to the Common Lisp language.  It's a bit different than what we think of OOP in C++, C#, Java and other OO langauges.

In the .NET world, we have IronLisp and IronScheme.  IronLisp has been deprecated in favor of IronScheme going forward.  That's the beauty of .NET is to build these dynamic languages on top of the DLR with relative ease, truly speaks to how flexible the type system and CLR are.  To make OOP and FP first class citizens within the .NET space is also pretty interesting as well.

Back to Lisp, if you want to hear more, you should check out Dick Gabriel's appearance on Software Engineering Radio Episode 84 on Common Lisp.  Dick has been a noted authority in the Lisp space for some time and is the organizer for OOPSLA back in 2007.  It's one of their better episodes, so I'd encourage you to listen to it.  I know I did, but then again, I have a pretty long commute, so I have time to listen to these things.

Who We Are

So, as I said, I run the DC ALT.NET group which meets monthly to discuss ways of bettering ourselves.  You won't find us doing what most other user groups do in the area and is more of an intimate environment for learning and discussion.  Typically we have the first hour for the topic of discussion, this month being Lisp, and then the second hour is Open Spaces, so it encourages everyone to speak and bring a topic they are passionate about.  As always, we're looking for sponsors to help us out along the way.  Since we're in the Washington DC area, and traffic can be bad, we tend to move from month to month to accommodate.  That may change in the future as we grow, but for now, it works nicely.  So, if you're in the DC area, come check us out.  And, hopefully I'll get Dave Laribee to stop by before too long as well...

Where I'll Be

In addition to the meeting next week, I will be speaking at the Philly ALT.NET group meeting on May 21st on F# and an introduction to Functional programming.  This should be a great session and I hope there will be a good crowd for it.  Also, this weekend is the NoVA Code Camp in which I have two sessions, "Introduction to F# and Functional Programming" and "Improve Your C# with Functional Programming Ideas".  Look forward to seeing everyone at those events!

kick it on DotNetKicks.com

1 Comment

  • Hi Matt,

    I've not checked out the cast but I will. CLOS is related a system called MOP (Meta Object Protocol) - http://en.wikipedia.org/wiki/Metaobject and described well in - http://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol it is a little confusing as MOP in Lisp is often described as a subset of CLOS and sometimes as CLOS implementing MOP. The trurth it is what MOP enables in Lisp that makes iCLOS so very unqiue and powerful.

    The ability to meta change objects belonged to CLOS for a long time, I understand that Ruby's OO has similar power but how close it is to CLOS's full on meta query and change I don't know.

    I would dearly love it if the CLI could do this.

    Andy

Comments have been disabled for this content.