Published on 2021-01-01 by pepe

How I became a Janet

You may already understand, after reading Janetuary that next post on this new blog of mine is about the programming language. But why not one of the famous or even the rising one. No, the language is not very well known or followed. And I am not writing about the language, but about my relationship with it and why I chose this particular one for my further development needs. Its name is, you guessed it, Janet.

Janet is the name of the language and programmer. Yes as of now, we as the programmers in the Janet programming language are calling our selves Janets. Also, I like to use female pronouns for the language, against the English custom I fear, but one thing I strongly believe in is that males have created our profession toxic panopticon and the only way out of it is to lose the grip and invite the female phenomenon into it more. And no, I do not talk about genders here.

Lisp curse

About fifteen years ago, I was very into Ruby. I had the talk about Cucumber at the IT conference organized by my faculty college and the man who got me back to programming (in SmallTalk no less). After the main course I have met him and was talking about how Ruby fulfils my OOP dreams, he told me that I should check Lisp. And I was telling my self: no way I am constructing AST with parenthesis and my bare hands.

And happily after. I stayed more than ten years with Ruby as my main lang. Of the work and the interest. Until I started to believe in more frontend, which gravitated me towards some other language designs. Then I have seen a tweet by Tonda about the cljs tooling, and future of the web. Re-frame was born around that time, and I jumped in.

Same as with Ruby I got one long-running project on the green field. I chose feathers.js for the API backend and huge SPA in ClojureSscript. And man I had dreams about mother function and finally got what Vojta was telling me ten years prior. There is something admirable in FP. Luckily for me before I got radicalized for it (as I did for OOP once), I have attended talk about the programming paradigms, and it somehow opened my eyes forever. Every paradigm has its place and meaning.

I used only ClojureScript, cause I have not liked JVM in my brief time as a Java programmer. But somehow I was not happy in the Clojure world. And I have met some of the brightest minds programming-wise in its world. Some uneasiness I felt.

Early adopter

Then at the beggining of the last year, when I was not having only my main project, but also side-kick for US company I have found janetsh by Andrew Chambers. It was of small value for me, cause my fish config is too much to convert easily. But it took me to Janet, and I have seen the light. I believe there were less than two hundred stars when I added mine on GitHub. Whatever I tried, it just worked. It had all the rubyness of shortest time from writing to run, it had repl at the Clojure level, and it is easy to understand how to write C extensions and wrappers.

Guess what. After 25 years of not touching it, I wrote my first substantial, not to educate my self, or be educated with it, C program. And it leaked and crashed and burned, but still, it worked, and it is now at the core of my dev stack.

Best of all I finally started to work for the community, cause the Creator of the lang is the best person I have ever met at this level of wizardry, and the community is full of very bright and friendly people. I know you have heard it before, and probably about your community. Still, I am ready for any challenge, even the beer one. I fixed more bugs in others code in the last months than in my previous developer life. I worked on documentation, and I helped at the Gitter chat.

Living in the hard times

Just before the lockdown started here in the Czech Republic, my wife undertook routine surgery. We had plans, how we will send kids to the grandparents' house, and I will take care of her at our cottage. Lockdown scratched that plan, and we ended up in the cottage, five people, me at the helm and the floor of the whole family.

And things were looking scary at the time, and my depression came back after almost twenty years. The only time I was happy, was when I was programming in Janet. Not in any other langs I use for my work I felt such joy and feeling of the freedom of the mind.

Maybe, that this little solitude saved my life at that time. I am not sure, what was the ingredient, I am just sure that it was Janet.

I started jff and Neil, which is my main project for the time being. I learned a lot more about the lang and virtual machine design.

To be continued

In the next instalment, I would like to show you my reasons why I am using Janet as my primary language. Finally, some technical talk.

Stay safe, do good and do not believe the hype!