-- Turkish translation
of the interview --
Samantha Kleinberg from New York University is one of the software developers
who participated in Google's Summer of Code in 2005. She has developed
CL-GODB
project using Common Lisp. Her having used Common Lisp and becoming one of the Google
celebrities drew our attention and we didn't hesitate to ask about the details. She
has provided clear-cut and right-to-the-point answers. We're on air...
Emre Sevinc: Samantha, can you give us a little information about your background? When and
how did you start playing with computers? Which areas of computer science are you
specializing in?
Samantha Kleinberg: I started using computers in 5th grade but I didn't
start programming and really learning about computers in that way until my senior year of
high school. I interned in Mount Sinai's Biomathematics department where everyone was
very patient and encouraging, despite the fact that I didn't have any of the required skills
when I started. My favorite (and most humbling) memory from that time is asking the system
administrator how to convert a text file I'd made to ASCII. But, I read
Unix in a Nutshell cover to cover and
picked up Perl and MySQL as I went along. After majoring in Physics and
Computer Science, I've come back to Bioinformatics. I enjoy being able to apply my programming,
mathematical, physical and biological knowledge to problems that have a clear effect on people's lifes.
ES: How were you involved with Google's Summer of Code program in 2005? What were
your motivations?
SK:My project was one of the ones chosen to be funded by Google. There wasn't much interaction
with Google, though there was a very active Google Group where people posted. I applied at the
suggestion of my mentor and thought it would be a nice motivation to get the project done in a
set amount of time as well as get paid for it.
ES: Why did you choose CL-GODB project? Why Common Lisp? Who were your mentors
and what kind of project management took place?
SK: The project was something I'd talked about with
Marco Antoniotti, who thought
it would be a useful tool and a way to learn Common Lisp. I used Common Lisp because the program it would be
integrated into,
GOALIE,
is written in Common Lisp, and the mentoring organization was
LispNYC.
I worked mainly with Marco who gave me general guidance and was there to help me make my code more
efficient. I tried to figure things out on my own as much as possible, but Marco was always around
to help when I got stuck.
ES Had you ever been exposed to Common Lisp before? What were your
first impressions?
SK: I'd never used it before and was very used to programming in C. So, my first impression was
that there were a lot of parentheses and that it was difficult to remember where to place them.
ES: How long did CL-GODB project take? How much Lisp did you know before
you started project?
SK: It took approximately 2 months, and was my first Lisp project.
ES How was your working environment, which platforms did you prefer,
what kind of toolkits and toolchains did you use?
SK: I used
Lispworks Enterprise Edition on Windows XP.
We considered both Wwindows and Unix databases, and the functions will run on most platforms,
but the graphical interface is geared toward windows. I normally write my C code in
ConTEXT and then compile with gcc, so the Lispworks
environment required a big adjustment. Once I figured out more of the features I really
liked it and found its features useful.
ES: What were your primary sources of information and technical support
(books, forums, Usenet, mentors, etc.)?
SK: I started with the book "
Practical Common Lisp"
and then mostly consulted my mentor and the Lispworks.
manuals.
ES: In your
DDJ account of Summer of Code you state that a standalone
GUI is developed:
CL-GODB Viewer. Was that
also developed using Common Lisp?
SK: Yes, the entire project was done in Common Lisp. I was actually surprised at how easy it was
to create a standalone application in Common Lisp. Aside from a DOS game I created for a class (in a
combination of assembly and C), I'd never done anything like that before. For me, that was
one of the most exciting parts of the project, because I'd always thought it would be so
difficult to make something like that. It was great to go through the whole process from concept to
application to documentation.
ES: Is Common Lisp a potential candidate for your future programming
projects? What is your subjective comparison with other languages that
you programmed in? Is Common Lisp only for AI and scientific computing
or does it have a place for other fields of programming?
SK: Since I've finished the project, I've continued programming in Common Lisp and have come to love it.
For me, it's much more intuitive and easier to learn than Java, and I've appreciated that it's
much less rigid than C. There can be pitfalls, but it's nice to not be tied to specific types
or worry about pointer arithmetic. I think it's a great language to learn, if only to gain a
different perspective on other languages and the way you code. I took an artificial
intelligence course and after using C for my first two projects, doing the third in lisp was like a
gift. It's particularly well suited to AI, but I'm currently using it for mathematical and
database projects. I can't compare it to any other method, but I found that it was pretty simple
to create graphical interfaces and would reccommend it to other people looking to do that.
I've even convinced some of my friends to use Lisp for their projects.
ES Would like to add anything for our readers who are interested in
programming and Lisp?
SK: If you haven't used it but you're thinking about it, go ahead and give it a chance. It may
take some time to get used to, and you may not use it for everything, but it's a worthwhile
language to learn.
ES: Thank you very much for the answers. Happy hacking :)