If you're looking for fast CLI utilities, ocaml can be a good fit, or grenchman for loading clojure code, in this particular case (written in ocaml): https://github.com/technomancy/grenchman
You don't really need persistent data structures for those use-cases, do you? But it does have seqs and async pipes (like channels) etc. My employer uses Jane St's core/async libs which bundle all that in a semi-coherent fashion. Any of those options might be a tradeoff for mindshare and cases covered, but common lisp might also be a good choice. On Wed, Apr 4, 2018 at 12:35 AM 'somewhat-functional-programmer' via Clojure <clojure@googlegroups.com> wrote: > Thank you for posting these video links along with the time markers. I > thought I'd enjoyed all of Rich Hickey's presentations before but I > actually hadn't seen his "Clojure for Lisp Programmers". Clojure is the > only lisp I "know" (still relatively a beginner) but have been fortunate > enough to use full-time for the last few years -- given my Java background, > I naturally had started with his "Clojure for Java Programmers". > > I did not intend to suggest that Clojure should have been a library to a > Scheme or Common Lisp. I love the language as it is and not having a prior > lisp background, absolutely appreciated watching the "Clojure for Lisp > Programmers" (as now having some lisp experience, I could more fully > appreciate some of Clojure's roots). I've dabbled with toy programs in > both ABCL/SBCL as well as Kawa mostly out of curiosity. > > My reasons for asking my questions about other people's use of Kawa is > that the performance characteristics of its runtime made me think maybe it > may be applicable to some areas where Clojure may be a tougher choice > (Android, CLI utilities). I think Clojure startup time correlates with how > many vars defined, and startup time of my projects increases with var > counts. I'm curious if any more thought has gone into this topic on the > wiki: https://dev.clojure.org/pages/viewpage.action?pageId=950293. > > I can't give up writing software in an immutable/functional style after > using Clojure for a couple of years, and was starting to think about what a > program using Kawa could look like using Clojure's immutable data > structures and STM. > > What I've settled into doing for using Clojure for CLI utilities thus far > has been to just leave an instance running a socket repl on my machine > always running and connect to it via rlwrap and socat (only using it > interactively though): > > rlwrap <rlwrap options> socat STDIN TCP4:localhost:<repl port> > > Anyhow, thanks again for the video link, always a treat to watch a Rich > Hickey Clojure talk that I hadn't seen before. > > > ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ > On April 4, 2018 3:23 AM, 'André' via Clojure <clojure@googlegroups.com> > wrote: > > They maybe relevant too: > > https://www.youtube.com/watch?v=2V1FtfBDsLU, around 1h4min > > On 04/03/2018 05:29 PM, 'André' via Clojure wrote: > > Rich has covered some of the motivation of why not extending existing > Lisp->Java integrations, like Kawa and ABCL: > > https://www.youtube.com/watch?v=cPNkH-7PRTk, around 3:25 > > > On 04/02/2018 05:53 PM, 'somewhat-functional-programmer' via Clojure wrote: > > I've recently come across Kawa Scheme and am very intrigued by it. It's > Java integration is superb like Clojure and it's very fast. Has anyone > here used it to build something? > > So far I've only tried it with small toy programs. Things I like about it: > - Starts up very quickly > - Java method notation lends itself to auto-complete > (instance:method param1 param2) > - Can pre-compile and use it on Android > - Repl has line numbers so compilation errors on repl forms have source > lines > > Maybe Kawa fits into a niche that Clojure leaves open with its heavier > runtime? Maybe I'm just trying toy programs and those toy programs are > fast? :-) > > One thing that intrigues me here though since java integration is so easy > with Kawa is the notion of using Clojure's immutable data structures from > Kawa -- maybe even making a clojure "core" library for use from Kawa. > > -lc > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.