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

科技回声

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

GitHubTwitter

首页

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

资源链接

HackerNews API原版 HackerNewsNext.js

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

Why (Some) Smart People Hate Programming

36 点作者 primodemus超过 14 年前

7 条评论

jrockway超过 14 年前
Parentheses are not Lisp's problem. The lack of useful and compatible libraries is.<p>Lisp is basically a ghetto where it's every man for himself. You have all the tools to build the most wonderful abstractions ever, and many people do. The problem is that person A's abstractions don't play well with person B's. And that means where the other less-perfect languages have libraries that everyone can share, with Lisp, you're stuck with your own.<p>This is not a result of syntax flexibility, though, it's the result of attitude. Perl has pluggable syntax and nine billion different ways to do OO. And yet, all the syntax extensions are composible. An object created with Moose can be subclassed "by hand". It all works.<p>It's attitude, not tools. If you believe that you're the smartest person in the world and that only you see the light... well, it's going to be lonely. And programming is about 50% being smart and 50% not reinventing the wheel. The attitude of a "smug lisp weenie" immediately puts him 50% behind.<p>(BTW, I say this as a CL fanboi. I love the language. I can just never do anything fun with it, because I have to decipher ten different libraries for writing unit tests, none of which have all the features I need.)
评论 #2044019 未加载
评论 #2044041 未加载
demallien超过 14 年前
In the last paragraph, the author talks about how (paraphrasing - the site won't reload, so I can't get an exact quote) Lisp provides a set of powerful tools that you can use to build any abstraction.<p>I haven't really used Lisp beyond a few toy projects, but it seems, in this respect, to be similar to Javascript, which I do have quite a bit of experience with. The classic example in Javascript is inheritence. In his "Advanced Javascript" talks, Crockford lists three different patterns for inheritence, each of which is incompatible with the others. Furthermore, I know from experience that each of the techniques has some severe drawbacks - some (such as Crockford's "parasite inheritence") are incredibly wasteful of resources, keeping a copy of each function declared for the object with every instance. Others, such as "pseudoclassical inheritence" don't work if you want to inherit from a native object.<p>I use Javascript for my day job, but my favourite language is Ruby. And I can't help missing the fact that it is much easier to share code with other people in Ruby (largely because it does have defined mechanisms for code reuse) than it is in Javascript. I'll never get two objects in Ruby that can't be used the same way because their system of construction is different.<p>I appreciate that such flexibility helps with the expressiveness of the language, but when expressiveness comes with the price of not being able to easily work with others, I can't help wondering if the price is too high.
评论 #2043593 未加载
评论 #2043517 未加载
评论 #2043546 未加载
steveklabnik超过 14 年前
While I can appreciate the sentiment, it's kinda funny to say "Once you get past Lips's parentheses..." to someone who's just said, "I don't like fighting with languages."
评论 #2044249 未加载
alexgartrell超过 14 年前
Cached: <a href="http://webcache.googleusercontent.com/search?q=cache:6F5dfOz9OisJ:symbo1ics.com/blog/%3Fp%3D711+http://symbo1ics.com/blog/%3Fp%3D711&#38;hl=en&#38;gl=us&#38;strip=1" rel="nofollow">http://webcache.googleusercontent.com/search?q=cache:6F5dfOz...</a>
dillon超过 14 年前
I personally believe we have so many programming languages because we have many problems to solve. When it comes to bad programmers, that's because they use and defend just one language. A good programmer is one that knows as many languages as possible and uses the correct language for the job. For example, if you need to create a nice UI then you use CSS and Javascript. If you need a simple server side language then you use PHP. If you need a program to be fast yet small then you use C. If you need scalable performance then you use Java. All of these languages have their purpose and using them correctly makes a good programmer.
norswap超过 14 年前
It's funny, I'm not particularly fond of formal mathematics, and I always thought it would be made really easier if it looked more like programming. One thing I particularly hate about math are the inconsistent and often not very legible notations.<p>Let's also not forget that Lisp was originally conceived as an alternative mathematical notation.
评论 #2045360 未加载
benatkin超过 14 年前
I think this is why some programmers go through periods of having to be told what to do. It's easier to swallow telling yourself you're working with a certain programming language when it's assigned.<p>I think if DHH hadn't had the php constraint, he might have got lost trying to decide which church was true. After a few years of php he was able to forge ahead with a language that fit his ideals better.<p>I think if someone finds themselves similarly stuck it might be good to spend most of their programming time on something popular for a while.