Live data from Hacker News

Common Lisp homepage

lisp-lang.org

161–170 of 313 posts

Re: Common Lisp homepage

#161
post #144

Earlier quoted context omitted.

I say this with a perspective of watching it happen over forty years. I'll get all kinds of heck if I start saying this or that language has faded. But many languages have changed over time, sometimes in breaking ways, as their developers work to make them more expressive and add features. Code that is written one year often doesn't work a few years later - that's a kind of fading as specific reference implementation…

Thing is, except for CS theory evolving, the programming language environment from 30 years ago is in my opinion irrelevant from a maturity perspective. The number of practitioners was probably 1 million or so worldwide, now there’s probably 20-40+ million programmers worldwide. We didn’t have widespread internet access, barely a handful of Open Source communities, compilers were generally commercial and extremely ex…

Common Lisp has: generic functions, homo-iconic macros written in Common Lisp, reflection, multiple dispatch, closures, optional typing, correct implementation of lexical scope, dynamically scoped variables, a metaobject protocol, conditions & restarts, and a compiler that is available for customization. One or a few of these have made it into other languages in some form or another - but not all together.

Common Lisp also has an excellent package manager (quicklisp/ASDF) a programmers IDE (emacs/slime vim/vlime), interoperation with C libraries (CFFI) and lots and lots of libraries that don't need to be constantly updated to keep them working because the underlying language changes.

I wouldn't call it just a slightly more powerful weapon.

Just the macros - my goodness - in Common Lisp you can write programs that write programs! It's easy and organic and elegant because they are written in the same language as everything else. Macros let you write code that customizes itself and optimizes itself at compile time for specific use cases. You can escape the drudgery of writing similar code over and over again. You kind of need s-expression syntax for macros to be easy to write - so no other language with complex syntax will ever have them like Common Lisp does.

Languages are all Turing complete - we can do everything in every language - but for the kind of hard problems that I want to solve, only Common Lisp has helped me out of the Turing tarpit. Also, C++ is a great domain specific language for creating tables of cache friendly compact data structures and it has great compilers.

Re: Common Lisp homepage

#162

Earlier quoted context omitted.

Since you're already using LLVM, I'm wondering if you've thought about adding something similar to the includec function in Terra [1] which uses Clang to parse C headers. I used to think that Lisp's CFFI was the best FFI out there until I saw that it was possible to literally parse a C header file and have it "just work". It seems like if you're already building against LLVM, so bundling Clang with your project too m…

Thank you - I'll check it out. We exposed the AST and ASTMatcher libraries of Clang inside of Clasp and we use it to analyze all of the Clasp C++ code to build an interface to the Memory Pool System memory manager. I want to have something that can include C and C++ header files and automatically expose them to the Common Lisp - that would be neat! Maybe we can steal some ideas like the includec function of Terra.

Cando and Clasp are really inspiring. Is it easy to get academic funding for such a non-incremental idea?

Re: Common Lisp homepage

#163
post #18

Earlier quoted context omitted.

> I sometimes wonder why Lisp has not been more popular in the technology industry. Is it the lack of sufficient marketing? Is it the lack of an extensive library ecosystem? Data-point of one here, but I was instantly turned off by the conflation of the empty-list, nil, and boolean-false. I could tell instantly that I'd have a hard time interfacing with data from other real-world systems, so I decided to skip CL and…

Your guess was wrong; there is no such hard time. There is no difficulty in precisely mapping data from the "real world" onto Lisp data structures, in both directions. If it doesn't have nil that is also false and the empty list, it is not a Lisp. The conflation is a stroke of genius. I was immediately attracted to Lisp because of its clever handling of lists and booleans. Also how nil is a symbol, but () means the s…

> If it doesn't have nil that is also false and the empty list, it is not a Lisp.

Scheme is generally considered a Lisp.

Re: Common Lisp homepage

#164
post #7

Lisp is quite popular at my current workplace. A few popular open source projects published by our organization have been written in Clojure (a dialect of Lisp that runs on JVM and CLR). A few domain specific languages used internally in our organization are also inspired by Lisp. On a more personal front, I find Lisp to be simple, elegant, and expressive. I use Common Lisp (SBCL) for personal use. Working with Lisp…

I'd say several reasons: 1.) a lot of folks have trouble with the abstactness 2.) a lot of folks think C syntax is how all languages should be 3.) the lisp ecosystem is fractured into too many lisps like SBCL, Clojure, Racket, Allegro, Franz, Picolisp, ABCL, Shen...etc, so some confusion amongst those that are new 4.) poor windows support for SBCL...it literally tells you it is experimental if I recall correctly. Set…

>3.) the lisp ecosystem is fractured into too many lisps like SBCL, Clojure, Racket, Allegro, Franz, Picolisp, ABCL, Shen...etc, so some confusion amongst those that are new

You are mixing things into that list. Common Lisp, Racket, Clojure, and Shen are different languages, serving different purposes, etc.

"Franz", "Allegro", "ABCL", "SBCL" are implementations of Common Lisp, exactly the same language.

ALGOL-family languages are also "fractured" into Algol-68, Pascal, Go, Ada and others, that's not a problem, since they are really different languages that give different benefits/etc.

>"4.) poor windows support for SBCL"

SBCL works just fine on windows. But if you don't like, just use CCL (Clozure CL). I'm currently on a Lisp project which runs equally great in SBCL and CCL. CCL is professional quality software.

>6.) multi-core seems to only be in Clojure

False. There are many libraries to do all sort of concurrency and multiprocessing on Common Lisp.

>8.) learning resources are very hit or miss

At least for Common Lisp, there are books that are arguably some of the best books on programming ever written, like "Practical Common Lisp", or PAIP. For Scheme, "Structure and Interpretation of Computer Programs" is already a high-rated classic.

>notice how many people equate lisp with personal projects?

Except when it's used by Rigetti for quantum computing, or Grammarly for the core server of their core business.

Re: Common Lisp homepage

#165

Earlier quoted context omitted.

I'd say several reasons: 1.) a lot of folks have trouble with the abstactness 2.) a lot of folks think C syntax is how all languages should be 3.) the lisp ecosystem is fractured into too many lisps like SBCL, Clojure, Racket, Allegro, Franz, Picolisp, ABCL, Shen...etc, so some confusion amongst those that are new 4.) poor windows support for SBCL...it literally tells you it is experimental if I recall correctly. Set…

6 - what about https://common-lisp.net/project/bordeaux-threads/

... or STMX, which provides software transactional memory on Common Lisp in an ultra-easy-to-use way.

Re: Common Lisp homepage

#166

This is a very nice web site describing a programming language with unparalleled expressiveness, power and permanence. I am heavily invested in Common Lisp. We are developing a programming environment for designing new materials and molecules called Cando ( https://github.com/drmeister/cando ) using Common Lisp as a scripting language. Cando is running on Clasp ( https://github.com/clasp-developers/clasp ), a new Com…

>I am heavily invested in Common Lisp.

And you're my hero. For having the big courage to write a completely new CL implementation, and attempting what wasn't attempted before: LLVM output, great C++ interoperability. Even more, leveraging the latest state-of-the-art compiler modules (Cleavir, etc.)

Keep on with the good work, dr. Schafmeister!!

Re: Common Lisp homepage

#167
post #162

Earlier quoted context omitted.

Thank you - I'll check it out. We exposed the AST and ASTMatcher libraries of Clang inside of Clasp and we use it to analyze all of the Clasp C++ code to build an interface to the Memory Pool System memory manager. I want to have something that can include C and C++ header files and automatically expose them to the Common Lisp - that would be neat! Maybe we can steal some ideas like the includec function of Terra.

Cando and Clasp are really inspiring. Is it easy to get academic funding for such a non-incremental idea?

No, none, zero, zip, nadda. What you do is you hook it to another really important idea and then you work until 3:00am every night for months and then years writing code. You take all those voices in your head that say you should not be doing this and squeeze them hard until they... go to sleep and stop bothering you. For me it started paying off in the last year and it is starting to look like it was a really good idea.

Re: Common Lisp homepage

#168
post #32
post #9

Often those who are curious to try Lisp are faced with a number of choices: Which dialect to choose? Which implementation to choose? Which book or tutorial should one follow? Is it necessary use Emacs? SLIME? Here are my recommendations: - Choose Common Lisp because it has been the most popular dialect of Lisp in the overall history of Lisp. It is more convenient than Scheme if one decides to develop serious software…

What confused me a lot is that nobody seems to give an example on how to build a binary out of a Lisp program/make it runnable from command-line. Also most tutorials/books I found don't guide you on how to build an application/structure your code – which is rather confusing for a beginner. You have to spend a lot of time and try and error to get things working using Quicklisp. I got often the impression, that since L…

>What confused me a lot is that nobody seems to give an example on how to build a binary out of a Lisp program/make it runnable from command-line.

This is covered on the documentation of CCL and CLISP.

You only need one (1) statement to generate a binary. It's easy.

Re: Common Lisp homepage

#169

Earlier quoted context omitted.

Portacle makes it all even easier, it's a self-contained package of emagc/SBCL/Slime, etc. with sane defaults https://portacle.github.io/

Can Portacle be used without Emacs? Does it integrate with Sublime Text, Atom or Vim?

>Can Portacle be used without Emacs? Does it integrate with Sublime Text, Atom or Vim?

For Lisp development, Emacs is superior.

There's also SLIMV for VIM, giving the same features.

Re: Common Lisp homepage

#170

Any good implementations if common lisp on Windows?

>Any good implementations if common lisp on Windows?

SBCL works OK on windows, i've used it a lot there.

CCL works perfectly.

ABCL should work just fine.

CLISP works perfectly.

LispWorks and Allegro CL should work perfectly.

Post reply on HN