From ... Path: archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: Some more misc. Lisp queries References: <3b782255.2293469@News.CIS.DFN.DE> Mail-Copies-To: never From: Erik Naggum Message-ID: <3207501518857559@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 58 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Wed, 22 Aug 2001 20:38:42 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 998512722 193.71.66.49 (Wed, 22 Aug 2001 22:38:42 MET DST) NNTP-Posting-Date: Wed, 22 Aug 2001 22:38:42 MET DST Xref: archiver1.google.com comp.lang.lisp:14644 * Martin Thornquist > With all the usual disclaimers of how this is subject to all kinds of > things, a number I've sometimes seen quoted is six months. Are you sure that was for Common Lisp? I have heard 6 months for C++. Whether you can start do something useful depends on what you want to do. Some people want to write "applications" first thing, but they also think that "hello world" programs are "applications". In Common Lisp, you can start doing useful stuff essentially right away. It is even better than Perl in this regard, which has been optimized for immediate gratification. Nothing really beats a good interactive programming environment. C++ gave me the incredibly painful fear that if I did not know exactly what I was doing and all its ramifications, I would do something harmful. I have never had that feeling in my entire life prior to working with that abomination of a programming language back in 1993/94. It took me six months to get a grip on that language at all, but I still fear its complexity in that I never seem to manage to wrap my head around the arbitrary insanity that results from wielding the blunt tool of syntax where the fine instrument of semantics should have helped communicate trust between programmer and system, which is probably why I cannot work with Perl, either. C++ had me drown in an overpowering desire to fix the clearly misdesigned and badly broken language before I could proceed. It was only after tried to use it for real that I discovered that life is too long to become good at C++: Imagine what I would have to do if I did. Now, this was the time that I rediscovered Common Lisp for the umpteenth time. Lisp has this "I have always loved her" appeal to me. Even before I knew Lisp at all, I have thought in ways that are compatible with Lisp's and I have found that Common Lisp is the language I wanted to use to program. This has also been possible and realized. I believe it took me about two years before I could confidently ask a client to use and purchase a commercial Common Lisp system, but by then I was as fluent in that system as I were with Unix after about five years. (I have been using Unix systems since 1980.) However, I had been programming little things for quite productive purposes on my own practically since the day I made a decision to investigate it. Now, it could well be that different languages are for different people. Lots of other things are that way, so it would not really surprise me. I think the key is to figure out if you _like_ the language the first few months of using it. If you feel like redesigning it (which some people in the Common Lisp community still do), maybe it is not for you. If you feel like it takes _more_ than half a year for you to become proficient in a language, maybe it is you, maybe it is the language, maybe it is both, but I would argue that if you fail to get the hang of a language in the _first_ month of using it and reading up on it and trying to use it, break off and do something else. Even in your spare time and just for fun, a month should be enough to cover at least 2000 pages of good books and lots of material on the Internet. (Unfortunately, I have not been in need of such things for the longest time, so I am unable to give valuable pointers to beginners' material.) In conclusion, I think the key is to figure out whether you are able to _think_ in the language you are learning. This should not take too long. ///