I've been using lisp-stat in production as part of an algorithmic trading application I wrote. It's been very solid, and though the plotting is (perhaps was, in light of this new release) kinda unwieldy, I really enjoyed using it. Excited to check out the newest release.
Can you (or anyone who has run Lisp software in production) share how the experience has been? Do the management and other colleagues like it? Do they express any concerns? Want to understand the social aspect of running Lisp in production.
I’ve run lisp in production (SBCL). Fast to develop and run, and solid. Unfortunately the engineering team tasked with taking the product forward decided to rewrite it entirely in some version of react on (the quite unfortunately named, from my point of view) AWS lambdas because the frameworks these days are so choc full of stuff, most importantly security stuff!, that nothing can really compete with them anymore, even though the engineering overhead to use them is massive. (Edit: To be fair, the engineering overhead for me to write all that crap into Lisp would have been way more massive.) As a non-user-facing back-end, however, lisp is fantastic.
We're using CL in prod for an embedded system (https://evacsound.com/) for some years now, fairly smooth sailing. It started out as an MVP/prototype so implementation was of no concern, then gained enough velocity and market interest that a rewrite was infeasible. We re-train talent on the job instead.
Incidentally I also did an algo trading system in CL at some point (who didn't?). The sibling comment is spot on that outside of deep backend it's a self-reinforcing ecosystem with too much focus on auxiliary stuff if you have to re-implement it.
institutional or retail? i wanted to do this on a retail scale but i don't know where to start as far as APIs for orders and market feeds. do you have any pointers?
Looks really nice, I'll be using this next time I need charts! I had been using a Rust crate which was really hard to use and plots were uglier than this library's.
I think this depends on what part of the statistics universe you're working in.
For example, within Lisp-Stat the statistics routines [1] were written by an econometrician working for the Austrian government (Julia folks might know him - Tamas Papp). It would not be exaggerating to say his job depending on it. These are state of the art, high performance algorithms, equal to anything available in R or Python. So, if you're doing econometrics, or something related, everything you need is already there in the tin.
For machine learning, there's CLML [2], developed by NTT. This is the largest telco in Japan, equivalent to ATT in the USA. As well, there is MGL [3], used to win the Higgs Boson challenge a few years back. Both actively maintained.
For linear algebra, MagicCL was mention elsewhere in the thread. My favourite is MGL-MAT [4], also by the author of MGL. This supports both BLAS and CUBLAS (CUDA for GPUs) for solutions.
Finally, there's the XLISP-STAT archive [5]. Prior to Luke Tierney, the author of XLISP-Stat joining the core R team, XLISP-STAT was the dominate statistical computing platform. There's heaps of stuff in the archive, most at least as good as what's in base R, that could be ported to Lisp-Stat.
Common Lisp is a viable platform for statistics and machine learning. It isn't (yet) quite as well organised as R or Python, but it's all there.
what do you mean a one-off project? some of these have corporate/institutional backing but thats not the point. if you know how to implement machine learning models then there should be nothing (except maybe availability of pretrained models) preventing you from using common lisp. if you dont want to dig deep and are happy using just the front end (perfectly acceptable) then python is a much better bet
all the needed ingredients are there to build a custom production class ml solution in common lisp: vectorization, cuda, blas, lapack
the rally call of lisps is to get a lot done with less, so it is definitely possible that it can compete in some sense. also common lisp packages such as these can cater to the programmer-first type of data scientist by allowing greater (interactive) tinkering with the underlying code
>> cater to the programmer-first type of data scientist
Exactly. Especially those who want to dabble with lisp by playing with familiar problems and applications. I find it much more instructive to play with linear regression code in a new language than with, say, a game development engine, because I have a pretty good idea about the strengths and quirks of `lm` in R.
Am I understanding it right that those plots are only generated in HTML form? I.e. I can't use it to generate an EPS file to be included in a LaTeX document?
Yes, vega can do that. If you click on the round button with three ellipses (...) you'll see a menu and one of the options is a PNG or SVG download of the plot.
I also would have thought Scheme to be the natural choice, but I get that "CL" is considered industrial-grade and as many people in the CL community have its advocates.
I gave this a try but still ran into issues. First it was a missing file, description.text, so I created a temporary one, but have not been able to figure it out after going through all of the different possibilities on the web site and github.
I am going to keep an eye on this project because I would really like to be able to work on this. Hopefully updates in a month or so will get things in sync.
Hi, sorry for the delay, I wanted to do a clean install of sbcl and quicklisp just to double check. I was having trouble getting the plotting code to work, so I cloned Lisp-Stat/plot and tried to follow the instructions:
* (asdf:clear-source-registry)
* (asdf:load-system :plot/vglt)
The error message was:
debugger invoked on a LOAD-SYSTEM-DEFINITION-ERROR in thread #<THREAD "main thread" RUNNING {1004BF80A3}>: Error while trying to load definition for system plot from pathname /Users/bobochan/common-lisp/plot/plot.asd: READ error during LOAD: The file #P"/Users/bobochan/common-lisp/plot/description.text" does not exist: No such file or directory(in form starting at line: 4, column: 0, position: 147)
'plot/vglt' is from version 1 plotting. Version 2 uses 'plot/vega'. If you're seeing VGLT in the ASDF file it means that it's the old version, and you'll need to pull in the source for a manual install from github until Quicklisp gets updated. The systems you'll need are:
- alexandria+
- data-frame
- dfio
- lisp-stat
- plot
- numerical-utilities
- select
- sqldf
It may be easier to get help from one of the community resources [1] (StackOverflow, github issue/discussion, mailing list) than HN, as those are always monitored.
Please stop using multiple accounts and please don't use HN primarily for promotion—it's against the site guidelines.
We've banned this account and some others. If you stick to one account and submit your own stuff as part of a mix of unrelated things, and don't overdo it, that would be ok.
The comments by singaporecode where they say "I should sponsor the guide’s author" (when the author is himself/herself/themselves) and "I found online" (where they published it themselves) are clearly deceptive self-promotions of https://ashok-khanna.medium.com/ and https://github.com/ashok-khanna but do notice that they are unrelated to Lisp-Stat.