Welcome to the Programming Languages Enthusiast (PL Enthusiast) blog!
The PL Enthusiast is organized by Michael Hicks, a professor of Computer Science at the University of Maryland, in College Park. He co-directs the Lab for Programming Languages research at the University of Maryland (PLUM), along with Jeff Foster and David Van Horn. He is the current Chair of ACM SIGPLAN (as of July 2015) and was an Associate Editor for ACM Transactions on Programming Languages and Systems (TOPLAS) from 2012-2016. He was the first Director of the Maryland Cybersecurity Center (2011-2013) and the Program Chair of the 2012 Symposium on the Principles of Programming Languages (POPL). In his free time he enjoys playing Ultimate Frisbee, coaching youth soccer, and playing drums. Follow him on Twitter at @michael_w_hicks.
What is our goal?
The primary activity of the PL Enthusiast is to describe and discuss research about — and the practical development and use of — programming languages and programming tools (PLPT). PLPT is a core area of computer science that bridges high-level algorithms/designs and their executable implementations. It is a field that has deep roots in mathematical logic and the theory of computation but also produces practical compilers and analysis tools. PLPT research has led to more Turing awards than any other area of computer science.
But PLPT is more than core. Design principles, algorithms and tools from PLPT find applications in a wide range of areas, including other subfields of computer science, the natural sciences, the social sciences, and the humanities. The purpose of this blog is to highlight these interdisciplinary connections as well as theoretical and practical developments in core PLPT. Our goal is to raise awareness and share ideas, hopefully to aid the pace and quality of innovation.
Who is our audience?
The PL Enthusiast is written three main groups in mind:
- Researchers in PLPT. The community is growing fast (witness record attendance at recent SIGPLAN conferences like POPL and PLDI) and we imagine that they will be interested to read about new ideas, results, and directions in this quickly developing field, coming from both the academic community and the technology community at large.
- Researchers in other sub-areas of computer science and researchers in other disciplines that interface with computing. New research and developments in PLPT are having a profound influence on computer security, scientific computing, computational biology, machine learning, statistical data analysis, and more. The goal is to make these communities aware of the impact of PLPT, to be able to take advantage of it and foster it.
- Programmers and technologists at large. Practical programmers may not be aware of relevant advances and ideas developed in the research community, and our hope is that such awareness will increase impactful interactions between researchers and practitioners.
What’s the plan?
We tend to write a couple of articles per month. We sometimes have guest posters and guest editors. We are also happy to take suggestions for articles — please send them our way, along with any comments you have.
Other contributors
The PL Enthusiast was originally co-organized by Swarat Chaudhuri, an associate professor of Computer Science at Rice University, where he leads the Computer-Aided Programming Group. His research is on algorithmic approaches to reasoning about programs, and applications of these methods in program verification and synthesis. He co-chaired the 2016 Conference on Computer-Aided Verification (CAV). When not thinking about logic, algorithms, or programming languages, he enjoys budget travel, well-written prose, and amateur photography. Follow him on Twitter at @swarat.
Other past contributors include Steve Chong and Tom Ball.
Although this blog is about programming languages (PL), a software system is built from more than just the PL. There are build tools, configuration files, etc. Yet, it seems the PL is the most well-thought out/rigorous piece of the software puzzle. Why isn’t the rest of the system as solid technically as the PL, and why is there the rest of the system? Students who take programming are lead (initially) to believe (incorrectly) that learning a PL is the only thing to worry about, and in the end, it’s not.
Great idea!