You should be automatically redirected . If not, visit
http://newlisper.wordpress.com
and update your bookmarks.

27/03/2007

Interview with Lutz

Lutz Mueller, the creator of newLISP, is a familiar presence on the newLISP user forums, where he's usually to be found helping everyone with their code problems, or announcing a never-ending stream of new releases and additions to the language.

I thought that it would be great to hear more from him, so I'm pleased to be able to present you with this short interview - an exclusive, as they say. Unfortunately, I wasn't able to hop over to the USA to interview him personally, so we communicated electronically.

When did you first encounter Lisp? What did you like about it?

I heard about Lisp when at college, but that was before the personal computer had arrived. It was not until the beginning of the 1990s that I had a closer look. What appealed to me was the simplicity and elegant syntax of the language.

What made you decide to write your own version of Lisp?

A colleague at work used Lisp on his Macintosh computer; he did all his electronics engineering calculations and modeling with it. Seeing somebody doing real work with Lisp caught my interest. I had done several programming languages before and had enough code fragments in my toolbox to put a Lisp interpreter together quickly on SunBSD and show it to my colleague. The rest is history.

Were you surprised by the negative reaction to your work from some of the more conservative elements of the Lisp community - you might expect that they would welcome an addition to the extended family of Lisp-like languages?

People don't like big change. All of today's mainstream scripting languages had fierce opposition in the beginning. The way programs are written has changed dramatically over the last 20 years. I wanted a Lisp with its essential core characteristics of lists for both programs and data, and lambda functions, but with a script-language-like feeling and a modern built-in API. Things like regular expressions or networking functions should not require external modules or libraries, but should be built into the main executable.

Have you ever considered changing the name?

The name describes well what it is: a new approach to Lisp for a new age of programming and a new way to interact with computers. A scripting language is like a scratchpad; it helps you to develop thoughts. Such a language should not be overloaded with concepts developed about computer programming in CS (Computer Science) but with little value in practice. My biggest heroes in computer programming are people like John Kemeny and Thomas Kurtz (BASIC), Larry Wall (Perl) and Guido van Rossum (Python). They all showed that programming is not an elitist endeavor indulging in pure CS theories, but a way for solving practical problems on a computer by practical people. In this way, newLISP is a new way to look at Lisp, a way which has attracted people from domains normally not associated with programming, like artists and writers.

So the 'new' in 'newLISP' refers just as much to the type of people that use it - ie, not CS people necessarily, and possibly non-programmers as well - and the areas they use it in, rather than a new version of the Lisp language?

Yes, a new scripting-like approach to Lisp attracts new and different kinds of people to try it, for new and different types of application. The same has happened to other scripting languages. In the beginning of the web, people wrote CGI programs in C, but pretty quickly realized that Perl would be a better choice for this new type of application, and graphic designers started to program.

Why did Kozoru adopt newLISP?

All parties found in newLISP what they were looking for, and found their way into the language quickly. Nobody on the team had experience with using newLISP. Only one person had used Common Lisp before. Some of the programmers came from companies related to AI (Artificial Intelligence), others came from companies working in networking and security. They felt that Lisp was more appropriate for the class of problems they were trying to solve (natural language processing). They liked newLISP because of its small size, scripting character, and the ease of programming network-related tasks in a distributed application.

They built a distributed system, running on several dozen nodes, analyzing and ranking sentences of internet content as matches for questions. The guts of the system were built in less than a month. newLISP was used for almost all parts in the system, the core logic of parsing and processing language content, as well as administrative tasks like monitoring and logging nodes and updating them with new code.

I believe this was the first time newLISP was used in a programming team and by programmers not familiar with the tool previously. The project prompted many of the changes and additions to newLISP during 2005 and 2006.

There are many more examples of individuals solving individual problems using their computers. Like a writer customizing his editor with newLISP scripts. A musician controlling MIDI equipment or a composer scripting his web site.

Was the Kozoru project a success, technically?

The project was successful in porting an existing application - written in a well-established scripting language - to newLISP in a short time, with many times faster performance and with fewer lines of code. During the duration of the project, the direction changed many times, going from the web to chat and to the mobile phone, and finally to the BYOMS approach of specialized, user-customized search buttons, while at the same time new core algorithms were being plugged into the system.

There's no shortage of scripting languages these days. Perl, Ruby, and Python are often pre-installed, so how can newLISP tempt new users, with such riches already available?

Shorter, denser programs, less computing resources, more expressive power via functional abstraction when designing algorithms and a relevant API built into the language. Quick installation, all you really need is the ~200KB executable. Excellent introductory and reference documentation. Much quicker and easier to learn than other Lisps.

You're very keen to keep the size of newLISP down - 240KB for the latest binary. My first computer had 16KB RAM, but computers these days aren't short of disk and memory. Why the continued emphasis on code size?

Computers are evolving to multi-core architectures. Programs are evolving from big monolithic programs to distributed agent-based applications. You may want to run dozens or hundreds of instances of newLISP on the same computer. Being diligent and saving resources (of any kind) will be one of the major human challenges in this century. Less code, less errors, less memory, less CPU cycles, less energy, less resources.

What do you personally use newLISP for?

Everything on newlisp.org is programmed in the newLISP wiki, a content management system, and most of the administrative tasks, cron jobs, log analysis etc. are done with newLISP too. I frequently open a newLISP shell to develop ideas and try out something quickly.

For people to invest time and energy into learning a new language, they have to feel that their investment is safe. What's the future hold for the development of newLISP?

I've been working full time on newLISP since the end of 2002 and plan on doing so for many years to come. In the last few years, newLISP downloads have doubled every year. Since the 9.0 release in October 2006, the downloads curve has accelerated more and I believe the user base will have at least tripled by mid year compared to last year.

newLISP seems pretty complete as a language, particularly with large amounts of new functionality in recent releases. What's your focus for the language in the near future - more libraries, or more core functionality?

Most core functionality is completed. Some minor holes still have to be filled in the API, but most of it is done. This year only one more major release will be done, probably in August. There are several applications I want to write using newLISP. I hope others will come forward to write libraries in specialized areas. It is time to show that newLISP can solve interesting problems. newLISP is a moving target - it is never finished, always changing, just like the fields of computers and software generally.

Who's Don Lucio?

I went by this name when living in El Salvador during part of the 70s and 80s. It was an important time in my life.

What do you get up to when you're not at your computer?

I either eat, go to sleep or meet people ;-)

Many thanks to Lutz for taking the time to talk to me!

1 Comments:

At 03:09, Anonymous m i c h a e l said...

Don Lucio is Lutz Mueller?! The next thing you'll be telling us it that (newLISPer) is the great cormullion!

Seriously, Melissa and I thoroughly enjoyed your interview with Lutz. I've been thinking recently that people need to hear more about Lutz the person, because I really do believe a programming language is a direct reflection of its designer. How else are people going to know how wonderful newLISP is? :-)

m i c h a e l

 

Post a Comment

Links to this post:

Create a Link

<< Home