2010-06-07 24 views
9
  1. Nhà phát triển có thể sử dụng Scala mà không biết Java không?
  2. Nhà phát triển có thể sử dụng Clojure mà không biết Java không?

Lưu ý: Ví dụ tôi là nhà phát triển C# và tôi sử dụng .NET mà không biết bất kỳ VB nào (Tất nhiên WF 4.0 sử dụng VB cho báo cáo, vì vậy tôi từ chối bất kỳ dự án nào liên quan đến WF 4.0 :)).Scala - Java =? (Hoặc Clojure - Java =?)

Tóm tắt I: Cảm ơn tất cả các câu trả lời của bạn. Bây giờ tôi có thể nói rằng người ta có thể sử dụng những ngôn ngữ này mà không biết Java (Ngôn ngữ). Bây giờ tôi có một câu hỏi khác: Làm thế nào để bắt đầu với hệ sinh thái Java (JVM)? Cơ sở tri thức mới bắt đầu, trung cấp và nâng cao (túi!) Là gì? Thành thật mà nói hệ sinh thái Java luôn là một chút bối rối với tôi, vì vậy sẽ rất hữu ích khi cung cấp một số "tài liệu tham khảo" và "hướng dẫn defacto" cho việc học (đường cong!) JVM. (OK! Tôi sẽ đăng nó dưới dạng một câu hỏi khác!)

+1

Tôi đã có nền Java nhưng thấy rằng bạn không thực sự cần nó cho Clojure cho đến khi bạn truy cập vào nội dung tương tác Java. Ngay cả tại thời điểm đó Java rất gần với C# mà tôi không nghĩ rằng bạn sẽ gặp rắc rối ... – mikera

+3

Scala - Java = Scalaz –

+0

Bạn có thể cung cấp liên kết đến câu hỏi mới không? – BenjaminJackman

Trả lời

14

Scala, và Clojure thậm chí nhiều hơn như vậy, là ngôn ngữ hoàn toàn khác với Java. Điều duy nhất họ có điểm chung là chúng chạy trên máy ảo Java. Bạn không cần phải biết ngôn ngữ lập trình Java để lập trình trong Scala hoặc Clojure. Tuy nhiên, sẽ hữu ích nếu bạn biết một vài điều về hệ sinh thái Java (máy ảo Java và môi trường thời gian chạy).

+0

Clojure đặc biệt dường như thu hút những người không biết bất kỳ Java. Leingingen làm cho mọi việc trở nên dễ dàng hơn nhiều so với trước đây, nhưng vẫn còn rất nhiều điều hữu ích sẽ giúp bạn tiết kiệm rất nhiều thời gian có sẵn cho bạn trong Java. – Bill

0

Scala là ngôn ngữ hoàn toàn khác với java. Vì vậy, có, tất nhiên bạn có thể sử dụng scala mà không biết java (nhưng tất nhiên bạn phải học scala trước). Mặc dù, biết java (hoặc bất kỳ ngôn ngữ OO) + một số ngôn ngữ chức năng làm cho nó dễ dàng hơn để hiểu scala.

3

Nói theo quan điểm của việc biết Java và Clojure (nhưng không phải Scala), bạn có thể sử dụng Clojure tốt mà không cần biết Java. Bạn có quyền truy cập vào ngôn ngữ cốt lõi, đó là đầy đủ tính năng và thư viện (ví dụ: clojure-contrib).

Tuy nhiên, một trong những lợi ích lớn của việc sử dụng Clojure (so với lisps khác) là truy cập vào các hệ sinh thái Java - thư viện, bộ dò lỗi, JVM vv

Vì vậy, có bạn có thể sử dụng một cách hiệu quả Clojure và tôi wouldn' Nếu thiếu kiến ​​thức Java cản trở bạn, nhưng bạn sẽ thêm vào túi thủ thuật nếu cuối cùng bạn bắt đầu học đủ Java để tận dụng lợi thế.

+0

Theo kinh nghiệm của tôi, thật dễ dàng khi có ai đó trải nghiệm trong C# để nhận Java và phó -versa, chúng rất giống nhau. Vì vậy, OP có thể có thể tận dụng C# kinh nghiệm rất nhiều trong việc chọn lên các thư viện Java ngay cả khi mục đích duy nhất là sử dụng chúng từ Clojure hoặc Scala. – mikera

3

Vâng, Clojure đã được chuyển đến CLR. Có lẽ sẽ dễ dàng hơn cả việc nhảy tới JVM vì bạn là một nhà phát triển .NET. :)

http://github.com/richhickey/clojure-clr

+2

Ngoài ra còn có Scala cho CLR, mặc dù nó đã không được duy trì rất tốt trong một thời gian. – Jesper

+0

mát mẻ, không biết rằng :) cũng bất cứ điều gì mà chạy trên JVM có khả năng có thể chạy trên CLR vì vậy không có lý do :) –

4

Chắc chắn bạn có thể. Ban đầu, bạn sẽ thiếu kiến ​​thức về thư viện chuẩn, nhưng đó không phải là vấn đề lớn khi bạn bắt đầu với một ngôn ngữ mới. Tuy nhiên, Clojure & Scala đặt trọng tâm vào Java interop và không cố gắng che giấu những thứ Java thô, vì vậy bạn có thể phải tìm hiểu thêm về Java (không phải ngôn ngữ - Nền tảng Java) tại một số thời điểm sử dụng tối đa ngôn ngữ và nền tảng cơ bản.

1

vâng, đó là tôi!

Đã không có nhiều vấn đề đối với tôi, ngoại trừ khi tôi cần một gui swing ngu ngốc đơn giản. thats khi tôi đã phải quay trở lại và xem xét java.

0

Bạn đã xem xét khả năng sử dụng f # chưa? nó hoạt động theo phong cách ML với một hệ thống kiểu phong phú (gần gũi hơn với scala hơn clojure sau đó) và nó được bao gồm out-of-the-box in.net

+0

Cảm ơn bạn đã đề cập đến F # và tôi đang sử dụng F # vui vẻ trong một số dự án. Vấn đề của tôi là một dự án mới - tất nhiên là ở giai đoạn đầu và có thể hoàn toàn bị bỏ rơi - sẽ được phát triển trên GAE (Và tôi không thích Python và đồng thời C# đủ Javaish - và một số mở rộng hấp dẫn hơn Java (đối với tôi) - vì vậy tôi đã nghe nói về Scala và đã đọc một số hướng dẫn và nó có vẻ/rất thực dụng và tuyệt vời). –

+0

jum nếu bạn đang lập trình chống lại gae tôi nghĩ rằng clojure có thêm tài liệu nổi trên internet (ít nhất tôi đã tìm thấy nhiều tài liệu tham khảo hơn: http://www.diigo.com/user/jneira/clojure%20appengine) – jneira