Re: How To Learn Lisp
- From: Tim X <timx@xxxxxxxxxxxxxxx>
- Date: Wed, 19 Sep 2007 11:45:28 +1000
Carlo Capocasa <theman@xxxxxxxxxxxxxxxxx> writes:
A quick discussion in the previous 'Learning Lisp from Scratch'
thread lead me to spontaneously write a short article for newbies on
how to get started with lisp less painfully.
Feedback appreciated!
--
HOW TO LEARN LISP
Step 1: When you see Emacs, turn around and run
Extremely poor advice which I think is based on FUD rather than anything else.
I'm new to this fantastic new language called lisp(1), and I decided
the best person to teach someone new is someone new. Only someone
new can truly understand the unique challanges of being new. To a
young man fresh in the dating game, the advice of a happily married
elder to treat a woman with care, affection and respect will
probably yield a lot of awquard situations until he has overcome his
fear of rejection, while his friend yelling "You got to put the
MOOOOOOVES on those honeys!" might help him to do just that. Before
I can go on to uncover some of the miracles our elders have promised
me lie to be discovered in Lisp, I need to overcome a few very
practical obstacles that have absolutely nothing to do with the Way
of Lisp; but overcoming them will expose me to the Way of Lisp, and
I'm sure that will be worth the trouble. Writing this, I'd like to
bring some of you along.
More poor advice IMO. Essentially your saying you should ignore the advice
of people who have already gone through the pain. While its all too true
that the young, through a combination of impatience and arrogance, are
destined to repeat the mistakes of those who have already been through the
process, thats not the same as telling them to actively ignore what more
experienced people have to say. Not all young men found treating women
appropriately an impediment to their dating nor did they find it created
any more awkward situations than putting 'MOOOOOOVES on those honeys!' that
resulted in either a slap or a drink in the face.
An Integrated Development environment is a program that you can fire
up and start doing something useful with a new language immediately.
Since when is that a definition of an IDE?
Lisp has one of those, and it's called 'Slime'. (Charming, isn't
it?). Unfortunately, it's built on a beast of a text editor called
Emacs which is supposed to be all-powerful. I wouldn't doubt it is
extremely versatile and useful, because it has evolved through years
of being used for hard-core hacking; loads and loads of the most
valuable Software today must have been created with it. Each and
every one of us undoubtedly owe a great debt to Emacs.
Unfortunately, that doesn't make it any easier to learn to use when
you've grown up with the heavily GUI-laden OSes of the 90s and 00s.
So you're going to learn to use an obscure text-editor that follows
70s UNIX paradigms rather than 90s Desktop paradigms at the same
time as you're learning an obscure programming language? There's got
to be a better way to do this.
this is just ignorant rubbish Have you actually tried using Emacs for more
than 5 minutes or are you basing this on the FUD you have heard about the
editor? Tell me what features are available in any of the GUI editors you
claim new users are accustomed to that is not in emacs? Lets just consider what you get in a current emacs -
- Menu bar with all the normal menu entries you get in GUI editors
- Tool bar that you get in GUI editors
- Full mouse support, essential for GUI uses who have never mastered a
keyboard
- Support for various coding systems
- Support for displaying graphics, such as tiff, gif, png, jpeg etc
- support for sound
I guess the nightmare learning curve you imply that makes it such a beast
must be because you need to learn some weird incantation or key binding in
order to use the editor - lets see
Maybe you need to be in some special mode in order to enter text? No, its
not VI
Maybe you need to know weird unfamiliar key bindings in order to cut and
paste text? No, you can just use the mouse and transient mark mode (and
option in the options window and if you like the CUA type key bindings for
cut, copy and paste, you can choose that from the options window as well
while your there).
Maybe you need weird key bindings to move around in the buffer? No, arrow
keys work as expected, mouse works as expected.
Maybe you need to know obscure or weird commands to do find and replace?
No, its there in the menu too.
Maybe you need to know weird and obscure commands to enter newlines,
indent, get line wrapping etc. No, basic editing works as
expected. Automatic line breaking etc, can be turned on from the options
menu, along with most other things someone new to emacs may want
initially.
Maybe the problem is that you need to learn elisp in order to configure the
editor before you can use it? No, basic editor functionality generally
works 'out of the box'. Even if it didn't, the vast majority of
configuration can be done via customize (available from the menus) and
supporting radio buttons, check boxes, menus etc. No need to know elisp.
I'm not saying that emacs can't be large, complex and require significant
effort to learn to use it to its fullest. It is a very powerful editor and
as is common with powerful things, they can get complex when you want to
take advantage of that power. However, nobody says you have to take
advantage of it or that you need to have all this knowledge before you can
use it as a basic editor.
Any IDE involves a learning curve (BTW, your setup is definetly not an
IDE). The learning curve for basic emacs operation is no worse than any
other editor. The learning curve for becoming an advanced emacs user is
certainly steep, but the learning curve to be come an advnaced user of any
system is usually steep and there is a big difference between being and
advanced user and a basic user. There is some learning involved in getting
to use SLIME with emacs, but all the basic functionality is available from
menus. Bottom line, emacs learning curve can be what you want - steep or
gentle, done all at once or over an extended period. Basically, its just a
normal editor with a lot of optional bells and whistles - how quickly or
soon you want to start learning how to use those bells and whistles is up
to the individual user.
My approach in learning LISP has been simpler than inheriting all
the baggage at once. It is not about cloning what our elders are
doing now, but developing from our own situation just like they did
when they were young.
Why do you asume thats how we did it? Why discount the developments and
improvements that have happened to make things easier? Why assume there is
all this baggage?
I personally don't have an issue with how you have gone about
things. However, I get the impression you have made decissions based on FUD
rather than on any real information. It seems like you had heard others say
emacs was hard, that slime was difficult to learn and that getting to grips
with a lisp IDE was complex and therefore made the decision not to look at
it for fear it would distract you from what you wanted to do - play with
CL. If this is the case, it is unfortunate you have been misled in this
way. However, it is unacceptable to potentially allow others to be
similarly misled without some attempt to highlight some of these
misconceptions.
Tim
--
tcross (at) rapttech dot com dot au
.
- References:
- How To Learn Lisp
- From: Carlo Capocasa
- How To Learn Lisp
- Prev by Date: Re: Learning LISP from scratch
- Next by Date: Re: How to replace elements on a list
- Previous by thread: Re: How To Learn Lisp
- Next by thread: Re: How To Learn Lisp
- Index(es):
Relevant Pages
|