JavaScript
ข้อจำกัดประการสำคัญของ JavaScript คือการไม่กำหนดชนิดของตัวแปร (type) แบบตายตัว (static typing) เมื่อ JavaScript ได้รับความนิยมเพิ่มขึ้นเรื่อยๆ จึงมีคนพยายามแก้ปัญหานี้ด้วยการประดิษฐ์ภาษาหรือเครื่องมือใหม่ๆ ที่เป็น JavaScript แบบมี type เข้ามา (เช่น TypeScript, Closure Compiler หรือ Flow) เพื่อจัดระเบียบการเขียนโค้ดให้มีโครงสร้างมากขึ้น
แนวทางของภาษาแบบ TypeScript คือให้มนุษย์เขียนโค้ดด้วยภาษาใหม่ที่มีระเบียบขึ้น จากนั้นใช้เครื่องมือ "แปลง" (ในที่นี้คือ transpiler) ภาษาใหม่กลับมาเป็น JavaScript อีกทีหนึ่ง