ACM Comm 2014 10 Gradual Evolution in Dynamic Languages (Notes)

From University
Jump to: navigation, search

Link to publication

"Reading News with Maps by Exploiting Spatial Synonyms" CACM October 2014

Gradual Evolution (in Dynamic languages)
by Neil Savage, p.16-18

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?

Figure 1
Language Typing


People

  1. Brendan Eich, creator of JavaScript
  2. Anders Hejlsberg, fellow at Microsoft Research
  3. Benjamin Pierce, U. of Pennsylvania
  4. Jeremy Siek, Indiana University

Ideas

  1. Dynamic Typing[1]
    1. Good - Don't have to define variables as you type. Errors caught at run-time. Easier to write and rewrite.
    2. Bad - Flaws are hidden for months, maybe years, and are found after the user runs the program.
  2. JavaScript is dynamically typed.
  3. Annotations - Context hidden in the byte-code for the compiler.
  4. Statically Typing[2]
    1. Good - Errors are caught early, BEFORE the software runs.
    2. Bad - Increased development time.
  5. Efforts to add static typing to dynamic languages
    1. TypeScript[3] -> JavaScript
      1. Removes the annotations before the compiler starts.
    2. Hack -> PHP
    3. Typed Racket -> Racket
    4. mypy -> Python
  6. Corporate Growth Problem - Useful things tend to grow, become more complex, cost more, and are harder to maintain.
  7. Allow the programmer to decide how much static typing they want.

References

Internal Links

Parent Article: Reading Notes