Bắt đầu từTypeScript7, một phiên bản trình biên dịch sử dụng mã gốc (native code) sẽ mở khóa “hiệu năng thô, mức sử dụng bộ nhớ và khả năng xử lý song song tốt hơn.”
Trong nhiều năm, trình biên dịch TypeScript đã là trái tim của phát triển web hiện đại, nhưng sự phụ thuộc của nó vào JavaScript đã tạo ra một giới hạn hiệu suất cho các cơ sở mã khổng lồ.
Giới hạn đó sắp bị phá vỡ.
Sáng kiến này, có mã danh là Dự án Corsa, là một nền tảng lại hoàn toàn của lõi hệ sinh thái.
Đối với các trưởng nhóm kỹ thuật, sự thay đổi này từ cơ sở mã ‘Strada’ cũ sang một tệp nhị phân gốc (native binary) đại diện cho một thay đổi then chốt trong cách quản lý chu kỳ phát triển và hứa hẹn cắt giảm mạnh thời gian build trong khi giảm dấu chân phần cứng của các pipeline CI/CD.
Hiệu quả thúc đẩy cuộc đại tu này.
Khi các dự án mở rộng quy mô, việc biên dịch đơn luồng trở thành một nút thắt cổ chai tốn kém.
Bằng cách chuyển sang mã gốc, TypeScript 7 tận dụng tính song song bộ nhớ chia sẻ, nghĩa là nó có thể “xây dựng nhiều dự án song song” thay vì xử lý chúng tuần tự.
Dữ liệu ban đầu cho thấy lợi ích thu về là rất lớn.
Trong các điểm chuẩn được nhóm chia sẻ, thời gian build cho dự ánsentryđã giảm mạnh từ 133,08 giây khi sử dụng trình biên dịch hiện tại xuống chỉ còn 16,25 giây với phiên bản gốc — tốc độ tăng 8,19 lần.
Cơ sở mãvscodecũng có được mức cải thiện tương tự, giảm từ 89,11 giây xuống 8,74 giây.
Ngay cả khi không có cài đặt build tăng dần, “TypeScript 7 thường đạt tốc độ nhanh gần gấp 10 lần so với trình biên dịch 6.0 trên các bản build đầy đủ.”
Đối với các tổ chức trả tiền cho điện toán theo phút, hoặc các nhà phát triển mất hàng giờ cho các chu kỳ biên dịch cục bộ, đây là những khoản tiết kiệm hoạt động trực tiếp.
Các dự án viết lại thường khét tiếng.
Chúng thường bị đình trệ, hỏng hóc hoặc mắc kẹt trong trạng thái “beta” mơ hồ trong nhiều năm.
Microsoft lập luận rằng dự án này thì khác.
“Đối với nhiều nhà phát triển, một dự án viết lại có thể cảm thấy hoàn toàn lý thuyết cho đến khi nó cuối cùng được phát hành.
Đó không phải là trường hợp ở đây,” Daniel Rosenwasser, Quản lý Sản phẩm của nhóm TypeScript khẳng định.
Dịch vụ ngôn ngữ gốc đã hoạt động và nhiều tính năng cốt lõi đã được triển khai lại và ổn định.
Trong khi các phiên bản lặp trước đó được báo cáo là “dễ bị sập,” dịch vụ được kiến trúc lại này “mạnh mẽ hơn, và sẽ có thể xử lý các cơ sở mã, cả lớn và nhỏ, mà không gặp vấn đề.”
Các con số về độ tin cậy ủng hộ điều này.
Trong số khoảng 20.000 trường hợp kiểm thử trình biên dịch, bản build gốc khớp với báo cáo lỗi của phiên bản cũ trong tất cả trừ 74 trường hợp.
Nhóm lưu ý rằng các khoảng trống còn lại phần lớn là “công việc chưa hoàn thiện đã biết” hoặc các thay đổi có chủ đích, nghĩa là các nhóm kỹ thuật “có thể tự tin sử dụng TypeScript 7 ngay hôm nay để kiểm tra kiểu cho dự án của bạn để tìm lỗi.”
Điều hướng việc nâng cấp lên TypeScript 7
Tất nhiên, tốc độ có cái giá của nó.
Để hợp lý hóa kiến trúc mới, TypeScript 7 sẽ loại bỏ những gánh nặng di sản.
Bản phát hành này có quan điểm rõ ràng.
Cờ–strictsẽ được bật theo mặc định, thực thi tính an toàn kiểu chặt chẽ hơn trên toàn bộ.
Hỗ trợ cho các môi trường cũ cũng đang thu hẹp:–target es5đang bị loại bỏ, biếnes2015thành mức sàn tuyệt đối cho các mục tiêu biên dịch.
Các nhóm phụ thuộc vào các mẫu JSDoc phức tạp để kiểm tra kiểu cũng sẽ gặp khó khăn.
Nhóm đã “cắt giảm một số hỗ trợ của chúng tôi cho các mẫu phức tạp và một số mẫu ít được sử dụng,” nghĩa là các thẻ như@enumvà@constructorkhông còn được công nhận.
Có lẽ trở ngại vận hành lớn nhất khi chuyển đổi sang TypeScript 7 là sự phân mảnh chuỗi công cụ.
Trình biên dịch gốc mới không hỗ trợ API hiện có được sử dụng bởi trình biên dịch JavaScript hiện tại.
Điều này phá vỡ khả năng tương thích cho các công cụ của bên thứ ba – linters, formatters và plugin – phụ thuộc vào kiến trúc cũ.
Giải pháp thay thế?
Chạy chúng song song.
Nhóm đề xuất sử dụng gói tiêu chuẩn cho các công cụ và bản xem trước gốc (tsgo) cho tốc độ build thô.
Để hỗ trợ di chuyển cấu hình, họ đang thử nghiệm một công cụ có tênts5to6để tự động hóa các cập nhật cho các tệptsconfig.json.
Microsoft đã rõ ràng:
không có đường quay lại.
Sẽ không có TypeScript 6.1.
“TypeScript 6.0 sẽ là bản phát hành cuối cùng của chúng tôi dựa trên cơ sở mã TypeScript/JavaScript hiện có,” Rosenwasser tuyên bố.
Bản phát hành 6.0 chỉ đóng vai trò như một cây cầu đến tương lai gốc.
Một khi được phát hành, cơ sở mã cũ sẽ bước vào chế độ bảo trì nghiêm ngặt, chỉ nhận các bản vá cho các vấn đề bảo mật hoặc hồi quy mức độ nghiêm trọng cao.
Nhóm “rất khó có khả năng hợp nhất các pull request vào 6.0,” tập trung toàn bộ tốc độ của họ vào việc đưa phiên bản gốc TypeScript 7 đạt ngang bằng.
Xem thêm:Các công cụ mã hóa AI tác nhân thay đổi phát triển phần mềm như thế nào
Muốn tìm hiểu thêm về an ninh mạng từ các nhà lãnh đạo ngành?Hãy xemCyber Security & Cloud Expodiễn ra tại Amsterdam, California và London.
Sự kiện toàn diện này là một phần củaTechExvà được tổ chức cùng địa điểm với các sự kiện công nghệ hàng đầu khác.
Nhấpvào đâyđể biết thêm thông tin.
Developer được cung cấp bởiTechForge Media.
Khám phá các sự kiện và hội thảo trực tuyến công nghệ doanh nghiệp sắp tới kháctại đây.







![[Tự học C++] Số dấu phẩy động(float, double,…) trong C++](https://cafedev.vn/wp-content/uploads/2019/12/cafedevn_c_develoment-100x70.jpg)

