Also other languages have stolen most of what was unique about lisp like: the garbage collector, dynamic data structures on your fingertips, Map<String, Object>, etc. Almost all the examples in Peter Norvig's book
can be coded up just fine in Python. Try doing that in FORTRAN or COBOL in the 1970s in you're in the house of pain.
MonkeyClub · 2h ago
Yep, there is a clear and constant convergence towards Lispity in most languages. Lambdas are everywhere, for example, and macros start appearing more and more.
What still isn't there is the concept of image-based development, but this seems to be intentional, while environments and containers tend to replicate some of that functionality.
Though I think Lisp's approach still remains a unique way towards "programming as theory development", or "programming as teaching (the computer)" because of the particular power of its treatment of the REPL as a long-running, uninterrupted environment.
PaulHoule · 57m ago
Image-based development drives me up the wall.
On some level I love Jupyter notebooks, on another level I hate them. Since users can go up and down and back and forth they frequently get the notebook into a state which is not reproducible. One answer is to frequently refresh the notebook from the beginning and re-run it, which might not work for the data scientist who is training a neural network that might take 12 hours to train. Another answer is that it should work like an Excel notebook, that is you change one thing and it should change everything that depends on that.
Practically I've struggled with issues like "they want to check in the notebook into version control with all the data and results in it so they can look at the notebook in Github and see a complete analysis" with "being able to check in changes to a notebook without an explosion of conflicts".
It can be so liberating to just start from zero in any situation and know it is all clean.
https://web.archive.org/web/20051219170403/https://dept-info...
Also other languages have stolen most of what was unique about lisp like: the garbage collector, dynamic data structures on your fingertips, Map<String, Object>, etc. Almost all the examples in Peter Norvig's book
https://unglueit-files.s3.amazonaws.com/ebf/59f74a93bbc1435c...
can be coded up just fine in Python. Try doing that in FORTRAN or COBOL in the 1970s in you're in the house of pain.
What still isn't there is the concept of image-based development, but this seems to be intentional, while environments and containers tend to replicate some of that functionality.
Though I think Lisp's approach still remains a unique way towards "programming as theory development", or "programming as teaching (the computer)" because of the particular power of its treatment of the REPL as a long-running, uninterrupted environment.
On some level I love Jupyter notebooks, on another level I hate them. Since users can go up and down and back and forth they frequently get the notebook into a state which is not reproducible. One answer is to frequently refresh the notebook from the beginning and re-run it, which might not work for the data scientist who is training a neural network that might take 12 hours to train. Another answer is that it should work like an Excel notebook, that is you change one thing and it should change everything that depends on that.
Practically I've struggled with issues like "they want to check in the notebook into version control with all the data and results in it so they can look at the notebook in Github and see a complete analysis" with "being able to check in changes to a notebook without an explosion of conflicts".
It can be so liberating to just start from zero in any situation and know it is all clean.