Best programming software (for academics)

This is the second article on software for academics. I have written previously about the best software to use for writing, which can be found here. In this piece I will discuss different types of software one can use for programming, as well programming languages that you might want to consider. The general idea for this piece originally came from reading the introductory sections of the QuantEcon page. If you have not visited this site before, I highly recommend that you do so. It is perhaps one of the best free resources that I have found when it comes to programming and economics. I am mostly interested in computational economics and time series analysis, so my view of what is going to be the best language to use is perhaps limited to application in these fields. I will mention other languages that are used my economists and why I have made my particular choices.

1. Programming software

I will first discuss the different programming languages and then afterwards the editors and IDEs that I have found most useful in working with these languages. In the case of general programming languages there are several editor options, but with other proprietary software you are often stuck working in the provided environment.

1.1 Selecting a programming language

Warning
I am not a professional programmer! I am someone who writes occasional code for research and teaching. This is an overview of my experience. You are responsible to find out more about these languages.

Selecting a programming language is a tough choice. There are many considerations that go into deciding whether you want to adopt a language or not. I will try and list some of the advantages and disadvantages that I have found in using these languages. I need to stress that this is not a comparison of languages on things like computational efficiency. In the realm of computational work, if you want speed, then go for C++ or perhaps even Fortran. Learning C++ is probably the best investment you can make if you are interested in going deep into improving the stability and speed of the execution of an algorithm. However, most people will want something that is less dense and doesn’t require a computer science degree to use effectively. Keep in mind that these recommendations are mostly for beginners. If you are a professional programmer, then I am guessing you have tried most of the languages and are probably proficient in more than one language.

My first piece of advice is, choose a language that serves your goal. If you are going to be doing mostly work in statistics and econometrics, then perhaps R will be the best for you. If machine and deep learning is where you find yourself more often than not, then python has some excellent libraries. If you want to be a bit of an allrounder and focus on speed with some beautiful syntax then Julia is an excellent choice. I will go into a bit more detail below, but keep the idea in mind that you don’t have to be an expert in a language to be able to use it. Many (but not all) of the ideas that you learn in one language are easily transferred to the next.

1.1.1 Python

1.1.2 Julia

1.1.3 MATLAB

1.1.4 R

1.1.5 Stata

1.1.6 EViews and the Gang

Tip
Here are some links that compare the different programming languages in terms of speed, if that is the metric that you want to use to judge the language.

1.2 Editors and integrated developement environments

tldr
  1. Pick a programming language for your specific goal