
The Many Faces of an Undying Programming Language - grugagag
http://jakob.space/blog/thoughts-on-lisps.html
======
pjmlp
Very entertaining article, just a small remark when people count pages in
Common Lisp or C++ standards, they tend to forget that standard library is
also part of those pages.

Something like Python. .NET, Java also isn't far from them, when language +
standard library + vm reference (if any) land in dead tree form.

~~~
imtringued
I've never understood why anyone uses the number of pages of the reference
document as an argument. It feels like making fun of the hard work of people
put into making the reference. The bulk of the reference probably consists of
minor details that can be skipped but can also be extremely helpful when you
actually need them. Should we make worse references just to appease some bean
counting?

~~~
shakow
> I've never understood why anyone uses the number of pages of the reference
> document as an argument

I guess that, assuming that all refs have roughly the same information
density, it gives a rough idea of the “size” of the language.

~~~
rightbyte
If you count the standard library in the size it is just an arbitrary number.

~~~
wtetzner
Unless you're using the size of the standard as a rough measure of the
complexity of creating a new implementation of the standard. If you need to
provide an implementation of the standard library, then that contributes to
the amount of effort required.

------
agambrahma
> Emacs Lisp, or Elisp, is generally hated

That seems unnecessary; of all the options above, it might be the one seeing
the /most/ active development, and (given that "Guile-macs" isn't happening
anytime soon) will continue to be in active development for a long time to
come.

~~~
alpaca128
Yes, it's not ideal because of its lack of tail call optimisation, but as a
Vim user I'm kind of envious now and then when I try to write a custom
function myself.

Then again afaik Vim doesn't throw errors when you have a bracket imbalance in
comments(!), so that's nice.

~~~
minerjoe
> errors ... bracket imbalance in comments

Not sure where this is coming from. Elisp doesn't error on anything in
comments.

~~~
alpaca128
I think it was due to org-mode, which has its share of bugs and glitches.
Either way Emacs refused to evaluate a function because I had a commented out
line with a closing parentheses in it, and would only accept it after I
deleted that line.

~~~
Jtsummers
If you can reproduce it it would be worth submitting a bug report. Comments
like:

    
    
      (defun foo ()
        ;; old code)
        new code)
    

Should just get discarded when parsing/running the lisp code. There was a lot
of code like that in my old .emacs file back when I was learning how I wanted
it to behave but didn't want to delete old configurations (before I got into
the git everything habit, especially).

~~~
alpaca128
I just checked, it doesn't happen in an actual elisp buffer, but every time in
a standard .org file. It'll always throw a 'Lisp error: (scan-error
"Unbalanced parentheses")'.

You might rightly say that evaluating lisp code directly in an org-mode code
block might not be the best idea, I just don't expect it to mostly work but
mess up the syntax depending on comments.

~~~
Jtsummers
Interesting. I frequently write Common Lisp code in org blocks and execute
from there, but not Emacs Lisp. And I don't have emacs on my phone so I can't
test it. Can you copy a sample org file here?

------
rcarmo
I went down this rabbit hole last year:
[https://taoofmac.com/space/blog/2019/06/20/2310](https://taoofmac.com/space/blog/2019/06/20/2310)

I fared a bit better with Gerbil, enough to build multi-arch Docker images for
it: [https://github.com/insightfulsystems/ubuntu-
gerbil](https://github.com/insightfulsystems/ubuntu-gerbil)

These days I mess around with Janet a bit, and quite like Fennel, but lack the
time to do substantial bits of code in either.

------
Santosh83
> Clojure's license makes it a complete non starter for me, sorry. Live free
> or die.

Can someone ELI5 this? Why is Clojure's license problematic?

~~~
yomly
I am by no means an expert on things to do with licensing but Clojure is under
Eclipse so IIRC if you distribute your code onto the user's machine they have
a right to the source.

This can make on-prem solutions for a product slightly hairy.

Please feel free to correct me if this is inaccurate

~~~
dkersten
> This can make on-prem solutions for a product slightly hairy.

EPL has the restriction that if you distribute binaries, you have to make the
source available (you must state in your license where to obtain it). It seems
that listing your dependencies libraries and linking to their websites (which
I think is good practice anyway even with less restrictive licenses) would be
enough, as long as you didn’t modify them.

EPL allows linked modules to be distributed under whatever license you want,
so in a commercial product doesn’t apply to your closed source code or any
libraries that choose not to be distributed under EPL.

So for on prem distribution, you just need to include a license file that
lists all of your EPL (or other licenses that require the license to be
included like MIT) with a link to where to get the code. Your own code is
unaffected.

This isn’t GPL compatible, though, because GPL does “infect” linked modules
too.

However IANAL.

~~~
macmac
The problem with the EPL is that if your software is a derivative work of EPL
licensed software, the EPL applies your software, including the obligation to
provide access to the source of your software to the entities to which it is
distributed. Determining if a work is a derivative work in software is far
from straightforward. The EPL FAQ for instance points out that this might be
an issue when using software that generates code.

~~~
kazinator
That cannot be the problem that the author of the submitted article has with
the EPL, because the GPL is the same way.

~~~
macmac
No, I agree. I was pointing out a general challenge with the EPL that people
tend to overlook. In the Clojure environment many use EPL for Clojure
libraries, many without realising that it might, depending on your intentions,
be an issue.

------
ache7
About that "write-ppm" example. Using PPM type 3 will increase the size of
pixel data by 2-4 times. Use type 6.

------
waffletower
"Clojure's license makes it a complete non starter for me, sorry. Live free or
die."

I don't think you understand what the word "free" means.

------
timdeve
If you are interested in game development and lisp, may I suggest having a
look at [https://github.com/carp-lang/Carp](https://github.com/carp-lang/Carp)
? It's "A statically typed lisp, without a GC, for real-time applications.",
the Gitter is quite friendly as well.

------
cafard
I clicked just be sure that it wasn't COBOL....

~~~
pjmlp
Well, modern COBOL supports RAII, collections, OOP, .NET/JVM backends in
addition to AOT to native code, ....

