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.

Lisp is still a secret weapon

162 pointsby kepzorzover 9 years ago

23 comments

joramsover 9 years ago
The author almost immediately writes off Common Lisp for lack of &quot;frictionless access to a rich ecosystem of code written in the same language as your software&quot;, then recommends Clojure. Most of the ecosystem you have access to in Clojure is, in fact, not built in Clojure, and most Clojure libraries were&#x2F;are wrappers around Java or Javascript.<p>Footnote 1 makes no sense, suggesting that the only way to get access to &quot;a bunch of other useful code&quot; is to embed it into a C program and that understanding your dependencies is somehow easier in Javascript.<p>In reality, Quicklisp[1] offers effortless access to over 1200 libraries and programs. It&#x27;s nowhere near the 200 thousand packages in npm, but the overall quality is good and these libraries cover a surprisingly large number of things.<p>The post tries to display Clojure as &quot;Lisp, but with access to open source&quot;. Clojure is a fine programming language, but it&#x27;s also completely different from Common Lisp. CL has high quality optimizing compilers performing extensive type checking, a powerful object system, easy access to C libraries, etc. If you need Java interop, you can just use ABCL[2].<p>[1]: <a href="https:&#x2F;&#x2F;www.quicklisp.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.quicklisp.org&#x2F;</a> [2]: <a href="http:&#x2F;&#x2F;abcl.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;abcl.org&#x2F;</a>
评论 #10183747 未加载
评论 #10183372 未加载
评论 #10183931 未加载
评论 #10183479 未加载
评论 #10183410 未加载
评论 #10183450 未加载
nnqover 9 years ago
If you&#x27;re asking yourself what kinds of problems is a Lisp good for you should probably watch this: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8X69_42Mj-g" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=8X69_42Mj-g</a> (A computational chemist built himself his own Common Lisp implementation because no other language available was powerful enough for his needs...)<p>It basically boils to: if you&#x27;re solving a <i>truly new and interesting problems</i> for which the current libraries and ecosystems don&#x27;t matter that much to you anyhow (because what you do is too bleeding-edge &#x2F; ahead of everyone else, so you&#x27;ll write your own better stuff anyhow), than you might want to choose a Lisp.<p>And if your problem is so bleeding-edge and exotic that you also need to build your own programming-language for it, than you might just as well build yourself a Lisp (like the guy in the video did) and add your needed features to it, because this would be easier than any other approaches and allow you to spend more time on your problem and not on the language...<p>EDIT+: another example is DWave using SBCL: <a href="http:&#x2F;&#x2F;www.dwavesys.com&#x2F;careers&#x2F;senior-software-developer" rel="nofollow">http:&#x2F;&#x2F;www.dwavesys.com&#x2F;careers&#x2F;senior-software-developer</a> - if quantum (or analog... anyway...) computing is not &quot;truly new and cutting edge&quot;, than I don&#x27;t know what is
jlaroccoover 9 years ago
I can&#x27;t believe an article about Lisp left out QuickLisp. It&#x27;s the most popular Common Lisp package manager and has over 1200 open source libraries in it, and most of them are written in Common Lisp, or are bindings to native C&#x2F;C++ libraries. Using libraries written in the same language you&#x27;re using has a lot of advantages. Using Java libraries from a Lisp seems clunky.<p>Also, judging solely by the number of available packages is not a good measurement. Browse through NPM, and it&#x27;s pretty obvious there are a LOT of duplicates, and that people have published libraries for the silliest little things. Search for &quot;PNG&quot;, for example, and in the first page of results there are two different png diff libraries, a few libraries for determining if a buffer contains a PNG byte-stream, multiple stream and un-stream libraries, etc. That&#x27;s all done with a single library in CL.<p>And finally, I don&#x27;t think Clojure is that great. It&#x27;s better than Java, and it&#x27;s what I&#x27;d use if I had a lot of legacy Java code to work with, but it wouldn&#x27;t be my first choice for a new project written in Lisp. I would hazard a guess that it&#x27;s popular because it&#x27;s less clunky than Java, without the over the top type system of Scala.
评论 #10185036 未加载
hardwaresoftonover 9 years ago
This seems like a little bit (probably a lot) of hyperbole around clojure.<p>While I love clojure, selling it as a &quot;secret sauce&quot; you just sprinkle on your startup and it succeeds is definitely not the message I think the community should be trying to send.<p>Lisps have benefits, they&#x27;re pretty well documented (just the fact that lisp is multi-paradigm in and of itself is a large benefit), but they&#x27;re not infallible. If you give macros to the wrong programmer, you will slow your entire team down.
sjatkinsover 9 years ago
The author seems to not know that there is open source in Common Lisp as well as most every other language. Open Source per se is orthogonal to whether Lisp or Language X is a great language to have in one&#x27;s toolkit.<p>Clojure mind share is quite low compared to scala as far as languages built on top of the JVM go. Personally I think clojure and clojurescript is pretty cool but not so cool so far as to tempt me away from python, javascript and CL.<p>For a startup don&#x27;t even worry about what language your competitors, if any, are using. Simply produce the best product you can and get it to market and break even before you even begin to think about these other things. HINT: in this age there is not one or a few areas and a bunch of competitors but millions of unique cool niche ideas and products. Build a better system for pushing out new app and product ideas consistently on the side. It isn&#x27;t like the case of web store competitors at all. Also today there is a large market to buy startups that produce some webapp product that grows enough legs to more than break even.<p>You don&#x27;t predicate your business on a secret but on producing a good product people want at a price point they are happy to pay. Secrets are hard to keep. Particularly when the author just told us about his secret weapon and advises as many as possible to use the same &quot;secret&quot;.<p>Back in the &quot;old days&quot; we would joke that if we wanted to derail our competition then we should simply give them our source code. Their best geeks would be bemused and befuddled for months. Today we are drowning in reams of &quot;free code&quot; that may or may not be suitable. Then we have a side helping of hundreds of web APIs to pick from for various subparts of a product. So much time is spent understanding and adapting open source and choosing among and massaging our data to use so many external APIs that it is a wonder anything gets done. :P
jordighover 9 years ago
Aside, the size of the NPM database ... is that really indicative of the amount of JS code out there? For example, how many trivial modules like &quot;isarray&quot; are there, whose sole active code is this single line?<p><pre><code> return Object.prototype.toString.call(arr) == &#x27;[object Array]&#x27;; </code></pre> Is npm really the largest codebase, larger than PyPI, Maven and Ruby Gems?<p>On a more subjective level, does npm solve more nontrivial problems than any other programming language repository?
agentultraover 9 years ago
&gt; Clojure hit the scene as a modern lisp that embraced the JVM.<p>&gt; By now, Clojure is the de facto standard lisp for new applications.<p>What&#x27;s with the whole, &quot;modern,&quot; meme when people talk about Clojure? SBCL only forked off from CMU CL in 1999. Clozure CL is still well supported and actively developed. It&#x27;s not like CL was written in the 1960s and had never changed ever since. The final standard was published in 1994. The alpha and beta of the JDK weren&#x27;t released until a year later. Given that Clojure leverages so much of the JVM what exactly makes it the modern, de-facto standard for new applications? Don&#x27;t we already have an ANSI standard for such a Lisp?<p>Is it modern because it can invent without restriction of a specification? That&#x27;s a good thing and plenty of other Lisps are doing that... but what makes it, &quot;modern,&quot; and why is it the standard? Is its relative immaturity a feature when you&#x27;re taking on the world in a startup?<p>Either way it&#x27;s not much of a secret anymore but I still don&#x27;t see many startups advertising that they use Lisp -- even Clojure is rather rare. I hope more people give Lisp a try and kick butt.
评论 #10184122 未加载
评论 #10184273 未加载
nate_martinover 9 years ago
Are there any examples of companies that achieved success by way of language choice other than Viaweb?
评论 #10183394 未加载
评论 #10183487 未加载
评论 #10184028 未加载
评论 #10184353 未加载
评论 #10183540 未加载
评论 #10184683 未加载
austenallredover 9 years ago
I get the sentiment, but I don&#x27;t think a programming language is what Thiel was thinking of when he talked about &quot;a secret.&quot;
评论 #10183317 未加载
fierycatnetover 9 years ago
Looks like a subtle ad for Clojure. Which I don&#x27;t mind because I am slowly falling in love with Clojure. I am not sure if it&#x27;s a &quot;secret&quot; or we should &quot;write all the things in Clojure&quot; but I&#x27;d love to see more companies use it, including start ups. I wouldn&#x27;t mind working for one. Combine JVM&#x27;s power with Om&#x2F;Reagent and I think it&#x27;s a solid stack. Although I am not advanced Clojure programmer. I wonder how it&#x27;s doing in production?
评论 #10183343 未加载
jeffdavisover 9 years ago
I&#x27;ve never quite bought into the lisp idea that maximum &quot;power&quot; or &quot;expressiveness&quot; is always good. I could see it being an advantage for library authors who could present better, safer interfaces to the library&#x27;s functionality. But if you have a startup, how much time do you have to build libraries and refine their interfaces?<p>I doubt that these qualities are <i>so</i> good that they would be a material advantage for application developers. And certainly not material enough that it would affect the outcome of a startup (unless it makes the engineers more motivated).<p>That being said, I hope clojure succeeds, and it&#x27;s on my list to learn sometime (though not in the top 3).
Havocover 9 years ago
Characterising a well know language as a &quot;secret weapon&quot; seems a little odd to me.
worldsayshiover 9 years ago
But we need types people! Properly static ones that can be used to encode your intentions and handle inconsistency before even running the program. And yes I know that Clojure has an optional type system. But optional means that you cannot rely on having types in the libraries that you use. So you can&#x27;t fit your stuff together with their stuff and have reasonable expectations that it will work once the user does that one thing you didn&#x27;t think would be a most reasonable thing to do (of course it is, what were you thinking! And tell me again why you didn&#x27;t just let the computer do that thinking for you?).
评论 #10183378 未加载
评论 #10184231 未加载
评论 #10183618 未加载
评论 #10183281 未加载
评论 #10183298 未加载
kuyfiuygover 9 years ago
Flamewar in the comments here... Just throwing in my 2c.<p>I&#x27;ve been programming Clojure on the side for about a year now. It all started when I did the exercises in the Clojure for the Brave and True-book, and also simultaneously picked up Emacs and Cider (a nice IDE indeed, and keyboard-based).<p>Clj is just code like anything else. Anything you can do in Clojure you can do in Java. But with that language, I find myself creating things which I could not in other languages. Solutions come easier. Programs don&#x27;t become long, but they get a lot done, and are performant.<p>I dig it, and really recommend it to anyone who is bored with their day job.
inceptedover 9 years ago
It&#x27;s not secret, it&#x27;s just that everybody who knows about it chooses not to use it.<p>Additionally, the fact that it&#x27;s dynamically typed probably seals its fate (which is already pretty darned sealed).
评论 #10184121 未加载
raspasovover 9 years ago
I&#x27;ll offer myself a shameless plug here. We&#x27;ve been using Clojure&#x2F;ClojureScript for my current startup cloudmonkey.io and we absolutely love it.
jtwebmanover 9 years ago
He didn&#x27;t sell me on why Lisp is better than any other language? Why would you pick Lisp or Clojure over say Elixir, Scala, or even F#?<p>JT
评论 #10183642 未加载
评论 #10183443 未加载
评论 #10183585 未加载
评论 #10183563 未加载
snake117over 9 years ago
This was a great read. I&#x27;ve always heard about Clojure and now I have a better idea as to what it is. I&#x27;m still going to stick with what I&#x27;ve heard all along: it doesn&#x27;t matter what language you write in, it matters <i>how</i> you write it.
评论 #10183633 未加载
Scarbuttover 9 years ago
In the expressjs example, I wonder how practical is to do all that interop instead of just using plain JS? I mean, is awesome that Clojurescript can leverage all those JS libs, but its worth writing lots of interop just to use Clojurescript? Of course, as Clojurescript libraries grow this will not be an issue, but it is nowhere close to JS for web dev.<p>For me, a more practical approach for server side would be to use Clojure instead of Clojurescript, the problem is Clojure does not have the rich ecosystem of web libraries as nodejs does.
评论 #10183385 未加载
评论 #10183422 未加载
ameliusover 9 years ago
I tried Clojure, but immediately got the impression that the run-time type-system is ill-designed. I cannot recall the details, but I can remember odd things like different run-time types used for empty lists than for non-empty lists. A simple program doing a &quot;switch&quot; on some run-time types turned out to be really cluttered. But of course, there&#x27;s always the possibility that I was doing something wrong :)
评论 #10183717 未加载
dkarapetyanover 9 years ago
Here are some heretical thoughts. The language is irrelevant. The text editor is irrelevant. The OS is irrelevant. The size of your monitor is irrelevant. All your productivity hacks are irrelevant. The only relevant thing is your ability to formulate and solve problems.<p>You might say the language can help with both the formulation and the solution but I&#x27;d say that just comes down to what language you&#x27;re most comfortable with and how good of a problem solver you are. So you can use lisp and I&#x27;ll use ruby and at the end it&#x27;ll all be a wash because the fundamental bottleneck will always be the speed at which you can formulate and solve problems and how quickly you can respond to market dynamics. All other choices are accidents of history.<p>Graham and his buddy were just good problem solvers.
评论 #10183455 未加载
评论 #10183753 未加载
评论 #10183794 未加载
评论 #10183650 未加载
评论 #10183532 未加载
评论 #10183441 未加载
评论 #10183447 未加载
评论 #10183475 未加载
评论 #10183579 未加载
评论 #10183571 未加载
评论 #10183651 未加载
coldteaover 9 years ago
&gt;<i>And all along, you&#x27;re using a Lisp, which PG shows[2] is the most powerful kind of programming language.</i><p>This is too hand wavy for me.
bbcbasicover 9 years ago
Lisp? Meh! The real secret is Agda.<p>The real real secret is using a language so obscure that you end up writing the compiler for production use, by studying the compiler that some researcher created for a paper.
评论 #10183652 未加载
评论 #10183437 未加载