2013-07-26 28 views
18

Tôi đã tự hỏi nếu Scala có bất kỳ thuộc tính cụ thể mà làm cho nó vốn phụ thuộc vào JVM, hoặc nếu nó có thể được khả thi trên đầu trang của cái gì khác. Tôi có thể thấy cả tính phổ biến của JVM và các cải tiến liên tục, và khả năng tương tác giữa Java và Scala, là những lập luận mạnh mẽ cho lựa chọn chiến lược này. Tuy nhiên, tôi hiểu rằng vì lý do này, compromises được thực hiện trong thiết kế ngôn ngữ.Scala có liên quan mạnh đến JVM như thế nào?

Nếu ngày từ chối đến với JVM, liệu Scala có đi xuống với con tàu hay có thể có cuộc sống sau JVM không?

+3

những người dùng bình chọn để đóng Sẽ có bất kỳ ý kiến ​​về việc tại sao đây là một câu hỏi không phù hợp? – mitchus

+5

Tôi đã không bỏ phiếu để đóng bởi vì tôi tìm thấy câu hỏi cá nhân thú vị - nhưng, phải trung thực: đâu là vấn đề lập trình? Có lẽ phù hợp hơn cho các lập trình viên SE. – Ingo

+0

Tôi nhớ đọc akka sẽ chỉ hoạt động trên điểm phát sóng Oracle hoặc openJDK, nhưng không thể tìm thấy tham chiếu –

Trả lời

20

Đã có các dự án có Scala chạy trên .NET runtime (đã ngừng hoạt động, người đã làm việc trên số is improving the compiler backend for future versions of Scala) và LLVM (bị kẹt). Hơn nữa, có một số phụ trợ cho Scala -> Javascript (ví dụ: scala js), vì vậy tôi có thể nói rằng có thể tháo gỡ Scala khỏi JVM theo một nghĩa nào đó.

Đồng thời nhiều API Scala phụ thuộc vào API Java, nhiều tối ưu hóa và hoạt động bên trong được thực hiện liên quan đến JVM. Có một số cuộc thảo luận về danh sách gửi thư trên Scala không có JVM, Scala with it's own virtual machine v.v., ví dụ: this one, nhưng theo như tôi biết, báo cáo chính thức cũng hỗ trợ các JVM không chính thống (ví dụ: Avian) hơn là có thời gian chạy riêng. Bằng cách này, Scala có thể chạy trên iOS và Android (và PC của khóa học).

Như Simon Ochsenreither noted, Avian is not just yet-another JVM, nhưng đi kèm với một số ưu điểm vượt trội so với HotSpot:

  • Khả năng tạo bản địa, khép kín, mã nhị phân nhúng
  • Chạy trên iPhone, Android và ARM khác nhắm
  • AOT và biên dịch JIT đều được hỗ trợ đầy đủ
  • Hỗ trợ cho các cuộc gọi đuôi và tiếp tục
  • Một cơ sở mã dễ hiểu
  • trì Responsive
  • mở cho những cải tiến (các lớp học giá trị, chuyên môn hóa, vv)
+1

Scala đã chạy tốt trên Android. Và trong khi bây giờ. – pedrofurla

+2

@pedrofurla yep, đó là một lợi thế khác của việc dựa trên JVM theo cách –

+0

@ om-nom-nom Tôi đã viết lại một số phần của đoạn cuối, vui lòng kiểm tra, nếu tôi quản lý để lưu giữ tuyên bố của bạn – Beryllium

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