Chris Lattner , người tạo ra LLVM và Swift , đã tạo nên làn sóng với Mojo , một ngôn ngữ lập trình mới được thiết kế để thu hẹp khoảng cách giữa tính dễ sử dụng của Python và hiệu suất cần thiết cho việc tính toán GPU hiện đại. Tuy nhiên, bất chấp những khả năng kỹ thuật đầy hứa hẹn và sự hỗ trợ từ các chuyên gia trong ngành, Mojo đang gặp phải sự phản đối đáng kể từ cộng đồng nhà phát triển.
Tổng quan tình trạng ngôn ngữ Mojo
Khía cạnh | Tình trạng hiện tại |
---|---|
Giấy phép | Độc quyền (hứa hẹn mã nguồn mở vào năm 2026) |
Tương thích Python | Cú pháp giống Python, không phải tập cha đầy đủ |
Hỗ trợ Class | Mục tiêu trung hạn (chưa được triển khai) |
Hỗ trợ GPU | Hỗ trợ CUDA/NVIDIA, các bộ tăng tốc khác yêu cầu giấy phép thương mại |
Mức độ áp dụng | Hạn chế mặc dù đã có sẵn để sử dụng rộng rãi |
Những lo ngại về bản quyền tạo ra rào cản lớn
Trở ngại lớn nhất mà Mojo đối mặt có vẻ là mô hình cấp phép độc quyền của nó. Không giống như nền tảng mã nguồn mở đã xây dựng nên những thành công trước đây của Lattner với LLVM và Swift , Mojo hiện tại hoạt động dưới giấy phép thương mại hạn chế. Giấy phép này phân biệt giữa phần cứng CPU và NVIDIA ở một bên, và các bộ gia tốc khác như TPU hoặc GPU AMD ở bên kia, yêu cầu các thỏa thuận thương mại riêng biệt cho danh mục sau.
Mặc dù Modular đã hứa sẽ mở mã nguồn Mojo vào năm 2026, nhiều nhà phát triển vẫn còn hoài nghi. Cộng đồng đã bày tỏ lo ngại về những thay đổi giấy phép tiềm tàng trong tương lai, so sánh với các công cụ độc quyền khác ban đầu có được sự chấp nhận trước khi thực hiện các mô hình cấp phép hạn chế.
Lời hứa về siêu tập hợp Python đang phát triển
Ban đầu được tiếp thị với mục tiêu trở thành siêu tập hợp của Python , mục tiêu của Mojo đã trở nên tinh tế hơn theo thời gian. Nhóm phát triển đã thừa nhận rằng khả năng tương thích đầy đủ với Python thách thức hơn so với dự kiến ban đầu. Lộ trình hiện tại cho thấy rằng mặc dù Mojo sẽ duy trì cú pháp giống Python và khả năng tương tác, nó có thể không đạt được trạng thái siêu tập hợp hoàn chỉnh.
Sự thay đổi này đã tạo ra sự nhầm lẫn trong cộng đồng, với một số người coi đó là một sự xoay trục chiến lược hơn là sự cần thiết kỹ thuật. Ngôn ngữ này vẫn thiếu các tính năng cơ bản như hỗ trợ lớp, điều này vẫn là mục tiêu trung hạn theo các cuộc thảo luận gần đây.
Sự đánh đổi giữa hiệu suất và hệ sinh thái
Mojo hứa hẹn sẽ giải quyết vấn đề hai ngôn ngữ trong học máy, nơi các nhà phát triển thường sử dụng Python để điều phối cấp cao và C++/CUDA cho các kernel quan trọng về hiệu suất. Tuy nhiên, cuộc tranh luận trong cộng đồng tiết lộ một căng thẳng cơ bản: trong khi các ngôn ngữ mới có thể cung cấp cải thiện hiệu suất, chúng hy sinh những lợi thế hệ sinh thái rộng lớn khiến Python thống trị trong ML .
Sức mạnh của Python không chỉ nằm ở các thư viện tính toán số, mà còn ở hệ sinh thái toàn diện của nó bao gồm xử lý dữ liệu, API web, trực quan hóa và các công cụ triển khai. Việc tái tạo hệ sinh thái này đại diện cho một công việc khổng lồ mở rộng xa hơn thiết kế ngôn ngữ.
Các Tính Năng Kỹ Thuật Chính
- Cú pháp đường ngọt trên MLIR (Multi-Level Intermediate Representation)
- Mục tiêu biên dịch đạt hiệu suất native trong khi duy trì cú pháp giống Python
- Được thiết kế cho lập trình GPU kernel và khối lượng công việc ML
- Xử lý ngoại lệ được triển khai như cú pháp đường ngọt cho các kiểu Result
- Biên dịch nhanh hơn so với Swift (giải quyết các vấn đề thiết kế ngôn ngữ trước đây)
Cạnh tranh từ các giải pháp hiện có
Cuộc thảo luận làm nổi bật rằng Mojo đối mặt với cạnh tranh từ nhiều mặt trận. Julia đã giải quyết nhiều vấn đề hiệu suất tương tự trong khi duy trì một hệ sinh thái trưởng thành hơn. Trong khi đó, các giải pháp dựa trên Python như Triton , JAX và PyTorch tiếp tục phát triển, với các công ty lớn như OpenAI và Meta sử dụng Triton cho các kernel GPU quan trọng.
Triton là một backend cho PyTorch . Gần đây nó là backend chính. Vì vậy nó chắc chắn là tỷ lệ phần trăm hai chữ số nếu không phải hơn 50%.
Mối quan ngại của cộng đồng
- Cấp phép: Các điều khoản thương mại hạn chế đối với các bộ tăng tốc không phải NVIDIA
- Hệ sinh thái: Hạn chế so với ngăn xếp ML/khoa học dữ liệu trưởng thành của Python
- Tính đầy đủ: Thiếu các tính năng ngôn ngữ cơ bản như classes
- Niềm tin: Sự hoài nghi về cam kết mã nguồn mở trong tương lai
- Cạnh tranh: Các giải pháp hiện có ( Triton , JAX , Julia ) đã giải quyết những nhu cầu tương tự
Kiểm tra thực tế thị trường
Bất chấp sự đổi mới kỹ thuật, Mojo đã thấy việc chấp nhận hạn chế kể từ khi phát hành. Sự kết hợp của các hạn chế cấp phép, các tính năng ngôn ngữ không hoàn chỉnh, và thách thức xây dựng một hệ sinh thái mới từ đầu đã tạo ra những rào cản đáng kể để gia nhập. Nhiều nhà phát triển đang có cách tiếp cận chờ đợi và quan sát, đặc biệt là với tốc độ đổi mới nhanh chóng trong các framework ML hiện có.
Tình huống này phản ánh một thách thức rộng lớn hơn trong việc chấp nhận ngôn ngữ lập trình: công đức kỹ thuật một mình là không đủ mà không giải quyết các lo ngại thực tế xung quanh cấp phép, sự trưởng thành của hệ sinh thái, và khả năng tồn tại lâu dài. Mặc dù công nghệ cơ bản của Mojo có vẻ vững chắc, con đường đến việc chấp nhận rộng rãi vẫn không chắc chắn cho đến khi những vấn đề cơ bản này được giải quyết.
Tham khảo: Why ML Needs a New Programming Language with Chris Lattner