From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Wei Weng Newsgroups: gmane.emacs.help Subject: Re: learning Emacs Lisp Date: Tue, 11 Nov 2008 01:49:37 -0500 Organization: Acecape, Inc. Message-ID: <1226386178.846337@nntp.acecape.com> References: <87k5bbjzvo.fsf@thinkpad.tsdh.de> <87ljvrl2l0.fsf@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1226389238 30567 80.91.229.12 (11 Nov 2008 07:40:38 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 11 Nov 2008 07:40:38 +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 Nov 11 08:41:39 2008 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 1KznsY-0006Jq-Tm for geh-help-gnu-emacs@m.gmane.org; Tue, 11 Nov 2008 08:41:39 +0100 Original-Received: from localhost ([127.0.0.1]:49343 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KznrR-00056f-6Q for geh-help-gnu-emacs@m.gmane.org; Tue, 11 Nov 2008 02:40:29 -0500 Original-Path: news.stanford.edu!newsfeed.stanford.edu!postnews.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!nx01.iad.newshosting.com!newshosting.com!post02.iad!not-for-mail User-Agent: Thunderbird 2.0.0.17 (X11/20080925) Original-Newsgroups: gnu.emacs.help In-Reply-To: <87ljvrl2l0.fsf@gmail.com> Cache-Post-Path: nntp.acecape.com!unknown@p67-47.acedsl.com X-Cache: nntpcache 3.0.1 (see http://www.nntpcache.org/) Original-Lines: 69 Original-X-Complaints-To: abuse@newshosting.com Original-Xref: news.stanford.edu gnu.emacs.help:164311 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:59646 Archived-At: Niels Giesen wrote: > Richard Riley writes: > [...] >> Of course. But eLisp is special in that its almost unreadable to the >> typical procedural programmer fluent in C/C++ etc until you know a lot >> if it already. Or that was my experience. And we all have different >> experiences so it does no harm to remain open as to what suits other >> people. > > Where is there any evidence that the original OP is a `typical > procedural programmer fluent in C/C++'? > > It annoys me to pieces that so many textbooks assume that everyone out > there is a C/C++/Java programmer. For me, Lisp was my first > programming language (thanks to Emacs, which I started using to write > law papers in), and I do not need textbooks to explain for instance > Ruby to me in Lisp (which is perfectly feasible) but I even less need > comparisons with Java or C. Even worse, doing so is a major > distraction from the real object of learning. > > Consider teaching Dutch to someone from Morocco but using English > during the lessons: that's just plain silly and simply leads to > unnecessary confusion. Using analogies from Slovak to teach Polish > however may be insightful, but only when the student already has > knowledge of a Slavic language. Same goes with programming languages: > do not assume. > > When teaching something, teach it by itself; people willing to learn a > new language are most likely not stupid, and if they are somewhat > smart, they will find out for themselves what differences and > similarities there are between languages known already. > > For me, it would have been nice when learning JavaScript if the books > had warned me that not everything is an expression (invalid left-hand > assignment anyone?), that you have to explicitly return something, > that there are things such as keywords, and it would be nice if > textbooks explain how to take advantage of closures instead of trying > to get rid of them, hide them, and how to build an ugly half-assed > Class system. > > The first few of those would cause people coming from C or Java at > least to frown but most probably to get irritated ("Why would I care > about all these strange incomprehensible things from some dead > language with too many parens, when all I want to do is simply to > learn JavaScript?????"). Therefore, I would not recommend such in a > learning text on JavaScript. > > The second however, how to make good use of lexical scoping, is > interesting to learn, and should be explained by itself, as should be > prototype based inheritance and functions as first-class things (two > of which could - but should not - be explained by comparison with > Lisp). > > Comparisons with Java-style OOP however should not be in a basic > textbook on learning JavaScript, and certainly no attempt should be > made to mimic it -- for the very same reasons that comparisons with > Lisp should not be made in a general textbook. This is a very typical case of "Too many words, too few substances". You spent all these time typing out all these words, I can summarize in 1 line: Elisp is very different from C/C++/Java, and it is my (Niels) first language. Thanks Wei