Live data from Hacker News

Common Lisp homepage

lisp-lang.org

71–80 of 313 posts

Re: Common Lisp homepage

#71
post #59
post #58

Earlier quoted context omitted.

However: if not []: print("looks boolean to me...")

Python code rarely looks like this For things like optional arguments you usually use None with an "if l is None" parameter Meanwhile you can't iterate over None, so [x for x in None] blows up Closure (to my understanding) allows a null value in the place of any empty seq. This seems like a major bug swallower to me

> Python code rarely looks like this

Using implicit truthiness to test for empty sequences is idiomatic Python, for better or worse.

Re: Common Lisp homepage

#72
post #67

Is there any official (other than any ANSI standard site) or quasi-official or unofficial main site for Lisp or Common Lisp? I had seen a couple of other sites which seemed like they might be that earlier, like https://common-lisp.net/ and the site of the Association of Lisp Users, which I vaguely remember as being at http://alu.org , but now a Google search shows some other sites instead (from the first few hits I l…

Where is C's (un)official home page?

Re: Common Lisp homepage

#73

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…

Hi, great fan of your presentations on clasp.

Have you had an opportunity to look at Julia? It seems that there is some overlap in what can be achieved - with some obvious differences: as I understand it you had a lot of c++ - that could probably (today) be linked from julia, but not "integrated", starting from a green field with Julia, ideally one could do most things in Julia - maybe with some help from rust. And Julia is not a common lisp, obviously.

But in merging a high level language and the love, it seems Julia has been successful in getting a lot of real-world, "all Julia" libraries, with "sufficient" performance.

If you were starting over today - would you still prefer to build a common lisp with close integration to c++?

Re: Common Lisp homepage

#74
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…

1: I really don't see how CL or Clojure are any more complicated than, say, Rust or C++. If anything, CL and Clojure are simpler, just different.

3: Most useful libraries are portable between different CL implementations. The choice is really "CL or Clojure or which Scheme implementation?" Not to discredit Picolisp or Shen, but those languages feel very much (esp. Shen) like a research language. Picolisp has more of a convincing productivity story, but doesn't seem like it has the momentum of existing competitors and I fail to see an advantage in using it. Depending on your goals, the choice between Lisps can be pretty simple.

5: Portacle is helping in this area by making it much easier for a beginner to learn CL without fussing with setting up SLIME and Emacs. Clojure also has an IntelliJ plugin, cursive. For Scheme, Racket seems like a painless way to start learning.

6. You can easily go multi-core in CL. It isn't as easy as Clojure, but it's definitely easier than C++ or Java (the language).

7: Clojure has access to all of Java's libraries. CL does struggle compared to Python in this area.

8: Lisp related books are among the best in CS. SICP, LoL, etc. are timeless.

The Lisp family of languages definitely have room to improve, but the ecosystem is healthier today than 20 years ago, for sure.

Re: Common Lisp homepage

#76
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…

> building an mp3 database would be one line of code or two in python

You mean because of the availability of libraries, so that the code would be something like

  import some_database_library
  print("Look, I have a database:", some_database_library.connect())
?

Otherwise, how do you build a database (or anything involving MP3 files) in a few lines of Python, and how is it so much worse in Lisp?

Re: Common Lisp homepage

#77
post #32

Earlier quoted context omitted.

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…

The reason nobody can give you an example for how to make a binary is because there are many many different ways of doing that. To name just a few: * in ABCL you would generate a jar file, just like with java or clojure * in SBCL you could dump a core file, there are some tools that can package that up in a command line binary * if you use a bytecode compiler(like clisp), you'd use that the same way like python or ru…

[deleted]

Re: Common Lisp homepage

#78
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…

To me it's because lisp offer is too conceptual in a way. Lisp AST like faux-syntax, freedom of idioms, macros... to most it's a problem more than a feature. I believe a huge amount of people prefer the comfort and "magic" of strong grammatical separation. They like considering a language like a set of tools to learn rather than a set of concepts to craft whatever is possible. It also leverage social structures more.…

[deleted]

Re: Common Lisp homepage

#80
post #23
post #19

I know the article is about Common Lisp, but I have a question about Racket, Typed Racket specifically. Can anyone say if types and Lisp play well together? Are there any success stories?

Types are supported since the 80ies, with (the) and optional declarations. Almost nobody uses them. Well, CL says: types are always carried around in every value, so we do have types, and we are always type-safe. Which is a proper point. Then SBCL has superior internal type support in its python compiler, leading to many optimizations. It creates specialized copies of typed methods, and has a nice optimizer framework…

Typed Racket is more ambitious than other attempts at adding types to an underlying untyped language. Namely, Typed Racket guarantees that typed code is never to blame for certain contract violations, and, if any such contract violation happens, it will be properly traced back to an offending piece of untyped code. This is what makes gradual types gradual (as opposed to merely optional), alas, it is also what has been found to have unacceptable overhead.

Relevant paper and talk:

http://www.ccis.northeastern.edu/home/types/publications/gra...

https://www.youtube.com/watch?v=1u1JGwmW0IQ

Post reply on HN