2010-07-08 36 views
15

Hiện tại Scala chỉ chạy trên JVM, với việc triển khai lỗi thời cho CLR.Nền tảng trong tương lai của Scala là gì mà mọi người nên chuẩn bị cho?

Nhưng có một số tiếng nói hiện tại, rằng Microsoft quan tâm đến việc cấp vốn cho một cổng Scala cập nhật cho .NET.

Xem xét việc thiếu kế hoạch hoặc giám sát ở phía Oracle phải làm gì với Java/JVM/hệ sinh thái, nhà phát triển Scala có thể chuẩn bị như thế nào để cuối cùng không có nền tảng tốt để chạy Scala? Có bất kỳ kế hoạch nào để thực hiện một số "độc lập" của Scala VM trong tương lai hay không, điều này sẽ ánh xạ tính năng của Scala tới một số bytecode/VM, thay vì phải sống với tất cả các lỗi này trong các triển khai VM hiện tại. , các mảng covariant, chú thích lạ, không có đuôi cuộc gọi, vv)?

+0

Ngoài ra còn có các cuộc đàm phán về việc triển khai LLVM của Scala, nhưng tôi không biết chi tiết. – andreypopp

+9

Nếu câu hỏi liên quan đến khả năng của Java (và bằng cách mở rộng JVM) "biến mất", tôi muốn nói rằng có một cơ hội không đáng kể xảy ra. –

+0

Xem trang 33 tại đây: http://days2010.scala-lang.org/sites/days2010/files/15-0-M%20-%20Opening%20Talk%20-%20Martin%20Odersky.ppt – oluies

Trả lời

18

Đây là một quan điểm về VM:

Mặc dù không thực sự khoảnh khắc sáng nhất của Sun nếu bạn nhìn bức tranh toàn cảnh, tát giấy phép GPL trên JDK/điều có liên quan đã thực sự gây ra tình trạng tuyệt vời này, nơi nền tảng toàn JVM là hoàn toàn độc lập với Oracle. Ý tôi là, máy ảo không phải là gắn với Java, bộ thu gom rác không phải là gắn với Java và quan trọng nhất là lập trình viên Java không thực sự gắn với Java và do đó Oracle. Là một lập trình viên Java, tôi muốn nói rằng chúng tôi đã thắng - nếu Oracle quyết định từ chối mọi thứ trong thế giới Java với hy vọng lợi nhuận lớn hơn, chúng tôi có thể lấy VM và một ngôn ngữ hiện đại như Scala và để Larry Ellison đi thuyền hoàng hôn trên du thuyền của mình cho tất cả những gì chúng tôi quan tâm.

+3

Họ tát BSD vào mọi thứ? Tôi nghĩ đó là GPL. –

+2

Sssssorry! Tôi chắc chắn đã ra khỏi tâm trí của tôi. Chỉnh sửa để phù hợp với sự thật. – Esko

10

Triển khai hiện tại của Scala được tập trung rất nhiều vào JVM. Phần lớn trong thư viện Scala phụ thuộc vào các lớp trong thư viện chuẩn Java và các lớp Java cũng được tiếp xúc với các chương trình người dùng.

Nếu có các triển khai Scala trên các nền tảng khác như CLR hoặc LLVM, thì các chương trình được viết cho triển khai thực hiện theo định hướng Java hiện tại sẽ không tự động tương thích với các triển khai khác (trừ khi những triển khai đó thực hiện với độ dài lớn) để hỗ trợ các lớp có sẵn trong Java).

Tôi đồng ý với Randall rằng JVM sẽ không biến mất bất cứ lúc nào sớm; nó có lẽ là nền tảng máy ảo thành công và phổ biến nhất, được triển khai trên hàng tỷ thiết bị, từ các thẻ thông minh và thiết bị cầm tay đến các máy chủ lớn nhất. Thực tế, ngôn ngữ lập trình Java có thể biến mất sớm hơn nhiều so với bản thân JVM. Không có lý do gì để lo sợ sự biến mất của JVM trong tương lai gần.

Và ngay cả trong trường hợp không chắc chắn - nó có thực sự quan trọng không? Bạn vẫn có thể lập trình bằng ngôn ngữ lập trình yêu thích của bạn Scala, trên một trong các nền tảng khác.

+0

Scala đã có sẵn trên CLR, mặc dù phiên bản rất cũ (tôi nghĩ 1.4). Tôi đồng ý với nhận xét cuối cùng của ur rằng cho dù đó là JVM hay CLR, Scala sẽ có mặt ở đó. –

5

Tôi không lo lắng quá nhiều về cái chết của JVM do sự quản lý kém của Oracle, giống như Esko nói.

Hiện tại, tôi lo lắng về JVM theo một cách khác: JVM không được xây dựng làm nền tảng cho nhiều ngôn ngữ. Hầu hết các ngôn ngữ chạy trên JVM đều sử dụng tính năng nhập động và theo cách được giải phóng khỏi tính phức tạp của việc biên dịch sang bytecode.

Scala được biên dịch sang bytecode, và được xây dựng với JVM trong tâm trí của người đàn ông (Odersky), người đã viết trình biên dịch Java (1.1-1.4).Scala là ngôn ngữ duy nhất được viết bởi một người có kiến ​​thức thân mật về JVM, và chúng tôi không thực sự biết nó khó khăn như thế nào đối với anh ta để làm điều đó.

Tôi lo lắng rằng JVM cuối cùng sẽ trở nên phổ biến do thực tế rằng nó không phải là nền tảng đa ngôn ngữ để bắt đầu.

+1

Các kỹ sư làm việc trên JVM nhận thức rất nhiều rằng hỗ trợ cho các ngôn ngữ khác ngoài Java là rất quan trọng. Công việc đang được thực hiện cho Java 7 để thêm những thứ như bytecode 'invokedynamic' vào JVM để hỗ trợ tốt hơn các ngôn ngữ động. – Jesper

+2

Họ đã giới thiệu động lực học bởi vì họ sẽ không phải nghĩ nó sẽ tác động như thế nào đến Java, họ cần hiệu ứng tiếp thị chống lại .NET và DLR của nó và vì ngôn ngữ động không thực sự đe dọa đến vị trí của Java trong VM. Cam kết có vẻ khác biệt, theo ý kiến ​​của tôi ... – soc

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