Discussion:
Help --- Lisp IDE
(too old to reply)
n***@gmail.com
2009-03-09 03:51:55 UTC
Permalink
I learned Lisp at Cornell, a long time ago, when there was no loop. I
decided to give it a new trial. I compiled SBCL on Wintel, removed
the Kitten message (I am sceptical about the need of such a strong
warning), and wrote a few programs using the Scite editor. Then I
started my quest for a really good Lisp IDE. A lot of Lispers told me
that the best IDE is LispIDE. The reasons:

1 --- It comes with a very good Lisp help: Common Lisp The Language,
and Common Lisp Hyper Spec.

2 --- It has a good inferior lisp. I mean, one can run a Lisp process
on a special window.

3 --- It is small, so one can transfer it from machine to machine in
seconds. That is very important for me, since I often need to make
presentations and fast prototypes in machines belonging to clients.

4 -- It has a fine editor, with good parenthesis match. The editor is
somewhat basic, but it works.

Since I was used to an IDE called Eclipse, that is huge, slow,
difficult to install, and bug ridden, LispIDE seemed very nice indeed:
it is fast, lightweight, bugfree. I mean, compared to Eclipse, LispIDE
is wonderful. Moving from Eclipse to LispIDE is like your younger
daughter having a stinking pet goat in the dining room, and when you
come back from work, you discover that she traded it for a goldfish.
However, I suspect that Lispers have IDE-s that are even better than
LispIDE. For instance, I heard about SLIME, and tried to install it.

1 --- Installation proved to be very difficult. After a long time, I
succeeded. I also installed Emacs on my machine (SLIME requires
Emacs). Many people told me that Emacs is huge and slow. Well,
compared to Eclipse, Emacs looks lightweight (30M against 160M), fast,
bugfree, and easy to install and use. My installation problems
derived from SLIME, not from Emacs.

2 --- The editor worked fine, although it is less intuitive than
LispIDE.

3 --- The inferior Lisp, however, is awful. A program error makes it
freeze emacs (about once in four trials):

; SLIME 2009-03-08
CL-USER> (* 3 4 5)
60
CL-USER> (reco 3 4 5) ;; I made a mistake on purpose!

=== Another Window ====
The function RECO is undefined.
[Condition of type UNDEFINED-FUNCTION]

Restarts:
0: [RETRY] Retry SLIME REPL evaluation request.
1: [ABORT] Return to SLIME's top level.
2: [ABORT] Abort
3: [CLOSE-CONNECTION] Close SLIME connection
4: [ABORT] Exit debugger, returning to top level.

At this point, I acted like one of Skinner's pigeons: I tried
everything to please Slime --- I took turns in pressing 0, 1, 2, 3,
4. The result is always the same:

; SLIME 2009-03-08
CL-USER> (reco 3 4)
5

At the minibuffer, I get:

; pipelined request... (swank:listener-eval "5
; pipelined request... (swank:listener-eval "

At this point, Emacs is frozen! Slime produces this kind of error very
often in Windows Vista, and once and again in Windows XP. The only
thing that causes trouble is the slime-repl. If I work with the M-x
inferior lisp, everything goes fine. If somebody has experience in
fixing Slime, please share it with us. BTW, people often complain that
SLIME does not freeze, but disappears from Emacs. This also happens to
me, but since it is a mild problem, I an not worried with it.

Before you suggest that I use the default Emacs LispIDE, well, I see
no point in moving from LispIDE to it. Its inferior lisp is clearly
--- inferior -- to what LispIDE offers.
André Thieme
2009-03-10 00:30:33 UTC
Permalink
Post by n***@gmail.com
I learned Lisp at Cornell, a long time ago, when there was no loop. I
decided to give it a new trial. I compiled SBCL on Wintel, removed
the Kitten message (I am sceptical about the need of such a strong
warning), and wrote a few programs using the Scite editor. Then I
started my quest for a really good Lisp IDE. A lot of Lispers told me
Moving from Eclipse to LispIDE is like your younger
daughter having a stinking pet goat in the dining room, and when you
come back from work, you discover that she traded it for a goldfish.
There are personal versions of commercial Common Lisp implementations,
which lack some features, but they should be enough to learn the
language and to toy around with it.
http://www.lispworks.com/
http://www.franz.com/products/allegrocl/

If you plan to do commercial development then you could contact for
example Franz and see if they can support you, so that during your
development time you won’t face too high costs.


I don’t know if this is an option for you, but there is a modern
dialect of Lisp which is ready for commercial development, and it
compiles its code to the JVM, which means that it runs on all major
plattforms. You can find more info here:
http://clojure.org/
Watch the videos.
Another nice ressource is here:
http://ociweb.com/jnb/jnbMar2009.html

And regarding the editor: you could use Enclojure, a plugin for
NetBeans. You should feel right at home when coming from Eclipse:
http://enclojure.org/


André
--
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org/
comp.lang.scheme
2009-03-10 03:33:56 UTC
Permalink
On 9 mar, 21:30, André Thieme <address.good.until.
I learned Lisp at Cornell, a long time ago,  when there was no loop. I
decided to give it a new trial.  I compiled SBCL on Wintel, removed
the Kitten message (I am sceptical about the need of such a strong
warning), and wrote a few programs using the Scite editor. Then I
started my quest for a really good Lisp IDE. A lot of Lispers told me
 > Moving from Eclipse to LispIDE  is like your younger
daughter having a stinking pet goat in the dining room, and when you
come back from work, you discover that she traded it for a goldfish.
There are personal versions of commercial Common Lisp implementations,
which lack some features, but they should be enough to learn the
language and to toy around with it.http://www.lispworks.com/http://www.franz.com/products/allegrocl/
If you plan to do commercial development then you could contact for
example Franz and see if they can support you, so that during your
development time you won’t face too high costs.
I don’t know if this is an option for you, but there is a modern
dialect of Lisp which is ready for commercial development, and it
compiles its code to the JVM, which means that it runs on all major
plattforms. You can find more info here:http://clojure.org/
Watch the videos.
Another nice ressource is here:http://ociweb.com/jnb/jnbMar2009.html
And regarding the editor: you could use Enclojure, a plugin for
NetBeans. You should feel right at home when coming from Eclipse:http://enclojure.org/
André
--
Lisp is not dead. It’s just the URL that has changed:http://clojure.org/
Hi, André.
In fact, I tried almost all Lisps around: Franz, SBCL, Clozure (with
z)... every Lisp that is fast. My intention is not to build commercial
applications, but my group has money to spend. Right now, we received
a grant to study global warming and urban heat islands. I decided
that the number crunching must be done in SBCL. To reach this
conclusion, I played with Franz, CMUCL, and Clozure. I discarded Franz
because of it has a very complicated IDE. Instead of learning Lisp, my
programmers were clicking buttons, and trying to find their way in a
maze of menus, windows, dialogs, etc. After one week, nobody was able
to figure out how to save a standalone application. What I need is
something basic, that I run from a DOS box. My programmers believe
that the most friendly and direct Common Lisp is SBCL. Clozure is also
very friendly, but it is slow.

Now, for Clojure. One of the problems is to collect what experts call
ground truth to study the urban heat island. There are satellites
shooting infrared images from Earth. We are supposed to obtain a map
of temperature for large cities, like New York, Mexico City, etc. The
first thing is to eliminate atmospheric and surface effects from the
infrared images. If we were able to do that with perfection, we could
infer the temperature from the satellite images. The image correction
is obtained by solving equations given by Chandrasekhar in his book
Radiative Transfer. The equations are solved by large Lisp programs,
that I intend to run using SBCL.

Since the radiative transfer models are unlikely to work perfectly
well, the researchers need to correct the temperature maps before
sending them "to the table of the governor". This correction is called
ground truth. We connect small temperature meters to the personal
computers of volunteers. These devices send their measurements through
the Internet. A program (written in Lisp) compare the map of the
volunteers and correct the satellite. The satellite image contains
many more points than the volunteers image. So the governor will know
that the temperature is very high indeed --- he has no means of
knowing it because of the air conditioning (that is a joke :-).

We are looking for a good language for writing the small programs that
will collect the gound truth. You know what I mean, the programs that
go into the volunteers machines. Here are the languages we analyzed:

1 --- Pliant -- a language by a fellow from France; his name is
Hubert Tonneau. We rulled out Pliant because it is necessary to
install it in the volunteers machine.

2 --- Java -- Since most people have Java in their machines, it is not
necessary to install a runtime into volunteer computers. We rulled out
Java because it is too messy.

3 --- Scala -- is a language that generates code for the JVM. We ruled
out Scala because it requires to install a large runtime in volunteer
machines (3M). In fact, Scala runtime is larger than Pliant.

4 --- Clojure -- the problem with Clojure is exactly the same problem
that we had with Scala: a large runtime (smaller than Scala, but still
large).

5 --- Nice -- people around here became very enthusiastic about Nice.
It passed all tests. It is fast, generates Java VM, no runtime, it is
safe (compared to Java), easy to deploy (it packs all classes into the
same archive) etc. The problem with Nice is that its inventor, a
Frenchman called Daniel Bonniot, stopped supporting it.

The ground truth program is an applet. Since all languages that we
examined have problems, we still don't have a solution. Suggestions?
André Thieme
2009-03-11 00:30:01 UTC
Permalink
Post by comp.lang.scheme
On 9 mar, 21:30, André Thieme <address.good.until.
Hi, André.
In fact, I tried almost all Lisps around: Franz, SBCL, Clozure (with
z)... every Lisp that is fast. My intention is not to build commercial
applications, but my group has money to spend. Right now, we received
a grant to study global warming and urban heat islands. I decided
that the number crunching must be done in SBCL.
SBCL generates typically performant code. So if speed is an important
issue for you then SBCL offers several hooks for optimization, where
needed.
What you said sounds as if it is already decided that it has to be SBCL.
If that is the case then I personally would strongly suggest to use
Emacs+Slime. Yes, I know... someone who used Eclipse in the past will
feel transported back into the early 90s.
But this combination is very nice for developing in CL.
Post by comp.lang.scheme
Now, for Clojure. [...]
The equations are solved by large Lisp programs,
that I intend to run using SBCL.
So, you already have existing Lisp programs?
In that case you would have of course less work when you stick with CL.
If those large programs are mostly functional, not with oop and too many
side effects (but math instead), then it should be easy to translate
them.
Post by comp.lang.scheme
We are looking for a good language for writing the small programs that
will collect the gound truth. You know what I mean, the programs that
2 --- Java -- Since most people have Java in their machines, it is not
necessary to install a runtime into volunteer computers. We rulled out
Java because it is too messy.
Understandable.
Post by comp.lang.scheme
4 --- Clojure -- the problem with Clojure is exactly the same problem
that we had with Scala: a large runtime (smaller than Scala, but still
large).
I am not sure I understand what you mean by large.
Each month this word gets a new meaning, as the average of world wide
installed memory gets bigger. Are those machines with 128 MB Ram?
In that case you could honestly think about C.
Not only will that have a way smaller runtime than all your other
suggested solutions, it also can be fine tuned to run very fast.

I have only a very rough idea of what your needs are, so I can't make
specific suggestions. My general approach is, if I have a problem and
can chose the language, then my first idea will be to solve it in
Clojure.
It adds just a few MBs to what Java already does. If Java is in
principle an option, then it sounds odd that Clojure is too big.
I mean, if volunteers means people like you and me, then they probably
have 1+ mbit/sec internet and 2gb ram.

So, that's what I can say. If the descision goes for SBCL, then I
suggest you to use Emacs+Slime. Clients should run Linux and expect
the binaries to be 20+ MB in size.
If you see that Clojure is an option, then I suggest you use that
instead, and maybe try NetBeans+Enclojure.
This will give you 2+ MB .jar files (the "binaries") which will run
on all major OSes. Also it is in most cases trivial to parallelize
Clojure applications. Here in comp.lang.functional you can see that
for some calculations Clojure runs as fast or faster than statically
typed languages such as OCaml or F#. This is maybe not true for your
case, but as a proof of concept it should be okay.
Some of those volunteers maybe have quadcores at home ;)

Good luck with your project! Whatever route you may take, it sounds
interesting and useful.


André
--
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org/
Continue reading on narkive:
Loading...