VPython có còn được sử dụng không?

Ngôn ngữ lập trình nguồn mở Python đã trở thành một trong số ít ngôn ngữ sẽ không sớm biến mất. Đó là ngôn ngữ hàng đầu hoặc một trong hai ngôn ngữ hàng đầu trong hầu hết các chỉ số phổ biến ngôn ngữ đáng chú ý và thậm chí có vẻ như sẽ đánh bại Java ngày nay.  

Nhưng Python 35 tuổi có điểm yếu. Không nhất thiết dành cho cộng đồng khoa học dữ liệu và máy học được xây dựng xung quanh các tiện ích mở rộng Python như NumPy và SciPy, nhưng là một ngôn ngữ lập trình chung.  

Python là ngôn ngữ hàng đầu theo đối tượng kỹ thuật điện của IEEE Spectrum, nhưng bạn không thể chạy Python trong trình duyệt và bạn không thể dễ dàng chạy nó trên điện thoại thông minh. Ngoài ra, ngày nay không có ai xây dựng trò chơi bằng Python.  

NHÌN THẤY. bộ tuyển dụng. Nhà phát triển Python (TechRepublic Premium)

Để xây dựng các ứng dụng trình duyệt, các nhà phát triển có xu hướng sử dụng JavaScript, tính năng đảm bảo an toàn kiểu của Microsoft, TypeScript, Go do Google tạo hoặc thậm chí là PHP cũ nhưng đáng tin cậy. Trên thiết bị di động, tại sao các nhà phát triển ứng dụng lại sử dụng Python khi có Java, Kotlin tương thích với Java, Swift của Apple hoặc Dart của Google?

Python thậm chí không hỗ trợ biên dịch sang thời gian chạy WebAssugging, một tiêu chuẩn ứng dụng web được hỗ trợ bởi Mozilla, Microsoft, Google, Apple, Intel, Fastly, RedHat và những người khác.  

Đây chỉ là một số hạn chế được nêu ra bởi Armin Ronacher, một nhà phát triển có lịch sử lâu đời về Python, người cách đây 10 năm đã tạo ra vi khung Flask Python phổ biến để giải quyết các vấn đề mà anh ấy gặp phải khi viết ứng dụng web bằng Python

Ronacher có trụ sở tại Áo là giám đốc kỹ thuật của công ty khởi nghiệp Sentry của Hoa Kỳ – một dự án nguồn mở và công ty công nghệ được sử dụng bởi các nhóm kỹ thuật và sản phẩm tại GitHub, Atlassian, Reddit và những người khác để theo dõi sự cố ứng dụng của người dùng do trục trặc trên giao diện người dùng, phụ trợ hoặc .  

arminronacher.jpg

Armin Ronacher. "Tôi không nói rằng bạn không thể sửa Python. Tôi nghĩ bạn có thể tạo một phiên bản Python mới để sửa rất nhiều thứ đó. "

Hình ảnh. Maria Ronacher

Phần lớn Sentry được viết bằng Python, đặt nó cùng loại với các công ty công nghệ nặng về Python như Instagram, Netflix và Dropbox, từ đó người tạo ra Python, Guido van Rossum, đã tuyên bố nghỉ hưu một năm trước. Anh ấy đã từ chức 'Nhà độc tài nhân từ suốt đời' của Python vào năm 2018.  

Mặc dù Ronacher đóng góp rất ít cho Flask ngày nay – bởi vì các tính năng Python mới cho khoa học dữ liệu không khiến anh ấy quan tâm – nhưng nó đã trở nên phổ biến để triển khai các mô hình học máy nhờ có rất nhiều hướng dẫn và các khóa học đại học dạy về nó. Flask là khung web phổ biến nhất, trước Django, trong cuộc khảo sát nhà phát triển Python năm 2018 của nhà sản xuất IDE JetBrains.  

Python tại Sentry chủ yếu là mã kế thừa nhưng nó vẫn được sử dụng trên phần phụ trợ để tích hợp Sentry với các hệ thống khác, chẳng hạn như khi báo cáo sự cố trong Sentry cần được chuyển đến hệ thống theo dõi vấn đề Jira của Atlassian

"Sự đồng bộ giữa Sentry và Jira được viết bằng Python," Ronacher nói với ZDNet. "Rất nhiều logic kinh doanh phụ trợ được kết nối với giao diện người dùng của Sentry được viết bằng Python. Quá trình xử lý sự kiện và tất cả sự phức tạp đó đang dần chuyển sang Rust vì lý do hiệu suất. "

Ronacher là một fan hâm mộ lớn của Rust, một ngôn ngữ lập trình được tạo ra tại Mozilla Research 5 năm trước. Microsoft đang xem nó như một sự thay thế an toàn cho bộ nhớ cho các phần của cơ sở mã C và C++ trong Windows và Office.  

Bất chấp sự thành công của Python với tư cách là một ngôn ngữ, Ronacher cho rằng nó có nguy cơ mất đi sức hấp dẫn với tư cách là ngôn ngữ lập trình đa năng và bị chuyển xuống một miền cụ thể, chẳng hạn như Wolfram's Mathematica, cũng đã tìm thấy một vị trí thích hợp trong khoa học dữ liệu và máy học.  

Ronacher nói: “Bạn không mong đợi rằng tôi sẽ phát triển một ứng dụng máy tính để bàn trong Mathematica.  

"Hiện tại, có vẻ như tổng số lĩnh vực của Python siêu áp dụng và mở rộng, nhưng chúng ta có thể thấy rằng sẽ luôn có điện thoại thông minh – hoặc thứ gì đó thay thế điện thoại thông minh – và sẽ có các ứng dụng trình duyệt. Python không thể phục vụ hai thứ này ngay bây giờ và đi kèm với rất nhiều hạn chế," anh nói

Peter Wang, đồng sáng lập và Giám đốc điều hành của Anaconda, nhà sản xuất bản phân phối Anaconda Python phổ biến cho khoa học dữ liệu, e ngại những hạn chế của Python trong việc xây dựng các ứng dụng dành cho máy tính để bàn và thiết bị di động.    

peterwanganacondad.jpg

Peter Vương. "Tất nhiên, giá trị của Python như một ngôn ngữ chung để tự động hóa hệ thống phụ trợ và viết kịch bản là một thứ khó thay thế. Nhưng nó không nên bằng lòng khi bị xuống hạng như vậy,"

Hình ảnh. Trăn Anaconda

"Đó là một sự thừa nhận đáng xấu hổ, nhưng thật khó xử khi sử dụng Python để xây dựng và phân phối bất kỳ ứng dụng nào có giao diện người dùng đồ họa thực tế," anh ấy nói với ZDNet.  

"Trên máy tính để bàn, Python không bao giờ là ngôn ngữ hạng nhất của hệ điều hành và nó phải nhờ đến các framework của bên thứ ba như Qt hoặc wxPython. "

Ông nói, việc đóng gói và phân phối lại các ứng dụng máy tính để bàn Python cũng thực sự khó khăn.  

"Trên web, lối vào luôn là JavaScript hoặc một dẫn xuất. Và trên di động, Python hầu như không được sử dụng. Thật là một điều kỳ diệu khi Python thậm chí còn nằm trong tầm ngắm, ít được xếp hạng hơn nhiều trong ba ngôn ngữ hàng đầu. Nói một cách mỉa mai, nó phần nào là minh chứng cho sức mạnh và sự phổ biến của Python đối với khối lượng công việc phụ trợ và khoa học dữ liệu. "

Cộng đồng Python nhận ra rằng phân phối ứng dụng là gót chân Achilles của nó, nhưng Ronacher không nhìn thấy con đường phía trước mà không làm rạn nứt cộng đồng Python.  

Lần cuối cùng các nhà phát triển Python cố gắng giới thiệu những thay đổi lớn là Python 3, được phát hành vào năm 2008. Tuy nhiên, đến năm 2014, van Rossum gần như cầu xin các nhà phát triển "chuyển sang Python 3". Ở giai đoạn đó, các công ty như Instagram với cơ sở mã Python khổng lồ vẫn chưa chuyển đổi sang Python 3.  

"Python tự nhốt mình vào một góc mà rất khó để đổi mới mà không vi phạm mã của mọi người. Lần trước, nó đã cố gắng thực hiện một số thay đổi lớn hơn đối với Python, đó là Python 3, rất nhiều mã của mọi người đã bị hỏng. Phải mất 10 năm để hệ sinh thái phục hồi trở lại," Ronacher nói

Tại sao Python không chạy được trên trình duyệt?

Theo Ronacher, những hạn chế của Python bắt nguồn từ thiết kế, nguy cơ phá vỡ mã Python được sử dụng trong các hệ thống sản xuất và khiến phần lớn cơ sở người dùng lớn của nó xa lánh.  

Ronacher cho biết trình thông dịch của Python và giao diện nhị phân ứng dụng ngôn ngữ C (ABI) và giao diện giao thức ứng dụng (API) của nó đã cản trở sự đổi mới trong trình duyệt.    

Mặc dù các nhà phát triển JavaScript có thể nhúng mã của họ vào trình duyệt và có mọi tab chạy công cụ JavaScript của riêng mình, Python không thể vì ABI hiện tại, được tiếp xúc với các tiện ích mở rộng Python như NumPy. Điều này ngăn không cho nó có hai phiên bản trình thông dịch của nó trong cùng một không gian xử lý trong cái được gọi là ''.  

"Nếu bạn có hai phiên dịch viên, họ sẽ chia sẻ cùng một đối tượng," Ronacher giải thích. "Vì vậy, nếu 'tab một' sẽ sửa đổi một đối tượng, thì 'tab hai' cũng sẽ tuân theo sự sửa đổi đó. "

Mặc dù anh ấy thừa nhận việc chạy Python trong trình duyệt dù sao cũng không phổ biến, nhưng hạn chế đó có những tác động khác đến tương lai của nó và việc sử dụng nó như một ngôn ngữ lập trình chung.  

"Sẽ thật tuyệt nếu chúng tôi có thể chạy nhiều quy trình và có một quy trình được ghim vào một lõi CPU và thực hiện chuyển thông báo để lấy khóa trình thông dịch toàn cầu. Nhưng về cơ bản, việc tiếp xúc với API C này ngăn chặn toàn bộ những điều này.  

"Để thực hiện điều này, bạn sẽ phải loại bỏ hoặc thay đổi API C, điều này sẽ phá vỡ hệ sinh thái lớn nhất của Python. NumPy, SciPy và toàn bộ môi trường máy học. "

NHÌN THẤY. 10 cách để ngăn chặn sự kiệt sức của nhà phát triển (PDF miễn phí) (TechRepublic)

Ronacher cho biết Python đã "bị mắc kẹt như thế này trong nhiều năm". Hết lần này đến lần khác, những nỗ lực "tiêu diệt khóa trình thông dịch toàn cầu" đều thất bại vì nó sẽ gây rắc rối cho các tiện ích mở rộng như NumPy.  

Đây không phải là một thách thức kỹ thuật cốt lõi mà là một thách thức làm cho đủ người đủ quan tâm đến một sự đổi mới cho một nhóm có thể gây đau đớn cho một nhóm khác trong hệ sinh thái.  

"Nếu những gì bạn đang làm sẽ phá vỡ NumPy và điều đó sẽ không mang lại lợi ích cho cộng đồng NumPy, thì không rõ liệu bạn có nhận được sự ủng hộ để thực hiện điều đó hay không", ông chỉ ra.  

Thay vào đó, cộng đồng Python đã chuyển sang học máy và khoa học dữ liệu, ít quan tâm đến các vấn đề về hiệu suất của Python vì chúng có thể được khắc phục bằng cách chuyển mã sang GPU hoặc cụm có nhiều quy trình đang chạy độc lập.  

"Nhưng điều đó có nghĩa là Python không còn được sử dụng trong các trò chơi trên máy tính nữa, không được biên dịch cho trình duyệt và cũng ít được sử dụng hơn trong các ứng dụng web," ông nói.  

'Trăn mới' là có thể nhưng có thể chia rẽ cộng đồng

Wang và Ronacher đồng ý rằng một phiên bản kế nhiệm của Python có thể xuất hiện – một phiên bản không bị ràng buộc với các lựa chọn thiết kế hiện tại hạn chế việc sử dụng nó trong các lĩnh vực bên ngoài khoa học dữ liệu và hệ thống phụ trợ.  

"Nếu Python muốn cạnh tranh lâu dài với các ngôn ngữ phát triển ứng dụng khác ngoài phân tích dữ liệu, thì nó phải có một tầm nhìn nhất quán về những gì nó đại diện và tầm nhìn đó phải khác biệt," Wang của Anaconda nói.  

"Các lập trình viên luôn tìm kiếm những vật thể sáng bóng mới, vì vậy các ngôn ngữ hiếm khi được khen thưởng khi làm tốt nhiều việc. Tất nhiên, giá trị của Python như một ngôn ngữ chung cho tự động hóa hệ thống phụ trợ và viết kịch bản là một thứ khó thay thế. Nhưng nó không nên bằng lòng khi bị xuống hạng như vậy," anh ấy nói thêm

"Nhiều khái niệm và đối tượng cốt lõi của Python về bản chất được gắn với mô hình tính toán 'PC một nút'. Các ngôn ngữ thế hệ tiếp theo thực sự phải vượt ra khỏi mô hình này. "

Ronacher lạc quan rằng Python có thể được phát minh lại nhưng cũng chỉ ra số phận của Perl, một hit lập trình trên web vào đầu những năm 2000 nhưng giờ đã nằm ngoài top 10 của Tiobe. Perl hiện được gọi là Raku do sự rạn nứt trong cộng đồng về tương lai và di sản của nó

Sử dụng Perl làm thước đo cho thấy lý do tại sao bẻ cong tương lai của Python sẽ cần một nhân vật dũng cảm và tận tụy

"Tôi không nói rằng bạn không thể sửa Python. Tôi nghĩ bạn có thể tạo một phiên bản Python mới để sửa nhiều thứ đó, nhưng ai đó sẽ phải đến và nói, 'Chúng tôi có thể vạch ra một con đường hướng tới một phiên bản tương lai của ngôn ngữ không tương thích'," nói .  

"Một số nỗ lực mà mọi người đã cố gắng thực hiện điều đó đã kết thúc việc chia rẽ các cộng đồng. Perl 6 thậm chí không còn được gọi là Perl vì cộng đồng chưa bao giờ đăng ký đầy đủ và chi phí để chuyển sang phiên bản mới là viết mã từ đầu. "

Nguy cơ khác của những thay đổi đột phá lớn là những tín đồ cũ của một ngôn ngữ chỉ cần chuyển sang một ngôn ngữ thay thế hiện đại

Ronacher nói: "Ngay khi bạn nói, 'Chúng ta có thể làm phiên bản Python thực sự tuyệt vời này để khắc phục tất cả những vấn đề đó không?', thì có nghĩa là nó không còn giống Python nữa và không có lộ trình di chuyển rõ ràng".  

"Luôn có nguy cơ mọi người chuyển sang một ngôn ngữ khác hoàn toàn. Tôi không biết con đường đó sẽ là gì nhưng nếu Python muốn có một tương lai như một ngôn ngữ được áp dụng chung, thì có lẽ nó cần bắt đầu khám phá một số cải tiến cơ bản. "

Những ngôn ngữ mới như Rust và Julia thì sao?

Ronacher nói rằng anh ấy cảm thấy "cảm xúc tích cực" khi sử dụng Rust giống như khi anh ấy bắt đầu sử dụng Python. Tuy nhiên, Rust có tuổi trẻ nên nó cực kỳ được yêu thích nhưng lại không được sử dụng rộng rãi

"Bạn có thể đóng góp, thật thú vị khi làm việc và cứ sau sáu tuần, bạn sẽ nhận được bản cập nhật của trình biên dịch và bạn đọc nhật ký thay đổi. Nó khiến bạn hài lòng khi nâng cấp và nó có một hệ sinh thái thực sự tốt xung quanh nó. "

Ronacher cho rằng tuyên bố sứ mệnh của Rust rất quan trọng đối với sự phổ biến của nó, mặc dù mức độ chấp nhận thấp, vì nó giúp xác định phần nào của ngôn ngữ áp dụng cho một số nhà phát triển chứ không phải những người khác.  

"Tôi nghĩ rằng cộng đồng tự phân biệt thành những người có thể và không thể sử dụng Rust. Trong những năm qua, Python không bao giờ có điều đó," ông nói.  

Ronacher chỉ ra hỗ trợ Python cho Windows. Ví dụ: cho đến Windows 10 1903, Bản cập nhật tháng 5 năm 2019, Windows là hệ điều hành chính duy nhất không đi kèm với trình thông dịch Python.  

"Đây luôn là những nỗ lực độc lập của cộng đồng và không bao giờ có cảm giác nó là một phần của ngôn ngữ," anh nói.  

Đó là một câu chuyện khác với Rust do thiếu hành lý và tuyên bố sứ mệnh của nó, theo Ronacher.    

"Khi mọi người bắt đầu chuyển Rust sang hoạt động trên Windows, điều đó thực sự trở thành một nỗ lực cốt lõi trong ngôn ngữ," ông nói.  

Ví dụ: có một nhóm cộng tác viên Rust chịu trách nhiệm đảm bảo rằng nó hoạt động trên Windows, bao gồm hỗ trợ từ nhà tài trợ Rust, Microsoft.  

Nhưng trong Python, Ronacher cho biết các dự án như chuyển nó sang Windows "luôn là một suy nghĩ sau".  

“Đại khái là ai chịu làm thì mình làm, không thì cũng không sao. Và bạn cảm thấy nó. Ở Rust, họ quyết định rằng ngôn ngữ đóng gói tốt là cần thiết, vì vậy mặc dù có một nhóm riêng làm việc đó nhưng mọi người đều có trách nhiệm. "

Python cũng có những đối thủ mới nổi trong lĩnh vực khoa học dữ liệu, chẳng hạn như Julia, một ngôn ngữ được sinh ra từ phòng thí nghiệm trí tuệ nhân tạo CSAIL của MIT. Nhưng nó vẫn chưa được phổ biến rộng rãi.  

Wang cho rằng Julia rất hấp dẫn và các nhà sản xuất của nó cho rằng nó dễ sử dụng như Python, nhưng với những phẩm chất tốt nhất của R cho thống kê và Matlab cho đại số. Tuy nhiên, anh ấy thấy sự phổ biến của Python và R là một trở ngại đối với các nhà phát triển đã biết các ngôn ngữ và hệ sinh thái đó.  

"Julia là một ngôn ngữ có rất nhiều tính năng hay. Nhưng ngôn ngữ là một công nghệ lan truyền, trong đó có hiệu ứng mạng," Wang nói.  

"Cho đến khi một tỷ lệ phần trăm nhất định của cơ sở người dùng đang tích cực sử dụng nó và giới thiệu nó cho bạn bè và nhóm của họ, thì việc áp dụng sẽ rất chậm. Một thách thức của Julia là đối với nhiều nhóm, Python và R đã tồn tại và mặc dù chúng không hoàn hảo, nhưng chúng có thể 'đủ tốt'. "

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

Vào năm 2022, một số công ty hàng đầu trên thế giới sử dụng ngôn ngữ này trong hệ thống của họ — nhiều công ty đã tận dụng ngôn ngữ này trong nhiều năm. Một số sản phẩm mang tính biểu tượng nhất của một số công ty lớn thậm chí còn được viết bằng Python. Ngoài Reddit, các công ty này đều đang sử dụng Python. amazon.

Python đang mất dần tính phổ biến?

Đó là lý do tại sao một số người sống trong bóng tối cho rằng ngôn ngữ lập trình Python có thể mất đi tính phổ biến ngay sau năm 2023. Tuy nhiên, với sự thành công của Python trong học máy và các trường hợp sử dụng chung như phát triển web, dự án khoa học dữ liệu, v.v. , còn quá sớm để nói Python sẽ sớm biến mất

Điều gì sẽ thay thế Python?

Mặc dù Python vẫn có một số lợi thế so với Julia , chẳng hạn như cơ sở người dùng lớn hơn và hệ sinh thái trưởng thành hơn, nhiều nhà phát triển đang bắt đầu nhận thấy . Khi có nhiều người sử dụng Julia hơn, nó có thể sẽ trở nên phổ biến hơn và thay thế Python làm ngôn ngữ được lựa chọn cho nhiều tác vụ.

Python có thay thế Java không?

Theo thời gian, Python cũng có thể trở thành con rồng xấu lớn — tùy thuộc vào mức độ viết mã của bạn. Java được thay thế bằng Python làm ngôn ngữ khởi đầu vì Python dễ học hơn nhiều trong một khoảng thời gian ngắn — đặc biệt là đối với người mới bắt đầu học viết mã.