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'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'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.
- the notion of metadata annotations on data structures is really handy - there are bunch of nice convenience macros, some of which I plan on porting: thread-first, thread-last, doto - the convenience macros for declaring anonymous functions are handy, really just a shorthand for lambda, but still handy - the immutable data structures are impressive, in that you can pass around huge things purely by value. I'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. - the software transactional memory system is likewise very impressive. Interestingly, one of the most successful companies I assessed in my "real job", assessing startups for private equity investments, was a Clojure shop, and between the JVM'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'll be because of a Clojure offer. If I go back to doing business apps in a serious way, that would be first choice If you want to look into it further, I'd recommend the Joy of Clojure as the most in depth look under the hood. Programming Clojure is also good, and Clojure Applied. Hope that's helpful! iain On Fri, Jun 5, 2020 at 1:24 PM <[email protected]> wrote: > Thanks for the pointer -- I read that article earlier today. > I also was struck by the parallels -- I did not know about > clojure when I made those choices for s7: "great minds think > alike"! (I actually just skimmed the article -- it's very > long -- I should read it more carefully, and look at clojure > in greater detail). Are there any things in clojure that > you really miss in s7? > >
_______________________________________________ Cmdist mailing list [email protected] https://cm-mail.stanford.edu/mailman/listinfo/cmdist
