From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Tim X Newsgroups: gmane.emacs.help Subject: Re: Using Emacs Lisp for script writing Date: Tue, 22 Dec 2009 22:26:05 +1100 Organization: Rapt Technologies Message-ID: <874onj5jxu.fsf@lion.rapttech.com.au> References: <87hbrrrl3c.fsf@Traian.DecebalComp> <87vdg09ls9.fsf@Traian.DecebalComp> <878wcw53mj.fsf@lion.rapttech.com.au> <87pr677s4z.fsf@Traian.DecebalComp> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1261482128 8330 80.91.229.12 (22 Dec 2009 11:42:08 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 22 Dec 2009 11:42:08 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Dec 22 12:42:01 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NN37n-0008Fh-NH for geh-help-gnu-emacs@m.gmane.org; Tue, 22 Dec 2009 12:42:00 +0100 Original-Received: from localhost ([127.0.0.1]:38191 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NN37n-0006SI-7K for geh-help-gnu-emacs@m.gmane.org; Tue, 22 Dec 2009 06:41:59 -0500 Original-Path: news.stanford.edu!usenet.stanford.edu!news.kjsl.com!news.alt.net!news-xfer.nntp.sonic.net!news.astraweb.com!border5.newsrouter.astraweb.com!not-for-mail Original-Newsgroups: gnu.emacs.help User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.90 (gnu/linux) Cancel-Lock: sha1:BebYITetPG0EFcr3DCkPsxg90SU= Original-Lines: 65 Original-NNTP-Posting-Host: cfe84f9b.news.astraweb.com Original-X-Trace: DXC=aiEHJAC`ASgfMO9kN]`\TcL?0kYOcDh@jUYllWTZMmjo8XK1:P[em@f[XK99=b\o1b23H4GF:bZcb Original-Xref: news.stanford.edu gnu.emacs.help:175718 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:70794 Archived-At: Cecil Westerhof writes: > Tim X writes: > > > I think I will try to write the scripts only in CL. In that way it is > easier to share. Otherwise people need to have a CL implementation and > Emacs on their system. When there is a situation that an elisp version > is a lot more efficient -because of the optimisation for text- I could > create two versions. But elisp is of course very handy for extending the > functionality of Emacs. :-D I think that is a wise way to go. My apologies if I sounded too 'preachy' or critical of what you are doing. My main motivation was to highlight that at this stage, you need to be very careful about assessing efficiency and performance. Lisp dialects are somewhat notorious for being easy to learn and very hard to master. CL in particular can be very daunting at first because it is quite a large language and the hyperspec takes considerable time to get comfortable with. For me, the most difficult part has been identifying/finding the functions you are after. The terminology can seem unfamiliar and searching the hyperspec index can be frustrating when you don't know the right terminology to use. I frequently spend considerable time searching for something which I know will be there, but not having the right terminology, I can't find it. For this reason, I've found other resources, such as Practical Common Lisp, CLTL2 and other books really useful. I tend to skim them, find the general area and terms I need and then go back to the hyperspec to get the precise definition/usage. from experience, I would say your decision to focus on CL for now is a good one. I've seen a number of posts from people who have managed to get themselves really confused because of switching between different dialects. I have managed to get myself confused as well by doing this. It is best to concentrate on one until you are quite comfortable and familiar with it and then move on to the next dialect. Apart from reducing the potential for confusion, you can also appreciate the pros/cons of the different dialects better. Like many others, myself included, you will likely find elisp a little limiting after having worked with CL as there are a number of features CL has that would be nice to have in elisp (though I still find elisp and emacs the best extensible editor and kitchen sink available!) good luck Tim P.S. Another advantage to CL is that if you plan to share/distribute some of what you are doing, you can compile it to native code. This means people don't even have to know you wrote it in lisp. This can help overcome the considerable FUD regarding CL that exists out there. PPS. Make sure you do put the effort into getting SLIME working. Apart from making you more productive in CL, I think you will find the whole development process very enlightening. This is what I love the most about CL. Instead of the time wasting edit -> compile -> debug -> edit ->... loop, you have a much tighter code -> evaluate -> refine loop that encourages small incremental change and practices like unit testing and test driven development. I also find it much easier to 'explore' solutions. In general, a whole development experience that is more rewarding and for me at least, produces better code. It has also had positive benefits on the rest of my coding in other languages. In general, I think it has made me a better programmer. -- tcross (at) rapttech dot com dot au