17 điểm bởi GN⁺ 2025-11-10 | 1 bình luận | Chia sẻ qua WhatsApp
  • Ông bắt đầu dự án TypeScript vào năm 2012 vì JavaScript thiếu khả năng mở rộng cho các codebase quy mô lớn với nhiều nhà phát triển, và các nhóm xử lý hàng triệu dòng mã kiểu lỏng lẻo cần công cụ để quản lý độ phức tạp của hệ thống
  • Đến năm 2025, TypeScript là ngôn ngữ được sử dụng nhiều nhất trên GitHub, lần đầu vượt qua JavaScript và Python; riêng trong năm nay đã có hơn một triệu nhà phát triển bắt đầu đóng góp bằng TypeScript (tăng 66% so với năm trước)
  • Yếu tố làm nên thành công của TypeScript là sự tương thích giữa hệ thống kiểu tĩnh và việc sinh mã bằng AI; khi AI học và tạo ra lượng lớn mã nguồn, kiểu dữ liệu đóng vai trò như bộ kiểm chứng sự thật, nâng cao độ tin cậy và khả năng bảo trì
  • Trình biên dịch đã được viết lại bằng Go, đạt cải thiện hiệu năng gấp 10 lần; một nửa đến từ thực thi native, một nửa từ đồng thời dùng bộ nhớ chia sẻ, trong khi vẫn giữ nguyên hoàn toàn hành vi cũ để duy trì tương thích với cộng đồng
  • Trong kỷ nguyên AI, IDE đang tiến hóa thành môi trường dành cho các agent chứ không chỉ cho lập trình viên; hệ thống kiểu cấu trúc của TypeScript tạo nền tảng để agent refactor an toàn và suy luận codebase theo cách tất định

Bối cảnh ra đời và mục tiêu của TypeScript

  • Năm 2012, JavaScript đã là trung tâm của web, nhưng thiếu khả năng mở rộng phù hợp cho phát triển quy mô lớn
    • Các nhóm đang triển khai hàng triệu dòng mã kiểu lỏng lẻo, và khi hệ thống càng phức tạp thì việc suy luận càng khó khăn
    • TypeScript không nhằm thay thế JavaScript, mà hướng tới bổ sung kiểu, công cụ và khả năng refactor để giúp phát triển quy mô lớn trở nên khả thi
  • Anders từng nghĩ rằng “nếu 25% cộng đồng JavaScript quan tâm thì đã là thành công”, nhưng mức độ hiện tại đã vượt xa kỳ vọng
    • “Thật đáng kinh ngạc khi thấy từng ấy người phụ thuộc vào nó mỗi ngày. Cả nhóm đều bất ngờ”

Những đặc điểm cốt lõi của TypeScript

  • Đây là siêu tập dựa trên kiểu của JavaScript, được biên dịch về JavaScript thông thường
    • Bổ sung kiểm tra kiểu tĩnh, interface, generic và các tính năng ngôn ngữ hiện đại
    • Thông tin kiểu bị loại bỏ khi biên dịch nên có thể chạy ở bất cứ đâu JavaScript chạy được
  • Lý do các nhà phát triển sử dụng:
    • Phát hiện lỗi kiểu trước runtime
    • Cải thiện tự động hoàn thành trong IDE và khả năng refactor
    • Giúp các nhóm bảo trì codebase lớn
    • Tích hợp mượt mà với framework và công cụ hỗ trợ AI
  • Các lĩnh vực sử dụng chính: framework frontend (React, Angular, Vue), hệ thống backend (Node.js, Deno), SDK, design system, và các framework agent dựa trên AI cần kiểu mạnh

Sự thống trị của TypeScript trên thị trường

  • Tính đến năm 2025, gần như mọi framework frontend hiện đại (React, Next.js, Angular, SvelteKit) đều scaffold mặc định bằng TypeScript
    • Kết quả: codebase an toàn hơn, tự động hoàn thành tốt hơn, và ít hơn những phiên debug undefined lúc 3 giờ sáng
  • “Phép màu là khiến TypeScript có cảm giác như JavaScript nhưng lại trao cho nó siêu năng lực”

Viết lại trình biên dịch

  • Ban đầu TypeScript được self-hosting (viết bằng chính TypeScript) để giữ tính di động và khả năng tùy biến
    • Nhưng cuối cùng hiệu năng trở thành vấn đề
    • “Từ bỏ self-hosting là điều đau đớn, nhưng chúng tôi biết mình không thể vắt thêm hiệu năng nữa”
  • Sau khi thử nghiệm C# và các ngôn ngữ khác, họ chọn Go
    • Đạt cải thiện hiệu năng gấp 10 lần: một nửa nhờ thực thi native, một nửa nhờ đồng thời dùng bộ nhớ chia sẻ
    • “Không thể phớt lờ mức tăng 10 lần”
  • Trình biên dịch mới là bản sao hoàn hảo của trình biên dịch cũ, kể cả lỗi cũng giống nhau
    • “Cộng đồng không cần phải vứt bỏ bất cứ điều gì”
  • Triết lý giữ nguyên hành vi trong khi cải thiện hiệu năng là một trong những lý do các nhà phát triển tin tưởng TypeScript
    • Không phải cứ vài năm lại viết lại hoàn toàn, mà là một hệ thống tiến hóa vẫn giữ tương thích

Triết lý về mã nguồn mở

  • Anders xem mã nguồn mở là một hệ sinh thái phản ánh chọn lọc tự nhiên
    • “Mã nguồn mở là một thí nghiệm lớn. Không ai thực sự tìm ra cách tài trợ cho nó một cách đúng đắn, nhưng chúng ta vẫn ở đây. Nó lớn hơn bao giờ hết và sẽ không biến mất. Đó là tiến hóa được ghi lại trong mã”
  • Dữ liệu Octoverse củng cố nhận định này: năm 2025 các nhà phát triển đã đẩy gần 1 tỷ commit (tăng 25% so với năm trước)
    • 1,12 tỷ được gửi tới các kho lưu trữ công khai và mã nguồn mở
  • Kho lưu trữ TypeScript là một kho lưu trữ sống về quá trình tiến hóa của ngôn ngữ, với 12 năm issue, pull request và ghi chú thiết kế
    • “Có 12 năm lịch sử được ghi lại trên GitHub. Tất cả đều có thể tìm kiếm. Đó là tiến hóa có thể grep được”

Vì sao TypeScript phát triển mạnh trong kỷ nguyên AI

  • Dữ liệu ấn tượng nhất của Octoverse 2025: AI đang thay đổi sở thích về ngôn ngữ
    • Các nhà phát triển đang chuyển sang những ngôn ngữ có kiểu để việc lập trình với AI trở nên đáng tin cậy hơn và dễ bảo trì hơn
  • Anders giải thích: “Khả năng AI viết mã bằng một ngôn ngữ tỷ lệ thuận với việc nó đã thấy ngôn ngữ đó nhiều đến mức nào. AI là một cỗ máy tái tạo khổng lồ và có thêm chút ngoại suy. AI đã thấy JavaScript, Python và TypeScript rất nhiều, nên nó viết mã tốt bằng những ngôn ngữ đó. Các ngôn ngữ mới thực sự ở thế bất lợi”
  • Sự quen thuộc về dữ liệu kết hợp với hệ thống kiểu tĩnh của TypeScript khiến nó đặc biệt phù hợp với quy trình làm việc ưu tiên AI
    • “Nếu bạn bảo AI dịch 500.000 dòng mã, nó có thể bị ảo giác. Nhưng nếu bạn bảo nó tạo ra một chương trình thực hiện bản dịch đó theo cách tất định, bạn sẽ có kết quả đáng tin cậy. Đó chính là vấn đề mà kiểu dữ liệu được tạo ra để giải quyết”
  • Thông điệp cốt lõi: trong thế giới nơi cả con người và máy móc đều viết mã, kiểu dữ liệu không phải là quan liêu mà là bộ kiểm chứng sự thật

Từ IDE đến agent

  • Sự trỗi dậy của các mô hình ngôn ngữ lớn đang thay đổi chính ý nghĩa của “công cụ cho nhà phát triển”
    • IDE đang tiến hóa thành môi trường cho agent chứ không chỉ cho lập trình viên
  • “AI ban đầu là trợ lý. Giờ nó thực hiện công việc và bạn giám sát. AI không cần IDE như chúng ta. Nó cần dịch vụ. Đó là lý do công việc về Model Context Protocol rất thú vị”
  • Báo cáo Octoverse mô tả sự thay đổi này là “AI đang tái cấu trúc các lựa chọn, chứ không chỉ riêng mã nguồn”
  • Những ngôn ngữ có kiểu như TypeScript cung cấp cấu trúc cần thiết để agent refactor an toàn, trả lời các truy vấn ngữ nghĩa và suy luận về codebase theo cách tất định
  • “Mục tiêu là đóng khung quy trình AI với đủ tính tất định để nó không đi chệch quỹ đạo mà vẫn hữu ích”

Một ngôn ngữ vẫn tiếp tục tiến hóa

  • Từ Turbo Pascal đến C#, rồi nay là TypeScript, hành trình của Anders kéo dài qua nhiều thập kỷ
    • Điều ấn tượng là tính nhất quán: xây dựng các ngôn ngữ giúp việc suy luận về phần mềm phức tạp trở nên dễ dàng hơn
  • “Không có gì thỏa mãn hơn việc làm ra thứ tạo nên khác biệt. TypeScript vẫn tiếp tục thay đổi, nhưng luôn quay về cùng một điều: giúp nhà phát triển diễn đạt ý định một cách rõ ràng
  • Sự rõ ràng đó có thể giải thích vì sao mỗi giây lại có một nhà phát triển mới đăng ký GitHub trong năm 2025, và tỷ lệ ngày càng lớn trong số họ bắt đầu với TypeScript
  • Câu chuyện của TypeScript không chỉ là về thiết kế ngôn ngữ, mà còn là về sự tiến hóa
    • Dự án khởi đầu như một giải pháp thực dụng cho khả năng mở rộng của JavaScript giờ đã trở thành nền tảng cho cách các nhà phát triển, và giờ là cả AI, cùng nhau viết mã

1 bình luận

 
vb6ko 2025-11-11

Tất nhiên việc AI giỏi vì đã được nhìn thấy rất nhiều ngôn ngữ cũng là một yếu tố quan trọng.
Tiến thêm một bước, tôi nghĩ những thứ như inline type trong TS khá là hay.
Với đặc tính của AI, trong mảng lập trình thì tôi không biết attention được học như thế nào,
nhưng dù sao thì chẳng phải kiểu dữ liệu ở gần sẽ được tuân thủ tốt hơn sao?
Nếu không thì chắc bên trong sẽ phải dùng tool để đọc type definition rồi gắn thêm một lần nữa vào context (prompt),
nên ở khía cạnh đó tôi nghĩ nó khá tốt.