Dynamic Languages are a class of high-level programming languages that do not rely on static typing. Many decisions that are made at compile time by a statically typed language are instead made at run time by a dynamic language. For example, many dynamic languages use dynamic typing, where an object’s type is determined at run time instead of at compile time. These languages make a trade-off between compile-time type-checking in favor of increased flexibility at run time.
There are many good static languages, such as C#, and many good dynamic languages, such as IronPython. The choice of what type of language to use comes down to personal preference and to the nature of the project you’re working on.
Giving ASP.NET users the choice of languages was part of the design since our first version of ASP.NET, and this Dynamic Language Support is just another step in that direction. Unlike other Web platforms that support only one language, the ASP.NET team wants to enable users to choose the language that fits them best.
What is Run time and Compile Time
Run Time: When a program is running, or executing, it is said to be in runtime. The term is mostly used by software developers to specify when errors in a program occur. A “runtime error” is an error that happens while the program is executing. For example, if a program told you that 2 + 2 was 5000, that would be a runtime error. A memory leak, where the program sucks up excessive amounts of system memory is also a runtime error.
Compile Time : other major type of program error is a compile-time error, where the application will not even compile into an executable program. Examples of compile-time errors are syntax errors in the program code and file linking errors.
To transform a program written in a high-level programming language from source code into object code. Programmers write programs in a form called source code. Source code must go through several steps before it becomes an executable program. The first step is to pass the source code through a compiler, which translates the high-level language instructions into object code.The final step in producing an executable program — after the compiler has produced object code — is to pass the object code through a linker. The linker combines modules and gives real values to all symbolic addresses, thereby producing machine code