Hacker News new | past | comments | ask | show | jobs | submit login
Quicklisp - The upcoming solution to Common Lisp's "library problem" (netzhansa.blogspot.com)
89 points by fogus on Sept 3, 2010 | hide | past | web | favorite | 44 comments



QuickLisp is the future of Lisp. I knew that after I tried it for ~15 minutes, long before it was announced to the public (I must have been the user #4.)

I am currently testing it with ABCL. Common Lisp on the JVM. I would say about 80% of Common Lisp libraries work on the JVM unchanged, and the rest (CFFI/UFFI stuff) we're patching them manually.

It's pretty sick stuff. It's Lisp, but it can call 100% of Java libraries. I made a quick "breadth-first" conquest of Java libraries and I seem to be able to use everything; J2SE, J2EE, Android and JavaFX. I am still learning Java, but I can safely say that Java apps and libraries are almost 100% usable via Lisp.


Also, as an aside, I wish I could expect more of the HN readership than a cowardly downmod with no response. If you disagree with somebody, say so and take the time to formulate a counter-argument. Save the downmods for things that are offensive or completely off-topic.


Trolling does not entitle you to intelligent responses.

"The future of Lisp, if it has one, is Clojure."

It's not the Clojure part that got you downvoted, as that would have been a valid argument, seeing how sweet clojure is. I think it's the "if it has a future" part. Anyone even remotely aware of programming languages will tell you Lisp has a future, in the same way Algebra does. It's the simplest representation of computable functions, and it has existed, on paper, at least since 1930, and as an implementation since 1958. It's a gateway drug to lambda calculus ,combinatory logic, complexity theory, computable functions and CT, the entire FP field, symbolic logic, formal semantics, compiler construction, and a host of other non-sexy, but essential fields of study.


Less tersely, I will simply quote Tim Sweeney:

LISP: This is the apex of untyped programming with nested scoping and metadata manipulation. It's at the end of the line, not because of lack of potential, but it's so simple and powerful than any improvements to it can be implemented in LISP itself without affecting the core language. In 100 years, after the last C and C++ programmers are long gone, there will still be LISP enthusiasts. But don't expect large-scale software development to happen this way.

So yes, Lisp has a future in that it epitomizes a certain programming paradigm, but as a language with real production significance it has a very hard road ahead, and will need all the advantages that a single-implementation JVM/CLR dialect like Clojure can provide.

You'll notice that hardly any of the companies spawned by Y-Combinator, the ultimate Lisp cult, actually built their systems in Lisp.


You would be mistaken to think YC is a Lisp cult. Calling them that is like calling the American government a bastion of Anglo-Saxon, Anglican, Royalist hegemony. Sure, the two speak English and they share common cultural heritage, but they're either philosophically at odds, or completely unrelated.

You would be stupid to think YC companies amount to anything in the global economic radar. One DoD contract is more profitable than all their revenues combined.

Take a step back, get yourself a phone book and scan it, read international economic reports; none of what we're doing is the apex of human innovation. The AK47-wielding fucktards in the Congo have more global influence than all the startup founders combined. In the grand scheme of things, computer programmers, their bosses, project managers, and employers are the janitors of the world economy. We're call-center operators, glorified with a smidgen of science. And YC "com'nies" have less than $50k standing between them and obscurity; that's less than what the typical restaurant owner spends on kitchen renovations.

Wake up and small the coffee; it's a 99-cent 7/11 re-fill, and I hope you like it.


I've been listening to just this kind of glib, arrogant, self-satisfied rhetoric from Lisp zealots for over a decade now. Your tangential tirade about militants in the Congo is novel but the tenor is familiar. Are you a Naggumite?

The really smart Lispers like Peter Norvig recognized Lisp for the lost cause it is and moved on to build companies like Google. Maybe you've heard of it? People have been solving hard problems for decades without the "magic" of the Lisp primadonnas.


Please, let the recently deceased rest in peace. You don't need to invoke their name in vein to win an argument over the living.


The babel of incompatible CL implementation is going to trip this up right out of the gate.

The future of Lisp, if it has one, is Clojure.


Can't wait to try it... yet another "solution" to the problem. Lispy, mudballs, cl-build, etc... there are lots.

Most of them seem to just download the source from some repository and stop once it builds. It's a step up from the manual or scripted process from before, but it's hardly anything on the scale of CPAN.

It's probably too much to ask, but I'd love to see something like an actual CPAN for Lisp. A centralized, mirrored archive network. Standardized package meta-data. Standardized documentation tools. Author verification that doesn't require the users to store individual author keys on their rings.

But I suppose the reason it hasn't been done is:

1. Lispers don't care/need/desire it 2. It would take a significant group effort and most people would rather be hacking something else 3. What we have works well enough that it doesn't justify the effort to go that last 10%

Still... one can dream (and I'd throw in my hat to help too).


Quicklisp does have a centralized location for archives (hosted on S3), and it statically extracts a lot of useful metadata about project contents and relationships. I'm trying to work with what's available without asking for cooperation from authors.

I have lots of ideas for more metadata that can be gathered automatically or semi-automatically. It should be straightforward if time-consuming to set up automatic testing, even if it's as simple as "Does library foo compile and load on implementation bar on operating system baz?" Same with gathering data to answer questions like "What foreign libraries are needed for this project?" or "What is the license for this project?"

If you'd like to give the early version a try, drop me an email (xach@xach.com) or visit freenode #quicklisp.


Will do.

Maybe testing can just start with a TAP library.

POD-like documentation would be a little harder with reader-macros. Maybe a syntax can be defined that doesn't step on too many toes...

Either way, I'll be taking a look at it ASAP. Cheers.



Common Lisp implementations already come with heaps of libraries: just grab a commercial one. Do you think programming languages _must_ be free? You lack a business mindset, I think. Commercial programmers are willing to pay for languages which make their jobs easier. People have always be willing to pay for CL. Would have they be willing to pay for Ruby or Python when such languages came out? I don't think so.

EDIT: Free implementations thrive and grow because they are free (as in free beer) even when they start - or are - lesser. That does not mean not having a bells and whistles free implementation is a measure of a language's worthyness.


Voted down, since this is both wrong and flamebait-ish IMO.

Ruby / Python people willing to pay for a good environment? Have a look at http://www.activestate.com/activepython or other activestate software. It's not a separate language as such, but they do create enough of their own environment setup in just the right way, to consider them comparable.

Noone said that languages must be free. Then again - it makes the development so much easier, since it enables communities that know the technology rather than a specific product and are not lost when they don't have access to their one true compiler/ide/whatever. Times of paying for your compiler are long gone. Most of the really creative compiler improvements lately came from OSS anyways.

Actually - can you think of any closed-source general programming compilers that matter? Apple likes Clang, but it's still OS. ICC is not useful unless you only want to support intel chips.

I'm aware of specialised compilers - yeah - most of the VHDL and similar are proprietary and commercial. But as soon as you need special hardware, your random audience goes down to ~0 pretty quickly, so there's no point in having the language free.


Not being a native speaker and thus maybe sounding harsh is not flamebaiting.

> Ruby / Python people willing to pay for a good environment?

I didn't say Ruby and Python aren't worthy languages _now_. I've said they were when they started. Yes, now that they have gained a big community, they enjoy lots of support from companies as well.

> Noone said that languages must be free.

This is implied whenever people say that CL has poor libraries because _free_ CL implementations have poor libraries, whenever developers weren't interested in some areas (web development, for instance). OTOH, how do Ruby and Python stack against CL when in comes to AI libraries?

I hope we agree that free CL implementations in themselves are very good quality, anyway; even more so if you consider how little their community is compared to mainstream languages.

> Actually - can you think of any closed-source general programming compilers that matter?

MS Visual C++ coming to mind? However, that's not the issue. I was arguing that CLers willing to pay for their environments when they could just grab another free language should tell us something.

Peace.


Show me any CL library that is competitive with numpy+scipy. Similarly, I do a lot of distributed memory work, for which MPI is necessary. For CL bindings, all I know of is CL-MPI and mpi4py trumps it in every way. I need parallel linear and nonlinear solvers, petsc4py fills that role well, but there is nothing similar for CL. It's also crucial that it work reliably in unconventional environments such as BlueGene, this is rare for proprietary implementations. I don't really like Python, but these libraries and it's portability make it a functional environment. I don't think any proprietary implementation is prepared to step in.


Re. AI - I don't know - never needed to use them and pypi search is not very good for such expression :/ I suspect there is something though. Just as lisp was the king of NLP one day - right now I'd bet on NLTK any day. People learned to write parsers / tree processing and it's almost as trivial in Python as it is in lisps.

Re. MSVCpp - Not only I got a free version from university (and another one from another university), there's a starter edition (not sure about the name - express?) which is free.

Without context, it's hard to say why are they willing to pay. Maybe it's because they liked the environment? Maybe it's because their codebase is so big they can't switch anymore? Maybe because free alternatives suck at some level? Maybe the company pays and noone asks why? There are so many potential reasons, we'd need to analyse some stories of why are people doing this.


> Re. AI - I don't know - never needed to use them...

Spot on! We think a language lacks libraries whenever we look at a language which has not been among the language of choice in our area of interest.

> Re. MSVCpp - Not only I got a free version from university (and another one from another university), there's a starter edition (not sure about the name - express?) which is free.

You surely are a young gun ^_^ MSVC++ has been a successful commercial product for a long time (and still is). I think MS made it free just because it started feeling the heat from GCC and didn't want to lose share. However, we were talking about open-source implementations, not free ones.

> Without context, it's hard to say why are they willing to pay.

If you were to hang on comp.lang.lisp for a while, you'd learn that CL do really prefer CL to any other language because of some features intrinsic to CL itself. Moreover, it looks like when they are freelancers, then they are making a good living, therefore having to shell out some cash for their own convenience; if they are employees, they are experienced enough to make the decision about what their company should buy. Why struggle to install a CL environment? Just shell out €1200 and you're up and running with Lispworks CL (among others).


Worth nothing that even MS gives away its compilers these days. You pay for the layered products.


It is a bit chicken-and-egg; the only way a curious programmer would get to see a full-blown commercial Lisp is if they were already working somewhere that had bought it, and if they were they would probably already be a Lisper.

Admittedly I haven't researched this in depth, but I don't think any of them do a "free for non-commercial use" edition without severe restrictions. Even Oracle, one of the most ruthlessly commercial companies in the software business, lets you download for free to kick the tyres...


Whether or not there must be, many useful "free" libraries exist that provide more functionality than is built into any commercial CL implementations. At times they can be difficult to install. Quicklisp aims to make it less difficult, even if you paid money for your implementation.


I have been thinking about creating and selling a programming language + development environment, but I'm not sure if anyone is really willing to pay for such a thing. For a better IDE for an existing language yes, but for a new language? Any thoughts?


Maybe see how the REBOL guy is doing: http://www.rebol.com/


He seems to be doing fine, but he has definitely not taken over the world yet...


What's your target market? If it is experienced developers, you'll have an hard time even for just the IDE.


My target market is intelligent developers who want to get a desktop or web application done as quickly as possible, somebody who gets a lot of value out of being more productive while not being limited by external factors. A YC founder rather than someone who combines snippets of PHP found on the web to make a site for a client.

There are people paying for IDEs (e.g. IntelliJ IDEA & Resharper, Visual Studio), but this is an IDE for an already very widely used language backed by big companies. All of the attempts at developing a new language for a profit seem to have failed or at least not made it big (e.g. Lisp vendors, Dylan, Smalltalk vendors, Rebol) despite being better than the free alternatives in a lot of ways.


> A YC founder rather than someone who combines snippets of PHP found on the web to make a site for a client.

You should consider your target audience carefully. For instance, a startup founder is very likely short of cash, so she will be more inclined to choose, if not a free implementation, a cheap one. Could that pay back your development efforts? Because your development efforts will be hefty. Remember that to be attractive to smart developers, your language will have to be better than the languages you have mentioned, and by a reasonable margin. Don't underestimate the difficulty of designing a good editor, either.

I'm saying this because you have said "not made it big". If you are after just making a living doing what you like, maybe the success of Clojure in that regard can be encouraging.

Have you considered tapping the non-technical audience? Maybe many non-technical users would be delighted to be able to customize their environment. If you are looking for a challenging intellectual task, don't underestimate the difficulty of designing simple tools.

I'd like to provide more creative suggestions, but that's all I can say.

EDIT: You know, we developers tend to think about other developers, and we forgot how our knowledge could be beneficial to "outsiders".


The YC founder vs PHP "scripter" was meant as two extremes and my target is closer to the former. But indeed they do not have a lot of cash. That's why I wanted to try and go after "Microsoft Developers".

- They seem to have the money because they buy expensive IDEs, expensive version control systems, expensive things that allow them to track project progress, etc.

- They care less about whether what they are using is open source

- Building it on top of .NET means development costs are much reduced but still massive

- They are using overly complicated and not very usable tools/libraries on .NET

> I'm saying this because you have said "not made it big". If you are after just making a living doing what you like, maybe the success of Clojure in that regard can be encouraging.

Yes I would be happy with something like that too, but if I have something that improves someones productivity by 10% that provides a lot of value; I'd like to turn this value into a financial success too ;)

> Have you considered tapping the non-technical audience? Maybe many non-technical users would be delighted to be able to customize their environment. If you are looking for a challenging intellectual task, don't underestimate the difficulty of designing simple tools.

The problem with this is that I have zero ideas in that space...that said it's definitely an interesting space. Making some of the things you can do by programming available to a non-technical audience seems very hard though.


Well, I just say: go know your potential customers. I still think that designing a worthy new language + IDE would be really hard work. However, don't take my words!

Have you considered developing tools or plugin to easy their work? For instance, I'm using WholeTomato's Visual Assist and it really rocks.

> The problem with this is that I have zero ideas in that space...that said it's definitely an interesting space. Making some of the things you can do by programming available to a non-technical audience seems very hard though.

Just don't go overboard. I urge you to go out and meet people, and look for ways to easy their pain. For instance, you will be shocked at how small-business owners struggle to accomplish simple tasks. At how big-companies employee struggle with outdated software.

Good luck!


Microsoft (who whatever anyone says, know a thing or two about developer tools) have three "personalities". The typical corporate developer who just wants to do 9-5 (nothing wrong with that), up to the high-academic theoretician. When adding a feature to VS or whatever, they think, how will each of our personas use it?

I can't find the original article but here's a rference to it: http://www.codinghorror.com/blog/2007/11/mort-elvis-einstein...


Please, don't just down-vote if you don't agree with his comment.


> Do you think programming languages _must_ be free

yes


I love how controversial this post of mine seems (up-votes battling down-votes). No, flamebaiting was not my goal, but being controversial is a sign that I've hit an aching spot, I think. Thanks to everyone ^_^

EDIT: It would be nice if HN showed both up-votes and down-votes, instead of just their sum.


I've heard Clojure described as a solution to that, because you get access to every Java library, and in Java there's pretty much a library for every modern-ish need.


Clojure is my first choice language for new projects, but improving other options in the Lisp space is a Good Thing. I prefer the idea of having more than one making headway outside the hardcore programming lovers, if that's possible.


Python is still my GOTO language for Getting Things Done but the two new technologies that have gotten me most excited recently have been Clojure and Arduino. I'm a newb with respect to both I look for more excuses to use them everyday.


Clojure also seems to have lot more momentum behind it.


But this[read half baked libraries] is true with libraries in all languages

Really? Rails, DJango, qt, SciPy, need I go on?


The statement was many of the open source libraries written in Common Lisp are half-baked, incomplete, unmaintained and tasteless.

Qt, Scipy/Numpy and others are amongst the best libs available for their target language, but many other are really bad. It's just that the natural selection has been occurring for a longer time and the total libs population is bigger. Also when developing a lib in eg. Python, it's easier to get feedback as there are potentially many more users.

EDIT: formatting


Well, good libraries like those don't appear overnight, and a good environment for developers, with good tools, is proven to attract developers.


Lisp has been around for a lot of nights.


The pattern I've sometimes seen in the CL community (and others) is the notion that "Well, if thing was so great, somebody would probably have created it for me by now." It actually takes individual effort and creativity to make progress - useful things don't just spring up out of nowhere. Someone made SLIME. It took until this century to do it.

People get used to their working environment, and find ways to solve problems even in the absence what, in hindsight, are amazingly useful tools. When you pitch something new to people, they basically have to imagine to some degree how their life will be improved with it. (Will Wright talked about this regarding videogame box design and The Sims. People pick up a box and then have to basically design the game themselves in their head and imagine how much fun, or not, it would be.)

Anyway, I hope Quicklisp will be an easy sell, because I think it works pretty well where everything before it has worked pretty poorly. It won't take a lot of imagination to see that.


"Well, if thing was so great, somebody would probably have created it for me by now."

If you play this game in the Perl or Python or Java communities, you get a very different average than Lisp. Not saying that that's a good or bad thing, mind, but it is true.


It's a good way to get complacent in any environment.




Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: