[CM] bit OT, Might be of interest

Iain Duncan iainduncanlists at gmail.com
Fri Jun 5 16:37:15 PDT 2020

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!

On Fri, Jun 5, 2020 at 1:24 PM <bil at ccrma.stanford.edu> 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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cm-mail.stanford.edu/mailman/private/cmdist/attachments/20200605/9a2e8fe3/attachment.html>

More information about the Cmdist mailing list