TypeScript

Multi-paradigm, structural typing. First appeared 2012; dynamic scripting; large-scale web and tooling.

Record

First appeared2012
FamilyDynamic scripting
Paradigm emphasisMulti-paradigm, structural typing
TypingStatic, erased at runtime
MemoryTracing GC (host)
ExecutionTranspiled to JavaScript
Primary domainLarge-scale web and tooling
DesignersAnders Hejlsberg, Microsoft
Referencehttps://www.typescriptlang.org/docs/handbook/
Last verifiednot yet checked against its source by a human

Dates are first public release or publication, not the start of internal development. Colour on the typing and memory tags encodes kind, never rank.

Back to top

Influence

JavaScript1995C#2000No indexed descendantTypeScript2012
Figure 1. TypeScript in the influence graph: recorded ancestors on the left, languages that record it as an influence on the right. Every node links to its own record. Edges name indexed languages only, so an empty side means no indexed relative, not none at all. Source: languages.json.

Back to top

Within the Dynamic scripting

Late binding and rapid iteration, usually paired with a large package ecosystem and an interpreter or JIT.

Language First appeared Typing Memory Execution
BASIC 1964 Dynamic, weak Interpreter-managed Interpreted
Smalltalk-80 1980 Dynamic, strong Tracing GC Bytecode VM
Perl 1987 Dynamic, weak Reference counting Interpreted
Self 1987 Dynamic, strong Generational tracing GC JIT
Python 1991 Dynamic, strong Refcount with cycle collector Interpreted
Lua 1993 Dynamic, weak Incremental tracing GC Bytecode VM
JavaScript 1995 Dynamic, weak Tracing GC JIT
PHP 1995 Dynamic, weak Refcount with cycle collector Bytecode VM
Ruby 1995 Dynamic, strong Tracing GC Bytecode VM

9 other languages in this family, ordered by first appearance. TypeScript itself is omitted. Source: languages.json.

Back to top