3 ms·
Productivity. Interpreters load code changes during development without any issue. Compilers usually create incompatible versions of the same class, throw error
by manidoraisamy 12y ago
Productivity. Interpreters load code changes during development without any issue. Compilers usually create incompatible versions of the same class, throw errors and hamper productivity.
- rdc12 12y agoPlenty of compilers allow for on the fly changes
- manidoraisamy 12y agoClassloaders usually reject incompatible versions of the same class when you do that. Plus they don't come with default SDK.
- mbrodersen 12y agoJava does not represent the limits of what is doable when compiling.
- manidoraisamy 12y agoI used java classloader as a canonical example. In general, compilers outputs object code during development and the runtime doesn't expect syntax errors. Compiler like JIT are meant for runtime optimization and not to handle the development workflow like syntax parsing. That's why errors in development workflow compilers (like JSP compiler) are incomprehensible, when you start writing code inside it. On the other hand, dynamic language interpreters already handle both syntax parsing and execution at runtime. Therefore loading changes during development is not a big deal for them.
- mbrodersen 12y agoThere is nothing stopping a compiled language from dynamically loading new code. That is what .so and .dll's are used for all the time.