Bạn đã bao giờ mong muốn xây dựng các ứng dụng nhanh hơn và hiệu quả hơn nhưng lại phát hiện ra rằng các ngôn ngữ lập trình tiêu chuẩn không thể đáp ứng yêu cầu của bạn?
Đây là lúc Ngôn ngữ Mojo phát huy tác dụng.
Mojo là một ngôn ngữ lập trình mới được phát triển bởi Modular, một công ty chuyên về cơ sở hạ tầng AI.
Nó được thiết kế đặc biệt để cho phép các nhà phát triển xây dựng các ứng dụng nhanh hơn và mạnh mẽ hơn cho một số trường hợp sử dụng, bao gồm cả phát triển AI. Trong bài đăng này, chúng ta sẽ xem xét những gì Mojo là, nó hoạt động như thế nào và tại sao bạn nên sử dụng nó trong dự án tiếp theo của mình.
Nguồn gốc của Mojo
Những người tạo ra Mojo đã nhận ra nhu cầu về một ngôn ngữ lập trình kết hợp khả năng sử dụng của Python với tốc độ và hiệu quả của C.
Và, họ đã thiết lập một ngôn ngữ cho phép các nhà phát triển xây dựng các ứng dụng hiệu suất cao mà không cần phải học các ngôn ngữ mô tả phần cứng tiêu chuẩn.
Do đó, họ đã tạo ra Mojo, có nghĩa là tương thích hoàn toàn với hệ sinh thái Python trong khi cung cấp tốc độ cấp độ C.
Mô-đun: Tổ chức Đằng sau Ngôn ngữ Mojo
Vì vậy, những người tạo ra ngôn ngữ tương lai này là ai?
Modular là công ty khởi nghiệp về cơ sở hạ tầng AI hàng đầu thế giới do Chris Lattner và Tim Davis thành lập. Họ đã gặp nhau tại Google và nhận ra rằng cơ sở hạ tầng quá phức tạp và phân mảnh đang hạn chế ảnh hưởng toàn cầu của AI.
Mục đích và mục tiêu của Modular là suy nghĩ lại về cơ sở hạ tầng AI để nâng cao tính nhân văn. Văn hóa và nguyên tắc của họ đặt ưu tiên hàng đầu cho khách hàng, phần mềm sản xuất chất lượng cao và mang lại kết quả có ý nghĩa
Mục tiêu của Mojo
Mojo được thiết kế để cung cấp một mô hình lập trình độc đáo cho máy gia tốc máy học.
Mô-đun đã xác định rằng Mojo nên cho phép lập trình cho mục đích chung vì CPU ngày nay có bộ căng và các bộ tăng tốc AI khác. Hơn nữa, vì Python được sử dụng rộng rãi trong học máy và các lĩnh vực khác, Modular đã chọn tham gia hệ sinh thái Python.
Việc sử dụng Python đã giúp thiết kế ngôn ngữ dễ dàng hơn. Bởi vì phần lớn cú pháp đã được xác định, thay vào đó, tập đoàn có thể tập trung vào việc xây dựng cơ chế biên dịch và cung cấp các khả năng lập trình chuyên dụng.
Các tính năng quan trọng cần xem xét
Lập trình
Các loại lũy tiến
Tính năng loại lũy tiến của Mojo Language cho phép nhà phát triển sử dụng chú thích loại để nâng cao hiệu quả và kiểm tra lỗi.
Các nhà phát triển có thể thiết kế mã hiệu quả hơn để phát hiện lỗi tại thời điểm biên dịch, loại bỏ lỗi và nâng cao hiệu quả bằng cách cung cấp thông tin loại kỹ lưỡng hơn.
Trừu tượng chi phí bằng không
Các nhà phát triển có thể kiểm soát việc lưu trữ bằng cách phân bổ dữ liệu nội tuyến vào các cấu trúc nhờ vào sự trừu tượng hóa chi phí bằng không do Ngôn ngữ Mojo cung cấp.
Bằng cách loại bỏ yêu cầu phân bổ bộ nhớ bổ sung, tính năng này cải thiện hiệu quả của mã và giảm số lượng mã soạn sẵn.
Tự động điều chỉnh ngôn ngữ tích hợp
Chức năng tự động điều chỉnh tích hợp ngôn ngữ trong Mojo Language cho phép các nhà phát triển tự động xác định các giá trị lý tưởng của tham số để hưởng lợi từ phần cứng mục tiêu.
Với chức năng này, việc tối ưu hóa mã sẽ đơn giản hơn mà không cần phải điều chỉnh mã theo cách thủ công cho mọi kết hợp phần cứng.
Mojo Language là một công cụ linh hoạt và hiệu quả để phát triển AI vì nó cũng cung cấp toàn bộ sức mạnh của MLIR (Đại diện trung gian đa cấp), thời gian chạy không đồng nhất song song và thời gian xây dựng nhanh chóng.
Song song hóa
Mojo sử dụng MLIR, cho phép các lập trình viên sử dụng các vectơ, luồng và đơn vị phần cứng cho AI để song song hóa. Mojo hỗ trợ xử lý song song trên một số lõi trái ngược với thực thi đơn luồng của Python.
Với tốc độ tăng 35,000 lần so với Python, Mojo đánh bại các ngôn ngữ khác về tốc độ.
Khả năng cộng tác
Khả năng tương tác với toàn bộ hệ sinh thái Python là một trong những lợi thế độc đáo của Mojo. Điều này ngụ ý rằng bạn có thể kết hợp Mojo với bất kỳ thư viện tùy ý nào, chẳng hạn như Numpy và Matplotlib, cũng như mã riêng của bạn.
Chẳng hạn, bạn có thể trực quan hóa dữ liệu trong mã Mojo của mình bằng thư viện Python Matplotlib.
Khả năng mở rộng
Mojo cũng khá linh hoạt, cho phép người dùng chỉ cần thêm các bước xử lý trước và sau vào mô hình hoặc hoán đổi các bước hiện có cho các bước mới.
Để cải thiện các mô hình của họ và ngăn xếp Mô-đun, các nhà phát triển có thể sử dụng phản ứng tổng hợp hạt nhân, viết lại biểu đồ, hàm hình dạng và các kỹ thuật khác.
Tại sao bạn lại chọn nó thay vì Python?
Python là ngôn ngữ phát triển AI phổ biến vì tính linh hoạt và các thư viện được biên dịch hiệu suất cao. Tuy nhiên, nó chậm hơn đáng kể so với các ngôn ngữ như C++.
Do đó, các lập trình viên học cách sử dụng trình bao bọc Python xung quanh các ngôn ngữ nhanh hơn để tránh sử dụng Python cho các khu vực quan trọng về hiệu suất.
Điều này dẫn đến vấn đề hai ngôn ngữ, trong đó các mô hình phải được chuyển đổi từ Python sang triển khai nhanh hơn, chẳng hạn như ONNX hoặc tập lệnh ngọn đuốc, vốn không hỗ trợ tất cả các khả năng của Python. Python cũng có vấn đề về hiệu năng và thiếu khả năng xử lý song song tốt.
Ngay cả những lập trình viên có kinh nghiệm cũng thấy khó nghiên cứu, gỡ lỗi và giải quyết các vấn đề về hiệu suất do tình trạng tiến thoái lưỡng nan giữa hai ngôn ngữ.
Ngoài ra còn có những hạn chế cơ bản đối với những gì Python có thể làm do cách ngôn ngữ được cấu trúc. Mặc dù việc triển khai các thuật toán sử dụng các thành phần cơ bản trong thế giới thực có vẻ dễ dàng, nhưng nó khó hơn đáng kể và đòi hỏi phải sử dụng ngôn ngữ nhanh hơn.
Làm thế nào để bắt đầu?
Bạn có thể bắt đầu sử dụng Mojo Language ngay bây giờ trong Sân chơi của họ để bắt đầu. Sân chơi dựa trên JupyterHub cung cấp các bài học và cơ hội tạo mã Mojo của riêng bạn, mặc dù Mojo vẫn đang trong quá trình hoàn thiện.
Bạn có thể đăng ký truy cập trên trang web của họ để truy cập Sân chơi.
Để đạt được các mục tiêu hiệu suất của mình, Mojo sử dụng các công nghệ biên dịch thế hệ tiếp theo với các công nghệ phân phối bộ nhớ đệm, đa luồng và đám mây tích hợp.
Nó bổ sung các nguyên hàm bổ sung cho lập trình hệ thống và mong muốn trở thành siêu bộ Python theo thời gian. Để bắt đầu viết mã với Mojo, hãy sử dụng trình biên dịch Mojo để chạy chương trình Mojo từ thiết bị đầu cuối giống như cách Python thực hiện.
Ngôn ngữ này hiện đang được phát triển và hướng đến các nhà phát triển có kinh nghiệm về lập trình hệ thống.
Tổng kết
Mojo được coi là siêu bộ Python. Và, nó có tiềm năng cách mạng hóa việc lập trình bằng cách kết hợp sự đơn giản của Python với hiệu năng của C++ và Rust.
Nó có thể tận dụng toàn bộ Thư viện Python hệ sinh thái, cho phép các nhà phát triển tạo các thư viện hiệu suất cao mà không cần C, C++, Rust hoặc CUDA.
Nó cho phép sản xuất mã di động nhờ các tính năng lập trình meta thời gian biên dịch và tự động điều chỉnh.
Mặc dù nó vẫn đang trong quá trình hoàn thiện, nhưng nó có tiềm năng trở thành một công cụ lập trình đáng gờm và biến đổi ngành công nghiệp lập trình. Vì vậy, chúng ta nên theo dõi những phát triển trong tương lai từ Modular!
Chris Santos
Bạn có nghĩ rằng một người có kiến thức cơ bản đến trung cấp sẽ có thể bắt đầu học ngôn ngữ mới này không? Hay bạn khuyên bạn nên học một ngôn ngữ cơ bản hơn trước, chẳng hạn như Javascript hoặc Python?
İlke Candan Bengi
Xin chào Chris, xin lỗi vì phản hồi muộn! Tôi tin rằng việc có hiểu biết/kinh nghiệm cơ bản về Python từ trước có thể hữu ích trước khi bắt đầu với Mojo.