Turbo 8 ngừng hỗ trợ TypeScript
(world.hey.com)Daniel Heinemeier Hansson, đồng sáng lập kiêm CTO của 37signals, công ty nổi tiếng với Ruby on Rails và Basecamp, cho biết sẽ loại bỏ hỗ trợ TypeScript khỏi framework web Turbo hiện đang được phát triển.
Lý do chính được đưa ra là các khai báo kiểu làm mã nguồn trở nên rối rắm, đồng thời quá trình phải khai báo kiểu và để trình biên dịch TS can thiệp vào giữa cũng không mang lại cảm giác dễ chịu.
Việc chuyển từ TypeScript sang JavaScript là điều chưa từng có tiền lệ, nên đang gây ra làn sóng lớn trong cộng đồng lập trình viên.
Dù đây là sản phẩm của 37signals, nhưng cũng là một dự án mã nguồn mở có nhận đóng góp từ bên ngoài; vì thế việc PR loại bỏ TypeScript được gửi lên và bị sáp nhập chớp nhoáng chỉ sau 2 giờ mà không có trao đổi với các cộng tác viên bên ngoài cũng đang gây tranh cãi.
7 bình luận
Vì JavaScript là một ngôn ngữ dựa trên prototype, nên tôi tự hỏi liệu đây có phải là việc phớt lờ triết lý đó và loại trừ TypeScript, thứ đang tiếp tục phát triển theo hướng khác, hay không....
https://medium.com/@limsungmook/…
Lại có thêm một bài đăng hơi mang tính câu view, nối tiếp ngày hôm qua.
https://world.hey.com/dhh/…
Trước giờ tôi không biết là ai, nhưng khi nghe nói đó là người tạo ra RoR thì cũng khiến tôi nghĩ là hẳn ông ấy có lý do để không thích TypeScript.
Tôi không tìm hiểu RoR quá sâu, nhưng khi nghĩ đến khái niệm Open Class thì thấy nó không hợp với kiểu dữ liệu.
Với trải nghiệm cá nhân là TypeScript là chính, tôi từng thấy việc phải tạo từng type class một trong Java (Kotlin) cực kỳ ngột ngạt, nên có lẽ với người đó TypeScript cũng mang lại cảm giác như vậy...
Dù vậy, cả chuỗi quá trình này thì tôi thật sự không thể nào thấy thuyết phục được.
Ừm... nhìn 2 PR đó thì đây là một quyết định đến mức khó có thể xem là của một dự án mã nguồn mở.
Chủ sở hữu kho lưu trữ đã quyết định mà không qua thảo luận, lại còn bỏ qua quy trình PR vốn được thực hiện ở kho hiện có và gộp thẳng luôn, nên...
Trông không hay chút nào.
Nếu đã có một quá trình thuyết phục đủ đầy thì còn khác, nhưng tôi nghĩ đây là hành động vứt bỏ độ tin cậy với tư cách là một dự án mã nguồn mở.
Từ góc nhìn của các dự án khác đang phụ thuộc vào type của Turbo, chỉ cần cập nhật là qua một đêm toàn bộ type có thể vỡ hết.
https://devclass.com/2023/05/…
Gần đây Svelte cũng đã chuyển từ TypeScript sang JavaScript (+JSDoc).
Svelte dùng tính năng kiểm tra kiểu của JSDoc, mà tính năng đó phụ thuộc vào TS, nên không phải là họ đã từ bỏ hẳn tính ổn định kiểu. Và họ cũng đang cung cấp định nghĩa kiểu nữa. Có vẻ tình hình khác với Turbo, nơi họ ném hết vào sọt rác, không còn cả JSDoc lẫn
d.ts.À, vâng đúng vậy. Tôi cũng thấy trong liên kết PR kia có khá nhiều nhắc đến chuyện đó.