Creating a Popular Programming Language 💥

I sat down to chat with with Keno Fischer, co-founder @ Julia Computing and Forbes 30 under 30 in Enterprise Technology

Hi everyone!

Welcome back! Hope it has been a great two weeks since the previous newsletter — I’ve had quite a busy last few weeks but I’m excited to share this week’s podcast and learnings with you :)

For those of you new here, I’m Ellen, host of ΔX podcast (a deep-dive into startups, emerging technology, and the future 🚀) — talking with the coolest people and writing about them to help you learn about a variety of interesting and up-and-coming topics in an easily digestible way.

Today’s newsletter is all about creating, building, and failing forward 🏗👇


This Week’s Podcast

Julia is one of the fastest modern open-source languages for data science, machine learning and scientific computing; it has been downloaded over 2 million times and is taught at MIT, Stanford and in over 100 universities around the world. 🌎

I was surprised to find out that Keno was only in high school when he started working on Julia. 😮🏫 As he explains, in retrospect there’s a ton that goes into the creation of a programming language, an ecosystem much more complex than he once thought. Yet at age 16, he led the implementation of Julia on Windows. How he explained it?

"You’ve got to be a little bit crazy to create a programming language.” 🙌

Maybe everyone needs a little bit of crazy just to have the confidence and courage to start on something big.

Listen to Keno’s story as he discusses co-founding Julia Computing, the need for both usability and performance in a programming language, and the value of learning by trying and failing. 🎙

In the podcast above, Keno dives into the behind-the-scenes of creating a programming language, the need to be a little crazy, and much, much more. I learned so much in this half hour podcast — from technical knowledge about programming languages to frameworks for learning — and hope you find it just as worthwhile! ✨

Learnings

Two-Language Problem ✌

The first and foremost question you’re probably wondering is “Why create a programming language?” There’s around 256 programming languages and around 700, if you consider the esoteric ones. But even with the more popular languages, there’s a common thread — the need to strike a proper balance between usability and performance. 📈

Keno describes the Two-Language Problem as a dichotomy between languages being either fast or easy to use 🏎✏. Julia seeks to use interdisciplinary approaches to solve this and combine both sides into one language.

Why this is important:

  1. Performance: Orders of magnitudes faster → solve orders of magnitude bigger problems 🌃

If you have a language that runs 10x slower, the size of problems you can potentially solve are 10x smaller. This also means that servers which cost millions of dollars to run are going to be much more expensive with a slower language.

An example of this is the Celeste project which Keno was a major part of. It required processing of 50-60 TB of data on a supercomputer for a statistical inference problem cataloging the universe 🌌— something which only a fast language could be used for to conserve both time and cost efficiency. ⏱

  1. Usability: Easy to use languages help bridge domain experts with computer scientists 🧪🩺

"Programming languages are as much a human endeavor as they are a technical endeavor, and this disconnect between domain scientists and computer engineers can cause real friction and limit the kinds of things you can do."

Seek orders of magnitudes improvement 💥— what are things that can be made 10x faster, 10x easier to use, or 10x better? Finding the synergy between improvements is what leads to differentiation.

The Paradox of Getting Started 🤔

Keno mentions that if he looked back at himself 10 years ago and was asked whether his past high school self was capable of implementing a coding language, he would have said "Absolutely not." ✖ Yet by starting, eventually he became capable of doing so.

I thought of this like a paradox ⏳: in the beginning, you may not be equipped to solve a difficult problem, but by starting it, you become equipped through learning so much in the process.

The lesson? Just start. You don't have to have all the skills to get to where you're going when you are first beginning. Be confident in your abilities to figure things out that you know nothing about. Don’t be afraid to fail; learn by failing. 💭

"If you're dedicated and you have some time, I think there's very little that you cannot learn."

We are all time billionaires. ⏲💸 We have millions if not billions of seconds ahead of us. What are you going to learn with that time? Thank you so much Keno for chatting!

Until next time,

Ellen ☁


Thanks for reading!

Thank you for being a part of the community! Hope you enjoyed this newsletter and feel free to hit Reply at any time to let me know your thoughts or share what you’re working on! 🎉