- เหตุผลที่เขาเริ่มทำงานกับ TypeScript ในปี 2012 คือ JavaScript ขาดความสามารถในการขยายตัวสำหรับโค้ดเบสขนาดใหญ่ที่มีนักพัฒนาหลายคนร่วมกันทำงาน และทีมที่ต้องดูแลโค้ดแบบ loosely typed หลายล้านบรรทัดจำเป็นต้องมีเครื่องมือช่วยจัดการความซับซ้อนของระบบ
- ในปี 2025 TypeScript กลายเป็น ภาษาที่ถูกใช้งานมากที่สุดบน GitHub แซงทั้ง JavaScript และ Python ได้เป็นครั้งแรก และในปีนี้เพียงปีเดียวมีนักพัฒนากว่า 1 ล้านคนเริ่มมีส่วนร่วมด้วย TypeScript (เพิ่มขึ้น 66% จากปีก่อน)
- ปัจจัยความสำเร็จของ TypeScript คือ ความเข้ากันได้ระหว่างระบบชนิดข้อมูลแบบสแตติกกับการสร้างโค้ดด้วย AI โดยเมื่อ AI เรียนรู้จากข้อมูลโค้ดจำนวนมหาศาลแล้วสร้างโค้ดขึ้นมา ชนิดข้อมูลจะทำหน้าที่เป็นตัวตรวจสอบความจริงที่ช่วยเพิ่มความน่าเชื่อถือและการบำรุงรักษา
- มีการเขียนคอมไพเลอร์ใหม่ด้วย Go จนได้ ประสิทธิภาพดีขึ้น 10 เท่า โดยครึ่งหนึ่งมาจากการรันแบบเนทีฟ และอีกครึ่งหนึ่งมาจากการทำงานพร้อมกันด้วย shared memory ขณะเดียวกันก็รักษาพฤติกรรมเดิมไว้ทั้งหมดเพื่อคงความเข้ากันได้กับชุมชน
- ในยุค AI IDE กำลังพัฒนาไปเป็น สภาพแวดล้อมสำหรับเอเจนต์ ไม่ใช่แค่สำหรับนักพัฒนา และระบบชนิดข้อมูลเชิงโครงสร้างของ TypeScript ก็เป็นฐานให้เอเจนต์รีแฟกเตอร์ได้อย่างปลอดภัยและอนุมานโค้ดเบสแบบกำหนดผลลัพธ์ได้
ที่มาและเป้าหมายของ TypeScript
- ในปี 2012 แม้ JavaScript จะเป็นศูนย์กลางของเว็บอยู่แล้ว แต่ก็ยัง ขาดความสามารถในการขยายตัวที่เหมาะกับการพัฒนาขนาดใหญ่
- หลายทีมกำลังปล่อยโค้ดแบบ loosely typed หลายล้านบรรทัด และยิ่งระบบซับซ้อนขึ้นก็ยิ่งอนุมานได้ยาก
- เป้าหมายของ TypeScript ไม่ใช่การแทนที่ JavaScript แต่คือการเพิ่ม ชนิดข้อมูล เครื่องมือ และความสามารถในการรีแฟกเตอร์ เพื่อให้รองรับการพัฒนาขนาดใหญ่ได้
- Anders เคยคิดว่า “ถ้าชุมชน JavaScript สนใจสัก 25% ก็ถือว่าประสบความสำเร็จ” แต่ระดับปัจจุบันนั้นเกินความคาดหมายไปมาก
- “ทุกวันนี้พอเห็นว่ามีคนมากมายพึ่งพามันในแต่ละวันก็ยังรู้สึกทึ่ง ทั้งทีมเองก็ตกใจกันเหมือนกัน”
คุณลักษณะหลักของ TypeScript
- เป็น superset ของ JavaScript ที่อิงกับชนิดข้อมูล และคอมไพล์ออกมาเป็น JavaScript ปกติ
- เพิ่มการตรวจสอบชนิดข้อมูลแบบสแตติก, interface, generic และคุณสมบัติภาษาสมัยใหม่
- ลบข้อมูลชนิดข้อมูลออกในขั้นตอนคอมไพล์ ทำให้ใช้งานได้ทุกที่ที่ JavaScript รันได้
- เหตุผลที่นักพัฒนาใช้งาน:
- ตรวจจับข้อผิดพลาดของชนิดข้อมูล ได้ก่อนรันไทม์
- ปรับปรุงการเติมโค้ดอัตโนมัติและการรีแฟกเตอร์ใน IDE
- ดูแลโค้ดเบสขนาดใหญ่ข้ามทีมได้
- ผสานเข้ากับเฟรมเวิร์กและเครื่องมือช่วยเขียนโค้ดด้วย AI ได้อย่างราบรื่น
- การใช้งานหลัก: เฟรมเวิร์กฝั่งฟรอนต์เอนด์ (React, Angular, Vue), ระบบแบ็กเอนด์ (Node.js, Deno), SDK, design system และเฟรมเวิร์กเอเจนต์ที่ขับเคลื่อนด้วย AI ซึ่งต้องการชนิดข้อมูลที่แข็งแรง
อิทธิพลครองตลาดของ TypeScript
- ณ ปี 2025 เฟรมเวิร์กฟรอนต์เอนด์สมัยใหม่แทบทั้งหมด (React, Next.js, Angular, SvelteKit) ตั้งค่าโปรเจกต์เริ่มต้นด้วย TypeScript เป็นค่าเริ่มต้น
- ผลลัพธ์คือโค้ดเบสที่ปลอดภัยขึ้น การเติมโค้ดอัตโนมัติที่ดีขึ้น และการดีบัก
undefinedตอนตีสามที่ลดลง
- ผลลัพธ์คือโค้ดเบสที่ปลอดภัยขึ้น การเติมโค้ดอัตโนมัติที่ดีขึ้น และการดีบัก
- “ความมหัศจรรย์คือการทำให้ TypeScript ให้ความรู้สึกเหมือน JavaScript แต่มีพลังพิเศษเพิ่มเข้ามา”
การเขียนคอมไพเลอร์ใหม่
- เดิม TypeScript เป็นระบบ self-hosting (เขียนด้วย TypeScript เอง) เพื่อรักษาความพกพาและความสามารถในการปรับแต่ง
- แต่สุดท้ายประสิทธิภาพก็กลายเป็นปัญหา
- “การยอมเลิก self-hosting เป็นเรื่องเจ็บปวด แต่เรารู้แล้วว่ารีดประสิทธิภาพออกมาไม่ได้มากกว่านี้”
- หลังจากลองทั้ง C# และภาษาอื่น ๆ จึง เลือก Go
- ได้ ประสิทธิภาพเพิ่มขึ้น 10 เท่า: ครึ่งหนึ่งมาจากการรันแบบเนทีฟ อีกครึ่งหนึ่งจากการทำงานพร้อมกันด้วย shared memory
- “การเพิ่มขึ้น 10 เท่าเป็นสิ่งที่มองข้ามไม่ได้”
- คอมไพเลอร์ใหม่เป็น สำเนาที่สมบูรณ์แบบของคอมไพเลอร์เดิม แม้กระทั่งบั๊กก็เหมือนกัน
- “ชุมชนไม่จำเป็นต้องทิ้งอะไรเลย”
- ปรัชญาการปรับปรุงประสิทธิภาพโดยยังคงพฤติกรรมเดิมไว้ เป็นหนึ่งในเหตุผลที่นักพัฒนาเชื่อถือ TypeScript
- ไม่ใช่การเขียนใหม่หมดทุกไม่กี่ปี แต่เป็น ระบบที่ค่อย ๆ พัฒนาโดยรักษาความเข้ากันได้ไว้
ปรัชญาต่อโอเพนซอร์ส
- Anders มองโอเพนซอร์สเป็น ระบบนิเวศที่สะท้อนการคัดเลือกโดยธรรมชาติ
- “โอเพนซอร์สคือการทดลองครั้งใหญ่ ไม่มีใครหาวิธีระดมทุนที่เหมาะสมได้จริง ๆ แต่ตอนนี้เราก็ยังอยู่ตรงนี้ ใหญ่กว่าที่เคย และมันจะไม่หายไป มันคือวิวัฒนาการที่ถูกบันทึกไว้ในโค้ด”
- ข้อมูล Octoverse สนับสนุนมุมมองนี้: ในปี 2025 นักพัฒนาผลักดัน commit เกือบ 1 พันล้านครั้ง (เพิ่มขึ้น 25% จากปีก่อน)
- มี 1.12 พันล้านรายการถูกส่งไปยัง public และโอเพนซอร์สรีโพซิทอรี
- รีโพซิทอรีของ TypeScript เป็น คลังมีชีวิตของวิวัฒนาการของภาษา ที่สะสม issue, pull request และ design note ตลอด 12 ปี
- “มีประวัติศาสตร์ 12 ปีถูกบันทึกไว้บน GitHub ทั้งหมดค้นหาได้ และเป็นวิวัฒนาการที่
grepได้”
- “มีประวัติศาสตร์ 12 ปีถูกบันทึกไว้บน GitHub ทั้งหมดค้นหาได้ และเป็นวิวัฒนาการที่
เหตุใด TypeScript จึงรุ่งเรืองในยุค AI
- ข้อมูลที่น่าประทับใจที่สุดจาก Octoverse 2025 คือ AI กำลังเปลี่ยนความนิยมของภาษา
- นักพัฒนากำลังย้ายไปสู่ภาษาที่มีชนิดข้อมูล ซึ่งทำให้การเขียนโค้ดร่วมกับ AI เชื่อถือได้และบำรุงรักษาได้มากขึ้น
- คำอธิบายของ Anders: “ความสามารถของ AI ในการเขียนโค้ดด้วยภาษาหนึ่ง แปรผันตามปริมาณที่มันเคยเห็นภาษาเหล่านั้น AI เป็นเหมือนเครื่องจักรขนาดใหญ่สำหรับการทำซ้ำ พร้อมการคาดคะเนเกินข้อมูลเล็กน้อย AI เห็น JavaScript, Python และ TypeScript มหาศาล จึงเขียนโค้ดด้วยภาษาเหล่านี้ได้ดี ภาษาที่ใหม่กว่าจึงเสียเปรียบโดยธรรมชาติ”
- เมื่อความคุ้นเคยด้านข้อมูลรวมเข้ากับ ระบบชนิดข้อมูลแบบสแตติก ของ TypeScript จึงทำให้มันเหมาะกับเวิร์กโฟลว์แบบ AI-first อย่างโดดเด่น
- “ถ้าคุณให้ AI แปลโค้ด 500,000 บรรทัด มันอาจเกิดอาการ hallucination ได้ แต่ถ้าคุณให้มันสร้างโปรแกรมที่ทำการแปลนั้นแบบกำหนดผลลัพธ์ได้ คุณจะได้ผลลัพธ์ที่เชื่อถือได้ นั่นคือปัญหาที่ชนิดข้อมูลถูกสร้างมาเพื่อแก้”
- ข้อความสำคัญคือ ในโลกที่ทั้งมนุษย์และเครื่องจักรต่างเขียนโค้ด ชนิดข้อมูลไม่ใช่ระบบราชการ แต่เป็นตัวตรวจสอบความจริง
จาก IDE ไปสู่เอเจนต์
- การมาถึงของโมเดลภาษาขนาดใหญ่กำลัง เปลี่ยนความหมายของคำว่า “เครื่องมือสำหรับนักพัฒนา” ไปโดยสิ้นเชิง
- IDE กำลังพัฒนาไปเป็น สภาพแวดล้อมสำหรับเอเจนต์ ไม่ใช่แค่สำหรับนักพัฒนา
- “AI เริ่มต้นจากการเป็นผู้ช่วย ตอนนี้มันลงมือทำงานจริงและคุณเป็นคนกำกับ AI ไม่ได้ต้องการ IDE แบบเดียวกับเรา มันต้องการ service ต่างหาก นั่นจึงเป็นเหตุผลที่งานด้าน Model Context Protocol น่าสนใจ”
- รายงาน Octoverse อธิบายการเปลี่ยนแปลงนี้ว่า “AI กำลังจัดโครงสร้างการเลือกใหม่ ไม่ใช่แค่ตัวโค้ดเท่านั้น”
- ภาษาที่มีชนิดข้อมูลอย่าง TypeScript ให้ โครงสร้างที่เอเจนต์ต้องใช้ในการรีแฟกเตอร์อย่างปลอดภัย ตอบคำถามเชิงความหมาย และอนุมานโค้ดเบสแบบกำหนดผลลัพธ์ได้
- “เป้าหมายคือทำให้เวิร์กโฟลว์ของ AI อยู่ในกรอบที่มีความเป็น deterministic มากพอ เพื่อให้มันไม่หลุดวงโคจรและยังคงมีประโยชน์”
ภาษาที่พัฒนาอย่างต่อเนื่อง
- ตั้งแต่ Turbo Pascal ไปจนถึง C# และมาถึง TypeScript งานของ Anders กินระยะเวลาหลายทศวรรษ
- สิ่งที่น่าประทับใจคือ ความสม่ำเสมอ: การสร้างภาษาที่ทำให้ซอฟต์แวร์ซับซ้อนอนุมานได้ง่ายขึ้น
- “ไม่มีอะไรน่าพึงพอใจไปกว่าการได้ทำงานกับบางสิ่งที่สร้างความแตกต่าง TypeScript ยังคงเปลี่ยนแปลงต่อไป แต่สุดท้ายก็กลับมาที่สิ่งเดิมเสมอ: ช่วยให้นักพัฒนาแสดงเจตนาได้อย่างชัดเจน”
- ความชัดเจนนี้อาจอธิบายได้ว่าทำไมในปี 2025 จึงมี นักพัฒนาใหม่หนึ่งคนสมัคร GitHub ทุกวินาที และสัดส่วนที่เพิ่มขึ้นเรื่อย ๆ ของคนเหล่านั้นเริ่มต้นด้วย TypeScript
- เรื่องราวของ TypeScript ไม่ได้เกี่ยวกับการออกแบบภาษาเท่านั้น แต่ยังเกี่ยวกับ วิวัฒนาการ
- โปรเจกต์ที่เริ่มจากการเป็นคำตอบเชิงปฏิบัติสำหรับปัญหาความขยายตัวของ JavaScript ได้กลายมาเป็นรากฐานของวิธีที่นักพัฒนา และตอนนี้รวมถึง AI เขียนโค้ดร่วมกัน
1 ความคิดเห็น
แน่นอนว่า AI เก่งเพราะได้เห็นภาษาจำนวนมากก็เป็นปัจจัยสำคัญอย่างหนึ่ง
ยิ่งไปกว่านั้น ผมคิดว่าสิ่งอย่าง inline type ใน ts ก็ดีเหมือนกัน
ด้วยลักษณะของ AI ผมไม่แน่ใจว่าในงานเขียนโค้ด attention ถูกฝึกมาอย่างไร
แต่ไม่ว่าอย่างไร ถ้าเป็น type ที่อยู่ใกล้กัน ก็น่าจะรักษาได้ดีกว่าไม่ใช่เหรอ?
ไม่อย่างนั้นภายในก็อาจต้องใช้เครื่องมือเพื่ออ่าน type definition แล้วแนบเข้าไปใน context (prompt) อีกรอบ
ในแง่นั้นผมเลยคิดว่าน่าจะเป็นข้อดีครับ