2010-01-03 36 views
29

Tôi đang cố gắng tìm ra mức độ phổ biến của scala và số lượng người dùng SO thực sự sử dụng nó tại nơi làm việc?Scala, java của tương lai (?)

+7

Tôi khuyên bạn nên đánh dấu "wiki cộng đồng" này, nếu không thì sẽ có cơ hội lớn để đóng "chủ quan và tranh luận". –

Trả lời

6

Không ai có một quả cầu pha lê, và ai đó có thể đưa ra một cái gì đó tốt hơn (hoặc một cái gì đó tồi tệ hơn với một thế lực đằng sau nó) bất cứ lúc nào.

Đã có rất nhiều bài viết, podcast, v.v Ở đây trên SO, tôi đề nghị bạn đọc: https://stackoverflow.com/questions/33744/is-scala-the-next-big-thing

Cá nhân, tôi nghĩ rằng Scala là đầy hứa hẹn, nhưng có thể không bao giờ thu hút đám đông. Rất nhiều việc sử dụng Java sản xuất ngày nay xoay quanh J2EE và tôi không thấy những người này đang chuyển đổi. Đối với người dùng không phải Java, nhiều ngôn ngữ được thiết lập hơn như Python có thể cung cấp tất cả các tính năng chức năng mà họ cần ngay cả với chi phí không sử dụng JVM.

+3

Tôi làm việc về phát triển Java EE và chúng tôi cần một ngôn ngữ Java tốt hơn. Chúng tôi không đi đến Scala hoặc Groovy do thiếu sự hỗ trợ của công ty/cộng đồng (một "cường quốc" trong lời nói của bạn). Việc ở trong JVM là điều bắt buộc, bởi vì chúng ta không thể thay thế một cách dễ dàng tất cả các mã hiện tại được phát triển trong Java. So với Scala, Python có vẻ không đầy đủ và được nhắm mục tiêu đến kịch bản hệ điều hành. Tôi đã thử Jython, JRuby, Groovy và Scala, và sự tích hợp Java tốt nhất đến từ Groovy và Scala. Nhưng Groovy không có vẻ chuyên nghiệp như Scala và Java, do thiếu các đặc tả chính thức. Vì vậy, tôi chỉ hy vọng tất cả chúng ta đi đến Scala. – fernacolo

2

Tôi đã nghe nói về Scala cách đây vài tháng và rất vui khi thấy "Java tốt hơn Java" cho JVM. Scala sửa một số vấn đề của Java với mã boilerplate khó chịu, thêm một số chương trình chức năng và hỗ trợ lập trình đồng thời. Nó có khả năng tương thích tốt (mặc dù không hoàn hảo) với các thư viện của Java, vì vậy tất cả các mã đó đều có sẵn ngay lập tức. Nó cũng có thể kết hợp Scala với Java và có thể là các ngôn ngữ JVM khác trong cùng một dự án.

Tôi đã cố gắng tìm hiểu Nâng (khung Web) và thấy rằng tôi không đủ thông minh để xử lý nó. Scala cú pháp là rất ngắn gọn và khó hiểu ở một số nơi (nơi Java là wordy) và có một số nhận được sử dụng để. Tôi đã viết một số dự án nhỏ và họ làm việc tốt; nhưng các dự án lớn hơn không có gì thú vị với sự hỗ trợ nửa đầy đủ của các plugin Eclipse có sẵn vào thời điểm đó.

Cá nhân, tôi đã từ bỏ Scala và chuyển sang Clojure, cung cấp nhiều lợi thế tương tự và nhiều hơn nữa (xin lỗi là chủ quan ở đây) "vui" để lập trình.


Kết luận cá nhân của tôi: Scala có rất nhiều tính năng được nhồi nhét vào nó, làm tăng đường cong học tập. Nó giống như sự phức tạp của C++ với cú pháp của Java và các cấu trúc FP của Ruby. Tôi nghĩ thật khó để thuyết phục ngành công nghiệp rằng Scala có những lợi thế đáng kể so với Java, đủ để biện minh cho các chi phí trong việc tái dụng cụ và đào tạo lại.

+0

Tương tự ở đây. Tôi đã rất vui mừng về Scala (và nó ** không * có nhiều điều để được vui mừng về), nhưng cuối cùng đã chuyển đến Clojure như là "điều tốt nhất tiếp theo" của tôi để làm việc với. –

+0

Thật tốt khi nghe tôi không đơn độc trong việc điên rồ - hay là lành mạnh! ;) –

4

Tôi mới bắt đầu làm việc với Scala và tôi bắt đầu thấy sự quan tâm nhiều hơn trong lĩnh vực tài chính.

Tôi hiện đang nhận được nhiều người hơn/đồng nghiệp thể hiện sự quan tâm đến điều này. Một số người đã yêu cầu tôi giữ chúng được đăng tải theo tiến độ của tôi. Tôi không thấy mức độ quan tâm tương tự trong Groovy (hoặc các ngôn ngữ JVM khác đăng chính Java).

Vì vậy, nó chắc chắn là ngôn ngữ Java de jour và tôi nghĩ rằng nó có nhiều động lực hơn bất kỳ thứ gì trước nó trong đấu trường Java. Làm thế nào điều này mang về phía trước là bất cứ ai đoán, tuy nhiên!

1

Tôi đã nghe nói về Scala trong một hội nghị gần đây (JavaEdge2009) và mọi người dường như hoàn toàn tin rằng Scala là một ngôn ngữ tuyệt vời. Bài phát biểu của hội nghị là tương lai của Java không chỉ là một ngôn ngữ lập trình JVM mới, mà là ngôn ngữ lập trình là tương lai của Java.Vì JDK 7 sẽ có hỗ trợ cho các ngôn ngữ động được tích hợp sẵn, các nhà tiên tri đang nói rằng bạn sẽ phát triển bằng ngôn ngữ của riêng bạn sau vài năm, (DSL - Ngôn ngữ cụ thể theo tên miền)

Về mặt thực tế, tôi đã tải xuống Scala Eclipse plugin và đã thất vọng. Thực tế là nhập khẩu tự động không hoạt động, đã vẽ đường cho tôi từ một ngôn ngữ thú vị đến một ngôn ngữ thực tế. Mặc dù nó có thể âm thanh một chút whiny, được yêu cầu như trong những ngày cổ đại để tự thêm nhập khẩu là quá nhiều đối với tôi.

+2

Bạn có thể thử IntelliJ IDEA v9, Ấn bản Cộng đồng. Nó là miễn phí và (tùy chọn) Scala plugin (cũng miễn phí) là nhiều, tốt hơn nhiều so với Eclipse. –

+0

Vâng, plugin Eclipse vẫn đang được phát triển. Đó không phải là lỗi của ngôn ngữ Scala, mặc dù. Chỉ có rất nhiều tình nguyện viên có trình độ ... –

+2

Nó không thực sự là một vấn đề phân công lỗi quá nhiều như vậy là một yêu cầu để sử dụng hiệu quả của ngôn ngữ. –

48

Tôi đã sử dụng Scala trong một năm nay tại nơi làm việc (công nghệ tài chính) và sẽ không muốn quay lại Java chút nào! Những điều đó liên quan tôi nhất khi ban xem xét sự di cư là:

  • Công cụ hỗ trợ (? Những gì là của IDE tương tự)
  • Interop với các thư viện Java hiện có và xây dựng công nghệ (ant, Spring, trong nội bộ bằng văn bản cụ)
  • Talent Pool (nơi nào tôi thấy các nhà phát triển scala tốt?)
  • chuyển thời gian (bao lâu trước khi tôi đang viết tốt scala?)

Tôi thấy rằng plugin scala của IDEA (cho bây giờ là free v9 Community Edition) là tuyệt vời: không hoàn toàn tốt bằng hỗ trợ công cụ của Java nhưng chắc chắn đủ tốt cho nhu cầu của chúng tôi. Nó có khả năng tái cấu trúc và gỡ lỗi cơ bản và làm nổi bật cú pháp tuyệt vời. Kinh nghiệm của tôi với Eclipse đã vô cùng đáng thất vọng: tôi đã hiểu rằng cải tiến tuyệt vời được mong đợi cho scala 2.8 nhưng tôi đã nhìn thấy một Eclipse-đêm gần đây và nó là, thẳng thắn, khủng khiếp.

Khả năng tương tác với Java là tỷ lệ đầu tiên - tôi không gặp phải vấn đề gì và vẫn sử dụng nhiều Spring và hệ thống xây dựng riêng biệt (dựa trên kiến ​​thức). Các nhà phát triển hồ bơi chỉ là một xem xét cho một công ty lớn với doanh thu nhân viên trung bình đến cao; nó đã không được một vấn đề đối với chúng tôi cho đến nay và người được phỏng vấn đã bày tỏ quan tâm đến việc sử dụng Scala anyway.

Có lẽ vấn đề lớn nhất là thời gian chuyển đổi. Tôi đã tìm thấy điều này là 2 tuần để có thể viết bất cứ điều gì hợp lý, 3 tháng để bắt đầu để thực sự "làm cho nó" và 6 tháng-1 năm để bắt đầu tận dụng lợi thế của các chức năng và DSL-bên của Scala. Vì vậy, những lợi ích thực sự lớn đối với tôi là gì?

  1. Loại suy luận và đồng và ngược sai xây dựng trong (mã là dễ đọc hơn và trực quan - Generics chỉ hoạt động, không giống như Java, nơi nó có thể cực kỳ đau đớn)
  2. chức năng phong cách lập trình và đóng cửa (mã là dễ đọc hơn và nhanh hơn để viết)
  3. thư viện diễn viên đồng thời (đơn giản hoá lập trình đồng thời vô cùng)

Vì vậy, để kết luận:

  • Scala có tốt không? - nó tuyệt vời
  • Có sẵn sàng cho thực doanh nghiệp sử dụng? - hiện tại có khá ít công cụ sử dụng nó, bao gồm Twitter, Sony và EDF
  • Lợi ích có đáng giá không? Có - hoàn toàn
+0

Tôi sẽ không quảng cáo rằng Twitter sử dụng nó ... không phải với sự nổi tiếng của Twitter. Tôi biết những gì cá voi Twitter thất bại là năm trước khi tôi thực sự tạo một tài khoản ở đó. – Powerlord

+1

Việc di chuyển Twitter của hàng đợi thông điệp từ Ruby sang Scala xảy ra trong 18 tháng qua tôi tin. Rất có thể việc di cư scala đã được thực hiện để giải quyết các vấn đề bạn đã quen thuộc. Tôi không phải là người dùng Twitter! –

+2

Tôi không có kiến ​​thức trực tiếp về hoàn cảnh, nhưng việc di chuyển Twitter sang Scala là để giải quyết các vấn đề cá voi thất bại và sau khi di chuyển Twitter giờ đây có thời gian hoạt động tốt hơn Facebook theo một số báo cáo gần đây. –

4

Tôi đã lập trình Java trong nhiều năm và Haskell và OCaml trong hai năm qua. Một vài tháng trước, tôi bắt đầu phát triển personal project ở Scala và thật tuyệt vời. Một hệ thống kiểu thực và tất cả các thư viện hỗ trợ Java.

Tính dễ trộn giữa Java và Scala có nghĩa là ngôn ngữ chắc chắn có tương lai. Chi phí chấp nhận cho một dự án Java hiện có rất thấp.

2

Không chắc liệu thông tin này có hữu ích hay không, nhưng tôi đang xây dựng một máy chủ trò chơi trực tuyến cho một công ty trò chơi thành công và được thành lập, sử dụng Scala và Project Darkstar.

Thiết kế của chúng tôi được quy mô để nửa triệu đến mười triệu người dùng (cảm ơn, Amazon EC2!), Và Scala cho tôi thêm sự tự tin vào mã của tôi vì năm lý do: 1. Tôi bắt nhiều thứ hơn vào thời gian biên dịch. 2. Thật dễ dàng để làm cho dữ liệu trò chơi của tôi không thay đổi được. 3. Mã cấp cao hơn có nghĩa là tôi ít có khả năng bị lỗi triển khai tầm thường. 4. Mã ngắn hơn, đơn giản giúp tôi dễ dàng xem xét và tìm lỗi hơn. Chuyển đổi ngầm định là một phần quan trọng của việc này. 5. Tôi hạnh phúc hơn khi viết mã (và Scala thường làm tôi hạnh phúc), công việc tốt hơn tôi làm.

Scala không phải là thuốc chữa bách bệnh, và nó có rất nhiều mụn cóc (cụ thể là thiếu bất kỳ công cụ hỗ trợ tuyệt vời nào) nhưng đó là ngôn ngữ hiệu quả nhất mà tôi có thể sử dụng cho mục đích này.

Khiếu nại duy nhất của tôi là tôi muốn nó có thể biên dịch thành bộ biên dịch macro hoặc macro, vì các hạn chế của JVM thường làm tôi mất (loại xóa, thiếu các loại ngăn xếp và mảng đối tượng giá trị).

Tôi không nghĩ rằng Scala là phổ biến được nêu ra, chuyển đổi 2,8 là woefully phía sau và đã tạo ra một rạn nứt trong cộng đồng, và sự hỗ trợ công cụ chỉ là không có. Nhưng nếu bạn là một coder cao bồi, những người không sợ lý thuyết loại đại số và thiếu tự động hoàn thành, thật khó để đi sai.

Nếu bạn quyết định sử dụng nó, hãy tự làm một việc rất lớn và mua sách của Odersky. Tôi đã cố gắng một lúc để viết mã trong Scala mà không có nó, và nó gần như không thể làm bất cứ điều gì "cách scala" (không phải là có sự đồng thuận về điều đó).

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