Viral B. Shah is the co-creator of the Julia programming language along with Alan Edelman, Jeff Bezanson, and Stefan Karpinski. The four of them, together with Keno Fischer and Deepak Vinchhi, founded the company – Julia Computing. Shah was also involved in the Aadhaar project. He has co-authored the book ‘Rebooting India’ with Nandan Nilekani, co-founder and non-executive chairman of Infosys, that talks about their experience of working on and executing the project. He was awarded the J.H. Wilkinson Prize for Numerical Software for his work on the Julia Programming Language in 2019.
In an exclusive chat with OSFY’s Sreejani Bhattacharyya, he talks about his open source journey, growth, challenges, and gives advice to youngsters starting out.
Shah recalls that he was first introduced to open source software through the PC Quest magazine, which used to ship Linux CDs with it. He learnt about Linux, GNU tools like GCC and Emacs, as well as the writings of Richard Stallman from that magazine. He was impressed by what Debian was doing and soon became a Debian developer. After that, he got busy with his PhD and then started the Julia project with his co-creators. Shah has a PhD in computer science from the University of California, Santa Barbara.
He says, “My contributions have always been in the space of scientific software since I have believed in the power of science and technology to solve some of the world’s most challenging problems. Scientific software plays a special role because it helps us understand, model, design, and predict, making it a powerful tool to solve the challenges we face, whether it is COVID-19, climate change, clean energy, conservation, and even social inequality and justice!”
Shah’s early contributions were as a Debian developer helping maintain the mosix kernel patches. Since then, his major open source projects have been the Julia programming language and Circuitscape, which is modelling software for ecological conservation.
He adds, “Due to my love for scientific software, a lot of the challenges encountered tend to be mathematical and scientific. In my work with Circuitscape, we faced a number of challenges with devising the right mathematical solvers for large landscapes that span entire continents. So we were not just developing open source software, but also developing new methods in the field of landscape ecology.”
Designing the Julia programming language and making it open source
Shah recalls that when the work on Julia was started, they faced the two language problem. They solved it by designing the Julia programming language and making it open source. He feels that while many like-minded people saw the potential early on, most did not believe that the two language problem — having two different languages for performance and ease of use — could be solved. He believes that he is still fighting that battle for mindshare, but has come a long way!
Shah says, “As projects grow, one has to often also build out organisational capacity for more contributors. These organisations are not well defined in the traditional sense and are challenging to govern and maintain. We think the Julia community has done immense work along these lines as it has grown from a small seed of the four creators to thousands of contributors now.”
As of now, Shah continues to work on both Julia and Circuitscape. At Julia Computing, he is actively working with a talented team in the field of differentiable programming, which combines the areas of programming languages, scientific computing and machine learning.
Powering research in vaccines and drugs for diseases
Says Shah, “The work we are doing will make it possible to combine our model based understanding of science with the data-rich world we have entered over the last decade. Today, Julia is powering research in vaccines and drugs for diseases (including COVID-19), in climate science, new battery technology, and so many interesting applications. I feel blessed to be at the centre of all this, working on technologies that truly will impact the world at large.”
During the early days, when they started seeing industry beginning to use Julia, it became clear to the co-founders that in order to make the users successful, they had to set up a company. Shah says, “Six of us came together to found the company — Alan Edelman, Jeff Bezanson, Stefan Karpinski, Deepak Vinchhi and Keno Fischer — along with me. The company was set up with the clear goal of providing the best technology for Julia users to develop, deploy and scale their Julia programs.
“Towards that, we built three products — the free JuliaPro distribution for individual users, JuliaTeam for enterprise users, and JuliaRun for deploying and scaling data science and AI codes. In addition, we also created JuliaAcademy.com and open sourced all our training materials.”
He says that none of the founders want the company to move away from its roots of innovation and research. Julia Computing collaborates with a number of partners to build cutting-edge domain specific technologies. An example of that is its partnership with Pumas-AI for pharmaceutical modelling and with Carnegie Mellon University for improving battery technology. It also maintains an active relationship with the Julia Lab at MIT for research into Julia, as well as with NumFocus for the open source Julia project.
JuliaCon 2020 was the largest JuliaCon ever, with almost 29,000 attendees, and the third largest number of visitors were from India.
Infinite curiosity and an insatiable mind is what is needed
As someone who has been massively successful in this field, Shah has some sound advice to give to youngsters. He says, “Contributing to open source is a great way to build a career and a CV. This is because your software is then out there, and your contributions are visible publicly. In the pre-Internet days, you were limited to your college in finding mentors. With the Internet and open source, the world is your playground. We have seen so many amazing students from India participate through Google Summer of Code, Julia Season of Contributions, Major League Hacking. Many of these students have gone on to become long-term contributors in the Julia community.
He advises picking an area or project that motivates us, where we will be able to work hard and long hours. Skillsets in languages and technologies can be learned with so many amazing online resources. One must have an infinite curiosity, an insatiable mind, and the ability to persevere and work on something for years.
Talking about how India is doing and how the open source landscape has shaped up in the country, Shah says, “A friend once said that India is a country of downloaders — we only downloaded open source software but never uploaded any. I think this is changing in a big way. We see a huge number of contributions from India in the Julia ecosystem. Julia is one of the few big open source projects to have a major contribution from India. I also see many students participating in open source conferences, holding workshops, and interacting online.”
Leverage that mass in IT to build an open source movement in India
Shah feels there is a lot of room for improvement, though. Indian colleges and universities can teach the open source philosophy, and integrate their curriculum with open source contributions. “Our IT industry has millions of programmers. At any given time, so many programmers are on the bench, in between projects. Why not leverage that mass to build an open source movement in India, and put India on the map for open source software? A lot can be learnt from how Google Summer of Code is organised, and replicated at a larger scale in India,” concludes Shah.