Hello everyone! Representing the Julia community, I have the honor to invite Avik Pal as our guest and he will be answering a few questions on Julia! For those of you who don’t know, Avik is an undergraduate student at the Indian Institute of Technology Kanpur where he is studying Computer Science. He has a strong interest in the applications of Deep Learning in the field of 3D Computer Vision and has worked on the GPU Backend of Flux.jl during Google Summer of Code (GSoC) in the summer of 2018 as part of NumFOCUS/JuliaLang. Without further ado, let’s dive into the interview!
Q: How did you get started with Julia as a beginner?
A: I was introduced to Julia back in 2017 when v0.5 was the stable release. My brother who used it mainly for the packages like JuMP introduced it to me. Back then there were not many resources to learn Julia, but the most helpful resources I found were the “learn x in y minutes” tutorial on Julia, and an Introduction to Julia workshop recorded at SciPy.
Q: Why did you choose Julia over other programming languages?
A: Mainly for fun. I was just starting my undergrad and was experimenting with various languages like Python, Julia, Haskell, etc. Also, I was part of a team which took part in a competition for solving a Day ahead demand side management problem. Initially we were using python but it was painful to switch across frameworks to formulate the same problem differently. Using Julia’s JuMP framework gave us an edge here as we could rapidly prototype and test solutions all using the same library.
Q: What do you like most about working with Julia and why?
A: I like the performance the most. Also, the frameworks are written in Julia itself making it far easier for me to fix some issue if I encounter them. Also the package installation and dependency management with BinaryBuilder makes it really convenient to work, unlike other languages where you need to manually compile stuff before installing the main library.
Q: What were some of the challenges that you encountered while working with Julia and how did you overcome them?
A: The biggest challenge for me was the lack of resources to learn Julia in the first place. I used to ask questions here on slack to get them resolved. I believe we have come a long way from there and right now there are plenty of good resources out there to learn Julia.
Q: How did you get involved in the Julia community?
A: I got involved in the community due to frameworks like JuMP and Convex. I needed them for a project I was working on back then. After that I came across the framework Flux and since then most of my contributions have been to the core framework or its surrounding ecosystem.
Q: What advice would you give to someone who is looking to learn Julia and/or contribute to the project?
A: I would say starting to contribute code is quite daunting, especially for people who have never worked in a collaborative setup. Sometimes after seeing the code reviews people feel demotivated from contributing thinking their code is not good enough. But it is definitely worth sticking around and following those reviews, because they do help a lot later.
Q: What were some of the highlights from GSoC?
A: The major highlights of GSoC were that it got me truly interested in Deep Learning and Computer Vision. It was my first major “real world” project. It did motivate me to read up more about those topics and eventually get involved in AI research.
Q: What are you planning on contributing next and why?
A: I am planning to start my work on a 3D computer vision framework. I believe we have got 2D vision nearly working and to solve more interesting problems like self-driving vehicles we need machines to have a better understanding of the 3D world. And currently IMO there is no such framework in Julia.
A big thanks has to go to Avik Pal for taking the time to answer these questions!
Thank you so much for reading this. If you would like to learn more about Avik and his work, please check out his webpage for more information!
Written by kfung