Early Years
- GW-Basic
- https://en.wikipedia.org/wiki/GW-BASIC
- My first programming experience, in the year 1990. Many hours were spent copying the demo programs from the spiral bound user’s manual.
- QBasic
- https://en.wikipedia.org/wiki/QBasic#:~:text=QBasic%2C%20a%20short%20form%20of,which%20are%20based%20on%20QuickBASIC
- Many programs made using this language throughout the 90s, including graphical games, logic puzzles, and random projects
2000s
- Visual Basic for Applications (VBA)
- https://en.wikipedia.org/wiki/Visual_Basic_for_Applications
- First semester of college included a course on VBA
- Fortran
- https://en.wikipedia.org/wiki/Fortran
- As a part of most engineering courses, we worked on some Fortran projects. I then continued using Fortran when developing simulation code and tools around the EnergyPlus ecosystem.
- Language Interop :)
- My first real experience getting languages talking together was when I first tried to get a VBA program to call out to a Fortran-based library.
- LaTeX
- Began using LaTeX as a document language for all technical efforts and class homeworks and projects
2010s to Present
- Ruby
- https://en.wikipedia.org/wiki/Ruby_(programming_language)
- Played with Ruby during my graduate research, but got into it heavily once working at NREL. Used it to develop a translator, taking manufacturers data for mechanical equipment and creating EnergyPlus inputs from it.
- Python
- Used Python exhaustively for countless projects.
- Embedded a Python interpreter inside EnergyPlus to create the PythonPlugin system.
- Learned how to build and deploy Django web servers using Python.
- Created a Python API around EnergyPlus to enable new workflows.
- Debugged inside CPython’s implementation to diagnose issues.
- C/C++
- While I used C and C++ in college, this took off heavily as we embarked on converting EnergyPlus from Fortran to C++. I oversee many training sessions for the development team and have since embarked on countless refactoring efforts to utilize modern C++ capabilities.