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.
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)
- 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