WHY NOT RUST? TypeScript is rewritten in Go...

Tóm tắt ngắn:
- Video thảo luận về việc nhóm phát triển TypeScript đang chuyển trình biên dịch và trình kiểm tra kiểu của TypeScript sang ngôn ngữ Go, hứa hẹn cải thiện hiệu năng lên đến 10 lần.
- Điểm mấu chốt bao gồm việc lựa chọn Go thay vì Rust, tác động đến hiệu năng của IDE, việc duy trì song song cả phiên bản JavaScript và Go, và khả năng mở ra các tính năng mới trong tương lai (như khả năng suy luận kiểu tốt hơn).
- Việc chuyển đổi này sẽ ảnh hưởng đến tất cả người dùng TypeScript, mang lại hiệu năng tốt hơn mà không cần thay đổi mã hiện có. Tuy nhiên, một số người dùng bày tỏ sự thất vọng vì không chọn Rust.
- Quá trình chuyển đổi được mô tả là một "port" (chuyển đổi) thay vì "rewrite" (viết lại), ưu tiên sự ổn định và tốc độ phát triển hơn là tối ưu hóa hiệu năng tuyệt đối.
Tóm tắt chi tiết:
Phần 1: Thông báo chính về việc chuyển đổi TypeScript sang Go
Video bắt đầu bằng thông báo về việc TypeScript đang được chuyển sang Go, dự kiến sẽ tăng hiệu năng lên đến 10 lần. Người nói nhấn mạnh đây là một "sự gia tăng hiệu suất miễn phí" cho người dùng, không yêu cầu thay đổi mã nguồn. Hiệu năng cải thiện sẽ thể hiện rõ rệt trong IDE, với việc tải dự án, điều hướng mã và hiển thị lỗi nhanh hơn. TypeScript 7 sẽ là phiên bản đầu tiên sử dụng trình biên dịch và trình kiểm tra kiểu dựa trên Go.
Phần 2: Lý do lựa chọn Go thay vì Rust và phản hồi của cộng đồng
Một số người dùng bày tỏ sự thất vọng vì việc chọn Go thay vì Rust, một ngôn ngữ được nhiều người ưa chuộng vì hiệu năng cao. Người nói thừa nhận Rust là một ngôn ngữ tuyệt vời và có hiệu năng cao, nhưng giải thích rằng nhóm TypeScript chọn Go vì nó cho phép "port" (chuyển đổi) mã hiện có thay vì "rewrite" (viết lại) từ đầu. Việc viết lại sẽ tốn nhiều thời gian hơn và rủi ro phá vỡ các dự án hiện có. Evan U, người tạo ra View, được nhắc đến như một ví dụ về những người quan tâm đến hiệu năng của Go trong WebAssembly.
Phần 3: So sánh "port" và "rewrite" và các lý do lựa chọn "port"
Người nói giải thích sự khác biệt giữa "port" và "rewrite". "Port" là việc chuyển đổi mã sang ngôn ngữ khác với ít thay đổi về cấu trúc, trong khi "rewrite" là viết lại toàn bộ mã từ đầu. Nhóm TypeScript chọn "port" vì nó nhanh hơn, an toàn hơn và ít rủi ro hơn đối với một dự án lớn và quan trọng như TypeScript. Việc duy trì hai phiên bản (JavaScript và Go) trong một thời gian cũng được đề cập. Sự tương đồng giữa JavaScript và Go được nhấn mạnh, giúp quá trình chuyển đổi dễ dàng hơn.
Phần 4: Sự đánh đổi và kết luận
Video kết thúc bằng việc người nói nhấn mạnh sự đánh đổi giữa hiệu năng lý thuyết tối đa và hiệu năng thực tế đạt được nhanh chóng. Mặc dù hiệu năng lý thuyết có thể cao hơn nếu viết lại bằng Rust, nhưng việc "port" sang Go mang lại hiệu năng cải thiện đáng kể một cách nhanh chóng và an toàn hơn. Người nói khuyến khích người xem chia sẻ ý kiến của họ về việc chuyển đổi này. Câu nói "Cuộc sống là về sự đánh đổi, không chỉ riêng lập trình" được sử dụng để tóm tắt quan điểm này.