Pha lê 0.34.0 đã phát hành

Một phiên bản mới của Crystal đã được phát hành, một ngôn ngữ lập trình được biên dịch với cú pháp Ruby, các tính năng chính của nó là thời gian chạy với vòng lặp sự kiện “tích hợp sẵn”, trong đó tất cả các hoạt động I/O đều không đồng bộ, hỗ trợ đa luồng (miễn là vì nó được kích hoạt bằng cờ trong quá trình biên dịch) và thao tác cực kỳ đơn giản và thuận tiện với các thư viện trong C.

Bắt đầu với phiên bản 0.34.0, ngôn ngữ chính thức bắt đầu chuyển sang bản phát hành thực sự đầu tiên (tức là phiên bản 1.0).

Phiên bản mới của Crystal bao gồm những thay đổi và cải tiến sau theo thứ tự quan trọng:

  • Thư viện ghi nhật ký mới đã được thêm vào API Khúc gỗ, không giống như cái cũ, có thể gửi tin nhắn đến các chương trình phụ trợ khác nhau và lọc các tin nhắn này khác nhau tùy thuộc vào “nguồn”.

  • Những nguyên tắc cơ bản từ thế giới phát triển C, sai и WinLỗi, được sử dụng cho các nguyên hàm I/O, đang trở thành quá khứ nhờ hệ thống phân cấp ngoại lệ Lỗi IO (tuy nhiên chưa có ai cấm sử dụng Errno).

  • Đã loại bỏ sự thay thế tự động của else nil khỏi toán tử trường hợp/khi nào/nếu không. Điều này được thực hiện để ngăn nhà phát triển vô tình bỏ qua một trong các nhánh. khi nào khi khớp với các trường hợp xác định như enum và chuyển qua các loại từ Union. Nghĩa là, nói một cách đơn giản, mã này sẽ không còn hoạt động nếu không chỉ định thêm một mã nào nữa. khi nào (khi Char) hoặc nhiệm vụ khác-các nhánh:

a = 1 || 'x' || "foo"
trường hợp một
khi Int32
#…
khi chuỗi
#…
cuối

  • Tùy chọn trình biên dịch vô hiệu hóa_overflow không còn hiệu lực. Đối với các thao tác tràn, hãy sử dụng các phương thức &+, &-, &*.

  • Mảng#điền bây giờ bay nhanh hơn một viên đạn nhờ thay thế vòng lặp ngu ngốc bằng một bộ nhớ đơn giản;

  • Người quản lý các phân đoạn (gói), được gọi một cách nghịch lý là, mảnh vỡ, hiện sử dụng thuật toán thỏa mãn sự phụ thuộc Molinillo nhanh hơn và hiệu quả hơn có trong CocoaPods (Swift) và Builder (Ruby).

  • Đã thêm hỗ trợ LLVM 10, về mặt lý thuyết sẽ giúp chúng ta tăng năng suất, độ ổn định, v.v.

... và nhiều cải tiến khác, theo ý kiến ​​chủ quan của tôi, ít đáng kể hơn.

Tôi muốn lưu ý rằng Crystal là ngôn ngữ được xây dựng trên LLVM, cho phép bạn viết các ứng dụng đôi khi nhanh hơn, đơn giản hơn và chính xác hơn so với các “người anh em” được giải thích của nó, đồng thời nhận được một hệ nhị phân khá nhanh. So với Golang, nó nổi bật nhờ OOP hoàn toàn chính thức, hỗ trợ cho generics và cú pháp rất đơn giản và dễ hiểu. Mục đích của nó phần lớn tương tự như Nim, nhưng đồng thời nó tập trung rõ ràng vào việc sử dụng thực tế “ở đây và ngay bây giờ”, nhờ đó nó có trong kho vũ khí API của mình nhiều công cụ chất lượng cao, tiện lợi và được ghi chép đầy đủ, được hỗ trợ bởi nhà phát triển ngôn ngữ và do đó rất ổn định.

Nguồn: linux.org.ru

Thêm một lời nhận xét