JavaRush /Blog Java /Random-VI /Nghỉ giải lao #68. Một ý kiến trung thực về Java và hệ si...

Nghỉ giải lao #68. Một ý kiến trung thực về Java và hệ sinh thái của nó. Ba công cụ Java mới cần xem xét vào năm 2021

Xuất bản trong nhóm

Ý kiến ​​trung thực về Java và hệ sinh thái của nó

Nguồn: Dev.to Được rồi, tôi thừa nhận rằng ngôn ngữ chính của tôi là C#. Nhưng đây là ý kiến ​​khách quan của tôi về Java và hệ sinh thái xung quanh nó. Tôi đã sử dụng lệnh bash trong Java khá thường xuyên và nhận thấy tất cả những thiếu sót của nó. Ví dụ: Java không có thuộc tính, nó vốn không có sự kiện, không có cấu trúc, không nạp chồng toán tử và cho đến Java 10 không có suy luận nên không có 'var'. Mọi thứ đều có trong C#! Ngoài ra, tôi đã sử dụng bash cho Java do thiếu LINQ, var và enums. Tuy nhiên, tôi viết khá nhiều bằng Java, đặc biệt là khi tôi tạo ứng dụng cho Android cũng như cho những thứ khác. Dự án đầu tiên của tôi cũng là Java! Vì vậy, vào tối thứ Sáu, do cấp bách, tôi đã phải viết bằng Java trong vài giờ liền. Và đoán xem tôi đã khám phá ra điều gì? SUỐI! Nghỉ giải lao #68.  Một ý kiến ​​trung thực về Java và hệ sinh thái của nó.  Ba công cụ Java mới cần cân nhắc vào năm 2021 - 1Rõ ràng các chủ đề được giới thiệu Java 8! Và tôi không biết gì về nó! Dành cho những ai chưa biết, Streams là một triển khai Java của LINQ. Tôi cũng phát hiện ra rằng Java 10 có suy luận kiểu nên Java hiện có hàm var! Tôi không thể tin được kiến ​​thức của mình đã lỗi thời đến mức nào, nhưng thành thật mà nói, điều đó có lý do. Hai điều này đã tạo nên sự khác biệt lớn trong suy nghĩ của tôi! Bạn có biết rằng Java luôn kiểm tra các ngoại lệ, còn C# thì không? Tôi thừa nhận rằng tôi thực sự nhớ tính năng này trong C#! Vâng, không có cấu trúc, thuộc tính, v.v., nhưng chết tiệt, nó thật thanh lịch! Tôi nghĩ rằng thiết kế Java buộc nhà phát triển phải viết các ứng dụng mạnh mẽ hơn. Trong khi đó trong thế giới .NET, điều này phần lớn tùy thuộc vào quyết định của người lập trình. Một số nhà phát triển thích những hạn chế này, trong khi những người khác lại thích sự tự do. Mặc dù cả hai ngôn ngữ đều khá an toàn nhưng Java rõ ràng có lợi thế hơn một chút. Vậy tại sao các công ty lớn lại ưa chuộng Java? Tôi nghĩ bây giờ tôi đã biết câu trả lời! Điều làm tôi thất vọng nhất là... trong hầu hết các ví dụ mã bạn thấy trên internet, những tính năng nâng cao này không phải lúc nào cũng được sử dụng... Tôi nghĩ rằng nếu một nhà phát triển Java mới nhìn thấy 'var' được viết trên toàn bộ cơ sở mã , anh ấy sẽ phát điên mất! Còn các luồng thì sao? Luồng là gì? Các nhà phát triển Java yêu thích vòng lặp For! Trên thực tế, ngay cả vòng lặp foreach cũng khá hiếm trong thế giới Java (và có lẽ có lý do cho điều này: vòng lặp For được tối ưu hóa hơn nhiều). Nhưng đây không phải là những tính năng xấu! Tôi sẽ đi xa hơn và nói rằng những tính năng này thật tuyệt vời! Tôi thực sự cảm thấy khó chịu khi viết ứng dụng Android và nhận thấy rằng hầu như không nơi nào trong API Android sử dụng enum! Và điều này là công bằng vì Android đã được viết ra từ nhiều năm trước. Điều làm tôi khó chịu nhất là tôi phải sử dụng hằng số mỗi lần tôi cần sử dụng chức năng Hoạt động cho kết quả trong Android, như thế này: int PICK_IMAGE_FROM_GALLERY = 3000 Anh bạn, điều này thật điên rồ! Tuy nhiên, mọi người trên khắp thế giới đã chấp nhận nó. Và thậm chí cả tôi. Java cũng thiếu triển khai sự kiện gốc! Giá như nó có các sự kiện và đại biểu như C#... (Này, những người tạo ra ngôn ngữ Java, nếu các bạn đang đọc nội dung này, bạn cần thêm các sự kiện! Và nếu bạn đã có chúng hoặc đang làm việc, hãy cho tôi biết ). Bây giờ tôi sẽ cho bạn biết đâu là lỗ hổng lớn nhất trong hệ sinh thái Java. TÀI LIỆU!!! Tài liệu lộn xộn và không hữu ích trên trang web của Oracle trông ngu ngốc và lỗi thời ở mức độ năm 2007. Nó thậm chí không phải lúc nào cũng có ví dụ về mã. Nếu bạn bắt đầu tìm kiếm một tính năng hoặc phương thức API tương đối khác thường, bạn sẽ tìm thấy một định nghĩa, khai báo, đối số nhàm chán, nó thuộc về gói nào - và chỉ vậy thôi. Tôi nghĩ điều này thật vô lý. Bạn không nghĩ điều này là vô lý sao? Không có đoạn mã? Vì vậy, các nhà phát triển của chúng tôi phải phụ thuộc rất nhiều vào các diễn đàn như StackOverflow hoặc các trang web lập trình khác như TutorialsPoint... Đôi khi chúng thực sự hữu ích với các ví dụ mã hay hiển thị tính năng này, nhưng đôi khi chúng lại không hữu ích lắm. Tôi khuyên bạn nên so sánh tài liệu của Microsoft trong C# với tài liệu của Oracle trong Java... Trời và đất! Không tin tôi? Đi và kiểm tra: OracleMicrosoft. Tài liệu trên trang Microsoft trông rất đẹp! Họ thậm chí còn có chế độ tối! Các nhà phát triển của chúng tôi phát cuồng vì chế độ tối. Còn tài liệu của Oracle thì sao? Như tôi đã nói, nó vẫn là năm 2007. Có lẽ hồi đó không có chế độ tối? Vì vậy, tôi muốn nói rằng Java thật tuyệt vời! Nhưng ngôn ngữ này bị ảnh hưởng rất nhiều từ tài liệu lỗi thời. Đây hầu hết là các tài liệu cũ và hướng dẫn sử dụng cũ không làm nổi bật các tính năng mới rất cần thiết như chủ đề, vars và enum. Ngày nay mọi người nói rằng Java đang bắt đầu trở nên lỗi thời và sẽ bị thay thế bởi Kotlin, nhưng tôi không đồng ý. Bởi vì cho dù đây là sự thật thì anh cũng sẽ không thay thế được cô trong thời gian dài. Việc này sẽ mất rất nhiều năm. Bạn có nhớ rằng Scala cũng đã cố gắng thay thế nó không? Vậy điều gì đã xảy ra? Java vẫn thống trị toàn bộ hệ sinh thái JVM. Mặc dù tôi thừa nhận rằng Scala rất khác với Java, chủ yếu về chức năng. Bây giờ, cuối cùng... còn một điều nữa mang lại cho tôi nhiều cảm xúc hơn bất cứ thứ gì trong thế giới Java. Đây là nhận được JDK. Tại sao việc tải xuống JDK lại khó khăn đến vậy? Ý tôi là nếu tôi cần JDK, một tìm kiếm đơn giản trên Google sẽ đưa tôi đến trang web của Oracle, tôi đến đó và tìm phiên bản JDK mà tôi cần. Cho đến nay mọi thứ tương đối dễ dàng, nhưng để tải xuống, tôi cần phải đăng ký. Tại sao tôi lại tạo một tài khoản trên Oracle và sau đó xử lý email của họ hàng tuần thay vì chỉ tải xuống JDK? Hãy nhớ rằng Java là nguồn mở ngay từ ngày đầu! Không giống như C#, vốn chỉ mới trở thành nguồn mở gần đây vào năm 2015. Vì vậy, tôi đã chán nản và truy cập trang web thứ hai trong kết quả tìm kiếm của Google. Nó chỉ cho tôi trang OpenJDK. Tôi tìm thấy JDK ở đó và nhấp vào "tải xuống". Nhưng (ngạc nhiên thay!) Họ cung cấp liên kết đến việc triển khai JDK từ các trang web khác! Trong số các trang web có trang Oracle chết tiệt này, nhưng cũng có một liên kết đến trang Red Hat. Vâng, Red Hat thật tuyệt vời, nó là một trong những công ty tiên phong về nguồn mở trên thế giới. Được rồi, tôi sẽ vào trang web của họ! Tôi sẽ tải nó từ đó! Tôi nhấp vào liên kết này, tìm phiên bản JDK mà tôi đang tìm và đoán xem? Tôi cũng phải đăng ký ở đó... (tạm dừng một cách kịch tính) Điều này thật đáng buồn... Chết tiệt! Có chuyện gì với những người này vậy? Cuối cùng, tôi nhượng bộ và cài đặt Chocolatey (nó giống như apt-get, nhưng dành cho Windows. Tôi nghĩ đây là trình quản lý gói được sử dụng và phân phối rộng rãi đầu tiên dành cho Windows). Vì vậy, sau tất cả những điều này, tôi cần viết một lệnh đơn giản trong PowerShell như: choco install jdk-1.8. Và tôi làm điều đó! (nếu bạn là nhà phát triển C#, bạn sẽ biết việc tải .Net SDK dễ dàng như thế nào chỉ sau 2-3 lần nhấp chuột mà không cần đăng ký hoặc bất cứ điều gì tương tự). Để kết luận câu nói dài dòng của tôi: Java là một ngôn ngữ lập trình tuyệt vời. Nó đẹp, đáng tin cậy và có (theo ý kiến ​​​​của tôi) IDE tốt nhất trên thế giới - IntelliJ IDEA nổi tiếng từ JetBrains. Ngoài ra, Java còn có một cộng đồng rất hữu ích và hệ sinh thái rộng lớn và đa dạng. Và tôi đang nói điều này - một nhà phát triển C#... Nhưng chúng tôi cần cập nhật tài liệu. Ví dụ về mã. API. Chúng ta cần làm cho việc lấy JDK dễ dàng hơn. Nhìn chung, Java đang đi đúng hướng, mức độ phổ biến của nó gần đây có thể đã giảm đi một chút, nhưng điều đó sẽ không khiến Java biến mất. Trong nhiều năm nay nó đã đứng đầu danh sách những ngôn ngữ tốt nhất thế giới! Tôi sử dụng Java mọi lúc và sẽ tiếp tục làm như vậy trong tương lai.

Ba công cụ Java mới cần xem xét vào năm 2021

Nguồn: OpenSource Bất chấp sự phổ biến của Python, Go và Node.js, những thứ đã được sử dụng tích cực trong những năm gần đây để triển khai các dự án liên quan đến trí tuệ nhân tạo, học máy và Kubernetes, công nghệ Java vẫn đóng một vai trò quan trọng trong phát triển ứng dụng doanh nghiệp. Theo Developer Economics, có 8 triệu nhà phát triển Java doanh nghiệp trên toàn thế giới trong quý 3 năm 2020. Nghỉ giải lao #68.  Một ý kiến ​​trung thực về Java và hệ sinh thái của nó.  Ba công cụ Java mới cần xem xét vào năm 2021 - 2Ngôn ngữ lập trình Java đã tồn tại hơn 25 năm và liên tục được cập nhật. Các công cụ và khuôn khổ mới đang nổi lên có thể hỗ trợ các ứng dụng và sự nghiệp của bạn. Phần lớn các nền tảng Java được tạo ra để triển khai các quy trình chạy dài với hành vi động, được thiết kế để chạy trên máy chủ hoặc máy ảo. Điều này đã thay đổi vào năm 2014 với sự ra đời của Kubernetes container. Giờ đây, những thách thức lớn nhất khi chạy Java trên Kubernetes là: tối ưu hóa hiệu suất ứng dụng bằng cách giảm dung lượng bộ nhớ, tăng tốc thời gian khởi động và phản hồi cũng như giảm kích thước tệp.

Ba khung và công cụ Java mới

Các nhà phát triển Java luôn tìm kiếm những cách dễ dàng nhất để tích hợp các công cụ phổ biến và các dự án nguồn mở vào các ứng dụng Java của họ. Các công cụ mới, hiệu suất cao giúp tăng đáng kể năng suất phát triển và khuyến khích nhiều công ty cũng như nhà phát triển cá nhân sử dụng ngăn xếp Java hơn. Hôm nay chúng ta sẽ nói về ba khung và công cụ Java mới:

quarkus

Quarkus được thiết kế để phát triển các dịch vụ vi mô trên nền tảng đám mây và các ứng dụng không có máy chủ. Nó có thời gian khởi động nhanh, kích thước bộ nhớ thường trú (RSS) nhỏ và mật độ bộ nhớ cao trong các nền tảng điều phối vùng chứa như Kubernetes. Theo báo cáo thường niên lần thứ chín của JRebel, việc sử dụng Quarkus trong số các nhà phát triển Java đã tăng 6% (ít hơn 1% vào năm trước). Micronaut và Vert.x lần lượt tăng lên 4% và 2% (năm ngoái - khoảng 1%).

Eclipse JKube

Với Eclipse JKube, các nhà phát triển Java tạo các hình ảnh vùng chứa dựa trên các ứng dụng Java dựa trên đám mây bằng cách sử dụng các chiến lược xây dựng Docker, Jib hoặc Source-To-Image. Công cụ này cũng tạo các tệp kê khai Kubernetes và OpenShift tại thời điểm biên dịch và cải thiện trải nghiệm với các công cụ gỡ lỗi, giám sát và ghi nhật ký.

Hồ sơ vi mô

MicroProfile giải quyết các vấn đề liên quan đến việc tối ưu hóa kiến ​​trúc doanh nghiệp của các dịch vụ vi mô Java mà không cần giới thiệu các khung công tác mới hoặc tái cấu trúc toàn bộ ứng dụng. Ngoài ra, các thông số kỹ thuật của MicroProfile (ví dụ: Tình trạng, Truy tìm mở, API mở, Dung sai lỗi, Số liệu, Cấu hình) tiếp tục phát triển phù hợp với quá trình triển khai Jakarta EE.

Phần kết luận

Thật khó để nói khung hoặc công cụ Java nào là tốt nhất cho các nhà phát triển Java doanh nghiệp. Miễn là có cơ hội cải thiện nền tảng Java và thúc đẩy tăng trưởng kinh doanh của doanh nghiệp, chúng ta có thể mong đợi các khung, công cụ và nền tảng mới sẽ xuất hiện. Hãy kiểm tra xem liệu chúng có thể cải thiện các ứng dụng Java của bạn vào năm 2021 hay không.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION