3 ms·
I went through a similar transformation when I finally understood LiSP. I knew Python and had programmed in it for several years but it was breaking into Scheme
by Beltiras 7y ago
I went through a similar transformation when I finally understood LiSP. I knew Python and had programmed in it for several years but it was breaking into Scheme that changed my approach. I wonder if learning new paradigms always changes how you use other languages.
- gerikson 7y agoAccording to Peter Norvig, you were half-way to Lisp using Python: https://norvig.com/python-lisp.html https://norvig.com/python-lisp.html
- kazinator 7y agoAccording to Guy Steele, if you're a C++ programmer using Java, you've been dragged halfway to Lisp. https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg04045.html https://people.csail.mit.edu/gregs/ll1-discuss-archive-html/... So by that estimate, if you switch to Python you're another halfway to Lisp (three quarters of the way from C++).
- wglb 7y agoI could never figure out how Java is in any sense halfway to Lisp. Python, maybe.
- lispm 7y agoThe reference point is C++. What makes Java nearer to Lisp than C++? Mostly the Java runtime, the JVM. C++ basically comes with some kind of manual memory management and raw data layout. Lisp comes with Garbage Collection and managed memory. In Lisp one passes references to arrays and other objects around. The runtime tracks which objects are of what dynamic type and of what size. The garbage collection may be a simple mark&sweep or a more complex, say, generational GC. The first garbage collection was developed for Lisp around 1960 and has then slowly spread to other languages. C++ was object-oriented, but with a more traditional non-GC approach. Java changed that.
- wglb 7y agoThose are certainly huge similarities, but I am wondering if a test of the veracity of that statement could be tested by how difficult a seasoned Java programmer feels to learn Lisp compared to how difficult a seasoned C++ programmer feels to learn Lisp.