Background: Eldridge asked me to explain what the difference is between the difference phases of time when it comes to writing and deploying code.
He wants to know:
- 1) what is the difference between: 1) design time; 2) compile time; 3) run-time?
- 2) what are specific examples of things a programmer would not be able to hard-wire into his code and not know until run-time?
- 3) are scripting languages with many run-time “tricks” better (other than personal preference reasons) for people who need more ‘run-time’ flexibility?
Question:
Although I have answers for Eldrige based on my own programming views, it seemed like a good idea to get different perspectives, so as not to give a “biased” answer. … So, what unbiased answer can you give to explain these things (assuming whatever language[s]).
Okay, since no one else has tried, I’ll take a crack at this.
Design time is the time spent creating the source files. Code in text files, form definitions, etc.
Compile time is the time spent in the various phases of compilation. Preprocessing, lexing/parsing, AST creation and optimization, code generation, and linking.
Run time is the time spent from when the executable is loaded until the memory used for the text pages is freed.
A programmer can hardwire anything they like, but it makes little sense for some things:
Both static and dynamic languages (I personally hate the description “scripting languages”) have a place in computing. There is nothing a dynamic language can do that a static language can’t; the only difference is in the amount of code it takes to implement the functionality.