5 ms·
Lisp: No easy download
- runevault 17y agoI dunno which is a bigger problem, this or the massive library pain issue. Of course now that Clojure is out there I don't know if CL really COULD gain traction, most people who want a Lisp for "real work" are going that route, or have gone in other power language directions like Haskell, or so it appears from where I'm standing.
- mahmud 17y agoWhen was the last time you gave up your Lisp project for the lack of libraries, and what were those libraries?
- runevault 17y agoIt was generally library problems, but then I was trying to use sbcl on windows the last time I attempted CL development (this was over a year ago, before I found out about clojure) so even the libraries that DID exist were painful to deal with. Maybe things have changed but I could not make much headway with ASDF so even when I did find the libraries... yeah. And yes I did have cygwin installed which is why I got past some of the problems. Maybe I'd have made real headway if I were full on in Linux land where sbcl and everything else has much better support, since it's built around the *nix tool chain.
- mahmud 17y agoI develop on Windows and deploy on Unix. Library problems are something we have to face on every platform and programming language, as programmers, but we learn to work around them. This morning I needed HTML to PDF generation; my first instinct was to use something from Lisp, I found xhtml to pdf generation stuff in CL-TYPESETTING's contrib but it didn't work for me, so I went out and mocked up the application with a web service .. just to find out the remote server shut me down. Next try was to download Perl modules, PDF::FromHTML was broken for me and I didn't know how to fix it (I am not a good perl programmer, btw.) I tend tried the PHP HTML_ToPDF, and it too was too problematic for my tastes. A few hours later, I retooled the app to use a shell pipe: (let ((file-path (handle-file file)))) (if (and (shell-command (format nil "html2ps ~a > /tmp/~a" file-path file-path)) (shell-command (format nil "ps2pdf /tmp/~a /tmp/~a.pdf" file-path file-path))) (handle-static-file (merge-pathnames #p"/tmp/" file-path) "application/pdf"))) Ugly but worked. I then played with that for a bit and found it too fickle. Took a second look at the CL-TYPESETTING stuff, my application was now working but still I wasn't confident with it, however, since 7AM this morning, I have had so much exposure to HTML to PDF converters that I knew how they were supposed to function. It took me about 10 minutes to find the problem in the CL-TYPESETTING package (Windows didn't have truetype font it was referencing and the sample usage was buried in a comment at the bottom of the xml-xform.lisp file.) It would have been very convenient for me to bitch about Perl and its broken PDF::FromHTML module, even though any competent Perl programmer would have told me how to fix it in a jiffy. And the PHP package. It was also convenient to bitch about the web service that blocked me, but I found out they were charging an access fee for the API and I shouldn't have scraped their web page and abused their servers. Truth is, all languages, tools and platforms suck in small user-dependent ways (they are not DWIM-enabled.) You could waste a life time complaining about them, so the productive thing to do is weigh the language's pros against its cons, and if it's mostly good, then you better learn it well and use it to its full potential.
- runevault 17y agoRight, but I felt the productivity gains once I got past those problems compared to the ease of getting python running with what I needed (my language of choice at the time) and it's own level of power simply didn't create the right situation to warrant continuing to fight with it after I spent something like 4 evenings just trying to get my environment working how I wanted with ability to download packages I needed via ASDF.
- mahmud 17y agoPython is an excellent language in the hands of a competent pythonista: your programming career will thank you if you stuck with one language and learned its ins and outs over 3-4 years. Libraries are add-ons and most can be ported and rewritten in your favorite language with more natural idioms. SWIG is nowadays the equalizer; it makes the entire C world callable from your favorite pet language. Stuff like LLVM will take you even further, once you know what you're really doing. In the mean time, use foreign functions and web service to bridge the gap where it exists. My advice to Clojure programmers is to learn Lisp and mine its rich heritage for beautiful designs. A few months spent on a full CMUCL installation will make you a much better programmer for the rest of your lives: I was a Win32/COM guy writing GUIs for a living. When I discovered CMUCL I saw stuff I couldn't imagine. I was able to put buttons in the Unix shell and attach callbacks to all underlined text in an editor buffer. Stuff like that prepared me for DOM scripting with jquery. Look at Smalltalk and SML too. A personal note to Clojure web framework guys, specially people using Compojure: take a look at Hunchentoot and copy all its good parts. I develop on Hunchentoot and everyday I discover an engineering decision made by its author that just humbles me. Good code makes you respect its author.
- runevault 17y agoI've not looked at it in a long time but Hunchentoot is certainly an excellent piece of engineering, and one of the things I was certainly interested in using at the time I was attempting to get into SBCL development. I should go back and look at it's code again, and see what new ideas I can get out of it now that I've come back to lisp style syntax, though obviously w/o CLOS and the MoP.
- pfedor 17y agoSo a few years back I wrote my M.Sc. thesis as a part of which I implemented an engine for Polish interactive fiction (a.k.a. text adventure) games (which is a very different problem from English interactive fiction because of inflection and the fact that in Polish the order of words in a sentence is not as rigid as in English.) The example game I made using this engine was a remake of the classic "Hobbit." All the code was in Common Lisp and it was a console game at that point but I wanted to add some graphics to make it look more like the original. I looked into several options, starting from cl-sdl, but (at least at the time) none of them worked on Linux and Windows with the Common Lisp implementation I used (which was clisp.) I don't remember the details but I spent a good week pounding my head against the wall. clisp has a very good ffi mechanism but you can't use ffi to call into SDL because SDL (on some platforms at least) needs to use its own main() function, so once you're running your Lisp code it's too late. In the end I decided to implement the graphics part in C and just talk to the Common Lisp backend over a pipe. If you speak Polish you can check out the results on http://www.jfedor.org/pfedor/hobbit.html http://www.jfedor.org/pfedor/hobbit.html Note that this method would not have been possible for anything much more complex, like say an arcade game, and also that in other languages it would typically be trivial (say using pygame in Python.)
- hvs 17y agoThis post is from May 2008 and I couldn't find a link to download Lisp anywhere on his site. I don't disagree with his point, but over a year to make good on his promise doesn't speak well of his argument.
- runevault 17y agoSince then he switched to using Clojure, unless he's since changed back and I missed it, I don't actively follow the site anymore so couldn't say for certain.
- mahmud 17y agoWhere is the link to download Fortran, Cobol, C, C++, and "Assembly"? Remember kids, single-implementation languages are the exception in industry, not the norm. It's actually a two way street: where can I download the ANSI/ISO language specification for Perl, Python and Ruby? Just because it's nimble, interactive and quick to hack doesn't mean Common Lisp is a prototyping language.
- plinkplonk 17y ago"Where is the link to download Fortran, Cobol, C, C++, and "Assembly"? You forgot Ada and Pascal ;-) "single-implementation languages are the exception in industry, not the norm" If I may dispute this just a little bit, is this really true? Perl, Python, Java, Ruby, C#, VB(.net) are all "single implementation". (Though some of these have implementations on different platforms, there is indeed one canonical and dominant implementation(Guido's Python (vs Jython or stackless) , Matz's Ruby (vs Jruby or Rubinius), Micrsosft's C# (vs Mono) ), a canonical download page (googling "$language download" leads to this page)and download links to that page). Though there are many variants of C and C++ (mostly for embedded devices) , most people (>90% ?) use either VC++ or gcc I think. I don't know about Cobol (never had to work in it Thank God)but I suspect IBM's variant(s ?) is close to having a monopoly. It would seem that single (or close to single) implementation languages are indeed the norm and multiple implementation languages (with predefined standards and so on) are the exception? Again I don't think it is a specially useful distinction, just something to think about. In my (admittedly limited and subjective) experience, languages with a benevolent dictator seem to evolve better than committee/standards driven languages. I think this (benevolent dictator/single creator vs committee/standards driven design) might be a more meaningful distinction.
- aerique 17y agoHa, good point! I've been using CL for quite a few years now so this issue isn't even on my radar. But this question could be asked for C++ and probably Scheme as well. This is a 'problem' for languages with no single implementation that's easily solved by Google. "common lisp download" gives the CLISP site as top hits which is a good CL to start with.
- tsally 17y agoNot at all with Scheme. PLT Scheme is an awesome example of a centralized, well documented language with easy installation and application deployment. Note the prominent download link on the home page: http://www.plt-scheme.org/ http://www.plt-scheme.org/
- mahmud 17y agoPlease ignore the troll article. Anybody interested in a programming language can google for implementations and compare them. I don't understand why there needs to be a single lisp.exe binary. The abundance of Scheme implementations is actually a good thing: there is a scheme for every n-choose-r machine configurations :-) http://community.schemewiki.org/?scheme-faq-standards#implementations http://community.schemewiki.org/?scheme-faq-standards#implem...
- tsally 17y agoStep 1: Try doing concurrent programming in Common Lisp. Step 2: Switch to Clojure.
- 10ren 17y ago"In order to download lisp, one must first download lisp." Antiviral marketing.
- Tichy 17y agoapt-get install
- arb 17y agoThere are at least five links on the first page of results searching Google for "common lisp download": http://sbcl.sourceforge.net/platform-table.html http://sbcl.sourceforge.net/platform-table.html http://clisp.cons.org/ http://clisp.cons.org/ http://ftp.gnu.org/gnu/gcl/ http://ftp.gnu.org/gnu/gcl/ http://www.franz.com/downloads/ http://www.franz.com/downloads/ http://www.lispworks.com/downloads/ http://www.lispworks.com/downloads/ It's true there is no one link, but his examples suffer a related problem -- no links are provided to Jython, IronPython, JRuby, etc., which is misleading if marginally more convenient. That said, do people typically download releases, even of Perl, Python or Ruby implementations? I've only used distro packages or RCS checkouts of any of those systems. Is this mainly an issue for Windows or Mac users?
- zoba 17y agohttp://www.gigamonkeys.com/lispbox/ http://www.gigamonkeys.com/lispbox/ Lispbox makes it really easy to download and get going with Lisp.
- jonjacky 17y agoIt's Scheme not CL, but the PLT Scheme/Dr Scheme download and install was easy enough for many in my introductory programming class to get through without help (this was years ago already).
- deleted 17y ago[deleted]