Vì sao những ngôn ngữ như Java đòi hỏi phải code nhiều hơn Python khi thực hiện cùng một công việc?

Đáp: Moray Taylor

Có rất nhiều lí do, nhưng đầu tiên thì tôi muốn nói rõ là tôi đã sử dụng Python một cách thành thạo được 10 năm rồi. Tôi không có vấn đề gì với Python cả, thậm chí tôi còn thấy nó rất tốt cho việc học.

“Code dài hơn hơn khi thực hiện cùng một công việc”

Đúng vậy. Nói chung là lập trình Java sẽ cần phải gõ nhiều hơn Python đấy. Nhưng nếu đó là vấn đề lớn với bạn, hãy kiếm IDE khác tốt hơn hoặc học cách đánh máy nhanh hơn.

Code của Python ngắn gọn hơn, nhưng cái giá phải trả là gì?

Cùng xem nhé…

def getCustomer(id):

Hàm này sẽ trả về gì nhỉ? Hay không trả về bất cứ gì cả? Biến “id” là kiểu gì? Số? Chuỗi? “CustomerID” object?

Cùng xem Java nào…

public CustomerRecord getCustomer(CustomerID id){

Số lượng code dài gấp đôi. Nhưng chúng ta có thể thấy rõ là hàm sẽ trả về kiểu nào, code làm gì trong đó. Những đoạn code của Java rõ ràng như những điều khoản được viết ra trong hợp đồng vậy. Đây điều mà Python không có.

Tôi nghĩ là Python phù hợp cho việc học và có thể làm nhiều thứ cao cấp hơn nữa. Nhưng công việc gần nhất của tôi về Python đòi hỏi viết hơn 100,000 dòng code.

Trong 100,000 dòng code đó, ví dụ mà tôi đưa ra ở trên sẽ xảy ra hơn 1000 lần, với hơn 1000 biến không xác định và hơn 1000 kết quả trả về cũng không xác định luôn. Chúng sẽ không được kiểm tra tại thời gian biên dịch mà là vào lúc chạy chương trình, đây là sự khác biệt quan trọng. Bug trong Python sẽ không được tìm thấy lúc biên dịch. Đọc lại lần nữa đi. Đây. thực. sự. là. một. vấn. đề. lớn.

Bên cạnh việc kiểm tra kiểu dữ liệu thì Threading là 1 trong những nguyên nhân chính vì sao người ta lại sử dụng Java.

Python không hỗ trợ Threading một cách hiệu quả. Lần đầu tiên đọc về nó, tôi cho rằng mình đã nhẫm lẫn chỗ nào rồi. Nhưng tiếc là tôi chả đọc sai gì cả.

Tôi sẽ kết thúc câu trả lời này bằng lời khuyên của mình…

Đừng quá tôn thờ bất kỳ ngôn ngữ nào cả, chúng không phải 1 thứ tôn giáo, chỉ là những công cụ mà thôi. Vài ngôn ngữ tốt hơn những ngôn ngữ khác ở mặt này, nhưng lại thua kém ở các mặt khác.

Java không phải ác quỷ. Nó không hề tệ. Đơn giản là nó khác biệt với Python. Có việc thì nó thực hiện tốt hơn, có việc thì nó tệ hơn.

Tôi nghĩ việc có sự gắn bó cảm xúc với ngôn ngữ đầu tiên bạn học là khá phổ biến. Nhưng cái cảm xúc đó sẽ ngăn cản bạn trở thành một lập trình viên chuyên nghiệp.

Theo: Quoc Pham Nguyen

Leave a Reply

Your email address will not be published. Required fields are marked *