Collaboration: At the Extremities of Extreme
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Ryan Slobojan on Jul 17, 2008
This article, written by Per Jacobsson, is aimed at Java developers curious about Lisp. It discusses the different dialects of Lisp that are available on the JVM today, and gives a crash course in how Lisp programming works and what makes it unique. Finally it looks at how Lisp code can be integrated with a Java system.
From the article:
One of the most exciting things in the Java world right now is the work being done to get other programming languages to run on the virtual machine. There is a lot of buzz around JRuby, Groovy, Scala, and the JavaScript engine Rhino. But why stop there? If you really want to take a step outside the mainstream and dive into something completely different from Java, Lisp is a great option. And there are several open-source implementations of the Lisp programming language for the JVM out there, ready to be explored.
So what makes Lisp worth looking at? For one thing, this fifty-year-old language has been the catalyst of many ideas we take for granted today. The if-then-else construct originally came out of Lisp, as did early attempts at object-orientation and automatic memory management with garbage collection. Lexical closures -- a hot topic for Java programmers right now -- were first explored in Lisp back in the seventies. And beyond that, Lisp still has many other unique features that other languages have yet to adopt, the kind of good ideas that are bound to make a comeback in the future.
Read the full article here.
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Getting Started with Stratos - an Open Source Cloud Platform
18 agile and lean practices for effective software development governance
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
There is also the Dandelion plugin for Eclipse:
sourceforge.net/projects/dandelion-ecl
The advantage of this plugin is, that it is not bound to a specific Lisp Implementation. The two Lisps that are currently supported are CLISP and SBCL. They come directly with the plugin and are ready to use after the installation. This is ideal for Lisp beginners.
Ada is a great option.
I still remember the first time I use LISP , it was for am AI assignment. I enjoyed a lot using that as well as I realize how powerful LIPS is. Having support from JVM for the powerful language like LIPS will make our life much more easier.
Article is very useful and very straightforward
Deepal
I used to share a regular car journey with a real Lisp nut. He used to say that once you really get Lisp, all other languages look like a poor relations.
Shortly after I came across this article which filled in a lot of the gaps for me and to some extent explain why Lispalikes, like javascript and Ruby, are so powerful.
Here the Link: clojure.org/
And here an netbeans-plugin with completions,repl and so on: enclojure.org/
Have a look !
I'm bias, but LISP rocks. Unfortunately, getting developers to try LISP or use it on a regular basis is hard. LISP is also very popular in the AI world in expert systems because it is so powerful.
peter
I am not well versed at Scheme - but am familiar with Common Lisp and there are objects that I feel are excellent aspects of it - specifically CLOS (Common Lisp Object System) and add-ons like the rule-based CL libraries - LISA and Lisp Reasoner. One excellent place to start is LispBox. There is an excellent learning environment that features Franz's Allegro CL, Steele Bank CL, Clozure CL and CLISP tightly woven into Emacs development environment. Note also there are nice stand-alone development environments like Franz's development environment and LispWorks. I should point you to Foil which consists of a protocol and set of libraries to access the JVM (and for that matter CLI/CLR). Also environments like Franz's Common Lisp includes jLinker (a dynamic link between Lisp and Java). I've recently been spending a fair amount of time on Common Lisp - refreshing myself with what's happened in the past 20 years since I worked with it. Finally, I encourage anyone interested in Common Lisp and Scheme to view the following Google video, Practical Common Lisp.
cheers.
Charles
I was trying to think of a joke involving a cdr journey, but my coffee hasn't kicked in yet.
Just assume it was something witty ;)
I heartily recommend the SE-Radio podcast with Dick Gabriel On Lisp. It is a real eye opener.
See www.se-radio.net/podcast/2008-01/episode-84-dic...
Especially the wonderful song from the roundworm album of Bob Kanefsky: www.songworm.com/lyrics/songworm-parody/Eternal... (God wrote in Lisp)
The OnLisp book from Paul Graham is available online at: www.paulgraham.com/onlisp.html
For German speaking people there was lately a quite funny introduction at CCC-Radio-Express:
chaosradio.ccc.de/cre084.html
Michael
I forgot the mp3-link for the song: www.prometheus-music.com/audio/eternalflame.mp3
Michael
LISP developers, get over it. Use it for your hobbies and AI projects.. but are you serious about this???
(define frame (make JFrame))
(define button (make JButton "Click only once"))
(define action-listener
(object (ActionListener)
((action-performed e :: ActionEvent) ::
(*:set-enabled button #f))))
"Lisp rocks": I fully agree with you even though I would be hard put to code a simple "hello world" in lisp. I base my judgment of Lisp on a very powerful program called Maxima. This program is a symbolic math engine that allows you to perform any kind of formal calculus very easily. The only problem is that it is coded in common lisp and as stated in this article the jvm implementation of common lisp is not as good as the scheme version. My aim is to run Maxima on the jvm. Will this be possible one day???
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
12 comments
Watch Thread Reply