|
As
appeared in the March/April 2001 edition of PCAI Magazine www.pcai.com/pcai
(Republished with permission)
LISP
Power And Functionality Still A Well-Kept Secret
Douglas
F Ramsey
Manager,
Internet Business & Japan Affairs
Proponents
of ‘LISt Processing’ or Lisp should
have reason to rejoice. The demand
for higher-level software applications increases
daily; and few other languages support
the level of functionality mandated by
today’s end-users. The Lisp language offers
a strong programming environment that
is ideal for advanced networking and dynamic
applications. Recent high profile Lisp
applications, such as Commerce One’s iMerge,
illustrate Lisp readiness for an industry revival.
No longer only associated with Academic
research applications and failed "Star
Wars" projects, commercial Lisp applications are
being developed in a variety of cutting
edge domains such as B2B, Knowledge Management
and E-Commerce.
Despite
these successes, Lisp continues to
be unfairly characterized by both industry and
the wider programming community as being
too old, too slow, or too big. In fact, most
current Lisp applications are smaller, faster
and more flexible than applications
written
in other languages. With the explosive increase
in computer performance these concerns
are no longer an issue. In an effort to
identify opportunities and barriers in the current
software marketplace, International Technology
and Trade Associates (ITTA) Inc.,
an international business consulting and
technology market research firm in
Washington
D.C. surveyed members of the Lisp
user community. This article presents the
findings of this online survey and concludes that
the future of Lisp is in the strength
of its user community.
Survey
Overview
ITTA’s
Lisp Users Survey was
designed to
attract Lisp users online and determine the
perceived strengths and weaknesses of programming
in Lisp. 369 users submitted comments
online over a six-week period starting
in September, 2000. The survey, which
attracted global Lisp users from the academic,
public, and private sectors, focused
primarily on the technical pluses and minuses
of programming in Lisp. Survey respondents
(see survey results at www.itta.com/lisp.results.htm)
proved to be staunch
defenders of Lisp vis-à-vis more popular
languages such as Java or C++. However,
to our surprise, a large majority of respondents
used the survey to express dissatisfaction with
LISP’s low profile in the software
market. In short, Lisp has a dedicated user
community that recognizes the prejudices
against it and yearns for ways to bring
the language into the mainstream.
Lisp
User Patterns
The
first portion of the survey explored the
Lisp users, their programming environment, and
the most commonly encountered Lisp
problems. Most survey respondents were frequent Lisp users working in either
the
private or academic sectors. Industry users
comprised the
majority of respondents at
57%, with 31% working in the academic sector,
while only 12% worked in the public or
government sector users. 69% of the total respondents
use Lisp daily or weekly with only
10% indicating that they rarely programmed in
Lisp. These strong numbers illustrate
that survey respondents were well versed
in Lisp and well aware of its issues. When
asked their primary purpose for programming in
Lisp, 44% selected education or
research while 28% used Lisp to develop applications
for either retail or company use (see
Figure 1).
59%
of respondents identified Franz Inc.
(www.franz.com),
a major Lisp software vendor,
as their primary Lisp software provider.
This largely reflects Franz Inc.’s role as
the largest commercial Lisp vendor, as well as
their recent successes in providing new Internet-friendly
functionality and solutions. Digitool
(A MacIntosh-based Lisp), Xanalys (Purchased
Harlequin in 1999) both collected 11%
apiece, while Carnegie Mellon University
Common Lisp (CMUCL), Common Lisp
(CLISP), Scheme (a smaller version of
Lisp) and Symbolics rounded out the rest.
There
was a diverse selection of programming platforms
and other programming languages
used, reflecting the need for programming
interoperability. The platforms broke
down as follows: Windows (46%),
Unix (30%), Linux (17%), and Mac (5%).
Among languages frequently used in addition
to Lisp: C or C++ (57%), Java (41%),
Perl (22%) and Visual Basic (12%).
Developer
Concerns
When
asked to identify Lisp’s functional areas
for improvement, interoperability led
(50%), followed closely by an improved
Graphic User Interface (GUI —47%).
These have long been concerns within the
Lisp user community. Nevertheless, many
users admit that interoperability has improved
and agree that the
software vendors have
made great progress considering the
problems complexity. In contrast, the lack
of a common development GUI is seen by
many users as a potential barrier to new users
(see Figure 2).
Although
often criticized as too slow by non-Lisp
users, the concern for speed was only
cited by 28% of respondents possibly reflecting
the advances in Lisp run-time performance and
current computer hardware. Other
improvements included: ease of implementation
(23%); parallel processing (22%);
memory management (19%); language size
(15%); and scalability (13%).
The
Superiority of Lisp
The
survey also solicited a comparison of
Lisp’s key strengths and weaknesses to other
programming languages. Respondents were
strong Lisp advocates and insisted on Lisp’s
superiority. The vast majority felt Lisp is
the truest object-oriented programming language,
offering a simple, elegant, and dynamic
programming environment. Numerous
respondents described Lisp as a superior
prototyping language, facilitating ease
and speed of development, in comparison with
other languages. Lisp received remarkable
praise for its high level of abstraction, garbage
collection, and debugging capabilities.
In addition, Lisp’s macros, lambda
calculus, and Common Lisp Object System
(CLOS) make it an attractive programming environment.
Praise
for Lisp’s simplicity and elegance was
abundant — including a claim that Lisp provided
a wonderful development model with
an unbeatable interactive, incremental style,
perfect for software development. Others observed
that Lisp offers high-level abstractions,
extreme dynamism, an advanced
object-oriented system and extreme
programmer productivity —- features not
available in other languages. In support
of rapid prototyping, another pointed
out that Lisp enables a small number of
programmers to tackle huge ill-defined problems
and evolve a tentative solution into
a final product, while continually maintaining
a usable prototype.
There
was also praise for CLOS as a user
called it truly object-oriented, with run-time binding
and typing built in as part of Lisp.
Most languages (particularly, "and most annoyingly,
C++") don’t have either. Another user
indicate that Lisp has less syntax than conventional
programming languages; a flexible object
system; the comfort of automatic memory
management; and good abstraction mechanisms
— enabling both functional and
imperative programming styles. Other Lisp
features commended by numerous respondents
included: a Macro ability to construct
and execute code; consistent language grammar;
built in data structures; and powerful
and simple debugging.
Perceived
Weaknesses
When
asked to compare Lisp’s weak-nesses with
other programming languages, very
few respondents mentioned technical or programming
issues. Rather, the majority focused
on Lisp’s less tangible, yet perhaps more
pressing weaknesses - market presence, public
perception, and the user community itself.
Many
respondents observed that Lisp is seen
as an old-school Artificial Intelligence (AI)
language, with limited or no relevance to
the current programming community. Many
also noted that its small user community is
a key weakness. This is compounded by
the fact that, despite its benefits, Lisp is not
actively taught to the next generation of developers
in university classes. Numerous users
also added that price, the lack of strong vendor
competition and open source options,
are key factors inhibiting wide spread
adoption of Lisp throughout private industry.
Based on these issue, there is a concern whether
Lisp is an alternative for programmers and businesses.
Despite
the clear advantages of Lisp programming,
cost forces many to turn to other
languages. The proliferation of open-source/freeware, or high volume and
therefore less
expensive development tools make commercial
Lisp products comparatively expensive
in terms of licensing and distribution costs.
Therefore, several survey respondents observed
that the cost of working in Lisp
can be prohibitive in comparison to Java
or C++, even though the total cost of the
development project might be lower (due
to Lisp’s efficiencies and increased functionality). Additionally,
free Lisp software, such
as CMUCL lacks functionality so is not practical
for commercial use.
Capturing
the key issues, one respondent concluded
that Lisp vendors compete with
each other rather than Java, but when trying
to sell Lisp to project management, they
aren’t comparing Xanalys (www.xanalys.com)
to Franz — they are comparing
Lisp to Java. Java has free run-times and
a wealth of important library functionality.
And although Lisp has many other
benefits, they don’t carry much weight, if
Lisp lacks the basics. Another observed that
the Lisp industry lacks any significant marketing.
Finally, one concluded that Lisp has
become marginalized — its image is non-mainstream.
This obviously isn’t a problem with
the language, but with the industry —
a public relations and usage problem.
Concerns
over Lisp’s price and unorganized user
community inspired many to request
a well-supported Lisp open-source option
be created – not tied to a specific vendor. Again
users observed that like other commercial languages Lisp should compete on the
quality of implementation and
support, while benefiting from the larger network effect of open-source
development. Numerous educators felt that the best Lisp products are beyond
the reach of university resources. This
ultimately hurts Lisp since it limits
research and constrains future growth in the Lisp
user community.
Conclusion
Frequent
Lisp users, when given the opportunity, rally around the technical
and functional superiority of Lisp. Unfortunately, the advantages
of
working in Lisp are often sacrificed for near-term cost-savings. For Lisp to
regain its place in the programming market it needs to recapture
mind-share.
With the growth of the Internet and corporate knowledgebase, now
is the ideal time. The pressure is on Lisp users and vendors to
increase their level of interaction and consider ways to grow and
revitalize
the Lisp community. One option is to develop a supported Lisp
open-source development environment. However, no one within the
community seems willing to take the lead in such a development (such
as Linus Torvald did with Linux) – or seems willing to even supply
code.
(This may be partially due to the proprietary nature of many of the
successful Lisp projects in industry).
Crucial
to the future growth of Lisp is the commitment of its users. Lisp
has time and again proven itself superior in solving crucial real-world
problems
with its core users. To remain a truly viable programming option
in the coming years, Lisp must attract and retain new users. Lisp
vendors, such as Franz Inc., are trying to increase the use of Lisp at
the
university level via special academic pricing, scholarship programs
and
ready-made curriculum materials. Additionally, government supported programs,
employing Lisp, could boost Lisp’s profile and expand its
user base. These programs will ultimately benefit government systems
that
are increasingly challenged by complex dynamic object-oriented data
applications and the need for tools that support expanding federal
databases
and electronic government applications.
Marketing
development environments is tricky since analysts and the
press are more interested in
end-user applications than
the soft-ware needed
to create them.
Current Lisp users
need to make their voices
heard within the greater
software community to
showcase the Lisp
applications they have
built. Publications and
presentation in journals
and at trade shows
provide exposure to
a wider community. Only
then, will other developers
begin to realize the
power of Lisp.
|