Từ những gì I gather, Gosu chỉ đơn giản là C# cho JVM (đó là một điều tốt). Có đúng không? Một số khác biệt giữa Gosu và C# (Ngoại trừ thư viện lớp và thực tế nó chạy trên JVM) là gì?Có phải Gosu C# dành cho JVM không?
Trả lời
số Nếu bạn nhìn vào trang "khác biệt đáng chú ý" (sự khác nhau giữa Java và Gosu), bạn sẽ thấy rất nhiều thứ mà là như C#, nhưng cũng có những thứ mà không trong C# như thế như trường hợp-insensitivity và làm cho dấu chấm phẩy tùy chọn. Ngoài ra còn có những điều mà chắc chắn không được đề cập nhưng đó là một phần của C#:
- kiểu giá trị Tuỳ chỉnh
- điều hành quá tải
- LINQ
- động gõ nơi cần
Tôi nghĩ sẽ là một sai lầm khi coi Gosu là "C# cho JVM" chứ không phải là "một ngôn ngữ JVM kết hợp các bit của Java, bit của C# và một số bit từ các ngôn ngữ khác nữa".
Chúng tôi đã không xây dựng Gosu thành một ngôn ngữ hoặc ngôn ngữ khác cho JVM. Thay vào đó, chúng tôi đã xây dựng Gosu thành một ngôn ngữ hữu ích hữu ích cho JVM. Ngoài ra, chúng tôi nhận thấy rằng Gosu cần phải quen thuộc với vô số những lập trình viên hiện có, những người cảm thấy thoải mái nhất với mô hình bắt buộc, hướng đối tượng. Để đạt được điều đó, chúng tôi mượn rất nhiều từ một số ngôn ngữ, ví dụ: Java, C#, EcmaScript, Ruby và một số ngôn ngữ khác. Kết quả, chúng tôi nghĩ, là một ngôn ngữ được định vị duy nhất trên JVM.
Điều hoàn toàn độc đáo về Gosu, tuy nhiên, là loại hệ thống mở.
Hệ thống loại của Gosu bao gồm cấu hình số trình tải loại. Trách nhiệm chính của trình tải loại là giải quyết tên kiểu trong miền của nó và trả về việc triển khai giao diện IType của Gosu. Đây là điều độc đáo nhất về Gosu - hệ thống kiểu của nó là mở cho các miền khác để tham gia với đại diện hạng nhất. Tôi thường xuyên sử dụng thuật ngữ, DST (Loại tên miền cụ thể), để vượt qua ý tưởng. Ví dụ, Gosu không phân biệt đối xử giữa một lớp Gosu một lớp Java hoặc loại XML hoặc những gì có bạn; tất cả chúng đều chỉ là kiểu trình biên dịch của Gosu. Hãy xem DynamicType example trong phần tải xuống để có cái nhìn thoáng qua về sức mạnh và bề rộng mà hệ thống kiểu mở cung cấp. Về cơ bản, ví dụ này chứng minh rằng các kiểu động của C# khi có yêu cầu có thể chỉ đơn giản là một miền trình nạp kiểu mới trong Gosu. Hoặc kiểm tra khung công tác Ronin để xem cách dễ dàng các miền web và cơ sở dữ liệu có thể ánh xạ liền mạch với Gosu.
Điều quan trọng là phải hiểu rằng không phải tất cả các tên miền của trình nạp loại trong Gosu đều được yêu cầu để tạo ra bytecode. Những người thực hiện một giao diện để nhận được ở lớp Java tương ứng. Những người không cung cấp trình xử lý cuộc gọi và người truy cập thuộc tính để đánh giá phản hồi MethodInfo và PropertyInfo tương ứng. Lưu ý tất cả các loại cung cấp TypeInfo, xem IType.getTypeInfo(). Ví dụ, trình phân tích cú pháp hoạt động dựa vào các kiểu trừu tượng TypeInfo, MethodInfo, vv như là một phương tiện cho một sân chơi bình đẳng giữa các loại khác nhau. Tuy nhiên, trong thời gian chạy, trừ khi một kiểu cung cấp một lớp bytecode Java, MethodInfos và PropertyInfos cũng chịu trách nhiệm xử lý các cuộc gọi.
Tôi đã xem tài liệu tham khảo về Gosu như một ngôn ngữ được sử dụng cho trò chơi; là Gosu giống như được sử dụng bởi ngành công nghiệp bảo hiểm, hoặc không có kết nối? –
Không, tham chiếu "Gosu" trong các chủ đề trò chơi không liên quan gì đến ngôn ngữ lập trình Gosu. –
- 1. OCaml dành cho JVM. Có cái gì không?
- 2. Có phải "dành cho mỗi" Microsoft cụ thể không?
- 3. Bootstrap: Lớp dành cho lề phải không?
- 4. Có phải MEF OSGi dành cho .NET không?
- 5. Đo thời gian dành cho GC trong JVM
- 6. Biên dịch C++ cho JVM
- 7. Java không có JVM
- 8. Có phải là từ khóa dành riêng không?
- 9. Java: Các lõi có sẵn cho JVM?
- 10. JVM OpenJDK có giống JVM Java Java SE không?
- 11. đây có phải là điểm dành cho ống kính chức năng trong javascript không?
- 12. Có sự khác biệt nào cho Integer.MAX_VALUE giữa JVM 32 bit và JVM 64 bit không?
- 13. Trình bao bọc C++ dành cho ncurses?
- 14. Maven có phải là bắt buộc đối với Clojure trên JVM không?
- 15. Có API YouTube RESTful dành cho iOS không?
- 16. C++ IDE dành cho OS X
- 17. Trình biên dịch C dành cho Windows?
- 18. Thư viện chuẩn dành cho người lớn cho C
- 19. GQL chỉ dành cho các dự án Python chứ không phải cho java?
- 20. chuyển chỉ dành cho các biên giới trên di chuột, nhưng không phải cho nền
- 21. Tạo tệp .class cho JVM
- 22. Hướng dẫn C++ dành cho lập trình viên C có kinh nghiệm
- 23. SabreDAV dành cho .NET?
- 24. Có phải C# bằng tiếng Anh không?
- 25. JVM có hoán đổi vùng heap không?
- 26. Có hướng dẫn Perl dành cho kỹ sư Verilog không?
- 27. Không có trình điều khiển SVN dành cho Windows?
- 28. Có trình xem SVG Lite nào dành cho Android không?
- 29. Thư viện ngoại lệ cho C (không phải C++)
- 30. JVM có phải là trình biên dịch hay thông dịch viên không?
Quá tệ, tôi thích C# nhưng cần phải lập trình trên JVM. Cảm ơn. – ripper234
@ ripper234: Tại sao không thử Scala? – missingfaktor