So sánh sự tiện lợi căn bản trong code giữa Ruby và Java
Xin chào các bạn, hôm nay mình sẽ "tâm thư" với các bạn một vài điểm khác nhau mà mình thấy là ưu điểm của Ruby với một ngôn ngữ vốn là anh cả của lập trình từ xưa đến nay mà trước đây mình cũng đã từng học và làm là Java. Hiện tại kiến thức của mình ở hai ngôn ngữ này cũng chỉ dừng lại ở level ...
Xin chào các bạn, hôm nay mình sẽ "tâm thư" với các bạn một vài điểm khác nhau mà mình thấy là ưu điểm của Ruby với một ngôn ngữ vốn là anh cả của lập trình từ xưa đến nay mà trước đây mình cũng đã từng học và làm là Java. Hiện tại kiến thức của mình ở hai ngôn ngữ này cũng chỉ dừng lại ở level "nhập môn", nhưng qua những dòng code mà mình đã có cơ hội thực hành ở cả hai ngôn ngữ thì mình thấy được rõ sự khác biệt giữa chúng. Sau đây là một vài sự so sánh cơ bản để giúp các bạn một phần nào đó hiểu hơn được sự đánh giá: "Ruby là một ngôn ngữ thân thiện, dễ thực hành"
- Khác nhau về cú pháp Java là một ngôn ngữ lâu đời, với tuổi đời trên hai mươi năm, và nó có nhưng quy định khắt khe khi coding để đảm bảo được tính vận hành của hệ thống, và trong cú pháp, nó cũng có những quy định hơi mệt mệt, ví dụ như dấu chấm phẩy kết thúc dòng lệnh, cách khai báo biến...
int a, b, c; // Khai bao ba bien kieu int la a, b, và c. int a = 5, b = 7; // Vi du ve khoi tao bien byte A = 11; // Khoi tao mot bien kieu byte ten la A. double pi = 3.14159; // Khai bao va gan mot gia tri cua PI. char nam = 'b'; // Bien nam duoc khoi tao voi gia tri 'a'.
Trong khi đó, Ruby có những cách thức đơn giản hơn để làm việc này và rất NGẮN GỌN ```` a = 5 b = 7 nam = "b"
2. Sự linh hoạt trong câu lệnh Java có một hệ thống api lớn và đồ sộ, nhưng dự linh hoạt trong câu lệnh khi code của Java thì chỉ nằm ở một mức độ giới hạn, như khi code vòng lặp, bạn sẽ có nhiều sự lựa chọn với for loop đầy đủ, for loop khuyết, do-while, while-do...
for(int x = 10; x < 20; x = x+1) { System.out.print("Gia tri cua x : " + x ); System.out.print(" "); }
do{ System.out.print("Gia tri cua x : " + x ); x++; System.out.print(" "); }while( x < 20 );
Còn ở Ryby, sự linh hoạt nằm ở chổ bạn có thể thể hiện code qua nhiều cách khác nhau, ví dụ: if <condition> code end Hoặc code if <condition> value = if <condition> code end 3. Thể hiện code trên html Ở Java, coder thường hay dùng JSTL để nhúng Java vào trang HTML, hầu hết những công việc này đều khá là đơn giản đối với coder, nhưng nếu so sánh riêng vấn đề này cặn kẽ thì bản thân mình vẫn thấy Ruby có sự thuận lợi hơn. Đây là sự mệt mỏi của Java khi sử dụng JSTL trên html page
<table> <tbody> <tr><th>ID</th><th>Name</th><th>Role</th></tr> <c:forEach items="${requestScope.empList}" var="emp"> <tr><td><c:out value="${emp.id}"></c:out></td> <td><c:out value="${emp.name}"></c:out></td> <td><c:out value="${emp.role}"></c:out></td></tr> </c:forEach> </tbody> </table>
a Riêng việc học thuộc hết mấy chức năng cụ thể của c:out, c:, $...thôi là mình cũng mất khá nhiều thời gian rồi Còn ở Ruby, cứ <% %> hoặc <%= %> vô là code như thường :D 4. Quản lí file Với một project ứng dụng, bạn phải quản lí rất nhiều file, riêng việc đó thôi cũng khiến cho coder có đôi phần mệt mỏi, đặc biệt là khi teamwork. Nhưng nếu ở Java, công việc đó có thể sẽ làm bạn mất nhiều thời gian hơn Ruby rất nhiều bởi sự sắp xếp các pắc-kịt trong Project Java nó không được như ý lắm. Đặc biệt, bạn phải thủ công rất nhiều thao tác với file, không như ở Ruby Trên đây là một vài so sánh của mình về sự tiện lợi hơn của Ruby so với Java, nhưng bất cứ một ngôn ngữ lập trình nào cũng đều có những điểm tuyệt vời của nó. Vì mục đích bài viết là trọng tâm vào những gì Ruby có thể làm tốt hơn, nên nội dung mình bố trí có vẻ hơi "dìm hàng" Java một chút. :) Nhưng hiện nay, xét về nhiều yếu tố thì Java vẫn đang là một ngôn ngữ mạnh trong lập trình với các ưu điêmt tuyệt vời và một cộng đồng hùng hậu. Bản thân mình đã có trải nghiệm ít ỏi qua cả hai ngôn ngữ nên mình rất yêu chúng. Mình cũng hy vọng là qua bài viết này, ngoài việc thấy được rõ hơn về những ưu điểm của Ruby thì các bạn cũng đừng có suy nghĩ tiêu cực về Java nhé! Nếu là một Java developer, bạn sẽ biết được vì sao qua hơn hai mươi năm, Dốt Nét vẫn chưa một lần qua mặt được anh này, cũng như bóng đá Việt Nam mình hiện tại vậy, biết khi nào mới thắng được Thái Lan thêm một lần nữa :( :(