A Runtime Environment, is just the state of things in the computer where a program will run.
We use the term **Environment** to describe the things outside of the code that could cause the code to behave differently. This is most commonly intended when it comes to things like configuration. But can be unintended in some cases, such as programs conflicting over the same resource.
The adjective **Runtime** is very broad, so here is a list of common environments in the code’s lifecycle that a developer should be aware of.
* **Development Time** – nobody uses this term, but would describe the time while a person writes software. Tools such a linters can tell a developer if they are writing bad code. If these tools are not configured to match the final Runtime Environment, then the code could be broken.
* **Compile Time** – common coding task where source code is translated into machine code. Not every language does this, but if the compile task doesn’t match the final Runtime Environment then the code won’t work. For example, C# can compile in development and production modes, where each produces different programs.
* **Local Environment** – this is when a developer runs code while writing software to test code. Commonly, the configuration in this environment is vastly different from the final Runtime Environment.
* **Test Environment** – is usually (at least we hope) configured the same as the final Runtime Environment. A common step in software development is to deploy new code to a test Environment before giving it to a customer.
* **Production Environment** – common name for the Final Runtime Environment. This is where customers will actually use the software.
Latest Answers