4 ms·
Wow! It has been almost 6-7 years since I used Chicken Scheme, but I have fond memories of it. I wrote a program to automatize the creation of scientific report
by ziotom78 8y ago
Wow! It has been almost 6-7 years since I used Chicken Scheme, but I have fond memories of it. I wrote a program to automatize the creation of scientific reports in the Planck/LFI project [1]. The purpose was to quickly scan a large number of maps and power spectra produced by the data analysis pipeline, detect any weirdness in the data, and create a report in HTML format. The report included several tables and plots.
The ability to natively encode HTML in Scheme syntax was the main reason why I chose Chicken Scheme: LISP is perfect for creating HTML programmatically. However, while using Chicken Scheme, I discovered a few other features that were big timesavers:
(1) The simplicity of its FFI was incredible. It was immediate to link existing C libraries we were using in the Planck project, as Chicken Scheme compiles to C.
(2) Eggs were a joy to use. It was trivial to download and install them, compared to the amount of work needed for the usual C and Fortran libraries needed in our field (Lapack, Blas, HEALPix, etc.)
(3) Several tools were available: documentation generators (I don't remember the name of the one I used, but I remember the good looks of the documents it produced), seamless integration in Emacs, etc.
(4) Developers were super-friendly. I did not need to ask questions very often, but the few times I had to do so, I found them responsive and happy to help.
(5) The fact that the compiler produces an executable made deployment quite easy: once I verified that the necessary dynamic libraries were available, I compiled the code using Chicken Scheme on my laptop and then copied the executable on the server hosting the data to analyze.
Congratulations to the team for this new release!
[1] https://en.wikipedia.org/wiki/Planck_(spacecraft)#Low_Frequency_Instrument https://en.wikipedia.org/wiki/Planck_(spacecraft)#Low_Freque...
- Koshkin 8y ago> LISP is perfect for creating HTML programmatically 'printf' has always worked just as fine for this purpose.
- hashkb 8y agoHave you worked with SXML or Reagent or anything like that? You're not wrong, but your comment makes me wonder if maybe you just haven't seen a more elegant solution than string interpolation.
- jarcane 8y agoSeriously, having html represented as an actual tree structure that can be manipulated like any other data is so absurdly powerful it made it impossible to go back to anything else after that. Even JSX feels like a crude hack by comparison.
- djblue 8y agoThis is the biggest value of structured data, as soon as you convert something to a string you have lost all your leverage.
- brink 8y agoIf you don't mind me asking, why did you stop using it?
- ziotom78 8y agoEssentially, because at that time I was the only one in charge of producing the reports, and so I could choose any tool in the market. (This does not mean that I have not met resistance by other colleagues in using Chicken Scheme: had I used a more widespread language, other people could have helped me in hacking the reports.) Recently I coordinated the development of a similar tool for another experiment, but this time I was managing a team of three. While everybody knew how to program in Python, I was the only one with an adequate understanding of Scheme. So I decided to allow the members to use Python. (This time, however, we produced Markdown reports, which we converted to HTML using Pandoc.) Most of the other codes I regularly develop for my job do not involve HTML reporting but make heavy use of Python libraries. In this case, I either stick with Python or use Julia.
- sdegutis 8y agoI remember writing bindings for Zephyros in Chicken Scheme, it was an enlightening and fun experience! and I just wanted to echo all your comments about it.