Xem thêm

Bộ biên dịch K2 của Kotlin 2.0 sẽ ổn định

Huy Erick
Chúng tôi đã làm việc trên một giao diện người dùng mới cho trình biên dịch Kotlin (mã nguồn "K2") trong một thời gian dài. Giao diện người dùng là phần của trình biên dịch...

Chúng tôi đã làm việc trên một giao diện người dùng mới cho trình biên dịch Kotlin (mã nguồn "K2") trong một thời gian dài. Giao diện người dùng là phần của trình biên dịch được sử dụng để phân tích mã nguồn và thực hiện phân tích ngữ nghĩa, phân tích dòng dữ liệu, phân tích cuộc gọi và suy luận kiểu. Đây chính là phần của trình biên dịch mà bạn, nhà phát triển, tương tác nhiều nhất. Đồng thời, đây cũng là phần của trình biên dịch chạy liên tục trong môi trường phát triển tích hợp (IDE) của bạn, báo cáo tất cả thông báo lỗi và cảnh báo, và hỗ trợ bạn trong các nhiệm vụ như tự động hoàn thành, phân tích ngữ nghĩa, ý định và tái cấu trúc mã nguồn. Giao diện người dùng mới đã có sẵn để xem trước - chúng tôi đang liên tục cải tiến và ổn định nó và dự định sẽ là giao diện người dùng mặc định của trình biên dịch trong phiên bản Kotlin trong tương lai. Chúng tôi quyết định đặt tên cho phiên bản tương lai này là Kotlin 2.0. Hãy tiếp tục đọc để tìm hiểu thêm về lộ trình của phiên bản Kotlin 2.0, động cơ của chúng tôi và những gì bạn có thể mong đợi từ nó.

Lộ trình của phiên bản Kotlin 2.0

Chúng tôi dự định phát hành một phiên bản với số hiệu cổ điển tiếp theo là Kotlin 1.9, trong đó sẽ bao gồm cập nhật từ việc phát triển tiếp tục của giao diện người dùng K2 khi nó tiến gần đến ổn định. Sẽ không có phiên bản Kotlin 1.10. Phiên bản chính tiếp theo sau Kotlin 1.9 sẽ là Kotlin 2.0.

Tại sao chúng tôi cần Kotlin 2.0?

Giao diện người dùng là một phần quan trọng của trình biên dịch và giao diện người dùng K2 không chỉ là một việc tái cấu trúc giao diện người dùng cũ, mà là một việc viết lại hoàn toàn từ đầu dựa trên kiến trúc mới. Chúng tôi đã công bố chi tiết kỹ thuật về sự khác biệt trong các blog, video và các cuộc nói chuyện hội nghị khác nhau. "The Road to the K2 Compiler" là nơi tốt để bắt đầu nếu bạn muốn biết thêm thông tin. Tóm lại, kiến trúc mới nhanh hơn và có khả năng mở rộng hơn theo thiết kế, giải quyết các nợ kỹ thuật trong giao diện người dùng cũ, sửa lỗi và trường hợp góc trong nhiều vị trí khác nhau và mở đường cho các phần mở rộng của ngôn ngữ trong tương lai.

Với các ngôn ngữ lập trình , số phiên bản chính thường được tăng khi có các tính năng chính hoặc các thay đổi gây nhiễu được giới thiệu. Tuy nhiên, đối với các chương trình phần mềm, số phiên bản chính có thể tăng mỗi khi có sự viết lại quan trọng để chỉ một công việc lớn, ngay cả khi tập tính chức năng không thay đổi nhiều. Mặc dù Kotlin là một ngôn ngữ, chúng tôi đã quyết định theo phương thức này. Trình biên dịch Kotlin, trước hết, là một phần mềm lớn. Phiên bản của ngôn ngữ Kotlin được định nghĩa bởi phiên bản của trình biên dịch Kotlin. Chúng tôi cung cấp các thông số kỹ thuật Kotlin như một tài liệu tham khảo cho ngôn ngữ, nhưng không phải là định nghĩa của nó.

Phiên bản Kotlin 2.0 có làm hỏng mã của tôi không?

Kotlin thay đổi với mỗi cập nhật phiên bản ngôn ngữ. Các tính năng ngôn ngữ mới được giới thiệu và các lỗi cũ được sửa. Chúng tôi luôn cố gắng giảm thiểu số lượng và tác động của các thay đổi gây nhiễu và tuân thủ quy trình tiến hóa ngôn ngữ Kotlin. Kotlin 2.0 sẽ không khác biệt ở điểm đó.

Chúng tôi chủ động tránh việc giới thiệu bất kỳ tính năng mới nào trong Kotlin 2.0. Việc viết lại giao diện người dùng của trình biên dịch Kotlin là một thay đổi đáng kể và đưa vào một số cải tiến chỉ một mình là đủ. Ví dụ, thuật toán phân tích dòng dữ liệu mới chính xác hơn và dẫn đến các smart cast tốt hơn so với trước - hãy xem các vấn đề liên quan với các ví dụ cụ thể. Điều này biến mã màu đỏ sẽ không biên dịch được trong Kotlin 1.9 trên giao diện người dùng cũ thành mã màu xanh sẽ biên dịch được trong Kotlin 2.0, đây là một khía cạnh định nghĩa của tính năng ngôn ngữ Kotlin mới. Tuy nhiên, đây chỉ là một tác động phụ của kiến trúc biên dịch mới.

Ngoài ra, chúng tôi đã sửa một số lỗi lâu đời và không tránh được, một số sửa đổi có thể làm hỏng mã mà vô tình đã tin cậy vào hành vi của trình biên dịch không chính xác. Chúng tôi đã nghiên cứu kỹ lưỡng tác động của tất cả các thay đổi về hành vi giữa giao diện người dùng K2 cũ và mới và nỗ lực để tái tạo hành vi cũ khi có thể, ngay cả khi chúng tôi không thích nó, nếu nó có thể ảnh hưởng đến một số lượng lớn người dùng Kotlin.

Chúng tôi cam kết giảm thiểu tác động khi chuyển mã của bạn từ Kotlin 1.9 sang Kotlin 2.0. Chúng tôi sẽ cập nhật quá trình ổn định hóa Kotlin 2.0 và cung cấp đủ thời gian cho bạn thử Kotlin 2.0 trên các dự án của mình trước để bạn có thể báo cáo bất kỳ sự suy giảm nào mà chúng tôi có thể đã bỏ qua trong quá trình thử nghiệm của mình. Công việc hiện tại của chúng tôi tập trung vào việc phát hành giao diện người dùng K2 dạng beta chất lượng cao vào cuối năm nay, bạn có thể theo dõi vấn đề lộ trình này.

Hỗ trợ IDE cho Kotlin 2.0 như thế nào?

Tiện ích Kotlin IDE được tích hợp vào các bản cập nhật của IntelliJ IDEA và Android Studio. Nó bao gồm một bản sao của giao diện người dùng Kotlin để phân tích ngữ nghĩa mã nguồn của bạn, nhưng đó không phải là phiên bản trình biên dịch Kotlin thực sự được sử dụng để biên dịch mã nguồn của bạn - phiên bản thực tế của trình biên dịch được xác định bởi các cài đặt trong tệp cấu hình xây dựng. Vì vậy, khi biên dịch mã nguồn của bạn với phiên bản ngôn ngữ Kotlin 2.0, bạn sẽ sử dụng giao diện người dùng mới và nhận được tất cả các lợi ích về hiệu suất của kiến trúc trình biên dịch mới. Tuy nhiên, IDE có thể vẫn sử dụng giao diện người dùng cũ để kiểm tra mã của bạn.

Để mang lại hiệu suất tốt cho bạn trong IDE với giao diện người dùng mới của trình biên dịch, chúng tôi đang viết một phiên bản hoàn toàn mới của tiện ích Kotlin IDE được xây dựng trên giao diện người dùng K2. Hiện tại, chúng tôi đang làm việc để công khai xem trước phiên bản mới này của tiện ích IDE Kotlin. Bạn có thể theo dõi vấn đề này để cập nhật thông tin.

Có gì đợi sau Kotlin 2.0?

Kiến trúc mới của giao diện người dùng trình biên dịch Kotlin 2.0 cho phép triển khai sạch sẽ nhiều tính năng mới thú vị. Một số tính năng đó, như người nhận ngữ cảnh KT-10468, đã có sẵn để xem trước trên giao diện người dùng cũ, nhưng chúng sẽ không được kích hoạt theo mặc định trong Kotlin 2.0. Thay vào đó, chúng sẽ tiếp tục ở giai đoạn xem trước. Sự ổn định của các tính năng mới sẽ diễn ra trong các phiên bản Kotlin 2.x trong tương lai, cùng với việc triển khai những điều mới khác chúng tôi đang định kế. Như thường lệ, chúng tôi sẽ chia sẻ thông tin cập nhật định kỳ về kế hoạch của chúng tôi qua lộ trình Kotlin.

Khi nào chúng ta sẽ có Kotlin 3.0? Chúng tôi vẫn chưa biết. Chúng tôi đang thảo luận dự kiến nhiều thay đổi lớn cho ngôn ngữ trong tương lai, đặc biệt là những yêu cầu phổ biến nhất từ cuộc khảo sát tính năng Kotlin trước đây. Chắc chắn có khả năng một số thay đổi này có thể đủ lớn để đòi hỏi số phiên bản Kotlin chính tiếp theo.

Bạn có thể giúp đỡ như thế nào?

Hãy thử giao diện người dùng trình biên dịch mới và gửi phản hồi cho chúng tôi! Bắt đầu từ Kotlin 1.8.20, bạn có thể kích hoạt xem trước phiên bản ngôn ngữ Kotlin 2.0 thông qua cờ phiên bản ngôn ngữ Kotlin thông thường.

Kích hoạt Bộ biên dịch Kotlin K2

Tìm hiểu thêm

The K2 Compiler Is Going Stable in Kotlin 2.0 Hình ảnh mô tả Bộ biên dịch K2 ổn định trong Kotlin 2.0

1