Groovy sẽ biến mất? [đóng cửa]


30

Tôi chắc chắn rằng câu hỏi này đã được hỏi nhiều lần. Tuy nhiên, tôi muốn hỏi lại với ý định tương lai của những ngôn ngữ này là gì.

Lần đầu tiên tôi được giới thiệu với Groovy và thực sự thích nó. Tôi cảm thấy cú pháp đơn giản hơn và nó gần gũi hơn với Java và tôi đã có thể nhanh chóng học Grails .

Sau đó là Scala và khung web hoạt động Nâng . Tôi vẫn đang học Scala và đôi khi tôi thấy cú pháp rất khó.

Tuy nhiên, tôi vẫn tự hỏi tương lai của Groovy là gì. Khi tác giả của Groovy nói rằng anh ta sẽ không bao giờ tạo ra Groovy nếu anh ta biết về Scala, thì điều đó khiến tôi tự hỏi liệu có một tương lai nào không. Tất nhiên Groovy đã đi một chặng đường dài và Grails được sử dụng ngày nay bởi nhiều công ty lớn.

Nếu ai đó nhìn vào Grails vs Lift ngày hôm nay, thì Grails sẽ là người chiến thắng rõ ràng. Nhiều công ty đang sử dụng nó. Nhưng cho tất cả mọi thứ tôi đã nói cho đến nay, tôi quan tâm để biết nếu một người nên đầu tư vào Groovy? Groovy sẽ biến mất và Scala là sự lựa chọn tốt hơn? Nếu CEO của BMW nói rằng anh ta lái một chiếc Mercedes thì người ta sẽ tự hỏi tại sao tất cả chúng ta cũng không nên lái xe Mercedes, phải không?

(Tôi hiểu nếu câu hỏi này thực sự rộng và có thể bị đóng. Tôi hy vọng sẽ biến nó thành một Wiki mở cho những người khác.)


1
Nếu ai đó nhìn vào Grails vs Lift ngày hôm nay, thì Grails sẽ là người chiến thắng rõ ràng. Nói ai?
Mahmoud Hossam

Tôi chỉ làm bằng sự nổi tiếng. Grails có x1000 người theo dõi và thang máy chỉ có x200ish trên stackoverflow.
Amir Raminfar

Có lẽ nâng dễ dàng hơn? có tài liệu tốt hơn? hoặc có lẽ Grails đã tồn tại lâu hơn thang máy?
Mahmoud Hossam

3
Sẽ công bằng hơn khi so sánh Grails với Scala + Play Framework. Play Framework cũng có thể được sử dụng với Java và được lấy cảm hứng từ Ruby on Rails.
Jonas

3
"Nếu ai đó nhìn vào Grails vs Lift ngày hôm nay, thì Grails sẽ là người chiến thắng rõ ràng" , bạn đã nói 2 năm trước, nhưng Chơi! 2 đã dễ dàng thay thế Nâng làm khung web hàng đầu dựa trên Scala và đi trước Grails (IMHO).
Vorg van Geir

Câu trả lời:


23

Tôi không nghĩ Groovy sẽ biến mất, bây giờ nó là một thực thể tự duy trì. Khung Grails được xây dựng xung quanh ngôn ngữ Groovy, đó là một lý do tốt để sống sót. Groovy có ứng dụng sát thủ của nó.

Tôi không nói Grails là dự án Groovy quan trọng duy nhất, Gradle cũng khá tốt. GORM thực sự tiện dụng. Gant là một cải tiến tốt đẹp so với Ant.

Không đề cập rằng Groovy / Grails hiện nằm dưới sự bảo trợ của SpringSource và họ cam kết với cả hai.

Nếu CEO của BMW nói rằng anh ta lái một chiếc Mercedes thì người ta sẽ tự hỏi tại sao tất cả chúng ta cũng không nên lái xe Mercedes, phải không?

Đoán xem James Gosling đã chọn gì?


Gradle không còn là nguồn mở nữa! _!
Ant's

1
Điều thực sự quan trọng là ngôn ngữ cốt lõi và đó là các thư viện cốt lõi. Bạn không thể làm bất cứ điều gì tốt hơn Groovy. Ngôn ngữ cốt lõi là dễ dàng và năng động, nó nhanh và các thư viện java như apache, v.v. tốt hơn so với các ngôn ngữ khác. Đó là ngôn ngữ tốt nhất xung quanh và vì nó sẽ không biến mất. Plugin và Grails không phải là vấn đề quan trọng - thế giới của các ngôn ngữ động như PHP đã biết những gì quan trọng (giống như tôi đã nói). Và có tomcat và jboss. Bây giờ hãy đi và kiểm tra Ruby, đó là một trò đùa! Nó tệ hơn .net! Bây giờ hãy đi và kiểm tra Python và tìm ra cách xử lý lỗi trong mã mạng.
Andrew Smith

Bạn nói đúng .. Gradle đang trở nên phổ biến hơn, sử dụng các tập lệnh Groovy ..
Bộ giải mã

6

Cũng như bình luận của @The Legend of 1982:

Groovy sẽ tiếp tục gắn bó vì đây là giải pháp thay thế động cho Java với cú pháp đủ gần với Java để cho phép nhiều nhà phát triển thực hiện chuyển đổi (hoặc ít nhất là nhúng vào nó).

  • Grails liên tục nằm trong top 2 khung công tác bất cứ khi nào Matt Raible thực hiện các biểu đồ / phân tích so sánh khung ngôn ngữ web JVM khổng lồ của mình. Có lẽ ông là phân tích đầy đủ nhất ngoài kia.

  • GPars là một lib / API đồng thời mới mang lại cho Groovy rất nhiều khả năng của Scala ở đó.

Vấn đề với tốc độ sẽ được cải thiện theo thời gian khi Groovy tìm ra cách sử dụng inv invocate và các thủ thuật biên dịch khác.


"Grails liên tục nằm trong 2 khung công tác hàng đầu" nhưng các phụ trợ dựa trên PHP không được coi là "khung", thậm chí đó là điều mà đại đa số các doanh nghiệp vẫn sử dụng.
Vorg van Geir

3

Groovy là một ngôn ngữ rất hay và được đánh giá thấp (thậm chí bởi chính người tạo ra nó, như bạn đã đề cập). Đối với tôi, vai trò của nó trong hệ sinh thái Java giống như vai trò của Lua trong hệ sinh thái thế giới C / C ++. Vâng, nó không nhanh như vậy nhưng tuy nhiên.

Tôi sẽ rất buồn nếu Groovy sẽ chết, nhưng lộ trình này thực sự cho chúng ta biết rằng nó không tệ đến thế.

Thật ra, Groovy rất đẹp, gọn gàng, ngôn ngữ biểu cảm. Đối với Scala, tôi tin rằng Groovy và Scala chỉ ở những ngóc ngách khác nhau.


3

Không đánh gục sự xuất sắc chung của Groovy hoặc thực sự là Ruby, nhưng, hơn 90% lưu lượng truy cập web là vào các trang web được viết bằng PHP hoặc một số khung hình Java.

Tôi không biết bạn đã lấy "Grails được sử dụng bởi nhiều công ty lớn", điều này khá giống với câu nói "tất cả 500 công ty may mắn sử dụng Python", điều này thực sự đúng, nhưng, họ không sử dụng python cho bất kỳ hoạt động kinh doanh quan trọng nào.

Họ có quyền không sử dụng Grails, Rails, v.v. chúng rất tuyệt cho các trang web nhỏ gọn, nhưng, chúng không có quy mô tốt. Ngoài ra, hầu hết các doanh nghiệp lớn đều có các hệ thống kết nối phức tạp và thách thức lớn khi xây dựng các ứng dụng web xoay quanh cách kết nối với tất cả các hệ thống khác cung cấp hoặc sử dụng dữ liệu của bạn - mã hóa theo quy ước không hoạt động trong không gian này.

Groovy đối thủ cạnh tranh chính của ngôn ngữ thực sự là JPython hoạt động trong không gian tội lỗi (Scripting trên JVM) và được sử dụng cho cùng một thứ (Kiểm tra tự động, xây dựng tự động, v.v.).


1
Nhìn xung quanh, không ai tôi biết sử dụng Groovy những ngày này và không có bất kỳ danh sách công việc Groovy nào được quảng cáo trong khu vực của tôi. Vì vậy, chắc chắn không tốt cho nó. Tôi chắc chắn rằng nó được sử dụng, nhưng nó không phải là một công nghệ chính thống ở đây.
Brian Knoblauch

1
@Brian Groovy vẫn là lựa chọn khả thi duy nhất nếu bạn cần sử dụng Grails. (Tho thừa nhận Grails đang ngày càng được thay thế bởi những người mới sạch hơn như Play! 2.)
Vorg van Geir

@James Đừng quên Eclipse như một kẻ giết người Groovy để viết kịch bản JVM, kiểm tra và xây dựng tự động, v.v.
Vorg van Geir

Tôi đã chạy qua một cửa hàng địa phương bằng Groovy ngay bây giờ! Tuy nhiên, tôi vẫn chưa gặp ai sử dụng Grails.
Brian Knoblauch

2

Hiệu năng của Groovy 2.0 đưa Groovy bây giờ trở thành một giải đấu rất gần với Java, xem http://java.dzone.com/articles/groovy-20-performance-compared Điểm chuẩn trong bài viết này rất rất thô, nhưng tôi hiện đang làm việc trên một điểm chuẩn mới cho Groovy 2.1 dựa trên tiêu chuẩn của Robert Hundt (https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf) để so sánh hiệu suất của Google Go với các ngôn ngữ khác. Tôi cần 2-3 tuần cho đến khi tôi hoàn thành việc viết bài báo, nhưng các phép đo trông rất tốt cho đến nay. Groovy2.1 với @CompileStatic và JDK7 có hiệu năng tương đương với Java với JDK6 (!).

Tôi nghĩ Groovy sẽ cạnh tranh nhiều hơn với Kotlin và có thể là Ceylon hơn là với Scala. Scala là một ngôn ngữ nghiên cứu học thuật (mặc dù là một ngôn ngữ rất thú vị) và không phải là ngôn ngữ để thực hiện công việc như Groovy và Kotlin. Nếu bạn chỉ đơn giản là thiếu mixins, các phương thức mở rộng, các bao đóng thực sự và những thứ trong Java thì đó là một bước tiến lớn mà bạn phải thực hiện để có được điều này. Cú pháp của Groovy rất gần với Java, được cho là một điểm bán hàng thực sự so với Kotlin.


4
Tôi xin không đồng ý về việc Scala học tập. Nó thực sự rất năng suất và hữu ích, và hiện đang được sử dụng trong nhiều tổ chức tài chính, trên Linkedin, Twitter, v.v. Tôi thực sự đã thử cả Scala và Groovy tại nơi tôi làm việc và tôi sẽ không bao giờ chọn Groovy cho các dự án vượt qua ngưỡng phức tạp nhẹ.
Andrea

1
Mới tuần trước, một lỗi nghiêm trọng trong chế độ biên dịch tĩnh Groovy 2.1 đã xuất hiện. Bạn có thể nhận được tốc độ với các lỗi (ví dụ Groovy tĩnh) hoặc bạn có thể có được độ tin cậy nhưng slooooooow (tức là Groovy được biên dịch động), nhưng bạn không thể có được cả tốc độ VÀ độ tin cậy. Ngôn ngữ lập trình hiệu ứng lượng tử không sử dụng cho bất cứ ai.
Vorg van Geir

1
Groovy là một ngôn ngữ được đặt lên trên Java (nghĩa là thêm một số tính năng cho Java). Các hệ thống khá phức tạp đã được xây dựng với Java. Vì vậy, tôi không nghĩ rằng bạn cần một ngôn ngữ rất phức tạp để viết các ứng dụng phức tạp. Tôi đã thêm một số lỗi trình biên dịch Groovy vào cơ sở lỗi của Groovy và tôi tin rằng Scala có trình biên dịch chất lượng tốt hơn. Nhưng tôi không nghĩ bạn cần Scala vì ứng dụng này đòi hỏi khắt khe. Giải pháp là trong thiết kế và chuyên môn của lĩnh vực vấn đề, không nhiều về ngôn ngữ.
OlliP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.