Explanation of "programming" tools for economists

In my own wording, I attempt to explain the various technicalities of tools specific to what I've worked with. It started out as a single question asked by another grad student. I've continued to expand it and refine it as needed. While some explanations aren't prefect, as someone who started with no coding knowledge, I wanted it to be understandable to my past self.

Extra Explanations

R (.R) - language - think it’s a dictionary

  • Tex's has Varying dictionaries but the same language
  • Latex, Xelatex, pdflatex, etc.
  • Compiler is which tex is being used. The most popular are pdflatex and xelatex.
  • Packages are the same as R packages, commands bundled together.
  • Distribution is the most confusing. It's like the publisher of your dictionary. For Windows, there are two major options. Tinytex and Mitex. You can have both. I do.
  • Tex also has special packages known as classes. They are a pack of packages with options already set. There are default ones, and not default ones.
  • CRAN has almost all the packages that exist. They don't include everything, but your distribution already knows those files.
  • If you download any package not on CRAN you must find a way for tex to know where it's at, either by placing it in the same location as the current file or by "installing it". "Installing it" is complicated.

  • Knitr (.Rnw) - one-to-one translator (can be considered its own language)
    • Translates R to Tex
  • Sweave (.Rnw) - one-to-one translator
    • Translates R to Tex
    • Same as purpose as knitr but a different version

  • YAML (.yaml) - an easy to read language translator
    • Uses "human" centered phrases that can translate into some other languages.
    • So that only one translator is need for using multiple languages in one file.
    • (YAML can tell other languages what to do including CSS, HTML, etc.)
  • TOML (.toml) - an easy to read language translator
    • The same as YAML but different

  • Markdown (.md) - combination
    • Markdown uses yaml or toml as a header to write an entire document
    • R-markdown (.rmd) - combination
      • A specific type of markdown document
      • A combination of languages
      • Using YAML, tells R what to do, and tex (can also tell HTML) what to do.
      • It tells tex what to do through knitr