Phát hành Ruby 2.0.0-p0

Đăng bởi Yusuke Endoh vào 24 Feb 2013

Chúng tôi vui mừng thông báo phát hành Ruby 2.0.0-p0.

Ruby 2.0.0 là bản phát hành ổn định đầu tiên của dòng Ruby 2.0, với nhiều tính năng mới và cải tiến để đáp ứng nhu cầu ngày càng đa dạng và mở rộng cho Ruby.

Hãy tận hưởng lập trình với Ruby 2.0.0!

Tải về

Ruby 2.0.0 là gì

Tính năng mới

Một số điểm nổi bật:

  • Tính năng cốt lõi của ngôn ngữ
    • Keyword arguments, mang lại sự linh hoạt cho thiết kế API
    • Module#prepend, một cách mới để mở rộng class
    • Literal %i, tạo mảng symbol một cách dễ dàng
    • __dir__, trả về tên thư mục của file đang được thực thi
    • Encoding mặc định UTF-8, giúp bỏ qua nhiều magic comment
  • Thư viện tích hợp
    • Enumerable#lazy và Enumerator::Lazy, cho luồng lazy (có thể vô hạn)
    • Enumerator#size và Range#size, cho việc đánh giá kích thước lazy
    • #to_h, quy ước mới cho việc chuyển đổi sang Hash
    • Onigmo, regexp engine mới (một fork của Oniguruma)
    • API xử lý ngoại lệ bất đồng bộ
  • Hỗ trợ debug
    • Hỗ trợ DTrace, cho phép chẩn đoán runtime trong môi trường production
    • TracePoint, API tracing được cải thiện
  • Cải thiện hiệu suất
    • Tối ưu GC bằng bitmap marking
    • Tối ưu Kernel#require giúp Rails khởi động rất nhanh
    • Tối ưu VM như method dispatch
    • Tối ưu phép toán Float

Ngoài ra, dù là tính năng thử nghiệm, 2.0.0 bao gồm Refinements, thêm một khái niệm mới vào tính module hóa của Ruby.

Xem thêm NEWS để biết nhiều tính năng, cải tiến và chi tiết hơn.

Tính tương thích

Chúng tôi cũng đã chú ý đến thiết kế 2.0.0 để nó tương thích với 1.9. Việc di chuyển từ 1.9 sang 2.0 sẽ dễ dàng hơn so với từ 1.8 sang 1.9. (Các điểm không tương thích đáng chú ý được mô tả sau.)

Thực tế, nhờ sự nỗ lực của các bên thứ ba, một số ứng dụng phổ biến như Rails và tDiary đã được báo cáo hoạt động trên phiên bản release candidate của 2.0.0.

Tài liệu

Chúng tôi cũng đã cải thiện tài liệu, điều mà nhiều rubyist đã yêu cầu. Chúng tôi đã thêm một lượng lớn rdoc cho các module và phương thức. 2.0.0 sẽ được tài liệu hóa khoảng 75% trong khi 1.9.3 chỉ khoảng 60%. Ngoài ra, chúng tôi đã thêm mô tả về cú pháp Ruby. Bạn có thể xem:

ri ruby:syntax

Tính ổn định

Lưu ý rằng không giống 1.9.0, 2.0.0 LÀ một bản phát hành ổn định, mặc dù số TEENY là 0. Tất cả tác giả thư viện được khuyến nghị mạnh mẽ hỗ trợ 2.0.0. Như đã nói ở trên, việc di chuyển từ 1.9 sang 2.0 sẽ tương đối dễ dàng.

Ruby 2.0.0 đã sẵn sàng cho sử dụng thực tế, và chắc chắn sẽ cải thiện cuộc sống Ruby của bạn.

Ghi chú

Bài giới thiệu

Dưới đây là một số bài giới thiệu về tính năng 2.0.0 từ bên thứ ba:

Các bài viết sau cũng hữu ích, nhưng đã lỗi thời liên quan đến refinement:

Ngoài ra, số mới nhất của "Rubyist Magazine" bao gồm một số bài viết được viết bởi chính các tác giả tính năng để giới thiệu một số tính năng mới của 2.0.0.

Mặc dù chúng được viết bằng tiếng Nhật, bản dịch tiếng Anh được lên kế hoạch trong tương lai.

Không tương thích

Có năm điểm không tương thích đáng chú ý mà chúng tôi biết:

  • Encoding mặc định cho các script ruby giờ là UTF-8 [#6679]. Một số người báo cáo rằng điều này ảnh hưởng đến các chương trình hiện có, chẳng hạn như một số chương trình benchmark trở nên rất chậm [ruby-dev:46547].
  • Iconv đã bị loại bỏ, trước đó đã bị deprecated khi M17N được giới thiệu trong ruby 1.9. Sử dụng String#encode, v.v. thay thế.
  • Có sự thay đổi ABI [ruby-core:48984]. Chúng tôi nghĩ rằng người dùng bình thường có thể/nên cài đặt lại các thư viện mở rộng. Bạn nên lưu ý: KHÔNG SAO CHÉP CÁC FILE .so HOẶC .bundle TỪ 1.9.
  • #lines, #chars, #codepoints, #bytes giờ trả về Array thay vì Enumerator [#6670]. Thay đổi này cho phép bạn tránh cách dùng phổ biến "lines.to_a". Sử dụng #each_line, v.v. để lấy Enumerator.
  • Object#inspect luôn trả về chuỗi dạng #<ClassName:0x…> thay vì ủy thác cho #to_s. [#2152]

Có một số điểm không tương thích nhỏ hơn. [ruby-core:49119]

Trạng thái của Refinements

Chúng tôi đã thêm tính năng gọi là Refinements, thêm một khái niệm mới vào tính module hóa của Ruby. Tuy nhiên, xin lưu ý rằng Refinements vẫn là tính năng thử nghiệm: chúng tôi có thể thay đổi đặc tả trong tương lai. Mặc dù vậy, chúng tôi muốn bạn thử nghiệm và cho chúng tôi ý kiến. Phản hồi của bạn sẽ giúp hoàn thiện tính năng thú vị này.

Lời cảm ơn

Rất nhiều người đã đóng góp cho 2.0.0. Ngay cả một lời cảm ơn không đầy đủ chỉ cho một vài phần đóng góp cũng đã quá lớn để chèn vào đây. Xin lỗi nhưng hãy cho phép tôi thêm liên kết đến trang cảm ơn đặc biệt.

Cảm ơn tất cả mọi người!

Tin mới nhất

Phát hành Ruby 4.0.0

Chúng tôi vui mừng thông báo phát hành Ruby 4.0.0. Ruby 4.0 giới thiệu “Ruby Box” và “ZJIT”, cùng nhiều cải tiến khác.

Đăng bởi naruse vào 25 Dec 2025

Diện mạo mới cho tài liệu Ruby

Tiếp theo việc thiết kế lại ruby-lang.org, chúng tôi có thêm tin vui để kỷ niệm 30 năm Ruby: docs.ruby-lang.org có diện mạo hoàn toàn...

Đăng bởi Stan Lo vào 23 Dec 2025

Thêm Tin...