TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How knowing Lisp destroyed my programming career (2006)

454 pointsby tinderlikerabout 7 years ago

34 comments

kabdibabout 7 years ago
I learned C and LISP pretty much at the same time (back when rocks were young and you needed a PDP-11 if you wanted to run Unix). Then I went to college and the first course in the Computer Science major was a &quot;killer&quot; they taught in Pascal. Okay, so Pascal is a kind of screwed-up C, and I could deal with that.<p>That &quot;killer&quot; course had a semester-long, multi-phase project that was a kind of symbolic calculator (with sets and operations on them). It was maybe a couple hundred lines of LISP . . . so I wrote a LISP interpreter in Pascal (with a garbage collector, natch), then wrote the meat of the project in LISP, embedded in the Pascal source. Was the only person in a class of 300 or so who completed the project that semester, but the professors were not amused with the approach I took. Can&#x27;t imagine why :-)<p>I&#x27;ve never used a functional language in production, but I&#x27;ve stolen LISP techniques and used them in quite a few products. I never felt frustrated by the fact that I couldn&#x27;t use LISP or Scheme or whatever in &lt;product&gt; and had to use C&#x2F;C++&#x2F;Pascal&#x2F;Java&#x2F;C# instead, but have seen it happen in other engineers (notably when the Apple Newton switched from Dylan -- an object-oriented variant of Scheme -- to C++; there were a bunch of forlorn looking ex-Scheme hackers wandering the hallways, clutching copies of the C++ Annotated Reference Manual and trying not to cry).
评论 #16585047 未加载
评论 #16587041 未加载
phoe-krkabout 7 years ago
<i>The conclusion was inescapable: the problem wasn&#x27;t Perl or C++ or Java, it was me. I just wasn&#x27;t a very good programmer any more. Lisp&#x27;s power had made me complacent, and the world had passed me by.</i><p>Lisp can&#x27;t help you if you&#x27;re too smug for your own good.<p>Disclaimer: I&#x27;m a Lisper.
评论 #16585935 未加载
评论 #16583814 未加载
评论 #16583888 未加载
Francuteabout 7 years ago
The problem wasn&#x27;t lisp... The problem was he didn&#x27;t want to leave his comfort zone.<p>You can love lisp, Smalltalk, and all those beauty languages, but you should never stick to a single language. NEVER. Go to another, look it&#x27;s strenghts, and if it&#x27;s a bit weak on some sides, try to use the nice techniques you learned back to make it better.<p>To solve any problem, you can use different languages. Of course would be nice to use the nicest languages, but in some contexts they&#x27;re not the right tool, and in others, you should have to consider outside factors like, how many people will maintain that software. All of them knows how to use the powers of those nice languages? Also, do you think would be easier to rotate people on that project using those languages instead of another ones?<p>Everyone can learn to use some tool, but experience using others may help you to discover better ways to use new tools.
OceansOnPlutoabout 7 years ago
Worked at Google Pre IPO, worked at the Jet Propulsion Lab, became an Angel Investor, acquired Startups, founder and CEO of Spark Innovation Labs....<p>....I hope to one day have my career destroyed as badly as this.
评论 #16585986 未加载
submetaabout 7 years ago
Honestly curious why Lisp has so much admiration and praise on HN. I played around with Scheme some long time ago, read SICP, learned a lot. And I know Lisp inspired many programmers like the founder of Ruby. But I would not think of Lisp when it comes to solving day to day problems. I rather pick Python because it helps me solve all kinds of problems. There are many more solutions I can think of (Ruby, Node, Go, even Perl).
评论 #16584130 未加载
评论 #16584082 未加载
评论 #16584226 未加载
评论 #16584200 未加载
评论 #16584406 未加载
评论 #16584058 未加载
评论 #16584767 未加载
评论 #16584776 未加载
评论 #16586791 未加载
评论 #16585874 未加载
评论 #16585125 未加载
评论 #16598393 未加载
评论 #16584244 未加载
评论 #16588825 未加载
评论 #16584100 未加载
d3ckardabout 7 years ago
For a while now I&#x27;ve had a feeling that all the comments about lack of engineers(especially in software) are vastly underestimated. Probably around 10% of us is capable of doing actual software development. The rest writes plumbing and can handle the project for only as long as abstractions available through libraries can hold the complexity.<p>If we assume most of us don&#x27;t really know what we&#x27;re doing, that totally explains language preferences. We don&#x27;t choose the best tools, we choose the best tooling. And best tooling is the one which we can comfortably fit in our minds, so advanced concepts are mostly ignored and the hype wheel constantly turns. To put it shortly - smart people write better and better tools, so the rest can handle bigger and bigger projects writing mediocre code.<p>Of course, as every programmer, I live in constant fear that I am part of the plumbing crowd waiting to be exposed.
评论 #16584060 未加载
评论 #16584674 未加载
评论 #16584031 未加载
评论 #16584005 未加载
评论 #16583975 未加载
评论 #16584786 未加载
评论 #16585092 未加载
评论 #16585084 未加载
评论 #16584377 未加载
评论 #16587152 未加载
评论 #16588488 未加载
评论 #16585373 未加载
评论 #16591982 未加载
评论 #16590547 未加载
评论 #16584788 未加载
评论 #16584234 未加载
评论 #16584573 未加载
评论 #16584322 未加载
评论 #16584489 未加载
评论 #16585066 未加载
评论 #16584213 未加载
评论 #16584086 未加载
评论 #16586123 未加载
评论 #16584943 未加载
评论 #16584781 未加载
评论 #16586296 未加载
评论 #16585530 未加载
garganzolabout 7 years ago
I came to Lisp (Scheme&#x2F;Racket) from that another side (C++, Java, Perl) and it was an enlightening experience.<p>Now I use Lisp nearly everywhere in a form of a small .NET runtime module.<p>Lisp is excellent at templating tasks. Just for comparison: StringTemplate for .NET is a whooping 400 kB of compiled binary code while my implementation of Lisp is just 35 kB (!). Sure enough, Lisp does the very same thing as StringTemplate, but in just 1&#x2F;10 of the code. There is more: Lisp is Turing-complete while StringTemplate doesn&#x27;t. I can add a .NET function to Lisp environment and then call it in my template. I cannot do that with StringTemplate. I repeat, this is a 35 kB Lisp David vs 400 kB StringTemplate Goliath.<p>Isn&#x27;t Lisp beautiful?<p>But wait, there is more. Lisp is excellent for natural language processing because you can intersperse a human text with Lisp. Suppose the first % character enters into Lisp mode and subsequent % character exits back to text. The example of Lisp NLP would then look like:<p><pre><code> &quot;Hello %name%. It is time to do some math. Assume A + B = %(+ a b)%. What is the value of A when B is %b% ?&quot; </code></pre> You then fill Lisp environment with desirable values:<p><pre><code> env[&quot;name&quot;] = &quot;David&quot;; env[&quot;a&quot;] = 15; env[&quot;b&quot;] = 85; </code></pre> Evaluating aforementioned template will produce the following result:<p><pre><code> &quot;Hello David. It is time to do some math. Assume A + B = 100. What is the value of A when B is 85 ?&quot; </code></pre> With that tool at hand, you can build a user-configurable quiz system in no time. Or maybe a configurable Virtual Assistant. Or a chat bot. Or anything else, you name it.<p>Lisp is small as the Universe before Big Bang. Nevertheless it provides nearly endless possibilities when you have a need, a fit and imagination for them.
评论 #16584165 未加载
评论 #16586828 未加载
评论 #16585278 未加载
评论 #16585258 未加载
评论 #16584362 未加载
watwutabout 7 years ago
&gt; knowing Lisp made me all too keenly aware of Java&#x27;s shortcomings, and I had a very hard time not being angry at how stupid it was that I was being forced to use it.<p>I would take this as a the thing to remember from this. When you are too angry at something, you cant learn it. I have seen the emotional refusal to learn new inferior thing (or read comments that amounted to the same) many times already.<p>It is something to be aware of and avoided.
评论 #16583964 未加载
评论 #16583873 未加载
评论 #16588072 未加载
评论 #16583878 未加载
评论 #16585134 未加载
评论 #16585500 未加载
d--babout 7 years ago
This is from 2006 though.<p>Since then functional programming has picked up a lot of steam again, and I&#x27;m pretty sure having been a lisper for 30 years gets you good jobs. If not in Lisp, haskell, F#, clojure or whatever...
评论 #16584721 未加载
评论 #16583985 未加载
评论 #16585976 未加载
评论 #16585124 未加载
评论 #16584074 未加载
评论 #16583952 未加载
_mrmnmlyabout 7 years ago
The point of this article can be compared to JavaScript devs fatigue story:<p>1. Many JavaScript devs were focused on &#x27;getting job done&#x27; in their current workplaces, where they were using jQuery-related stuff mostly.<p>2. After some time they want to change job.<p>3. They realize that the js market has changed (or maybe they were aware of it, but they just didn&#x27;t care before&#x2F;didn&#x27;t have time to take a closer look before).<p>4. They try to keep up and learn tons of stuff to be employable as js&#x2F;front-end devs (npm&#x2F;webpack&#x2F;js frameworks).<p>It&#x27;s just a personal opinion. I was at that point in my life before too (and realized that it was my personal cause of my js fatigue)
peteretepabout 7 years ago
&gt; I saw people whip things up in Perl in a couple of hours that would have taken me days or weeks to do in Lisp.<p>Perl, my first and only love.
评论 #16583853 未加载
Dude2023about 7 years ago
A required thought-piece for all JavaScript devs. Enjoy monopoly while it lasts, but be humble.
评论 #16583889 未加载
评论 #16584267 未加载
jbreckmckyeabout 7 years ago
Using any language for twenty years straight is going to make you complacent - but goodness, how many languages would have given you that luxury?
评论 #16583871 未加载
评论 #16583839 未加载
评论 #16584544 未加载
评论 #16584382 未加载
评论 #16583829 未加载
评论 #16583816 未加载
6ak74rfyabout 7 years ago
On a tangential topic : I am intimidated by how myriad experiences with programming languages HN commentators on this thread have. I have been in this industry for about 8 years and am considered an above average developer in my current company. I have primarily worked with Java, while fiddling with others here and there. No experience with pure functional languages such as Lisp or Haskell. Am I missing out some important part of the developer experience?
评论 #16585802 未加载
评论 #16588908 未加载
评论 #16587589 未加载
评论 #16586933 未加载
评论 #16585888 未加载
评论 #16586228 未加载
评论 #16586706 未加载
coding123about 7 years ago
Unless you truly are a one-man army - one must absolutely be paying attention to the tiobe index. Even if the worst possible language is on top, its the one language that can&#x27;t &quot;destroy your career&quot;. It&#x27;s 10 times more valuable to be programming the same language in a company than be the one Lisp or D or Erlang guy that writes side programs that no one will help you maintain - and will definitely be re-written in Java when you leave.
daefabout 7 years ago
derkeiler.com gets blocked by uMatrix: the domain appears in Dan Pollocks hosts-file <a href="http:&#x2F;&#x2F;someonewhocares.org&#x2F;hosts&#x2F;" rel="nofollow">http:&#x2F;&#x2F;someonewhocares.org&#x2F;hosts&#x2F;</a> in the &#x27;ads&#x27; section.
评论 #16583961 未加载
评论 #16585347 未加载
siddbootsabout 7 years ago
Man. That&#x27;s a refreshingly humble outlook.
tmalyabout 7 years ago
It reads like a tortoise and the hare story.<p>I have only minimal exposure to Lisp, Prolog, and ML in a programming languages concepts class in the mid 90s.<p>I really enjoyed using Prolog in the class and had an opportunity to use it professionally twice.
Vektorwegabout 7 years ago
I was a C++ fanboy, before I had to deal with Lisp in college. While Lisp itself seemed unusual with all the parentheses, it had a few good ideas I really missed in C++ . That was the point where I looked for languages similar to Lisp and that lead me to what I&#x27;m working today with: Haskell.
dmitriidabout 7 years ago
&gt; Lisp&#x27;s power had made me complacent, and the world had passed me by.<p>This is very true, especially now. With all the available tools, and libraries, and infrastructure tools, and ..., and ..., and ... the choice of a programming language hardly matters anymore [see caveats below]. What matters is how comfortable you are working with a particular language and set of technologies you chose, and if your choices do not impede you.<p>[caveats]<p>Of course, you you want to crunch numbers, or work in a memory&#x2F;CPU-constrained system, or develop avionics software, then your choice of programming language matters. But let&#x27;s be honest: the vast majority of us don&#x27;t do any of those things, and you can whip up a geographically-distributed, auto-scaling cat meme delivery system in any language in a matter of hours.
评论 #16585448 未加载
zaroabout 7 years ago
Yeah, I totally agree with the sentiment of the article. While Lisp my have been cool in the 80s, it&#x27;s not the 80s anymore and nobody wants to write AST directly.<p>No matter how powerful the technique , it&#x27;s way too low level for the modern world.
评论 #16592990 未加载
nostalgeekabout 7 years ago
&gt; Sun, 23 Apr 2006<p>I think it matters since languages like clojure are everywhere, including at Google.
wheresvic1about 7 years ago
Oh wow, I was first introduced to Java in my undergrad and somehow I had some serious issues with the whole OOP stuff.<p>Thankfully, I took some AI courses, which came with LISP and I was so excited to use it everywhere.<p>Unfortunately, however, doing basic I&#x2F;O, networking (this is around 2006) and testing was too complicated for me so I dropped it again in favor of C++ in grad school (performance was also an issue, we needed to crunch a lot of data fairly quickly).<p>I would love to go back again and give it a shot - any pointers on the best way to learn&#x2F;start?
评论 #16585625 未加载
评论 #16584477 未加载
评论 #16589268 未加载
zaarnabout 7 years ago
I think the problem there was complacency, as the author mention in their mail. On the other hand, I totally do recommend that everyone picks up some tutorial or guide or book on LISP and learns what the fuzz is all about.<p>Even today, I feel like a lot of people could learn a lot from LISP and S-Expressions, both of which are powerful constructs.<p>(Note: I&#x27;m not saying you should use LISP productively, it&#x27;s something you should learn for the heck of it, not to actually use it)
评论 #16584043 未加载
评论 #16583884 未加载
SlowBroabout 7 years ago
So me being entrepreneurial-minded, I read this as: He was no good for the common programming languages of the day used by many employers. But if he would have struck out on his own, he would have crushed the competition who were writing page after page of code when his own one page would do just fine.<p>Disclaimer: Not a Lisper
评论 #16584004 未加载
评论 #16583974 未加载
评论 #16584948 未加载
neo2006about 7 years ago
The biggest issue we are facing as a profession is abstractions. Most of us are good at abstracting things because this is the way we cope with complexity. But the moment we need to face that abstraction and need to understand what is hiding behind it we can reach some limit. A very common example I noticed with Java developers who use frameworks like spring, they use spring tooling to cope with code complexity and are able to put together a functional piece of code in minutes, but as soon as you get them out of the spring framework and ask them to code without using their toolbox, you can see difference between a java programmer and a &quot;spring&quot; programmer. One of the things I like to do in interview is giving people a piece of code in a language or at least using a library or framework they don&#x27;t know and see how they cope with the complexity of it. It can tell which is just learned to use a tool and which know the basics and can adapt depending on the set of tools available
评论 #16585126 未加载
77pt77about 7 years ago
&gt; I really detest the use of the word &quot;training&quot; in relation to professional activities. Training is what you do to dogs. What you should be doing with people is educating them, not training them. There is a big, big difference<p>I feels this person&#x27;s pain.
B1FF_PSUVMabout 7 years ago
&gt; Java and Perl came along (and later, Python).<p>Perl 1987, Python 1991, Java 1995 (cf. Wikipedia &quot;first appeared&quot; info).<p>But yeah, the &quot;coming along&quot;, i.e. gaining traction, may be said in that order.<p>Minor nit, a very level-headed assessment.
jackconnorabout 7 years ago
It wasn&#x27;t &quot;Knowing Lisp&quot; rather it was &quot;not learning any other languages as the industry changed&quot;, and he still got a developer job at Google. Why is this here?
jngabout 7 years ago
All of it probably to be taken with a grain of salt.
评论 #16583874 未加载
otabdeveloper1about 7 years ago
Lisp isn&#x27;t any more powerful than Javascript. Sorry.
评论 #16587014 未加载
pvaldesabout 7 years ago
&quot;Training is what you do to dogs. What you should be doing with people is educating them, not training them. There is a big, big difference.&quot;<p>big truth...
YouAreGreatabout 7 years ago
Half-seriously—but could it actually be true? Because by using a high level language most of the time, you will miss the practice it takes to <i>effortlessly</i> program manually what these languages automate.<p>Between &quot;GC, full numeric tower, CLOS, incremental development&quot; and especially the ease of metaprogramming in Lisp, you may eventually lose the ability to perform the very programming tasks you have automated away for yourself, whenever you lose access to your own macros.<p>The true Curse of Lisp would be that Lispers are constantly de-skilling themselves.
评论 #16585574 未加载
评论 #16586381 未加载
评论 #16587003 未加载
3chelonabout 7 years ago
Horses for courses, surely? I&#x27;ve never coded in Lisp except for one undergrad assignment in the early 90s... but I know it&#x27;s good for functional, heavily recursive, algorithmic type problems.<p>But the world is far messier than that and if, like me, you come from a systems or real-time programming background then Lisp basically did not exist and you were using C-based languages (or even assembler) that were close to the metal so you could code interrupt handlers, asynchronous I&#x2F;O drivers and the like. Obviously trying to tackle those kinds of problems from a Lisp-centric viewpoint would seem slightly crazy, so why bother?
评论 #16584533 未加载
评论 #16584385 未加载