News for hackers. Stuff that matters.
Re:Getting Started with Lisp (2019) by behnamoh on Monday December 21, 2020 @10:55AM (#25495997)
Every now and then I see posts like this and yet, the Lisp languages never took off after the 2000s. I understand that there might be some value to learning Lisp, but much of the things that made Lisp attractive before are already available in Python, Java, etc. and I see no "enlightment" in learning Lisp.

This comment is going to get downvoted heavily here, but it's high time every one accepted the fact that the Lisp family is almost dead and move on.

Re:Getting Started with Lisp (2019) by fouric on Monday December 21, 2020 @11:42AM (#25496561)
> the Lisp languages never took off after the 2000s

> I see no "enlightment" in learning Lisp

> the Lisp family is almost dead

You're conflating popularity with value, and the two are very different.

Moreover, you're missing the fact that most of the features that were invented in Lisps (like GC, lambdas, first-class functions, and REPLs) are now wildly popular, with every modern language having taken several ideas from Lisp.

Furthermore, you don't seem to understand that a language is not the sum of its parts. Python, Java, C++, and the rest of the languages that have been grafting on Lisp features do not have the unifying design philosophy that Lisp does, which is precisely the "enlightenment" that you don't think exists.

Finally, by the nature of "enlightenment", you can't see or understand it until it hits you. As someone who is stubbornly refusing to learn Lisp, you by definition cannot judge whether or not you might have a galaxy-brain moment if you attempt to learn it. (it's perfectly possible that you'll learn it and have no moments of revelation, but you can't even tell whether or not that will be the case until you try)

Re:Getting Started with Lisp (2019) by dmamills on Monday December 21, 2020 @11:23AM (#25496312)
> I see no "enlightment" in learning Lisp.

and thus because you see no enlightment in learning lisp

> it's high time every one accepted the fact that the Lisp family is almost dead and move on.

Doesn't track for me. I believe there can be value in things that I personally don't perceive value in.

Re:Getting Started with Lisp (2019) by phoe-krk on Monday December 21, 2020 @11:17AM (#25496234)
The alternatives that you mention are still highly subpar when it comes to e.g. the incremental and interactive programming style that is highly common with Lisp. Java fails at it miserably by pretending to be a dynamic language, and I have not seen* Python used in a way in which one usually programs with Lisp - so, keeping the process alive all the time and sending commands to interact with it, like one does with Slime/Sly.

This has some obvious negative consequences, such as high feedback loop time - in Lisp, the compilation delay is usually imperceptible, especially when compared to running javac or python.

The "it's high time every one accepted X" is a meaningless comment because it presents an opinion as if it were a fact. Therefore, please accept my downvote.

*if such toolkits exist, please point me towards them - I've always wanted to see one in practice.

Re:Getting Started with Lisp (2019) by greggyb on Monday December 21, 2020 @01:11PM (#25497589)
It's easy to get to a shallow similarity with Python. I use elpy for Python development in emacs.

My development style is highly iterative and I tend toward functional paradigms. I build up a Python program by evaluating lots of small pieces, slowly building those into the structure of my program. I don't write code into a saved file without first evaluating it in a linked REPL session.

Python does not support the same style of connecting to a live process, like Lisp does. Nor does it have the same facilities of redefining components in a running system.

The surface level actions look similar between my Lisp development and my Python development.

Re:Getting Started with Lisp (2019) by phoe-krk on Monday December 21, 2020 @01:31PM (#25497816)
Thanks! I haven't seen elpy before - I'll take a look at it. It seems like exactly the thing I described.
Re:Getting Started with Lisp (2019) by cat199 on Monday December 21, 2020 @01:28PM (#25497776)
> I have not seen* Python used in a way in which one usually programs with Lisp

not sure what you have in mind, but i use 'elpy' regularly within emacs, and typically test/load functions incrementally into a python repl buffer, or interact with the repl directly

Re:Getting Started with Lisp (2019) by phoe-krk on Monday December 21, 2020 @01:31PM (#25497819)
Thanks! I haven't seen elpy before - I'll take a look at it. It seems like exactly the thing I described.
Re:Getting Started with Lisp (2019) by sn41 on Monday December 21, 2020 @11:19AM (#25496257)
Please take a look at Lisp macros. I finally got it at some point. It is a way of generating code on the fly. After I understood under what circumstances macros can abbreviate code, every other language will look unnecessarily verbose.

This is enabled by the fact that code in Lisp is also written in the form of lists. Code is data, data becomes code if you write a macro to process the data.

For example, is the following data or code?

(book (author "Jonathan swift") (title "A Modest Proposal"))

It definitely looks like data. But it can be made into code using an appropriate macro.

What probably Lisp trails in is type inference and bleeding edge libraries.

Re:Getting Started with Lisp (2019) by cat199 on Monday December 21, 2020 @01:30PM (#25497802)
> It definitely looks like data. But it can be made into code using an appropriate macro.

to chime in, it also can be made into 2 systems - one which defines 'book' as an in-memory object which can be inspected, and one which, say, defines a remote database object - your 'language spec' is the syntax, and you can implement multiple implementations, or replace subsystems as you build up the bigger thing - e.g. 'now my hashtables are persisted to disk', etc

Re:Getting Started with Lisp (2019) by phoe-krk on Monday December 21, 2020 @11:24AM (#25496324)
> What probably Lisp trails in is type inference

SBCL type inference is actually getting better and better over time, giving you pretty effective gradual typing. Additionally, a Common Lisp implementation called SICL is in the works, with an advanced compiler and type inference engine.

https://github.com/robert-strandh/SICL/

Re:Getting Started with Lisp (2019) by rscho on Monday December 21, 2020 @01:01PM (#25497482)
Your comment is a sign that you should write more lisp, not less. After you've written enough lisp, you may go back to other languages but then you'll really know why you use those.

There are essentially 2 possibilities:

- you need huge or specialized libs not available elsewhere: Python, Java, etc.

- you need extreme speed, binary size or memory control: C, Rust, etc.

For everything else, lisp will be better.

Re:Getting Started with Lisp (2019) by ska on Monday December 21, 2020 @01:52PM (#25498054)
For what's it's worth, people have been saying this since the late 80s, and probably earlier. The fundamentals of the argument haven't really changed much although as you note some individual lisp features & approaches have been bolted onto mainstream languages with varying success. For the things that lisps are really good at, these languages still aren't.
Re:Getting Started with Lisp (2019) by pjmlp on Monday December 21, 2020 @02:52PM (#25498746)
It is hard to be dead, when its soul lives on Java, Julia, Python, WebAssembly....

The enlightenment comes from the Zen master understanding why those languages are halfway through Lisp, and grow oneself how to improve them to reach parity with the master copy of the universal God language.

Re:Getting Started with Lisp (2019) by tl on Monday December 21, 2020 @01:47PM (#25498008)
I have felt the "sense of enlightenment" referenced in two languages: Common Lisp and Elixir. Not two distinct senses, but the same sense, twice. I've also coded productively in Scheme and Clojure without feeling the same sense.

Watch someone like Notch code in Java; it's possible to achieve it without whatever language feature people think is essential. However, if it's easier to achieve in Lisp, then Lisp will always have value. The enlightenment isn't essential for application development, but it points the gun away from your foot surprisingly often.

Re:Getting Started with Lisp (2019) by minhm on Monday December 21, 2020 @08:55PM (#25502022)

  > much of the things that made Lisp attractive before are already available in Python, Java, etc. and I see no "enlightment" in learning Lisp.
I have not found englightenment either, but I could not find another production-grade language that can model anything like a tree (eg. abstract syntax trees) and let its user extend the language itself without the language authors.