Python vs Ruby

Khi mới bắt đầu làm quen với CNTT chắc hẳn không chỉ riêng mình mà rất nhiều bạn khác sẽ đều có một điều luôn trăn trở. Đó là mình nên bắt đầu từ đâu và với ngôn ngữ lập trình nào. Đứng trước điều đó, theo suy nghĩ đơn giản chúng ta sẽ cố gắng tìm kiếm cho mình một ngôn ngữ mạnh nhất, tốt nhất vì đằng nào cũng mất công học thì phải học cái gì đấy thật là chất và hoành tráng. Nhưng sẽ chẳng có ngôn ngữ nào là tốt nhất mà chỉ có ngôn ngữ tốt hơn khi dùng nó trong một lĩnh vực nào đó. Ngôn ngữ lập trình cũng giống như công cụ sản xuất, nó phụ thuộc vào từng quốc gia, từng nền kinh tế và từng giai đoạn phát triển của xã hội. Chính vì thế mà một ngôn ngữ lập trình được coi là tốt ở thời điểm này nhưng lại không còn phù hợp có thể là chỉ sau một khoảng thời gian ngắn sau đó vì CNTT luôn phát triển với tốc độ rất nhanh.

Trong tất cả những ngôn ngữ mà mình đã từng tìm hiểu thì PythonRuby có lẽ là 2 ngôn ngữ mà mình cảm thấy yêu thích nhất. Ban đầu mình giành tình cảm cho Python nhiều hơn, nhưng vì lý do công việc khiến mình phải gắn bó với Ruby, lâu dần thì yêu luôn em ấy lúc nào không hay. Mới đây mình gặp lại Python và nhận ra là tình yêu ngày xưa vẫn còn. Có lẽ mình tham lam quá nên không vì thế mà cảm thấy bớt yêu Ruby hơn. Ngược lại, khi đặt hai em ấy ở cạnh nhau thì thực sự là mỗi người một vẻ đẹp khác nhau khiến mình không nỡ bỏ lại ai cả.

Ra đời

Python và Ruby đều là những ngôn ngữ được ra đời trong thập niên 90. Python ra đời vào năm 1991 bởi Guido Van Rossum. Một vài năm sau đó, Ruby được Yukihiro Matsumoto khai sinh vào năm 1995. Cả hai tác giả ngay từ đầu đã xây dựng đứa con của mình theo những triết lý khác nhau.

Với Python thì là “One right way to achieve things” (một cách đúng đắn để đạt được mọi thứ), hướng tới một ngôn ngữ gần gũi, đẹp đẽ và với số lần gõ phím ít nhất để bạn thể hiện suy nghĩ của mình. Ruby luôn đi cùng khẩu hiệu “Achieve more with less” (được nhiều hơn với ít hơn). Ruby vô cùng uyển chuyển và trao quyền cho lập trình viên, giúp tiết kiệm thời gian và cung cấp nhiều cách khác nhau để thể hiện một ý tưởng.

Cả hai đều là những ngôn ngữ hướng đối tượng mạnh mẽ, đa nền tảng, có cấu trúc rõ ràng, sáng sủa, tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động. Với Python và Ruby, lập trình viên sẽ không còn nỗi sợ thiếu dấu ; hay dấu } thần thánh nữa.

Cú pháp

Python nhấn mạnh vào sự đơn giản hơn là linh hoạt. Giống như một cô gái con nhà gia giáo nhưng có phần bảo thủ. Mọi thứ với Python luôn phải gọn gàng, ngăn nắp và hiệu quả. Chính vì điều đó mà bạn sẽ luôn phải nhớ và tuân theo những quy tắc nếu như muốn chinh phục được nàng.

Với Ruby bạn sẽ luôn cảm thấy được tự do làm những gì mình muốn dù đó là một vấn đề đơn giản hay phức tạp, Ruby sẽ luôn đưa ra nhiều cách để bạn có thể lựa chọn. Chỉ cần bạn cảm thấy thoải mái thì nàng cũng vậy. Đó cũng là cách cực kỳ khéo léo mà Ruby sử dụng để giữ bạn lại bên mình.

Tuy có những điểm khác nhau như vậy nhưng cả Python và Ruby đều rất đẹp và sáng sủa. Cả hai đều dễ học nên có lẽ sẽ sự lựa chọn đầu tiên để bạn bắt đầu tiếp cận với lập trình.

Sử dụng

Với Python bạn có thể tạo web app có khả năng mở rộng được bằng cách sử dụng framework và CMS được tích hợp sẵn. Thích hợp cho các lĩnh vực liên quan đến phân tích dữ liệu, khoa học, tính toán do sở hữu các thư viện tuyệt vời như EarthPy (khoa học trái đất), AstroPy (thiên văn học)...Ngoài ra Python còn được sử dụng làm các nguyên mẫu phần mềm hay là ngôn ngữ trong quá trình giảng dạy cho trẻ em và người mới bắt đầu.

Ruby chủ yếu được sử dụng để triển khai nhanh chóng các trang web và ứng dụng có lưu lượng truy cập cao và phức tạp dựa vào tính linh hoạt của nó. Chính vì điều này mà Ruby luôn là sự lựa chọn yêu thích của các startup.

Các công ty sử dụng Python và Ruby:

Python Ruby
Google, Pinterest, YouTube, Dropbox, National Geographic Apple, Twitter, Github, Airbnb, Groupon, Shopify

Thư viện

Đều là các ngôn ngữ mã nguồn mở đã được ra đời từ rất lâu cùng với sự hỗ trợ từ cộng đồng các lập trình viên đông đảo nên cả Python và Ruby đều sở hữu những kho thư viện cực kỳ phong phú ở nhiều lĩnh vực khác nhau.

Các lập trình viên Python chia sẻ mã nguồn thông qua PiPy với gần 170.000 thư viện giành cho bạn.

Ruby sử dụng RubyGems để quản lý các framework và thư viện của mình. Hiện tại có hơn 60.000 thư viện để bạn tha hồ lựa chọn.

Web Frameworks

Python và Ruby có rất nhiều các Web Framwork nhưng nổi tiếng hơn cả với Python là Django và của Ruby là Rails. Cả hai đều là các framework giúp bạn xây dựng các ứng dụng web. Chúng có hiệu suất tương tự nhau vì cả Python và Ruby đều là ngôn ngữ script. Cả hai đều được xây dựng dựa trên mô hình MVC truyền thống. Ứng dụng của bạn sẽ được tổ chức hợp lý và có sự phân chia cơ bản giữa các lớp: routes, controllers, modelsviews.

Về cơ bản chúng rất giống nhau, bất cứ điều gì bạn có thể làm trong Django bạn đều có thể làm với Rails và ngược lại. Điểm khác biệt nằm ở việc Django dựa theo nguyên tắc Don't Repeat Yourself hướng tới việc đơn giản, ngắn gọi còn Rails lại sử dụng khái niệm Convention over Configuration giúp bạn đạt được nhiều hơn nếu như bạn biết tuân thủ các quy tắc (đi trên đường ray thì sẽ đi nhanh hơn).

Conclusion

Python và Ruby đều là những ngôn ngữ lập trình mạnh mẽ và phổ biến. Cộng đồng các lập trình viên rất lớn đứng đằng sau chúng là minh chứng cho tất cả. Cả hai đều có cú pháp sáng sủa và rất thích hợp với những người bắt đầu học lập trình. Tuy hiệu năng không thể so sánh được với các ngôn ngữ như C++, Java hay .NET...nhưng sự phát triển nhanh chóng trong lĩnh vực phần cứng cộng những yêu cầu thực tế về việc xây dựng các ứng dụng một cách nhanh chóng khiến cho Python và Ruby ngày càng được sử dụng rộng rãi hơn.