پرش به محتوای اصلی
رزرو مشاوره تلفنی تک جلسه‌ای با استاد رضوی
رزرو مشاوره تلفنی
کنکور کامپیوتر
0
اشتراک
 

زبان برنامه نویسی Mojo، جایگزینی برای پایتون

این مقاله عالی زبان برنامه نویسی Mojo (موجو) را که جایگزینی برای پایتون است را معرفی کرده، کدهای زبان Mojo شبیه به پایتون است اما سرعت آن بسیار بالاتر است

همانطور که می‌دانید زبان برنامه نویسی پایتون (Python) به دلیل ساده بودن و داشتن تعداد بسیار زیادی کتابخانه، یکی از انتخاب‌های اصلی محققین و دانشجویان است. اما به دلیل کند بودن زبان پایتون، معمولا نرم افزارها و برنامه‌هایی که نیاز به سرعت دارند را با این زبان نمی‌نویسند و در عوض زبان های C و سی پلاس پلاس در این حیطه بسیار کاربردی‌تر واقع می‌شوند. کمپانی هوش مصنوعی Modular AI اخیرا از زبان برنامه نویسی خود یعنی Mojo رونمایی کرده است. سینتکس‌های زبان برنامه نویسی Mojo دقیقا شبیه به زبان برنامه نویسی محبوب پایتون است، اما در کنار پرتابل بودن، سرعت اجرای آن همانند زبان برنامه نویسی C  است. بنابراین زبان mojo علاوه بر کاربردی بودن در زمینه تحقیقات، برای ساختن محصولات تجاری که به سرعت بالایی نیاز دارند هم مناسب است.

علاوه بر این‌ها، تیم دیویس (Tim Davis) و کریس لتنر (Chris Lattner) که در واقع از اعضای سازندگان LLVM و زبان Swift (زبان برنامه نویس MacOS و...) هستند، یک موتور پرسرعت و یکپارچه با نام Modular Platform نیز ساخته‌اند. بنابراین زبان برنامه نویسی Mojo پتانسیل این را دارد که در حوزه‌هایی مانند حوزه هوش مصنوعی جایگزین زبان پایتون شود. علاوه بر شباهت زبان Mojo به زبان پایتون، سازندگان این زبان گفته‌اند سرعت Mojo حتی تا 35 هزار برابر سریعتر هم می‌رود.

پست توییتر Modular AI در ارتباط با زبان برنامه نویسی Mojo - در این پست Modular AI به سرعت و مزایای زبان Mojo نسبت به زبان پایتون اشاره می کند

سازندگان زبان Mojo گفته‌اند که قصد آن‌ها ساخت یک زبان برنامه نویسی کاملا جدید نیست، هنگامی که آنها در حال ایجاد زیرساخت‌های یکپارچه برای هوش مصنوعی و یادگیری ماشین بوده‌اند (ML/AI) با مشکلات پیچیدگی فرایندها و پروسه‌های این کار برخوردند به همین دلیل شروع به ساختن زبان موجو (Mojo) کردند. بنابراین می‌توان گفت مواردی مانند برنامه نویسی متا یا Metaprogramming در زمان کامپایل، سیستم Caching در زبان کامپایل و بسیاری از موارد دیگر یک زبان های برنامه نویسی، در این زبان وجود نخواهد داشت.

ویژگی زبان Mojo

مهم ترین ویژگی های زبان Mojo در لیست زیر آورده شده است:

  • پشتیبانی از چندین ساختارهای سخت افزاری: به وسیله زبان Mojo، امکان بهره‌برداری مستقیم از CPU ،GPU ،TPU و همچنین چیپ‌های ASIC وجود دارد. در کل اینکه در زبان برنامه نویسی Mojo امکان نوشتن برنامه سیستمی وجود دارد.
  • سینتکس برنامه نویسی سطح بالا: سینتکس زبان برنامه نویسی Mojo سطح بالا و بسیار شبیه به پایتون است. بنابراین برنامه نویسان زبان پایتون به راحتی می‌توانند از این زبان استفاده کنند.
  • موازی سازی خودکار (Automatic Parallelization): زبان Mojo نوشتن کدهای موازی و کارآمد را به وسیله فرایندهای موازی‌سازی خودکار، ساده کرده است. بنابراین برای نوشتن کدهای موازی بوسیله زبان برنامه نویسی Mojo نیاز به داشتن دانش‌های سطح پایین درباره سیستم‌های موازی و مواردی از این قبیل نیست. نمایش اجرا به صورت موازی روی چندین هسته در زبان Mojo در برابر اجرا به صورت تک نخی در زبان پایتون
  • بررسی و ارزیابی نوع داده: زبان Mojo از یک سیستم بررسی و ارزیابی نوع داده (Type Inference) استفاده می‌کند تا اگر خطا و باگی در کدهای نوشته شده وجود داشت، در زمان کامپایل آن را پیدا کند تا از خطاهای زمان اجرا یا Runtime Error جلوگیری کند.
  • کامپایل ایستا (Static Compilation): زبان Mojo به طور ایستا به وسیله کامپایلر (Compiler)، کامپایل می‌شود. نتیجه این امر سرعت بالای اجرا شدن و بهینه شدن کد از طریق کامپایل قبل از اجرا است.

دوره برنامه نویسی پایتون

پایتون (Python) یا پایتان یک زبان برنامه نویسی چند منظوره و سطح بالاست که بطور بسیار گسترده ای مورد استفاده برنامه نویسان و غیر برنامه نویسان قرار می‌گیرد. پایتون در سال های اخیر به یکی از محبوب ترین زبان های برنامه نویسی در جهان تبدیل شده است.

چه چیزهایی در این دوره یاد می‌گیرید

دستورات کنترلی
ذخیره‌سازی و داده ساختارها
ذخیره‌سازی و داده ساختارها
حلقه‌ها
توابع در پایتون
مدیریت خطاها در پایتون
کار با فایل‌ها
شی گرایی
برنامه نویسی موازی و تردها

نمونه فیلم‌هایی از جلسات برنامه نویسی پایتون

چرا باید پایتون را یاد بگیریم؟

چه چیز هایی را قرار است در این دوره یاد بگیریم؟ و مروری بر تاریخچه پایتون

نصب پایتون اجرا کردن اولین خط کد

آماده سازی ویرایشگر VS Code آشنایی با سینتکس پایتون

آماده سازی مینی کندا + توابع پرینت و ماژول math

معرفی عملگرها و چرایی نیاز به کنترل جریان در برنامه نویسی

مفهوم داده ساختارها در پایتون

آشنایی با دیکشنری ها

آشنایی با حلقه ها

معرفی کلی توابع با مثال های متنوع

خطاها چی هستند؟

نحوه کار کردن با فایل و خواندن آن در مودهای مختلف

تاریخچه برنامه‌‎ نویسی

مفهوم شی‌گرایی

معرفی فرآیند Process - تفاوت فرآیند و برنامه

مرور کلی مباحث و حل یک تمرین پیرامون اعداد اول

چرا باید پایتون را یاد بگیریم؟
چه چیز هایی را قرار است در این دوره یاد بگیریم؟ و مروری بر تاریخچه پایتون
نصب پایتون اجرا کردن اولین خط کد
آماده سازی ویرایشگر VS Code آشنایی با سینتکس پایتون
آماده سازی مینی کندا + توابع پرینت و ماژول math
معرفی عملگرها و چرایی نیاز به کنترل جریان در برنامه نویسی
مفهوم داده ساختارها در پایتون
آشنایی با دیکشنری ها
آشنایی با حلقه ها
معرفی کلی توابع با مثال های متنوع
خطاها چی هستند؟
نحوه کار کردن با فایل و خواندن آن در مودهای مختلف
تاریخچه برنامه‌‎ نویسی
مفهوم شی‌گرایی
معرفی فرآیند Process - تفاوت فرآیند و برنامه
مرور کلی مباحث و حل یک تمرین پیرامون اعداد اول

آیا زبان برنامه نویسی Mojo یک زبان برنامه نویسی جدید است؟

همانند زبان برنامه نویسی Julia که قرار بود به دلیل مقیاس‌پذیری و ویژگی‌های دیگر جایگزین پایتون شود، زبان Mojo هم یک رقیب دیگر برای زبان پایتون محسوب می‌شود. اما طبق داکیومنت های زبان Mojo، هدف زبان Mojo ساخت یک زبان برنامه نویسی از ابتدا نیست و در واقع این زبان قصد دارد از کلیه اکوسیستم پایتون و کتابخانه‌های آن بهرمند شود، این در حالی است که این زبان بر روی یک Codebase کاملا جدید ساخته شده است، با داشتن تمامی قابلیت‌ها و کتابخانه‌های زبان پایتون و سرعت محاسباتی بالا در حد زبان C و ++C، برنامه نویسان هوش مصنوعی پایتون، عوض اینکه برای سرعت بالا، متکی به زبان های C و ++C شوند، می‌توانند به زبان Mojo تکیه کنند.

نساختن یک زبان از پایه و استفاده از ویژگی‌ها و اکوسیستم زبان پایتون، یک حرکت بسیار هوشمندانه بوده است، همچنین اینکه زبان Mojo تا زمانی که به یک ابرمجموعه (Superset) پایتون 3 تبدیل شود، یا Open Source باقی خواهد ماند.

آینده زبان Mojo چگونه است؟

زبان Python و حتی Julia، زبان‌های مناسبی برای برنامه نویسی سیستم (System Programming) نیستند و بیشتر برای ساخت مدل های AI به‌کار می‌آیند. برای غلبه بر این مشکلات و محدودیت‌ها، اکثر کتابخانه‌های این زبان به‌وسیله C و++C ساخته می‌شوند، ساخت این‌چنین کتابخانه‌های ترکیبی نیازمند داشتن دانش کامل در مورد زبان های C و ++C است، بنابراین زبان Mojo برای غلبه بر این مشکلات بوجود آمده و تمامی این فرایندها را درون یک بستر یکپارچه متمرکز کرده است.

البته هر زمان که فناوری جدیدی از راه می‌رسد، مخالفان و افراد شکاکی وجود دارند که استدلال‌ها و نکات بعضا جالبی را مطرح می‌کنند. بعضی از افراد در مورد بهبود عملکرد و سرعتی که سازندگان زبان Mojo مدعی شده‌اند شک دارند و برخی حتی می‌گویند که این زبان زیاد شبیه به پایتون نیست. به هر حال زبان Mojo، زبان تازه‌ای است که تیم پشت آن افرادی با سابقه کاری درخشان هستند، این زبان هنوز به تکامل نرسیده است و هنوز خیلی از ویژگی‌های پایتون مانند ویژگی Class و خیلی از ویژگی‌های دیگر را ندارد، تنها باید منتظر بمانیم و ببینیم که آیا موفقیتی پیش روی زبان Majo است یا خیر.

نمونه کد زبان Mojo

همانطور که گفته شد، سینتکس های زبان برنامه نویسی Mojo بسیار شبیه به زبان پایتون است، در زیر یک نمونه از کد نوشته شده به زبان Mojo را مشاهده می‌کنید:

def softmax(lst):
  norm = np.exp(lst - np.max(lst))
  return norm / norm.sum()
 
struct NDArray:
  def max(self) -> NDArray:
    return self.pmap(SIMD.max)
 
struct SIMD[type: DType, width: Int]:
  def max(self, rhs: Self) -> Self:
    return (self >= rhs).select(self, rhs)

نمونه فیلم‌های دوره‌های مهارتی

جمع‌بندی

هر ساله شاهد بوجود آمدن زبان‌های برنامه نویسی جدیدی هستیم که بسیاری از مشکلات زبان‌های موجود در بازار را برطرف کرده و قصد جایگزین شدن با آن زبان را دارند، بعضی از این پروژه‌ها موفق و بعضی دیگر ناموفق می‌شوند، زبان برنامه نویسی Mojo یکی از این زبان‌هایی است که قصد دارد در حوزه هوش مصنوعی جایگزین زبان برنامه نویسی پایتون شود. در این مقاله یک نگاه اجمالی به زبان برنامه نویسی Mojo انداختیم و در مورد اصلی‌ترین ویژگی های زبان Mojo بحث کردیم، همچنین بررسی‌هایی در مورد پتانسیل زبان Mojo برای جایگزین شدن با زبان‌های Python و Julia نیز انجام دادیم.

زبان برنامه نویسی Mojo چیست؟

زبان برنامه نویسی Mojo یک زبان جدیدی است که توسط کمپانی هوش مصنوعی Modular AI ساخته شده است، سینتکس‌های زبان Mojo شبیه به زبان پایتون است در حالی که سرعت پردازش زبان Mojo همانند زبان‌های C و ++C می‌باشد.

آیا امکان استفاده از کتابخانه های Python در زبان Mojo وجود دارد؟

در حال حاضر تعدادی از کتابخانه‌های زبان پایتون در زبان Mojo قابل استفاده است، اما قرار است این زبان قادر باشد تا از تمامی کتابخانه‌های پایتون استفاده کند.

آیا زبان Mojo یک جایگزین برای Python است؟

از آنجایی که این زبان یک زبان تازه است، اطلاعات دقیقی در مورد پتانسیل جایگزین شدن این زبان در دست نیست، اما هدف سازندگان زبان Mojo این است که حداقل در بخش هوش مصنوعی بتوانند این زبان را جایگزین زبان Python کنند زیرا زبان Mojo بسیاری از مشکلاتی که برنامه نویسان هوش مصنوعی به زبان پایتون با آن دست و پنجه نرم می‌کنند را حل کرده است.

دوره‌های مهارتی رشته کامپیوتر

این مطلب چقدر به کارت آمد؟4.62511111111114.63 از ۵ 12 رأی
اشتراک

پرسش و پاسخ داوطلبان کنکور ارشد کامپیوتر

سوال شما توسط استاد رضوی پاسخ داده می‌شود و از طریق پیامک به شما اطلاع رسانی می‌شود
×
kb
4 پرسش و پاسخ
avatar
میلاد
درود
امکانش هست منبعی رو برای یادگیری این زبان معرفی کنید؟
avatar
رامین رضوی
سلام، وقت بخیر، با سرچ در گوگل براحتی می‌توانید در خصوص این زبان برنامه نویسی جدید اطلاعات لازم را بدست بیاورید، موفق و پیروز باشید
avatar
کیوبوید
بهتره از داکیومنت خودش استفاده کنی . بهترین مرجع برای هر زبانی داک همون زبانه
avatar
رامین رضوی
سلام، وقت بخیر، این زبان بسیار جدید است و در این خصوص بهتر است در گوگل سرچ کنید، موفق و پیروز باشید
هیچ نظری ارسال شده در اینجا وجود ندارد
تلگرام اینستاگرام تماس با پشتیبانی: 09378555200 تماس با پشتیبانی: 09378555200
خدمات ما
پشتیبانی کنکور کامپیوتر

سؤالی داری؟ از ۸ صبح تا ۱۰ شب پاسخ‌گوییم.

تماس با پشتیبانی۰۹۳۷۸۵۵۵۲۰۰ پشتیبانی در تلگرامپاسخ‌گویی پیامی
شبکه‌های اجتماعی
کانال تلگرام اینستاگرام آپارات یوتیوب
اشتراک‌گذاری این مطلب

زبان برنامه نویسی Mojo، جایگزینی برای پایتون

تلگرام واتس‌اپ ایکس
https://www.konkurcomputer.ir/زبان-برنامه-نویسی-mojo.html
خدمات کنکور کامپیوتر
هر چیزی که برای قبولی لازم داری، یک‌جاخدمات ما

از مشاوره‌ی شخصی با استاد رضوی تا فیلم‌های دروس، پلتفرم‌ها و ابزارهای رایگان

مشاوره‌ی شخصی با استاد رضوی
تماس با پشتیبانی