What the hell is programming language research?

Mohammad Wahiduzzaman Khan
3 min readMay 27, 2020

I started my PhD in spring 2020, my research topic is programming language (PL). Since the day I started my PhD I came along with a question all the time. “What the hell is programming language research?” This question comes with lot of sub-question such as:

· Are you developing a new language?

· Why you are doing PL research, isn’t it the one thing computer researcher solve it completely?

· Is there any problem remaining in your PL domain to solve or you guys just made up a problem and then trying solve them?

· Is it worth it?

I am tired of answering these questions. But also it came to me that there are lot of people around there who are completely unaware of programming language research. So I thought why not right a blog about it?

Programming language (PL) research:

What first came to your mind when you first hear about PL research? Let me guess you might think some old professor with white beard and gray heir with his or her grad students trying to develop a programming language which will never use in the industry. People understand that building a new programming language is very hard, but often they think that isn’t it a waste of time? Isn’t the existing programming languages are good enough to solve all the existing problem?

First and foremost, PL research is much broader than designing and implementing things. As Dr. Michael Hicks Professor of Computer Science, University of Maryland says: “To me, a PL researcher is someone who views the programming language as having a central place in solving computing problems.”

Consider you are trying to build a bridge. You have lots of options to build that bridge. For example you can build using iron, you can build it using brick, and also you can build it using glass, although I would never suggest that. How solid and safe your bridge will be it will be depended upon how strong your material is. This is same for building a software system. Your software’s reliability, safety heavily depended upon what programming language you choose and how safe is programming language is.

So we as PL researcher not just try to build new programming language but also make better the existing programming language so that you as software engineer or developer has to worry a little.

Type system:

One of the core research topic in PL domain is type system. Type system of a programming language is some set of rules to catch as many bugs possible during compile or run time. Type system is the reason when in C++/Java following code you will get an error in compile time

int x;

x=”Wahid” // You will get an compile-time error.

A good type system will make your life easier on the other hand not so good type system will make your life miserable. A good type system will catch as many as possible error during the compile time so that you do not have to worry about it in the run time. So we the PL researcher tries our best to make the type system as good as we can.

--

--