freenode/lisp - IRC Chatlog
Search
23:47:44
aeth
perryx: Common Lisp has better performance, is more multi-paradigm, and has natively compiled implementations. It's more traditional of a language, so mutability is fine. Clojure has better Java/JVM integration than ABCL (the JVM CL, which is pretty niche) and focuses on concurrency so it's probably easier to write programs in Clojure if they're in the style of the niche that Clojure is aimed at.
23:48:41
aeth
Well, at least it was easier. The Clojure hype machine really died down in the past few years.
23:49:36
aeth
Definitely post-peak. https://trends.google.com/trends/explore?date=all&geo=US&q=clojure
23:51:37
pjb
even compared to scheme: https://trends.google.com/trends/explore?cat=5&date=all&q=clojure,scheme
23:51:55
aeth
pjb: You can't Google Trends "lisp" because it's a regular dictionary word, and it's also a language family. Unfortunately, it's also often used interchangably with "common lisp", which is often also called "CL" or (erroneously because it's just an implementation) "CLISP". So I don't think you could come up with a query to find CL interest.
23:52:28
aeth
Even language trends sites often have "Lisp" separate from "Common Lisp", "Scheme", "Clojure", and "Emacs Lisp", which then really raises the question "what are they measuring?"
23:53:31
aeth
and "scheme" will still get you stuff like "foo scheme" as in e.g. "the encryption scheme of..."
23:54:16
pjb
Perhaps google is smart and if we compare clojure with something it'll find the somethings in the same semantic category as clojure?
23:57:17
aeth
Common Lisp is a very multiparadigm programming language. You can write in many, many different styles. It's rarely opinionated.
23:59:24
aeth
It's also a multi-implementation language. There are three or four that are popular in this IRC channel, and a few more notable ones, too.
0:02:32
aeth
The advantage is that it's robust and people have generally settled on the fastest implementations with the most helpful compilers, but could switch if another one is better some day. The disadvantage is that you need multiple separate teams to implement features before you can really widely use them.
0:06:27
aeth
10-20 years ago "everyone" (not really everyone) wrote for CLISP. Nowadays, "everyone" (again, not literally everyone, but most) writes for SBCL. That same code is now probably 10x faster with little to no porting work as long as people didn't use implementation-specific features.
0:10:45
aeth
But if you have some other need (like being easy to port to new platforms or running on the JVM) you can run a different implementation and it should be compatible with almost every library.
0:14:50
aeth
To be fair, Clojure has two implementations that I know about: JVM and JavaScript. CL's implementation-based approach is much closer to C/C++, though. The advantage CL has over C/C++ is that with C/C++ different platforms have different preferred compilers so you have to deal with cross-OS *and* cross-implementation issues.
0:14:55
aeth
With CL, there is no expectation to use $foo on $os1 and $bar on $os2 with the possible exception that CCL runs better on macOS.
0:22:50
aeth
Lots of people will list features like reader macros, CLOS, etc., but what impresses me the most with CL is that there are multiple independent and healthy implementations that are library-compatible with each other (compare this with Scheme, which has as many or more implementations but is very fragmented) even though the CL community is fairly small
4:57:13
ealfonso8
I'm having a problem building a dependency of my project from quicklisp, it might be a bug. Is there a way to ask quickload to load an older version of a library?
4:57:27
ebrasca
When I try to compile with ecl I get "BINDING-STACK overflow at size 10240. Stack can probably be resized." .
5:25:41
beach
Wow, Alan Kay is a terrible speaker, but he is very smart and he knows many truths that he wants to communicate: https://www.youtube.com/watch?v=N9c7_8Gp7gI
5:26:21
beach
Then I was thinking, how would a web browser be organized in the context of a Lisp OS?
5:26:44
beach
Probably not as a single application, but as a set of "modules" that can be invoked independently from any other program.
5:29:42
beach
It's sad though. We need someone with all that knowledge and intelligence who is much better at communicating things.
5:44:01
beach
Sort of, yes. Lots of good things to think about if you understand his point. But to do that, you either need to be as knowledgeable as he is, or you need to pause the video and go read up on some major subject for every few minutes of the video. I am certainly not as knowledgeable as he is.
6:09:30
beach
Well the term itself just means a value that is significant, so that anything below it is not enough, and anything above it is more than enough.
6:10:38
beach
What he is saying is that we should compare our performance to some threshold that defines a value that is acceptable. We should NOT be happy with any incremental progress, if both before and after the progress we are way below the threshold.
6:59:26
phoe
What would be the idiom for "for a list, return a list that only contains elements of type FOO of that list"?
7:07:23
|3b|
http://www.lispworks.com/documentation/HyperSpec/Issues/iss172_w.htm says they are new to CL, and code shouldn'
8:40:20
beach
This entry: https://dl.acm.org/citation.cfm?id=578775 mentions only Aho and Hopcroft, and not Ullman. Is the entry just wrong? I can even kind of see Ullman's name on the picture of the cover.
9:16:15
ggole
But other sites referencing that ISBN include all three names, so it's very likely just a mistake.
9:41:04
pjb
beach: I don't know about Alan Kay worth as a speaker, I generally like his conferences. But for example at 23:00 he says that we still use tools designed 50 years ago (C++ compile link debug loop in programs emulating terminals emulating punch card), compared to other trades for which we developed nice graphical design tools. And here, I'd say that this is because text is more powerful than image.
9:42:23
pjb
beach: text is more ergonomic, faster and more precise to give order or describe structures than GUI.
9:43:24
pjb
The bandwidth with text is about symetrical (input/output). The bandwidth in GUI is very disymetrical, much faster for input (into the brain), much slower for output, even slower than text.
9:44:21
aeth
pjb: I think that it's about being keyboard-driven when programming, not necessarily having no graphics.
9:45:12
pjb
aeth: granted. It's nice if your command output graphics. It's not often necessary. We have tools to do that, stuff like GraphViz, various UML diagram drawing tools taking textual descriptions, etc.
9:45:52
pjb
Only if you compare pre-canned orders in a menu selection, vs. a non-canned text command, the GUI will win. But it's slower to go to a menu and select the right item, than to type a few character to get the same result, when both commands a pre-canned.
9:46:59
pjb
I still prefer emacs to eclipse… The later is too specialized, and too inconvenient to use.
9:59:29
pjb
Basically, when you have an IDE, a GUI design tool, whatever, what you have is a cow. You can make it produce calves, and you can spend a thousand years trying to make it evolve into planes. When you have a CLI with emacs, you deal at the atomic level, and you can reorder the atoms of your cow and make it into a plane or anything else whenever you want (as long as you know how to make a plane).
9:59:36
flip214
applying "object oriented" thinking to text is also nice -- "select this paragraph", "move this () form", etc.
10:00:19
flip214
as soon as the keyboard commands are muscle-driven (ie. used without actual thinking), you're on.
10:01:42
pjb
For example, emacs doesn't even try to optimize the bindings. For search and replace you have to type M-x replace-string RET … In a GUI you'd just type Command-R
10:06:35
rnmhdn
I want to make a program but I'm so confused what is the proper way to handle something like this in functional programming.
10:07:40
rnmhdn
There is a graph. There is a list in each node. and there are some edges. each edge is a constraint for example it can require it's two sides to be equal.
10:08:45
rnmhdn
or it can require it's two sides to always be null together so if the second element of the right side is null the second element of the other side should be null to but the other elements can be whatever number.
10:10:08
pjb
38:32 "Like the user interface that everybody uses these days, the GUI, that was my invention. I originally designed it for CHILDREN. I originally designed it that way because we have far more important things that we want them to learn. That user interface is not a good user interface for ADULTS. But in fact it's the one that adults wound up using because we made it easy for children to learn."