Python có trở nên phổ biến hơn Java không?

"Python dường như là không thể ngăn cản," bình luận về ấn bản tháng 8 của chỉ số TIOBE [chỉ số cố gắng tính toán mức độ phổ biến của ngôn ngữ lập trình dựa trên kết quả tìm kiếm các khóa học, nhà cung cấp và "kỹ sư lành nghề"]

Bằng phép đo đó, "thị phần" của Python đã tăng thêm 2% trong chỉ số của tháng này — lên mức cao nhất mọi thời đại là 15. 42%. Thật khó để tìm thấy một lĩnh vực lập trình mà Python không được sử dụng rộng rãi hiện nay. Ngoại lệ duy nhất là các hệ thống nhúng [quan trọng về an toàn] do Python được nhập động và quá chậm. Đó là lý do tại sao các ngôn ngữ trình diễn C và C ++ đang trở nên phổ biến vào thời điểm hiện tại

Nếu chúng ta nhìn vào phần còn lại của chỉ số TIOBE, không có nhiều điều đó xảy ra vào tháng trước. Swift và PHP lại hoán đổi vị trí ở vị trí 10, Rust tiến gần đến top 20, Kotlin trở lại top 30 và ngôn ngữ mới của Google Carbon lọt vào chỉ số TIOBE ở vị trí 192
InfoWorld lưu ý rằng đã 10 tháng kể từ khi Python lần đầu tiên giành vị trí số 1 của chỉ mục vào tháng 10 năm ngoái, "trở thành ngôn ngữ duy nhất ngoài Java và C giữ vị trí số 1. 1 vị trí. " Trong chỉ số thay thế về mức độ phổ biến của ngôn ngữ lập trình Pypl, đánh giá mức độ phổ biến của ngôn ngữ dựa trên các lượt tìm kiếm hướng dẫn ngôn ngữ lập trình trên Google, 10 thứ hạng hàng đầu cho tháng 8 là

1. Trăn, 28. 11% chia sẻ
2. Java, 17. 35%
3. JavaScript, 9. 48%
4. C#, 7. 08%
5. C/C++, 6. 19%
6. PHP, 5. 47%
7. R, 4. 35%
8. Bản đánh máy, 2. 79%
9. Nhanh nhẹn, 2. 09%
10. Mục tiêu-C, 2. 03%

Mặc dù ngày nay Java vẫn được sử dụng rộng rãi [và hàng núi mã Java được tạo ra trong hơn 20 năm qua sẽ không sớm biến mất, hãy đọc. không bao giờ], có vẻ như khá rõ ràng rằng Java sẽ nhường chỗ cho Python trong tương lai

Những người hâm mộ Java cuồng nhiệt [nếu có] có thể than thở về tình trạng này. Nhưng chúng tôi nghĩ rằng thế giới lập trình nói chung sẽ hoan nghênh Python như một sự thay thế cho Java trong ngày càng nhiều dự án phần mềm. Mặc dù nó không phải là ngôn ngữ tốt nhất cho mọi trường hợp sử dụng lập trình [ngôn ngữ là gì?], nhưng có rất nhiều lý do chính đáng để Python vượt qua Java trở thành ngôn ngữ tiếp theo cho hầu hết các nhóm nhà phát triển

Sơ lược về lịch sử của Python so với. Java

Bạn có thể ngạc nhiên khi biết rằng Python, ra mắt vào đầu những năm 1990, thực sự đã tồn tại lâu hơn Java, dates to 1995. Given that Python was born first, you might have expected Python to have had an edge over Java from the start in terms of popularity and adoption. But in reality, Python and Java followed different paths in their earlier years, which resulted in Java trở nên phổ biến hơn rất nhiều ngay từ đầu.

Python ban đầu cạnh tranh với một ngôn ngữ kịch bản khác. perl. Để so sánh, Perl được coi là một ngôn ngữ kịch bản mục đích chung, mạnh mẽ, trong khi Python được coi là một giải pháp kịch bản kém hiệu quả hơn chủ yếu dành cho quản trị viên hệ thống. Do đó, Python được xem là một ngôn ngữ tương đối thích hợp có liên quan đến một nhóm trường hợp sử dụng hẹp. Ngoài ra, mặc dù Python là đa nền tảng, nhưng ban đầu nó được định hướng cho thế giới Unix. Chỉ bắt đầu từ những năm 2010, Python mới bắt đầu nổi lên trong hệ sinh thái Windows và Microsoft. Kết quả là Python phần lớn bị bỏ qua trong nhiều thập kỷ.

Khi Java xuất hiện, ngay từ đầu nó đã được dự định là một ngôn ngữ đa nền tảng, dễ học, có mục đích chung, khiến nó trở thành một lựa chọn rõ ràng cho nhiều loại dự án. Java cũng nhấn mạnh vào lập trình hướng đối tượng, vốn rất thịnh hành vào thời điểm Java ra mắt vào những năm 1990. Việc Java được hỗ trợ [vào thời điểm đó] bởi một số công ty mạnh nhất thế giới – Sun và sau này là Oracle – cũng giúp đảm bảo sự thành công của nó

Từ góc độ lịch sử, thật dễ dàng để hiểu tại sao Java lại thống trị lâu như vậy, trong khi Python phải mất vài thập kỷ để đạt được sự nổi bật. Java đã đứng ở vị trí đầu tiên trên Chỉ số TIOBE gần như hàng năm kể từ đầu những năm 2000, trong khi Python đứng ở vị trí thứ tám gần đây nhất là vào năm 2012. Ngay cả trong năm 2017, Python chỉ là ngôn ngữ phổ biến thứ năm

Tại sao Python đã thay thế Java?

Câu trả lời đơn giản nhất cũng có khả năng nhất. Python đã thống trị khi dữ liệu bùng nổ trong doanh nghiệp. Ý nghĩa của “Dữ liệu lớn” là trường hợp sử dụng chính của Python với các công cụ phân tích dữ liệu và Máy học [ML] tốt nhất trong lớp mà các ngôn ngữ khác phải vật lộn để cạnh tranh. Và chắc chắn rằng tất cả các công việc phát triển tiên tiến trong Trí tuệ nhân tạo [AI] đều được điều khiển bởi Python, từ ô tô tự lái [chẳng hạn như Autopilot của Tesla] đến . Mặc dù Java không bị loại trừ khỏi những sáng kiến ​​này, nhưng nó không nhanh và dễ làm việc, điều này có thể là một trách nhiệm pháp lý thực sự trong một không gian chuyển động nhanh như vậy. DALL-E 2] to chatbots [such as Google’s LaMDA] and virtual assistants [including Alexa, Siri and Cortana]. While Java is not excluded from these initiatives, it’s just not as quick and easy to work with, which can be a real liability in such a fast-moving space. 

Ngoài ra còn có một số yếu tố lập trình thu hút các nhà phát triển mới bắt đầu học phát triển phần mềm, cũng như các nhà phát triển có kinh nghiệm muốn bắt đầu với Python, bao gồm

  • Ngôn ngữ thông dịch – mặc dù không khó lắm để biên dịch Java thành ngôn ngữ mà máy có thể đọc được TRƯỚC KHI nó được thực thi, nhưng thực tế là Python không cần biên dịch [i. e. , nó được trình thông dịch của nó thực thi trực tiếp trong thời gian chạy] giúp việc tạo chương trình Python nhanh hơn và dễ quản lý hơn. Mặc dù các ngôn ngữ được giải thích có thể chậm hơn khi chạy mã, nhưng tốc độ thực thi thường không quan trọng bằng tính dễ sử dụng trong ngữ cảnh của các dự án viết mã phức tạp, hiện đại.
  • Cú pháp ngắn hơn – Java là một ngôn ngữ nổi tiếng dài dòng “đầy những sự lặp lại dường như không cần thiết; . Điều này có nghĩa là mã hóa trong Java có thể tẻ nhạt và tốn thời gian. Nó cũng làm cho cơ sở mã Java lớn hơn về tổng số dòng mã, do đó làm cho mã khó quản lý hơn. points out. This means that coding in Java can be tedious and time-consuming. It also makes Java codebases larger in terms of total lines of code, which in turn makes the code harder to manage.

    Ngược lại, Python có thể không phải là ngôn ngữ ngắn gọn nhất thế giới, nhưng nó chắc chắn ít dài dòng hơn Java. Đó là một lợi thế khác trong thời đại mà khả năng quản lý các dự án phần mềm phức tạp là ưu tiên hàng đầu. Mã của bạn càng ngắn và dễ quản lý thì càng dễ quản lý.
  • Hệ sinh thái, Gói và Tiện ích mở rộng – Có các cộng đồng nhà phát triển sôi nổi xung quanh cả Java và Python, nhưng cộng đồng Python đã trở nên lớn hơn và năng động hơn. Có hơn 200.000 gói Python và hầu hết đều có sẵn từ các kho lưu trữ trung tâm như Chỉ mục gói Python [PyPI< . Điều đó có nghĩa là rất dễ dàng tìm thấy các thư viện và tiện ích mở rộng mã nguồn mở cho các dự án dựa trên Python. Nó cũng dễ dàng tìm thấy tài liệu và cộng tác viên. ]. That means it’s very easy to find open source libraries and extensions for Python-based projects. It’s also easy to find documentation and collaborators.

    Java không thực sự cung cấp các tài nguyên tương đương. Có một vài kho lưu trữ chính, như Maven, nhưng chúng không toàn diện hoặc đa dạng như PyPI. Nói chung, bạn phải lùng sục trên Internet nếu bạn đang tìm mã Java để mượn cho dự án của mình. Đây là một sản phẩm của quá trình phát triển phần mềm hai mươi năm trước khi có RẤT NHIỀU mã độc quyền được tạo ra. Ngày nay >80% của tất cả mã trong cơ sở mã của ứng dụng là phần mềm nguồn mở, phần mềm này không chỉ tăng tốc độ phát triển mà còn thúc đẩy sự đổi mới lớn hơn. So với cách xây dựng phần mềm phi tập trung ngày nay, cách tiếp cận của Java cảm thấy lỗi thời, chậm chạp và không cần thiết.
  • Các JDK cạnh tranh – Một điểm đặc biệt khác xuất hiện từ lịch sử của Java là thực tế là nó có các bộ công cụ phát triển cạnh tranh. Oracle JDK và OpenJDK. Mặc dù cả hai JDK về cơ bản đều hoạt động giống nhau, nhưng các nhà phát triển [và người dùng của họ] có thể gặp phải các sự cố tương thích dựa trên JDK mà họ sử dụng – chưa kể đến JRE mà người dùng đã cài đặt. Để so sánh, chỉ có một phiên bản thời gian chạy Python và trừ khi người dùng cài đặt thời gian chạy lỗi thời nghiêm trọng, hầu hết các chương trình Python sẽ chạy mà không gặp sự cố.

Java có còn đánh bại Python không?

Cân bằng lại, mục đích của bài viết này không phải để nói rằng Python luôn đánh bại Java, trong mọi trường hợp và ngữ cảnh sử dụng. Python vẫn có một số nhược điểm lớn nhất định mà Java không có, bao gồm

  • Sự cố đa luồng . Có lẽ một trong những tính năng bị ghét nhất của Python là hoặc GIL. Nói một cách đơn giản, GIL không thể chạy nhiều luồng Python cùng một lúc trong nhiều trường hợp. Java không có vấn đề này, điều đó có nghĩa là đa luồng trên Java dễ triển khai hơn. Điều đó nói rằng, GIL có thể sắp ngừng hoạt động, nhưng cho đến khi điều đó xảy ra thì vẫn có cách giải quyết của GIL you can use. So GIL is really more of a nuisance than a critical flaw for Python.
  • Tốc độ . Như đã lưu ý ở trên, mã Python thực thi chậm hơn Java trong hầu hết các trường hợp vì Python được thông dịch. Đó là một lợi thế rõ ràng cho Java trong các trường hợp sử dụng mà tốc độ là rất quan trọng. Như đã nói, Python 3 sắp tới. Bản phát hành 11 sẽ giúp tốc độ xử lý tăng 10–60%, đây là một cải tiến đáng hoan nghênh. Tất nhiên, nếu tốc độ là mối quan tâm chính của bạn, thì bạn nên sử dụng thay vì Java hoặc Python. Trên thực tế, nhiều gói Python giảm tải các thói quen tính toán chuyên sâu [chẳng hạn như các hàm toán học] sang các thư viện C được liên kết để tận dụng tốc độ xử lý.
  • Hỗ trợ di động có giới hạn . Cho đến nay, Python vẫn chưa xâm nhập nhiều vào nền tảng di động như Java. Mặc dù có thể sử dụng Python trên thiết bị di động nhưng nó vẫn hướng đến PC và máy chủ nhiều hơn. Điều đó nói rằng, không phải là Java hoàn toàn thống trị trên thiết bị di động. Nó rất phổ biến để phát triển Android, nhưng ít phổ biến hơn đối với iOS, nơi Swift và Objective-C là những ngôn ngữ được ưa chuộng.

Cách chuyển từ Java sang Python

Nếu bạn là một lập trình viên Java, người đã quyết định [giống như nhiều đồng nghiệp của bạn] rằng Python là tương lai, thì việc chuyển đổi từ phát triển Java sang Python không đặc biệt khó mặc dù Python có tương đối ít điểm chung với Java. Một số điểm khác biệt chính mà bạn sẽ phải vật lộn bao gồm

  • Ngôn ngữ động – Python là ngôn ngữ được nhập động, có nghĩa là trình thông dịch sẽ tự động suy ra các loại biến, thay vì khai báo chúng trước như với Java.
  • Cú pháp – Bao gồm nhận xét nhiều dòng [vì Python không cung cấp ký tự nhận xét nhiều dòng] và định dạng khi không thể kết thúc câu lệnh bằng dấu chấm phẩy và sử dụng thụt lề không đúng cách trong Python. Các khối mã Python phải được bắt đầu bằng dấu hai chấm và kết thúc bằng một dòng mới.
  • Lập trình hướng đối tượng – Java được thiết kế để trở thành một ngôn ngữ OOP thuần túy, trong đó mọi thứ đều là một lớp [một mẫu tạo ra các thể hiện hoặc đối tượng]. Python hỗ trợ OOP, nhưng nó cũng có thể chạy mã ở chế độ tập lệnh mà không cần khai báo bất kỳ lớp nào.

Có nhiều sự khác biệt khác có thể khiến bạn vấp ngã khi mới bắt đầu, chẳng hạn như tạo mảng, làm cho mã của bạn chạy hiệu quả hơn, v.v. Và bạn cũng sẽ muốn nghiên cứu nhiều framework Python có sẵn để xác định những framework có thể giúp bạn đạt được mục tiêu phát triển của mình. Nhưng đây không phải là những nhiệm vụ hoành tráng, đặc biệt đối với một người đã thành thạo lập trình

Rất nhiều tài nguyên dành riêng cho việc giảng dạy Python giúp bạn bắt đầu hành trình từ Java đến Python trở nên dễ dàng hơn. Đi sâu vào Python 3Python 101 là những nơi tốt để bắt đầu. Bạn cũng có thể muốn xem qua một số cuốn sách được viết riêng cho các lập trình viên Java muốn học Python, chẳng hạn như Java to Python của Igor Vishnevskiy. Và có rất nhiều khóa học miễn phí, bao gồm Giới thiệu về Python của Datacamp và các hướng dẫn từ Python thực sự.

Kết luận – Python vs Java

Mặc dù ban đầu có thể hợp lý khi loại bỏ sự phổ biến ngày càng tăng của Python so với Java như một sự ăn may tạm thời, nhưng điều đó không còn đúng nữa. Rõ ràng là Python sẽ trở thành một trong những ngôn ngữ lập trình chiếm ưu thế trong tương lai gần. Java có thể không chết, nhưng có lẽ nó sẽ không bao giờ lấy lại được sự nổi bật mà nó từng có

Đó là lý do chính đáng để các lập trình viên Java cân nhắc chuyển sang Python [hoặc tốt hơn là học cách sử dụng cả hai ngôn ngữ cùng một lúc]. Python chắc chắn không tốt hơn Java trong mọi tình huống, nhưng những ưu điểm như quản lý mã dễ dàng hơn, hệ sinh thái năng động hơn và ít vấn đề tương thích với thời gian chạy hơn khiến Python trở thành một giải pháp thay thế tuyệt vời cho Java trong nhiều trường hợp

Bước tiếp theo

Bạn muốn bắt đầu với Python?

Tải xuống Python

Đọc những câu chuyện tương tự

Java so với Python. Sự khác biệt về lập trình chính vào năm 2021

Hiểu cách các kỹ năng Java của bạn sẽ giúp ích và cản trở bạn khi học Python

Tìm hiểu thêm >

Hướng dẫn quản lý gói Python dành cho nhà phát triển doanh nghiệp

Tìm hiểu về các tùy chọn quản lý gói trong hệ sinh thái Python

Tìm hiểu thêm >

Cách thiết lập môi trường Python của bạn bằng một lệnh

Tìm hiểu cách ActiveState Platform có thể tự động tạo môi trường Python cho dự án của bạn và cài đặt nó vào môi trường ảo bằng một lệnh duy nhất

Cái nào tốt hơn cho Java hoặc Python trong tương lai?

Python là ngôn ngữ hiệu quả hơn Java. Python là một ngôn ngữ được giải thích với cú pháp tao nhã và làm cho nó trở thành một lựa chọn rất tốt để viết kịch bản và phát triển ứng dụng nhanh chóng trong nhiều lĩnh vực

Python sẽ vượt qua Java?

Python không bao giờ có thể vượt qua Java vì Java thường hiệu quả hơn Python. Python là một ngôn ngữ được giải thích với kiểu gõ động, trong khi Java là ngôn ngữ được gõ và biên dịch tĩnh.

Có phải Java đang mất dần tính phổ biến?

Java đang trở nên ít phổ biến hơn . Điều này có nghĩa là, theo thời gian, các nhà phát triển sẽ viết ngày càng ít ứng dụng mới bằng Java. Xu hướng này ngụ ý rằng Java cuối cùng sẽ biến mất.

Python có còn phù hợp vào năm 2022 không?

Python được xếp hạng đầu tiên trong số các ngôn ngữ “được mong muốn nhất” của Stack Overflow cho năm 2021. Đây là công nghệ phổ biến thứ ba, theo khảo sát của cùng một nhà phát triển. Kể từ tháng 5 năm 2022, không có. 1 trong Chỉ mục TIOBE .

Chủ Đề