From: Mark Carter
Subject: It's growing on me
Date: 
Message-ID: <45e9e37f$0$2449$db0fefd9@news.zen.co.uk>
I switched from XP to Ubuntu today, and one thing I missed was a 
password manager. I thought, for the hell of it, that I'd try to write 
my own one in Lisp; even though I'm a Lisp n00b (although I have been 
through a few "iterations" of Lisp before).

Well, it's probably a bit much to say that I've got a fully grown 
application in a day; but I'm quite impressed with the progress I've 
made. It's even got a little interactive menu system; although it 
doesn't yet actually encrypt the data.

I don't know if it's how the big-boys do it, but I'm finding it helpful 
to have a file which basically acts as a code scratchpad, and make 
functions live using emac's C-x C-e. Also, I find it better to "keep it 
simple", and not worry about macros and cool tricks. The interactive 
environment helps to start small, and I can incrementally build it up. 
Not sure what the structured programmers would make of that, though.

Dunno, I think Lisp might be growing on me after all.

From: Pascal Costanza
Subject: Re: It's growing on me
Date: 
Message-ID: <54u7llF21lj9bU1@mid.individual.net>
Mark Carter wrote:
> I switched from XP to Ubuntu today, and one thing I missed was a 
> password manager. I thought, for the hell of it, that I'd try to write 
> my own one in Lisp; even though I'm a Lisp n00b (although I have been 
> through a few "iterations" of Lisp before).
> 
> Well, it's probably a bit much to say that I've got a fully grown 
> application in a day; but I'm quite impressed with the progress I've 
> made. It's even got a little interactive menu system; although it 
> doesn't yet actually encrypt the data.

Yes, very important: You best learn Lisp by doing it, not by studying 
it. Many things only make sense as soon as you get to a situation where 
they actually click.

> I don't know if it's how the big-boys do it, but I'm finding it helpful 
> to have a file which basically acts as a code scratchpad, and make 
> functions live using emac's C-x C-e.

Yep.

> Also, I find it better to "keep it 
> simple", and not worry about macros and cool tricks. The interactive 
> environment helps to start small, and I can incrementally build it up. 

Yes, it's indeed also a good idea to start simple. The stuff for 
organizing larger chunks of code can be used as soon as your code 
actually becomes large. Only then you know what overall organization 
principle best makes sense for the case at hand. (If you recognize a 
coding pattern, use macros. If you recognize a data abstraction, use 
classes. If you recognize polymorphic behavior, use generic functions. 
And so on...)

That's the essence of bottom-up programming, never use something when it 
is hard to judge whether you are going to really need it in the end.

> Not sure what the structured programmers would make of that, though.

Not much, unless they try it. ;)

> Dunno, I think Lisp might be growing on me after all.


Pascal

-- 
My website: http://p-cos.net
Common Lisp Document Repository: http://cdr.eurolisp.org
Closer to MOP & ContextL: http://common-lisp.net/project/closer/
From: Mark Carter
Subject: Re: It's growing on me
Date: 
Message-ID: <45ea095b$0$28977$da0feed9@news.zen.co.uk>
Pascal Costanza wrote:

> That's the essence of bottom-up programming, never use something when it 
> is hard to judge whether you are going to really need it in the end.


No doubt I'm preaching to the converted, but I find that this kind of 
approach lets me work with cloudy ideas, rather than me having to know 
in advance exactly how it should be done. It also allows me to get the 
most important, albeit minimal, functionality earlier. And lacking a GUI 
seems to help; I'm concentrating more on what I want my software to do 
rather than how I want it to look.
From: Tayssir John Gabbour
Subject: Re: It's growing on me
Date: 
Message-ID: <1173038541.050403.85120@8g2000cwh.googlegroups.com>
On Mar 4, 12:48 am, Mark Carter <····@privacy.net> wrote:
> Pascal Costanza wrote:
> > That's the essence of bottom-up programming, never use something when it
> > is hard to judge whether you are going to really need it in the end.
>
> No doubt I'm preaching to the converted, but I find that this kind of
> approach lets me work with cloudy ideas, rather than me having to know
> in advance exactly how it should be done. It also allows me to get the
> most important, albeit minimal, functionality earlier. And lacking a GUI
> seems to help; I'm concentrating more on what I want my software to do
> rather than how I want it to look.

For some reason, this reminds me of an anecdote I heard once:

   "Here's an anecdote I heard once about Minsky.  He was showing a
   student how to use ITS to write a program.  ITS was an unusual
   operating system in that the `shell' was the DDT debugger.  You ran
   programs by loading them into memory and jumping to the entry
   point. But you can also just start writing assembly code directly
   into memory from the DDT prompt.  Minsky started with the null
   program. Obviously, it needs an entry point, so he defined a label
   for that. He then told the debugger to jump to that label.  This
   immediately raised an error of there being no code at the jump
   target.  So he wrote a few lines of code and restarted the jump
   instruction.  This time it succeeded and the first few instructions
   were executed.  When the debugger again halted, he looked at the
   register contents and wrote a few more lines.  Again proceeding
   from where he left off he watched the program run the few more
   instructions.  He developed the entire program by `debugging' the
   null program."
<http://groups.google.com/group/comp.lang.lisp/msg/6d0abab38a07a15c>


Tayssir
From: Holger Schauer
Subject: Re: It's growing on me
Date: 
Message-ID: <yxzbqj2bh9e.fsf@gmx.de>
On 4932 September 1993, Tayssir John Gabbour wrote:
>    student how to use ITS to write a program.  ITS was an unusual
>    operating system in that the `shell' was the DDT debugger. [...]
>    He developed the entire program by `debugging' the
>    null program."

This sounds as if an ITS was the perfect environment for test-driven
development.

Holger


-- 
---          http://hillview.bugwriter.net/            ---
"Emacs is *powerful* in a very limited sense of the word, sort of like
 driving a car by separately steering each wheel.  With a car like that
 you could park in places no one else could - after you became  
 skillful.  In the meantime, you're a disaster."
                  -- Ethan Herdrick in comp.lang.lisp
From: Peter Scott
Subject: Re: It's growing on me
Date: 
Message-ID: <1173045544.018296.217040@p10g2000cwp.googlegroups.com>
On Mar 3, 3:07 pm, Mark Carter <····@privacy.net> wrote:
> I don't know if it's how the big-boys do it, but I'm finding it helpful
> to have a file which basically acts as a code scratchpad, and make
> functions live using emac's C-x C-e.

That's one of the big reasons why Lisp is nice. Also, if you want to
have a code scratchpad that isn't anchored to a file (for whatever
reason) the M-x slime-scratch command is nice.