The Story of Eta: Pure Love & Pure Functional Programming

Rahul Muttineni
5 min readMay 12, 2017

Today’s a very special day for the two founders of TypeLead: Jyothsna and I. It marks our first wedding anniversary and the first anniversary of Eta, the new Haskell-like programming language for the Java Virtual Machine. On this special day, I’ll take a moment to reflect on the journey so far.

Our passion for startups and entrepreneurship forged the friendship and Haskell made the way for love.

Jo and I met during college. Our passion for startups and entrepreneurship forged the friendship and Haskell made the way for love. I wrote my first non-trivial Haskell program to help her out with a class project. I never realized that the bond we developed during that time would take us on a lifelong adventure, though it took two more months of courtship before things moved forward.

We were young, in love, and we wanted to change the world with our talents. Jo was a confident, powerful speaker and our work together brought out her latent talent and passion for design. She was able to sift through Google and find relevant material with her lightning-fast reading speeds so that we could quickly develop our business growth strategy for the startup at hand.

Not a surprise, I took care of the tech aspects for the startups we worked on. I would quickly visualize the software architecture and then figure out how to implement it using Haskell, my favourite language, though I was inexperienced. I was also the geeky tech guy who would have research papers on functional programming stored on his phone, along with the entire codebase of the Glasgow Haskell Compiler, which forms the base for Eta. I would use time so efficiently that during any idle time I had without my laptop, I would pull out my phone and dig in some more, even while walking!

Jo and I would constantly bounce startup ideas back and forth and we came up with disruptive ideas in spaces like retail, transportation, and education. But there was a problem. Each each one was missing something fundamental, a “secret factor”. The secret factor is what I call the Startup Bond — the special bond between the founders and the startup that keeps the founders going in the face of adversity.

Before we proceed further, I’ll take a small detour. In every story there is an Antagonizing Force (hereby referred to as AF), an invisible force that manifests itself as people and external factors in your life that oppose your progress and will stop at nothing to defeat your success. The AF exists to test you physically, mentally, and emotionally and serves as a catalyst for personal and professional growth if taken positively.

An invisible force that manifests itself as people and external factors in your life that oppose your progress and will stop at nothing to defeat your success

In this story, the AF that was testing me since childhood started becoming the AF for my professional life as well. The AF would serve to keep my confidence down, divert my career decisions, and make me question my sanity. And so I was a victim to this AF, naively believing that it was acting towards my best interest.

And then I met Jo. She saw in me potential to accomplish amazing feats, but she also saw that my submission to my AF left me in a state of low confidence and fickle-mindedness which prevented me from doing anything long-term. She encouraged me to open up, show the world my talents, and believe in myself. Whenever the AF came back to throw me into disarray, she would be there to keep me grounded and make sure that I would keep moving forward.

With these two factors, the lack of a Startup Bond and rebelling against the AF, finally created the situations necessary to start the Eta project. Jo and I were frustrated with the startups we were working on and running out of money so we starting consulting. And through one of the consulting projects, we realized the importance of the Java Virtual Machine which immediately led us to the catalytic question “Why isn’t Haskell on the JVM?”

“Why isn’t Haskell on the JVM?”

This question was so powerful and it starting growing on us. As we did research, we found many interesting points:

  • We weren’t the only ones asking this question.
  • Those who wanted Haskell on the JVM compromised with Scala in their day jobs.
  • All the research papers on the topic were a decade old and only talked about problems and not solutions.
  • The JVM was evolving to support functional programming and would continue to evolve because of widespread use.

Given that I’d studied the GHC codebase, I was fairly comfortable with taking a stab at this problem. Eventually, Haskell Summer of Code came along and I applied to see if this would be interesting for people. It turned out that even before I got the result, there was a huge demand for my proposal in particular. Jo noticed this as well and sensed that we were on to something big.

Meanwhile, the fight with AF was ongoing and it was adding tremendous stress to our lives. We would not be able to tackle such a huge project with all the noise. And we came to a conclusion. We were already deeply committed to each other and our marriage was bound to happen eventually. We realized that if we got married right away, the AF would no longer have power over our lives and we could proceed freely with our professional lives.

And as they say, the rest is history. Jo’s parents were happy with our decision to marry and agreed to support us for however long it took for us to get funded or make revenues with our startup.

After our marriage, our lives became a lot happier, giving us a large supply of creative energy to devote to this project. The AF’s power on us decreased significantly and we also learned how to keep it at bay.

Both of us had difficult tasks to tackle

Both of us had difficult tasks to tackle: I had to figure out how to get Haskell on the JVM and she had to figure out how we’re going to create a business out of an innovative, paradigm-shifting tech product and sustain it for the long-term. But we could both feel that it was the right time to do what we were doing: functional programming techniques were creeping in to all the mainstream languages and “monad” was a term well-known enough for people to get scared by.

Fast forward to the present: it’s been one year and the first stable release is just around the corner. Thanks to the growing TypeLead team, devoted open source contributors, and supportive clients that took a bet on us. We have a long journey ahead of us, and we’re ready to take on whatever comes our way.

--

--