<div dir="ltr">Hi Bill, yeah Clojure is (IMHO) a really thoughtfully designed language. I think not many people coming to lisp-for-computer-music from the normal jobbing computer programmer side (as opposed to computer music) realize how much of what they like in Clojure is in S7. Before finding S7 I was looking at various music in clojure projects, but fundamentally it&#39;s a JVM language so the timing is never going to be adequately under control, and audio interfacing is not really there. S7 on C++ gives me most of what I love in Clojure, with a bunch that Clojure doesn&#39;t have, and the ability to drop into C anytime.  I should put some thought into this and respond again later, but off the top of my head there are a few things that I like a lot in it, and may or may not be interesting to you.<div><br></div><div>- the notion of metadata annotations on data structures is really handy</div><div>- there are bunch of nice convenience macros, some of which  I plan on porting: thread-first, thread-last, doto</div><div>- the convenience macros for declaring anonymous functions are handy, really just a shorthand for lambda, but still handy</div><div>- the immutable data structures are impressive, in that you can pass around huge things purely by value. I&#39;m not sure how valuable they would be in a computer music conference, but they are pretty darned cool for making sure an app is heavily parallelizable.</div><div>- the software transactional memory system is likewise very impressive.</div><div><br></div><div>Interestingly, one of the most successful companies I assessed in my &quot;real job&quot;, assessing startups for private equity investments, was a Clojure shop, and between the JVM&#39;s multi-threading and Clojures software transactional memory and immutable data-structures, they just sidestepped the typical cloud infrastructure concerns we see companies putting tons of time and money into. They stood up a few big JVM machines behind a load balancer and that was it. It was quite the poster child for functional programming in the cloud era. If I ever get sucked back into CTOing, it&#39;ll be because of a Clojure offer. If I go back to doing business apps in a serious way, that would be first choice</div><div><br></div><div>If you want to look into it further, I&#39;d recommend the Joy of Clojure as the most in depth look under the hood. Programming Clojure is also good, and Clojure Applied. </div><div>  </div><div>Hope that&#39;s helpful!</div><div>iain</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 5, 2020 at 1:24 PM &lt;<a href="mailto:bil@ccrma.stanford.edu">bil@ccrma.stanford.edu</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks for the pointer -- I read that article earlier today.<br>
I also was struck by the parallels -- I did not know about<br>
clojure when I made those choices for s7: &quot;great minds think<br>
alike&quot;!  (I actually just skimmed the article -- it&#39;s very<br>
long -- I should read it more carefully, and look at clojure<br>
in greater detail).  Are there any things in clojure that<br>
you really miss in s7?<br>
<br>
</blockquote></div>