2012-02-27 28 views
31

Giống như nhiều người khác, tôi luôn luôn đúng rằng "Một trình biên dịch thuần túy sẽ không bao giờ tồn tại cho Ruby bởi vì ngôn ngữ quá linh động cho một trình biên dịch tĩnh hoạt động."Bất kỳ ai đã thử ngôn ngữ lập trình tinh thể (mã máy được biên dịch Ruby)?

Nhưng gần đây tôi stumbled khi những:

The Crystal programming language at GitHub

Statically compiled Ruby

Cả hai dự án dường như là rất thú vị. Chúng có thể cho chúng ta tốc độ của một ngôn ngữ được biên dịch tự nhiên (và mã được yêu cầu thương mại thường xuyên, mã hóa của ngôn ngữ được biên dịch) trong khi vẫn giữ tất cả (hoặc nhiều nhất) của sự thanh lịch và linh hoạt của Ruby. Thêm một thư viện hỗ trợ tốt (hoặc, nhiều khả năng, khả năng truy cập các thư viện C++ hiện có) và bạn có thể dễ dàng hiểu tại sao công cụ này lại có thể thú vị.

Có ai đã thử ngôn ngữ Crystal không? (Tôi chưa có, vì các vấn đề biên dịch với ruby-llvm)

Cảm giác của anh/cô ấy về nó là gì?

Bạn có nghĩ rằng, với những lựa chọn thiết kế đó, thực sự có thể phát triển trình biên dịch mã nguồn (mã máy) cho Ruby (với một nỗ lực hợp lý và trong một khoảng thời gian hợp lý) không? Có phải là có ý nghĩa?

+0

Trình biên dịch có thể không có ý nghĩa như thế nào nếu nó đúng? – Marcin

+1

Nó sẽ có ý nghĩa (đó là: _useful_) _to develop_ như một trình biên dịch, tất nhiên. Làm thế nào tôi có thể được như vậy ngốc để nghĩ rằng trình biên dịch _itself_ không thể có ý nghĩa (đó là: chính xác). – AlexBottoni

+0

Được biết, JRuby hoạt động nhanh như bất kỳ ứng dụng Java nào khác (trọng lượng cho trọng lượng). Tôi từng sử dụng Smalltalk, và nghĩ rằng đó là _slow_ ...Tuy nhiên, nó thực sự là IDE chúng tôi đã có đó là sự chậm trễ. Các mô-đun Smalltalk thực tế được sử dụng từ thời gian chạy C và C++. Điều tôi đang nói là các ngôn ngữ bí truyền có thể nhanh chóng; đó là mồ hôi 99% mà Edison đã đề cập. – will

Trả lời

38

Tôi là nhà phát triển tinh thể. Hiện tại không phải mọi thứ đều được thực hiện từ danh sách điểm có dấu đầu dòng. Trong thực tế các lớp học chỉ mới bắt đầu được thực hiện.

Tôi thực sự thích ý tưởng của nó. Nhưng tôi cần suy nghĩ thêm về cách thực hiện nó. Và tôi cũng cần thêm thời gian, hehe. Bài viết thứ hai có một cách tiếp cận hoàn toàn khác vì nó sẽ không giới thiệu một ngôn ngữ mới: nó sẽ cố gắng biên dịch một tập con của Ruby, hoặc có thể sẽ được biên dịch thành mã gốc nhưng vẫn cho phép một số động lực với chi phí hiệu năng (Tôi đã nói chuyện với tác giả của bài báo đó vài tháng trước).

Cảm giác của tôi đối với cả hai cách tiếp cận: Tôi thực sự có thể xảy ra. Chúng ta cần một ngôn ngữ nhanh với một cú pháp, thư viện dễ sử dụng, dễ đọc, thanh lịch (giống như những gì Ruby cung cấp).

+3

Thật tuyệt vời nếu bạn làm việc đó. Tôi rất muốn tiếp tục mài và đánh bóng đá quý của mình và vận dụng chúng thẳng trên chính kính của CPU. –

+5

Nếu bạn muốn theo dõi sự phát triển của nó: http://github.com/manastech/crystal – asterite

12

Tôi là nhà phát triển của Foundry; bài viết thứ hai là của tôi.

Bài viết gần đây về cùng một chủ đề sẽ là "A language for embedded developers"; hoặc bạn cũng có thể theo dõi tiến độ phát triển bằng cách đăng ký tại foundry-lang.org.

Xin lưu ý rằng dự án của tôi là thương mại, (ít nhất là ban đầu) không phải là nguồn mở và chủ yếu tập trung vào phát triển nhúng. Bạn vẫn có thể sử dụng nó trên máy tính để bàn hoặc máy chủ, tất nhiên.

Tôi cũng là một trong những nhà bảo trì ruby-llvm; vui lòng báo cáo sự cố bạn gặp phải dưới dạng lỗi trên project page.

Các vấn đề liên quan