Creating a New Language
Luke Morris - Class of 2019
Editor in Chief of the Grace Gazette
From a young age, Stefan Karpinski always thought he would be a mathematician. Proficient in STEM at Grace and then at Regis, where he attended high school, Stefan went on to Harvard and majored in mathematics. It wasn’t until his senior year in college, bogged down by the abstract formulas and theorems in algebraic topology, that he realized he had tapped out. “I never thought I would reach a level of abstraction in mathematics that I was not going to care about it anymore, but I reached it.” Unsure of what to do next, the explosion of the dot com boom prompted Stefan to find a path for himself in programming, another interest he had held from a young age.
Mr. Diveki, Stefan’s science teacher at Grace, remembers him well, notably his first prize in the Manhattan Science Fair in 1992. “In seventh grade, Stefan got an idea from a thought experiment he had read about in Scientific American – he wanted to simulate the movement of animals in response to light on a computer using logic circuits. He spent a summer figuring out how to do it.” At the time, Stefan didn’t know anything about programming, so he took books out of the library and spent a year teaching himself how to code using the Macintosh computers at Grace. The next year, he won first prize at the Manhattan Science Fair for his “Logic Creatures” project, using the programming language Logo. (Stefan notes that it was 1992, and competition in the computer science area was almost non-existent. A pioneer even then.)
In 2002, Stefan began work on a Ph.D. in computer science at the University of California, Santa Barbara. Interested in data science and machine learning, he grew frustrated by what he began to perceive as badly designed, antiquated programming languages used in these fields. Stefan met others who felt the same way, and in 2009, with a friend from grad school, an MIT Professor, and a student at MIT, they decided to set out to solve the problem. “We’re gonna do this.”
“This,” as Karpinski calls it, would become Julia, a new programming language that aims to change the face of data science and scientific and numerical programming—an open source language that would embody the best parts of existing languages and be better suited to manage demands inherent to the massive data sets in modern computing.
Stefan describes Julia as part of the “school of Goldilocks languages,” those able to perfectly balance ease of use and performance. Traditionally, programming languages have had to sacrifice one of these two areas, they are either high-performing but incredibly complex to use, or easy to use but lacking in performance. Stefan says, “Julia lies right in the middle, allowing users to have their cake and eat it too.” Julia’s ability to exist in this equilibrium has allowed it to make its way into varied industries, taking on different forms in real world applications from modeling cancer evolution to optimizing milk production.
Stefan and his team spent years trying to make Julia simple to use and accessible to both data scientists and advanced software engineers, all the while working and continuing their academic work. Stefan was working toward his Ph.D. and also as a data scientist and software engineer for Etsy.
Even after its initial beta release in 2012, Julia had not garnered the attention or the interest of the programming community its creators had hoped. Stefan struggled to find the words to describe Julia to the public. “I wrote about a dozen attempts, but they all came out as a laundry list of features, which is boring and ended up sounding really negative. I finally hit on the right way to do it, which is talk about the things we really love about other programming languages.” While on vacation in Argentina (vacation being Stefan’s word for unemployed), he wrote, “Why We Created Julia” and posted it to a Reddit forum, describing how they want Julia to have their favorite things from their favorite languages --powerful but not impenetrably complex. The post got over 500 upvotes and 300 comments; it garnered the attention of the programming community and industry tycoons such as Google and Facebook.
Julia has gained traction since its beta launch, and is now used by software engineers at a variety of companies, including NASA, Google, Facebook, Microsoft and Amazon. And after nine years of decision-making and technical work, dynamic programming language Julia 1.0 was officially released last August in London during the fifth JuliaCon, a growing annual conference of Julia users.
Stefan and his partners launched Julia Computing in 2015 to keep Julia growing and to develop products that make Julia easy to use, easy to deploy and easy to scale. Stefan is Chief Open-Source Officer and maintains the open source project that allows Julia to be used freely by the public. His favorite application of Julia so far? The Celeste Project, where Julia helped researchers speed astronomical image analysis 1,000 times, cataloging “188 million astronomical objects in 14.6 minutes.
Julia is without a doubt Stefan’s greatest accomplishment, but he has had other accolades as well – like holding the Guinness World Record for the New York Subway Challenge. The challenge requires riding the NYC subway, stopping in every single station in the system, as fast as possible. He and five friends completed the challenge in 24 hours, 54 minutes, 3 seconds, and held the record from 2006 until 2010. Achieving that time required intense training, practicing transfers, and memorizing station layouts. “We must have looked really cool,” says Stefan, recalling he and his friends running from train to train with backpacks full of food and pillows under their arms. He added, “Just like creating Julia. It’s like being a person with your own religion. Everyone thinks it’s crazy until it actually takes off.”
Stefan reports that his work is “a lot less stressful since pre-1.0.” He and his partners continue to find ways to improve Julia. Reflecting on his career and how he got to this point he noted, “Not accidentally, the four of us that started this project are wild optimists. We truly believe that things can be better. Stefan’s “wild optimism” has guided him from a seventh grader teaching himself how to code to a pioneer pushing the boundaries of programming for science and research. His parting message to all Grace students? “Be willing to try things that seem crazy.”