Forgive me, oh Kami of Software! Because I have sinned against myself! ¶
Posted on Wed Apr 3, 2019
I have written a bit of Scheme code… Why am I back there…? I decided… I
thought… Uffa!
I installed the latest release of CHICKEN, a Scheme to C compiler; I
have prepared a template project with my
usual package infrastructure.
- Programming with the Scheme language is fun!
- It is a pleasure to use a Scheme compiler for which I do not have to learn and develop the internals
(like I had to do with Vicare).
- I had some fighting to actually learn how to use the compiler’s command line, because the available
documentation is not enough for me; so I had to develop an
experiments project to learn
how it works. I am still not sure about everything, but I made it work.
- CHICKEN’s documentation comes in a format that irritates me. Everything that is not the GNU Info
reader irritates me, when it comes to browsing programming documentation.
- About the quality of CHICKEN’s documentation: how it is written, how easy and appropriate to
understand are the code examples, how complete it is, how this, how that… I’m not happy with
it. It often leaves me this taste: we have edited this doc because we had to, if you are
intelligent like us, if you have our cultural background, if you want to belong to this place, it
will be enough for you. I am not intelligent. My cultural background is… “unbelonging”. I
am rarely happy with documentation. It’s not you, it’s me.
- CHICKEN really compiles native binary programs and native shared libraries! This is so good…
- I really like macro expanders that implement hygienic macros and allow us to manipulate proper
syntax objects, like the one defined by the “Revised(6) Report on the Algorithmic Language
Scheme”. CHICKEN’s expander does not. I do not like CHICKEN’s expander.
- CHICKEN already has an extension that implements classes and multimethods the clos way.
That is good!
- When I suspended development of Vicare, I thought: what I really want and need is a statically typed
language; not an optionally typed language, but a traditional, fully typed language, otherwise my
own code will eat my brain. CHICKEN has some typing extensions, but not what I need. The Scheme
language looks very clean without type annotations. What I want/need is not actually that
clear…
- The idea of letting go to waste all the Scheme code I have written saddens me.
- Vicare’s code base is stuck to the gnu General Public License; not ideal for the role it has as
language implementation; I would prefer the gnu Lesser General Public License for my code. It is
impossible to change the license.
- To port my Scheme code to CHICKEN I would have to first port Vicare’s expander to CHICKEN. And
continue its development until it is usable with CHICKEN’s compiler infrastructure. It’s a lot of
work.
- My experience with Vicare lead me to think that an expander with explicit phase separation. Vicare
has implicit phase separation.
- I’m not in my twenties anymore.
I’m confused and I managed to break my mountain bike.