Re: Paul Graham's Arc is released today... what is the long term impact?
- From: "John Thingstad" <jpthing@xxxxxxxxx>
- Date: Wed, 30 Jan 2008 22:12:01 +0100
På Wed, 30 Jan 2008 20:42:31 +0100, skrev <attila.lendvai@xxxxxxxxx>:
Well I took a look at it. I found it kinda cute.
Personally I like the terseness. CL has way to many long winded names.
the problem with that is that you can abbreviate something in a
million different ways. if the name of something is long then the
problem this longness generates must be solved in the input method
layer (the editor).
have you used the fuzzy completion in slime? we have many 40+
character long names in our project and we can input the more often
used ones in less then a second (!). by time one learns the right 3-5
characters with which your desired name scores highest with fuzzy.
now, i could write those 3-5 characters instead of the 40+ long names
and even spare two extra keys (TAB + SPACE) but then the code would
get unreadable beyond limits. and especially so for developers who
join the project later.
abbreviation is bad.
- attila
I obviously disagree.
Yes I use fuzzy completion and also complete-word (Alt-/) all the time.
Still I find the ability to get more commands on one line makes it easier to read.
For example take cl-who's HTML (:a :href "address" "text") and compare that with HTML <a href="address">text</a>
I like the sans line noise and echo version.
This would s worse: <archive href="address">text</archive>.
Note that it is the most used commands that get the simplest names.
(Paul says it is sufficient to recognise them the second time you see them.)
(w/uniq vs (with-unique-names for example.
I find the mnemonics fairly easy to figure out and actually think I process them faster than the full text.
compare System.Output.PrintLn("Hello"); to (prn "hello")
The syntax is pretty much a no brainer too. Usually after the command just list the data or if you need grouping then use parentheses.
(let x 5 (prn x)) vs (let ((x 5)) (print x))
for more than one variable there is 'with'
(for x 0 9 (prn x)) vs. (loop for x from 0 to 9 do (print x)) or (dotimes (i 10) (print i))
(with (x 5 y 6) (list x y)) to (let ((x 5) (y 6)) (list x y))
my biggest grievance in CL is multiple-value-bind.
Passing variables on the stack is something that is common and should be dead simple.
I find the syntax alone makes me think twice about using it. Again I find these lectures right in the middle of my code distracting.
(multiple-value-bind (div frac) (/ y z)) when I would want to write something like [d f](/ y z)
I must admit I have been rather sceptical to Arc, but after having actually read some Arc code I am starting to think I like Paul's style. I guess it's a either you love it or hate it thing.
In it's present state it is still mostly a waste of time though..
--------------
John Thingstad
.
- Follow-Ups:
- Re: Paul Graham's Arc is released today... what is the long term impact?
- From: attila . lendvai
- Re: Paul Graham's Arc is released today... what is the long term impact?
- References:
- Paul Graham's Arc is released today... what is the long term impact?
- From: usenet
- Re: Paul Graham's Arc is released today... what is the long term impact?
- From: John Thingstad
- Re: Paul Graham's Arc is released today... what is the long term impact?
- From: attila . lendvai
- Paul Graham's Arc is released today... what is the long term impact?
- Prev by Date: Re: Spartns (fast and flexible tensor representation for Common Lisp)
- Next by Date: Re: Formatting large numbers with ~g?
- Previous by thread: Re: Paul Graham's Arc is released today... what is the long term impact?
- Next by thread: Re: Paul Graham's Arc is released today... what is the long term impact?
- Index(es):
Relevant Pages
|
|