TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: About all this Lisp fuzz

30 点作者 Novash超过 15 年前
I know a little of Lisp. Not much, never went much far than 4th, maybe 5th chapter on PG's book. I did some exercises and I understand the power that Lisp brings. Maybe not fully, but I can see the potential. Before you ask, I used Lispbox to set it up, which gave me e-Macs with a Lisp extension, but which implementation I am not sure, although I know it is not any Scheme one.<p>Now, I am following all those articles posted here today about the Lisp's problems and they look to me quite similar to the Linux distro's problem, in that everyone has one that (s)he likes and disses (if not plainly hates) all others.<p>This, on the Linux world has prevented it from becoming the mainstream OS it should be, and gave Windows an undeserving and lasting afterlife. It could have died with the Vista fiasco, and it nearly did so, but now it is posing a serious comeback with Seven. Linux failed to seize the moment and Lisp is doing more or less the same.<p>Now, answer me these, since my knowledge of Lisp is severely lacking to make sense of it. If I am completely wrong about something, be merciful.<p>As far as I understand, Lisp has some 'low level' functions that are some sort of axioms on whom the implementations are built onto, right?<p>If this is true and everything on the language are built atop of those, or atop of stuff built atop of those (in n-levels), how can different implementations possible be incompatible?<p>If everyone is aware of the Lisp's problems, why isn't anyone moving to fix them?<p>Why, when one tries, the answer must always be another implementation with 'more' features instead of creating the cleanest possible implementation with 'the least' features allowing maximum compatibility?<p>I have more questions, but I need to understand these first if anyone has the patience to answer.<p>I am most grateful for your time.

10 条评论

blue1超过 15 年前
Which lisp are you talking about? For example, Common Lisp and Scheme are both languages of the lisp family, but they are rather different.<p>The PG books are about Common Lisp. CL is defined in a <i>very</i> good ANSI standard. Where implementations of CL really diverge is in the areas which are not covered by the standard, e.g. networking. Not that it is an enormous problem in practice: there are good portable libraries around ("portable" means that they work on different CL implementations).<p>edit: thinking about it, if you are using Peter Seibel's lisp in a box, then it's CL that you are playing with
评论 #826405 未加载
wglb超过 15 年前
Speaking of one who has four "distros" in the shop (ubuntu, freebsd, openbsd, osx) each of these has its strength and making our stuff work on them is not a big deal. I don't get confused at all, and there isn't all that much "noise".<p>Similarly, for the very high performance stuff, i use SBCL which generates native code on all the above platforms. I recently have started to do CCL because a client wants a true mac app and CCL has this wonderful cocoa bridge. If i had to do any java stuff or interface with java, I would probably be using clojure.<p>If you are interested, I recommend continuing PCL and the lispbox.<p>If everyone is not moving to fix the problems that you mention, it might mean that they disagree about what the important problems are.<p>Arc exists as a research effort in thinking about what the next version of lisp should look like, and there are those that feel it is a possible answer to some of your questions.<p>Scheme is a very essential (e.g. minimalist) implementation of Lisp that is often found in teaching environments.<p>Don't let the variety scare you--just dive in if you are interested.
评论 #826491 未加载
评论 #826865 未加载
rikthevik超过 15 年前
When you write C, you can be reasonably sure it will compile with a decent C compiler. There is no way to write 'Lisp'. Each Lisp dialect has different goals. A person might as well think of them as completely different languages belonging to the Lisp family. It might be analogous to think of Perl, Python and Ruby as being high-level dynamically typed interpreted languages as being part of the same family, but having completely different ways of going about things.<p>As an aside, I really like clojure. Their attitude towards concurrency and transactions (ie: they actually thought about it) is refreshing. Add to that great library support and good performance and I'm a pretty happy guy.
评论 #826942 未加载
mr_luc超过 15 年前
Your questions are reasonable ones given your experiences, but their nature makes it unlikely for people to expend much energy answering them -- questions like "why isn't anyone moving to fix them?" may be perfectly reasonable to you, and inspire eye-rolling in others.<p>Nonetheless, you'd be able to answer most of them if you tried to make a few of your own knock-off programs in lisp. ;) To do that, you'd have to decide on a lisp, installing a few and trying them out, and then decide on a project -- hopefully, something small and manageable. Perhaps a visual "hello, world" program. Or a code-golf exercise. My personal "hello, world" for learning a new language is usually a basic 1D cellular automata.<p>Once you've written your hello world, you'll have answered many of your questions. Next, rewrite it! Is your code idiomatic? What are some common idioms, and why do they exist? Could you make it shorter?<p>Next, extend it. Can you use it from the web? What would it take? What about letting people customize your helloworld? etc etc. See what it feels like to develop in the new language, even though the entire "project" cycle could conceivably be done in a single day. (Disclaimer: not by me. It takes me, at least, two months of part-time hacking to feel affection for a language).<p>After that kind of a learning process -- which isn't terribly onerous; it's the sort of thing you end up doing with almost any interesting language -- you'll look back at these questions and laugh.<p>And, if you aren't willing to go through that sort of "learning lite", why bother asking the questions?<p>( If you're looking for enlightenment about the process of actually using Lisp, in book form, I recommend <i>Practical</i> <i>Common</i> <i>Lisp</i>, which is available as a free pdf ).
swannodette超过 15 年前
You should also look into Clojure, especially if you're interested in getting into concurrency and functional programming. I recommend using Enclojure+Netbeans for a user friendly introduction to a very powerful new Lisp.
评论 #826586 未加载
sidmitra超过 15 年前
Read the bipolar lisp programmer, it's quite an interesting insight. <a href="http://www.lambdassociates.org/blog/bipolar.htm" rel="nofollow">http://www.lambdassociates.org/blog/bipolar.htm</a>
评论 #829368 未加载
评论 #829734 未加载
CyberFonic超过 15 年前
The axioms you refer to is Church's lambda calculus, the seminal material may be found on John McCarthy's website: <a href="http://www-formal.stanford.edu/jmc" rel="nofollow">http://www-formal.stanford.edu/jmc</a>. The stuff is like 1960's !<p>There are basically two main camps, Lisp-1 and Lisp-2 and consequently two divergent major families, Scheme and Common Lisp. From my recollection, the "Lisp Wars" started with hardware implementations, Symbolics vs. Lisp Machines, et al., see <a href="http://en.wikipedia.org/wiki/Symbolics" rel="nofollow">http://en.wikipedia.org/wiki/Symbolics</a>.<p>My take is that the hardware implementations came at a time when CPU speeds and memory capacities where not up to the demands of integrated Lisp environments. By the time speed and memory were sufficient to host Lisp, the world of IT got preoccupied with x86 architecture and Windows. Neither of these being suitable (in 1980's) as a production Lisp hosting environment.<p>In the hands of an expert Lisper, any version of Lisp quickly becomes extremely productive. The issues of libraries (FFI) and compilation are addressed in different ways, it's like you have a choice! It's like asking a guitarist why there are so many brands of guitars? Why don't they all use ____ (insert your pref. brand).<p>To research further, I suggest looking-up "John McCarthy", "Guy Steele", "Richard Gabriel", "Symbolics", "Lisp Machine" on Wikipedia and Google.
grosales超过 15 年前
I think you have a valid analogy of Lisp to Linux, but you you should finish the PG book before you make any final judgment. The power of Lisp comes from its "simplicity", its extensions, and the magical Aha moment you get while coding in Lisp (it's like obtaining zen only to realize new and bigger doors have opened before you and there is a vast ocean of new knowledge to gain) - the Aha moment is rather special, to the point that I don't know how to describe it, that's why you should try to have it yourself. Like other comments have mentioned, Scheme and CL have different purposes (Scheme is mostly used in academia and is very simplistic while CL was geared to enterprises mostly). I really don't know why Lisp flavor wars arise, I suppose is the price we pay for being among passionate people, it can hold back a technology for sure, but if that war can be turned into a logical debate of merits, great things can come out. On that note, I do like Windows 7 a lot, but I will stick to Linux because I have learned so much (shell scripting, network administration, socket programming) ever since I started using it that it's not even funny, and there is some fun in being able to fix something yourself instead of having to report a bug to MS and wait for them to fix it.
paracelsus超过 15 年前
Why, when one tries, the answer must always be another implementation with 'more' features instead of creating the cleanest possible implementation with 'the least' features allowing maximum compatibility?<p>This was said in 'The Next Lisp'<p><a href="http://www.lambdassociates.org/blog/nextlisp(1).htm" rel="nofollow">http://www.lambdassociates.org/blog/nextlisp(1).htm</a>
ilyak超过 15 年前
"If this is true and everything on the language are built atop of those, or atop of stuff built atop of those (in n-levels), how can different implementations possible be incompatible?" You cannot build i/o atop of axioms. It would always be a foreign thing that you have to deal with, incompatibly of using a long spec.
评论 #826814 未加载