I'm grateful for the author's "other options that were considered" section with eight alternatives to S7. But Embeddable Common Lisp (ECL) is the only one listed that he doesn't write a few sentences about, to contrast its pros and cons versus S7. I'd love to hear more.
The first is that it seemed at the time that Scheme was going to be easier to work with, and that has proven true. It's a lot easier to do music theory hacking and integrate with Max using a lisp 1. Being able to seamlessly change whatever the first form is (function, hash-table, list, vector) with no change to the code has turned out to be really really nice in my work.
The second was that when I started I new little about Schemes and Lisps and it seemed when going through the docs like ECL at that time was going to be a bigger lift to get going.
clang and ECL both seem interesting, as long as LGPL license is ok. They both are complex to embed though - neither are well tuned to be embedded in other applications. (I've been exploring on MacOS). Julia could be interesting too under same questions (and a better license for commercial products) but similarly has a fair bit of glue code needed - especially if you want to restrict (say) filesystem access.
Author here! Funny to see this arise now, I shared links to the project a number of times but never got much interest here. For what it's worth, I would (and should!) update that page, but the choice of s7 has worked out really well. I now also use it in a WASM context, which is great. The fact that I can easily use the same scheme implementation anywhere I can run ANSI C has proven to be a real advantage.
Happy to answer other questions.
For people interested, I will update that page today with thoughts five years on.
Hmm, it's been a while. It was partly the fact that it was not as simple as s7, and also was complicated a bit by the compiled-to-C nature of Chicken. I did really like what I saw in Chicken though.
I have found S7 scheme to be a delight to use as a configuration/extension language. I find it much more intuitive then something like Lua or even embedded python. Because of its heritage, most of the s7 scheme uses I've seen online are music related, but it really shines outside of that field as well.
yes, it really is. In my music pedagogy project I use it as the domain layer via WASM sitting between JS and C/C++ audio worker. It's been great that way.
That I don't know, but the s7 author, Bill Schottstaedt (who I will ping about this) is very helpful on the email list and is deeply, deeply knowledgeable about Lisp, so you could definitely ask there!
I'm grateful for the author's "other options that were considered" section with eight alternatives to S7. But Embeddable Common Lisp (ECL) is the only one listed that he doesn't write a few sentences about, to contrast its pros and cons versus S7. I'd love to hear more.
OP: it was a two factor decision.
The first is that it seemed at the time that Scheme was going to be easier to work with, and that has proven true. It's a lot easier to do music theory hacking and integrate with Max using a lisp 1. Being able to seamlessly change whatever the first form is (function, hash-table, list, vector) with no change to the code has turned out to be really really nice in my work.
The second was that when I started I new little about Schemes and Lisps and it seemed when going through the docs like ECL at that time was going to be a bigger lift to get going.
clang and ECL both seem interesting, as long as LGPL license is ok. They both are complex to embed though - neither are well tuned to be embedded in other applications. (I've been exploring on MacOS). Julia could be interesting too under same questions (and a better license for commercial products) but similarly has a fair bit of glue code needed - especially if you want to restrict (say) filesystem access.
Oh right, that was a thing too. LGPL would have complicated some plans. Forgot that details.
Author here! Funny to see this arise now, I shared links to the project a number of times but never got much interest here. For what it's worth, I would (and should!) update that page, but the choice of s7 has worked out really well. I now also use it in a WASM context, which is great. The fact that I can easily use the same scheme implementation anywhere I can run ANSI C has proven to be a real advantage.
Happy to answer other questions.
For people interested, I will update that page today with thoughts five years on.
TLDR: still really happy with the choice!
S7 is very cool indeed. It also comes as a single C file, which makes it easy to embed.
As a CHICKEN maintainer, I'd love to hear what the author was missing in the FFI part of the manual.
Hmm, it's been a while. It was partly the fact that it was not as simple as s7, and also was complicated a bit by the compiled-to-C nature of Chicken. I did really like what I saw in Chicken though.
I have found S7 scheme to be a delight to use as a configuration/extension language. I find it much more intuitive then something like Lua or even embedded python. Because of its heritage, most of the s7 scheme uses I've seen online are music related, but it really shines outside of that field as well.
yes, it really is. In my music pedagogy project I use it as the domain layer via WASM sitting between JS and C/C++ audio worker. It's been great that way.
Is there a SLIME-equivalent to achieve REPL driven programming for applications with s7 embedded in them?
That I don't know, but the s7 author, Bill Schottstaedt (who I will ping about this) is very helpful on the email list and is deeply, deeply knowledgeable about Lisp, so you could definitely ask there!
https://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
(2020)
Added. Thanks!