5 ms·
Lisp - historically - did not work well with others. Did not share spaces, did not coexist with other systems particularly well. Or if it did, it would wrap t
by teunispeters 11mo ago
Lisp - historically - did not work well with others. Did not share spaces, did not coexist with other systems particularly well. Or if it did, it would wrap them very carefully in "unsafe" and keep as much to the boundaries as possible.
It's not like it's the only system that suffers this, but "working well with others" is a big key to success in almost every field.
I'm absolutely fascinated by what worked and was possible in that venue, just like I find rust code fascinating. These days lisp is much more workable, as they slowly get over the "must coexist with other software". There are still things that are really hard to put in other computer languages.
- dreamcompiler 11mo agoThese days Lisp works pretty well with C because C has a defined ABI. That was historically not the case for C++, so to call C++ functions you needed to first wrap them in C. C++ might be easier now; I don't know.
- teunispeters 11mo ago"sort of". C++ is a lot more stable ABI these days, but linking still means looking into name mangling and data types. At least it no longer seems to be changing between compiler patches, as with - say - earlier GCC. (gcc 2 through 4 were not fun for this) From a look a little, it seems rust has this pretty reliably - probably helped by sharing link environments with LLVM. (I've only explored this a little from time to time). Mostly my work is all C and a bit of C++.
- bitwize 11mo agoI do a lot of work in Gambit, which integrates very well with C, C++, and Objective-C. But that's because it transpiles to C source. Gambit does a lot of other stuff these days, including x86 and even JavaScript compilation, but its roots as a scheme-to-C compiler are still in evidence.
- iLemming 11mo ago> slowly get over the "must coexist with other software" I dunno, as a Lisper I don't even have to think very hard - virtually any platform available to me, I can write almost anything in Lisp - for JVM and .Net - with Clojure; for Lua with Fennel; for Flutter with ClojureDart; Python - libpython-clj; C/C++ - Jade, CL, Carp and Jank; BEAM - Clojerl and LFE; Shell-scripting - babashka; For targeting js there are multiple options - clojurescript, nbb, squint. Knowing some Lisp today is as practical as it gets. I really feel like a true polyglot coder - switching between different Lisps, even for drastically dissimilar platforms incurs virtually zero overhead while jumping even between JS and TS is always a headache.