2009-03-18 33 views
8

Ngôn ngữ kịch bản ưa thích của bạn trong thế giới java (ngôn ngữ kịch bản trên JVM) và cách thức là gì? Khi nào bạn thích ngôn ngữ kịch bản của bạn hơn java (trong những tình huống ví dụ cho prototyping)? Bạn có sử dụng nó cho các dự án lớn hoặc cho các dự án cá nhân không?Ngôn ngữ kịch bản ưa thích của bạn trong thế giới java (ngôn ngữ kịch bản trên JVM) và cách thức là gì?

Trả lời

4

Yêu thích của tôi là Jython và tôi sử dụng nó bằng cách nhúng trình thông dịch Jython vào ứng dụng Java của tôi. Nó đang được sử dụng trong các dự án thương mại, và nó cho phép dễ dàng tùy chỉnh ứng dụng theo nhu cầu của khách hàng mà không cần phải biên dịch bất cứ thứ gì. Chỉ cần gửi cho họ kịch bản, và đó là nó. Một số khách hàng thậm chí có thể tùy chỉnh ứng dụng của họ.

3

Tôi có thể thích Scala, nhưng tôi không thể nói, vẫn đang học. Tại thời điểm sử dụng Groovy để viết các chương trình tiện ích nhỏ. Chưa thử Groovy trên Grails. Nghe rất nhiều tốt về Lift Framework for Scala là tốt.

+0

Tôi là một fan hâm mộ Scala trong một thời gian (không có ý định xúc phạm, nó hướng vào bản thân mình, không phải bạn) nhưng tôi thấy mình khó chịu bởi những lời khuyên liên quan đến các loại và cú pháp hơi phức tạp của nó. Nó cảm thấy như một ngôn ngữ với quá nhiều bồn rửa nhà bếp bắt vít vào. Tôi thấy Clojure thoải mái hơn. Tất nhiên, số dặm của mọi người có thể thay đổi. –

3

JavaScript Tê giác có lợi thế hấp dẫn - đó là included with the JDK. Điều đó đang được nói, các phiên bản sau của Rhino hơn là phiên bản của Java 6 có các tính năng đẹp như generators, array comprehensions, and destructuring assignment.

Tôi ưu tiên sử dụng nó bất cứ khi nào buổi lễ xử lý các ngoại lệ Java làm xáo trộn mã không có lợi ích thực sự. Tôi cũng sử dụng nó khi tôi muốn viết một kịch bản lệnh dòng lệnh đơn giản để tận dụng các thư viện Java.

4

Tôi đã sử dụng thành công Groovy trong một dự án thương mại. Tôi thích ngôn ngữ kịch bản vì gõ vịt và đóng cửa:

def results = [] 
def min = 5 
db.select(sql) { row -> 
    if (row.value > min) 
     results << row; 
} 

dịch: Chạy một truy vấn SQL chống lại cơ sở dữ liệu và thêm tất cả các hàng nơi cột "giá trị" lớn hơn "min" đến "kết quả". Lưu ý cách dễ dàng bạn có thể chuyển dữ liệu đến "vòng lặp" bên trong hoặc nhận kết quả từ đó. Và vâng, tôi biết rằng tôi có thể đạt được điều tương tự với SQL:

def results = [] 
def min = 5 
db.select(sql, min) { row -> 
    results << row; 
} 

(chỉ cần tưởng tượng rằng chuỗi trong "sql" có "?" Ở đúng nơi).

IMHO, sử dụng DB có ngôn ngữ không cung cấp các hoạt động danh sách phong phú (sắp xếp, lọc, biến đổi) và đóng cửa chỉ làm ví dụ cách bạn không được làm.

Tôi muốn sử dụng Jython nhiều hơn nhưng công việc trên Jython 2.5 đã bắt đầu chỉ gần đây và Python 2.2 mới quá cũ cho mục đích của tôi.

+0

Không chỉ bạn có thể đạt được điều tương tự với SQL, nó sẽ hiệu quả và dễ đọc hơn nếu bạn đã làm ... –

+1

... và tôi sẽ không có một ví dụ đơn giản phù hợp với năm dòng và mọi người ở đây có thể hiểu mà không có 10 dòng giải thích. Tâm trí ý định, thưa ngài. –

3

Java. Nghiêm túc. Đó là một ngôn ngữ mạnh mẽ, dễ sử dụng (nếu một tad tiết) mà mọi người đều biết. Việc tích hợp với Java là rất tốt.

1

Công ty tôi làm việc để nhúng Groovy vào trang web Java/Spring, được triển khai trên một số trang web. Các kịch bản được lưu trữ bên ngoài tệp tin WAR đã biên dịch và cho phép chúng ta thao tác một số logic của trang web mà không cần phải tung ra các WAR mới cho mỗi trang. Cho đến nay, cách tiếp cận này đã làm việc rất thanh lịch với chúng tôi.

Một tính năng đặc biệt hay của Groovy là nó có thể gần giống với mã Java, điều này làm cho việc chuyển các lớp Java hiện có trở nên rất dễ dàng.

1

Làm thế nào về SISC (Intepreter thứ hai của mã chương trình)?

REF: http://sisc-scheme.org/

+0

+1 để chỉ ngôn ngữ này ra ngoài. Trông rất tuyệt, đặc biệt nếu bạn là một chuyên gia Đề án dày dạn không muốn chuyển sang Clojure. –

6

Đối với tôi, Clojure thắng tay xuống.Là một Lisp, nó ngắn gọn và tự động gõ, nó có sức mạnh biểu cảm to lớn để tôi có thể viết rất nhiều chức năng trong một vài dòng. Và sự tích hợp của nó với Java là vượt trội – Tôi chỉ nói một phần khi tôi nói Clojure tương thích hơn với Java so với Java. Kết quả là, toàn bộ bề rộng của các thư viện Java, cả từ JDK và bên thứ 3, hoàn toàn có thể sử dụng được.

Cuối cùng, với một chút chăm sóc, mã Clojure có thể nhanh bằng mã Java, vì vậy tôi thậm chí không mất hiệu suất.

+2

+1 - như Stuart Halloway đã chỉ ra: Clojure là một Java tốt hơn so với Java. – wlangstroth

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