Re: Wondering if you guys would like to comment on this
- From: Tim X <timx@xxxxxxxxxxxxxxxxx>
- Date: Sat, 07 May 2005 19:30:47 +1000
Matthias Buelow <mkb@xxxxxxxxxx> writes:
> pjhyett@xxxxxxxxx wrote:
>
>>""So an annoyance that Common Lisp programmers can resolve for
>>themselves within five minutes plagues Java programmers for years."
>>...which is great, until someone else has to use your code. Have you
>>ever tried using someone's highly customized EMACS setup? Maybe
>
> Why should he want to do that? Is he arguing against configurable
> software?
No, I don't think so. I've had the same experience with perl that he
seems to be referencing. One of the big 'selling points' of perl was
the idea of letting you do it your way. I've found this can be a
problem when working on a large perl project with multiple developers
- often, it takes a lot of work to begin to read someone elses perl
style when it is very different to your own style. While this can be a
problem with any programming language, perl tends to make it worse
because it supports such a large set of styles, plus it makes such
extensive use of 'hidden' or default variables.There tends to be a
slight tendency in some quarters of the perl community to show off how
clever you are by writing code with the minimal amount of characters
and using a lot of the default variables and side effects etc. I've
seen bits of code which really look like 'machine noise' I use to
sometimes see when working with serial ports connected to other
hardware.
I don't see this sort of problem with CL. For a start, CL has a much
more consistent syntax than perl - well perl's syntax is consistent,
but it has multiple ways of writing exactly the same thing - with
brackets or whitout, explicit loop variables or implicit ones,
multiple ways of representing subroutine arguements - with prototypes,
without, functions which behave differently depending on the context
they are called in - maybe return a scalar, maybe return a list etc.
I also think the person who wrote the review didn't really understand
macros in CL nd how they are used. I get the impression he feels that
people would use/abuse the macros to create a new language which
anyone having to maintain the system would have to learn before being
able to work with it. While this could be done, in practice, people
usually only use the macros when there is a need and tend to use them
in a way which is consistent with how the language works/looks.
>>they've made it more like Wordstar, or changed the exit key. Maybe
>>their meta is their control key, and their control key is their caps
>>lock key. The result is that you not only have to be used to reading
>
> The man's a bit declued.. control/meta/capslock are (on X11)
> configured in the X server, via xmodmap etc. What's emacs got
> to do with that? [for my convenience, I have made capslock an
> additional control key, for example.. should I not be allowed to
> do that?]
Actually, in emacs, you can rebind pretty much any key. Xmodmap is a
lower level operation. Often, you do both. For example, emacs has the
convention of binding some functions to the 'meta' key. Some keyboards
and operating systems can/do view 'meta' and 'alt' as different keys,
while others dn't have a 'meta' key, just alt. On some platforms,
emacs would view left alt as meta and write alt as alt. I often use
different X keyboard maps and xmodmap to define things like the
'windows' key as meta etc. I then bind various functions within emacs
to these keys.
The original authors arguemnt is still however very flawed or an
exageration of a real problem. I've had to use other peoples emacs
from time to time and all you have to do is use the various command
line arguments to bypass their configuration so taht everything goes
back to the default settings - so its not a 'real' problem. You can
even tell emacs which configuration file to use, so you could even
point it at your own .emacs and have all your own config options.
>>someone's algorithms, you have to be used to reading their dialect.
>>As such, I have the same rules on LISP programming that I do with perl
>>- I hate it unless I wrote it."
>
> One can write weird rubbish in about every language.
> I don't really understand what he's arguing for.. removing all
> extensibility from Lisp? Or what's he trying to say?
Agreed - you can write rubbish in anything. I've also found it is
usual to have to spend some time to get to know someone elses style no
matter what the language is. As mentioned, perl is the worst I've come
across. CL could be bad if the original coder was one of those
developers who insists in trying to redefine the language rather than
working with it - for example, imagine a C programmer coming to CL,
learning macros, writing a heap of macros to essentially create a
language like C inside CL. Now, you get a job to maintain this system
and you are told its written in CL. However, when you open the first
source file, you see something which looks like a mutated C and you
wonder what the hell is going on. However, the problem here is not
with the language, its with how it was used and any tool can be
abused. Possibly the only justified criticism whoule be to say the
language is too powerful - but that somehow seems to be a silly thing
to say!
--
Tim Cross
The e-mail address on this message is FALSE (obviously!). My real e-mail is
to a company in Australia called rapttech and my login is tcross - if you
really need to send mail, you should be able to work it out!
.
- Follow-Ups:
- Re: Wondering if you guys would like to comment on this
- From: Pascal Bourguignon
- Re: Wondering if you guys would like to comment on this
- References:
- Wondering if you guys would like to comment on this
- From: pjhyett
- Re: Wondering if you guys would like to comment on this
- From: Matthias Buelow
- Wondering if you guys would like to comment on this
- Prev by Date: Re: anamorphic macros
- Next by Date: Re: Wondering if you guys would like to comment on this
- Previous by thread: Re: Wondering if you guys would like to comment on this
- Next by thread: Re: Wondering if you guys would like to comment on this
- Index(es):
Relevant Pages
|
|