ACM Comm 2014 10 Gradual Evolution in Dynamic Languages (Notes)
Link to publication |
Gradual Evolution (in Dynamic languages) |
Contents
Gradual Evolution (in Dynamic languages)
"Dynamically typed languages adopt features of static typing to cope with growth."
Even dynamic languages need static typing for error checking.
How dynamic or static should Inferno be?
People
- Brendan Eich, creator of JavaScript
- Anders Hejlsberg, fellow at Microsoft Research
- Benjamin Pierce, U. of Pennsylvania
- Jeremy Siek, Indiana University
Ideas
- Dynamic Typing[1]
- Good - Don't have to define variables as you type. Errors caught at run-time. Easier to write and rewrite.
- Bad - Flaws are hidden for months, maybe years, and are found after the user runs the program.
- JavaScript is dynamically typed.
- Annotations - Context hidden in the byte-code for the compiler.
- Statically Typing[2]
- Good - Errors are caught early, BEFORE the software runs.
- Bad - Increased development time.
- Efforts to add static typing to dynamic languages
- TypeScript[3] -> JavaScript
- Removes the annotations before the compiler starts.
- Hack -> PHP
- Typed Racket -> Racket
- mypy -> Python
- TypeScript[3] -> JavaScript
- Corporate Growth Problem - Useful things tend to grow, become more complex, cost more, and are harder to maintain.
- Allow the programmer to decide how much static typing they want.
References
Internal Links
Parent Article: Reading Notes