2010-02-12 31 views
11

Tôi đã kiểm tra Groovy một chút và tôi cảm thấy việc chuyển một chương trình Java sang Groovy từng chút một - lấy một lớp và biến nó thành một lớp Groovy, sau đó chuyển đổi các phương thức thành một chút tại một thời điểm - có thể là một cách tương đối lành mạnh để tận dụng một số tính năng ngôn ngữ Groovy. Tôi cũng sẽ làm các lớp mới trong Groovy.Thay thế Groovy cho Java Little By Little

Câu hỏi:

  1. Đây có phải là một cách hợp lý để chuyển đổi?
  2. Tôi có thể giữ tất cả các phương pháp công khai và các trường trong Java không? Groovy là "chỉ" một superset, phải không?
  3. Những thứ gì bạn sẽ không làm trong Groovy, nhưng thích Java hơn?

Trả lời

13

Đây có phải là cách hợp lý để chuyển đổi không?

Tôi có thể giữ tất cả các phương pháp công cộng của tôi và và các lĩnh vực trong Java? Groovy là "chỉ" một superset, phải không?

Hầu như một bộ siêu, nhưng không chính xác. Ví dụ, == trong Groovy gọi phương thức .equals, nhưng trong Java nó kiểm tra xem 2 tham chiếu có tham chiếu đến cùng một đối tượng hay không.Một ví dụ khác là Groovy không hỗ trợ cú pháp này để xây dựng mảng

Object[] objs = new Object[] { 1, 2, 4 } 

Một ví dụ cuối cùng là khi một phương pháp quá tải được gọi, Groovy sử dụng các loại thời gian chạy của các thông số khi lựa chọn phương pháp nào để gọi, trong khi Java sử dụng các kiểu tham số biên dịch thời gian. This page có danh sách khá khác biệt về sự khác biệt giữa hai ngôn ngữ.

Bạn sẽ không làm gì trong Groovy, nhưng thích Java hơn?

Tôi viết mọi thứ trong Groovy, vì tôi làm việc hiệu quả hơn nhiều với Groovy hơn Java và tôi rất thích lập trình Groovy nhiều hơn nữa. Tôi sẽ chỉ sử dụng Java nếu có một vấn đề hiệu suất với một số mã số AND Tôi có thể chứng minh rằng việc viết nó trong Java đã giải quyết được vấn đề. Trong thực tế, điều này chưa bao giờ thực sự xảy ra với tôi.

Cũng có thể có các lý do chính trị - xã hội để sử dụng Java, ví dụ: một số mã cần được duy trì bởi nhiều người, một số người không biết Groovy và không muốn học nó.

+0

Xin cảm ơn rất nhiều vì câu trả lời này, đặc biệt là phần cuối cùng. Tối ưu hóa sớm có lẽ là không tốt và một sự lãng phí thời gian lớn. Làm thế nào để bạn tìm thấy tự động hoàn thành trong Groovy (tốt, xấu, không quan tâm)? –

+0

Tự động điền trong IntelliJ là tốt. Thời gian qua tôi đã kiểm tra nó không đạt yêu cầu trong Eclipse/Netbeans, nhưng đó là khoảng 6 tháng trước và mọi thứ có thể đã được cải thiện kể từ đó. –

+0

Tôi đã kiểm tra tuần trước và nó không tốt lắm. Đặc biệt là điều tự động sửa lỗi trong Eclipse thật tuyệt vời (tạo một phương thức trong Class X?) Đã không xảy ra trong Groovy. Lý do tôi rất quan tâm đến vấn đề này là tôi làm việc trong Ruby với hầu như không có tự động hoàn thành (Netbeans) nhưng tôi nghĩ rằng nó có thể là Ruby là quá khó để có được quyền. Dù sao ... cảm ơn một lần nữa. tôi đã bắn lên intellij MIỄN PHÍ của tôi hôm nay, vì vậy tôi sẽ kiểm tra nó. –

4

Từ Wikipedia:

Hầu hết mã Java cũng là cú pháp hợp lệ Groovy.

Một số mã Groovy có vẻ như nó sẽ bằng ngôn ngữ Java, nhưng Groovy là không phải là một superset của Java. Tuy nhiên, chặn một số không tương thích, thường có thể đổi tên tệp .java thành một tệp .groovy và nó sẽ hoạt động. Groovy cho phép trình mã hóa loại bỏ một số thành phần mà được yêu cầu trong Java, do đó mã Groovy có thể nhỏ gọn hơn. Điều này làm cho đường cong học tập Groovy cho các nhà phát triển Java dần dần, vì họ có thể bắt đầu bằng cú pháp Java và dần dần tìm hiểu thêm các tính năng Groovy.

Đối với phần còn lại của câu hỏi của bạn, tôi nghĩ rằng đây có vẻ là một cách hợp lý để tiến bộ. Tôi sẽ cố gắng tập trung vào việc thay đổi các lớp liên quan để sử dụng Groovy cùng nhau, để tôi dễ dàng biết được các lớp nào sử dụng ngôn ngữ nào khi gán nhiệm vụ cho các nhà phát triển, những người có thể không biết cả hai ngôn ngữ.

+0

Thú vị, xử lý một số câu hỏi. Hoặc tất cả, có lẽ. –