EUREKA!

Today I am announcing a pivotal new discovery in computer science.

The discovery is described in a 2 page technical paper published freely on GitHub. The paper is titled Tree Notation: an antifragile program notation.

The paper introduces Tree Notation, a new way to encode tree structures, and then introduces a new family of programming languages called ETNs (Extends Tree Notation). ETNs are 2-dimensional programming languages that can be simple or Turing complete. All modern day programming languages can be derived from an ETN. Programs written in ETNs can be “perfect”–they can use the minimum number of nodes to solve a problem. With ETNs, your programs are much shorter, much easier to write, much faster, much easier to debug, much more reliable, and much cheaper to create.

On S-Curves, Black Swans, Paradigm Shifts, Tipping Points, Orders of Magnitude, 0 to 1s, Silver Bullets, Master Algorithms…

Pedros Domingos published an incredible book titled “The Master Algorithm” (TMA). In my favorite chapter, Domingos reduces many great ideas–which have each shifted my thinking over the years–to a common parent idea, which he calls “S-Curves.”

This discovery will mark the start of a new S-curve in programming.

Programmer productivity will soon skyrocket. Conceptualizing all programs as trees, and directly implementing them as trees in ETNs, will prove to be the mythical “silver bullet”.

On doubt…

To predict an S-curve before it happens is generally a foolish thing to do.

Most reviewers question the validity and/or the significance of this discovery. I also beg you, dear readers, for your skepticism, rebuttals, nits, and (hopefully clever and humorous) insults.

On certainty…

I stumbled into ETNs over the past few years. I was lucky enough to have the time and modern tools to explore it. I personally have no doubt in the validity of the paper.

On the future of programming…

I will make the following 2 bets about the next ten years:

  • ETNs will make software design, development, and debugging, at least 10x faster.
  • ETNs will make parallel programming, machine learning, and AI, at least 10x faster.

I could make many more, but that should be enough to get the point across. If anyone wants to make a $1 charity-of-your-choice bet against any of these statements, post a comment to HN, we can hash out the details, and I will give you 100-1 odds.

On research…

In the course of my research, I came across an obscure paper published in 1972 by Mark B. Wells, a researcher at Los Alamos. In “A Review of Two-Dimensional Programming Languages,” Wells predicts: “There is no doubt in this author’s mind that twenty years from now linear string languages, at least from the general user’s point of view, will be completely passe.”

He was a little early, but otherwise I believe he will be proven correct.

On being ahead of your time…

My high school English teacher once read us a Tom Stoppard quote (in a dramatic voice), “I don’t think writers are sacred, but words are. They deserve respect. If you get the right ones in the right order, you can nudge the world a little…”

Well’s hunch was correct, but someone needed to get the “right words in the right order”, so to speak.

On uncertainty…

I have no doubt that ETNs will change the world in unpredictable ways, and that in the future, a woman somewhere in the world will discover something that makes ETNs look antique. Maybe in ten years, fifty years, or maybe next month (I will learn from Wells’ prediction and be less precise in the timeframe).

On what you can do…

Today is Day 1 of the ETN S-Curve. The most valuable (and difficult!) work is in front of us. But the opportunity is immense. Code is ideas. Ideas change the world. With ETNs we are now able to create good code much faster. Therefore, we can make the world better, faster.

Therefore, I beg you, good programmers, to act! Steal this idea! Make it your own! Together, programming faster, let’s build new ideas that make our world a more beautiful, loving, freer home for all!

On what EUREKA feels like…

“Do you hear them talking of genius, Degna? There is no such thing. Genius, if you like to call it that, is the gift of work continuously applied. That’s all it is, as I have proved for myself.” - Guglielmo Marconi to his daughter, Degna.

So many great programmers have started S-Curves in the past, like Long, Holowaychuk, Dahl, Bostock, Bak, Skinner, Graham, Crockford, Wales, Torvalds, Eich, van Rossum, Bray, Norvig, Matsumoto, Berners-Lee, Kay, Wolfram, Stallman, Steele, Moon, Ritchie, Knuth, Kahn, Cerf, Thompson, Wells, McCarthy, Shannon, Turing, Church, and Lovelace, to name a few. My discovery will never come close to the impact of those discoveries, but I have enjoyed a short EUREKA “gift”. In my quantified experience, EUREKA is ~24,900 hours perspiration followed by ~100 hours of serene, joyful, productivity. Then things are right back to normal, except now you have a new, better tool (until something better comes along).

One more thing

Later today I’ll be releasing Ohayo, the first general purpose ETN editor. Ohayo will ship with two ETNs, Flow, an ETN for doing data science, and Fire, an ETN that compiles to Javascript. Ohayo will be completely free to all Internet users around the world and the source code will be found in the Tree Notation GitHub as well as in the Ohayo GitHub (coming soon) which will go live by the end of the year (but first I need some time to do big, breaking refactors…and to get some sleep). Ohayo will help you build all programs faster. In the first few weeks, there will be plenty of bugs and missing features, but with your feedback and help we’ll quickly build a bulletproof tool.

Thank you

This has been quite a journey, with many highs and lows. I owe all the highs to the Ovarian Lottery. I lucked into incredible parents and siblings, incredible friends, incredible communities and incredible books. Despite how many dumb mistakes I made, my family, friends, communities, and books were always there to catch, support, advise, and humor me until I was back on my feet. It was a lot of fun and great luck to have a EUREKA moment, and I owe it all to them. I’ll keep working hard, creating ETNs and building ETN tools (of course!), but now the baton is largely out of my hands and into yours, my fellow programmers.

Thank you to my favorite authors, to my fellow programmers, to my communities, to my friends.

Thank you to 1145, Cam, Ben, Nick, Andrew. Thank you to my former colleagues and mentors (and still good friends) at Microsoft, Mozilla and Lab Zero. Thank you to HackerNews, Reddit, SciHub and YCombinator. And thank you to the many, many other people who helped, mentored, and supported me along the way.

Thank you to Conor, Sarah, Casey, Derek, Mairi, my nieces and nephews, aunts, uncles, and cousins.

Thank you to my fiancée, my partner, the love of my life.

Finally, thank you to my mom, who always remembers to tell us to drink 8 glasses of water a day, to never stop growing, and who always asks us “did I tell you I loved you today?”, and thank you to my dad, who always tells us to not move our heads, and who shows us by example, how to serve others, to work harder than hard, and to always keep in mind that “one must imagine Sisyphus happy.”

This is for you two.