EVE Online bắt đầu chuyển codebase khổng lồ sang Python 3

EVE Online đang nâng cấp 2,4 triệu dòng code sang Python 3 sau 16 năm dùng đúng một phiên bản ngôn ngữ.
CCP Games vừa thông báo tựa game MMO vũ trụ này đang dần chia tay Stackless Python 2.7 — phiên bản ra mắt từ năm 2010 và đã chính thức ngừng hỗ trợ vào năm 2020. Đội ngũ phát triển đã bắt đầu Giai đoạn 1 của chiến dịch di chuyển nhiều bước, dùng các công cụ tự động như Python-Future để chuẩn bị cho tập code hiện tại tương thích với Python 3.
Tại sao lại quan trọng: Tiếp tục bám lấy các công cụ không còn được hỗ trợ chỉ làm tốn thời gian của kỹ sư — nguồn lực lẽ ra dành cho việc ra mắt tính năng mới. Chuyển sang Python 3 giúp các nhà phát triển sở hữu các công cụ phân tích (profiler) hiện đại hơn, tốc độ thực thi nhanh hơn và xử lý chuỗi gọn gàng hơn. Nhờ đó, một tựa game 23 tuổi vẫn được bảo trì tốt mà không làm gián đoạn thời gian vận hành 23,75 giờ mỗi ngày.
Cần biết: Sửa lỗi cú pháp chỉ là bước đầu. Lần quét trình biên dịch đầu tiên cho thấy 95,9% trong khoảng 20.000 file Python của EVE đã biên dịch thành công trên Python 3. Chỉ còn khoảng 3.300 dòng code bị nghẽn do chứa các kiểu dữ liệu cũ như 123L. Thử thách khó hơn nằm ở Giai đoạn 2: rà soát khoảng 20.000 dòng code chạy được ở cả hai phiên bản nhưng lại cho ra kết quả khác nhau. Ví dụ, phép chia số nguyên 1 / 2 trả về 0 ở Python 2, nhưng lại ra 0.5 ở Python 3. Vì các phép tính này quyết định từ chỉ số sát thương, tọa độ, cho đến tiền ISK của người chơi, các kỹ sư phải kiểm tra thủ công từng dòng một.
Nếu các kỹ sư thành công, cuộc di chuyển code lớn nhất lịch sử EVE sẽ diễn ra hoàn toàn "tàng hình" trong mắt người chơi.
Nguồn
- EVE Online Dev Blog — https://www.eveonline.com/news/view/the-move-to-python-3-begins
- Hacker News Discussion — https://news.ycombinator.com/item?id=49433328

