پایتون یا متلب؟! بررسی برتری ها و نقص ها!

SaDeGH_F

عضو جدید
همان طور که می دانید سالهاست در دانشگاه های ما متلب بعنوان یک زبان برنامه نویسی مرجع برای حل مسائل متعدد (به ویژه در حوزه های ریاضی و مهندسی) به کار می رود و بدلیل اینکه اغلب اوقات ما اصولا اعتقادی به خرید نسخه قانونی این نرم افزار نداریم در کوچکترین شرکت ها یا کارگاه های کشور نیز بسیار جا افتاده است.

اما چند زمانیست که سر و صدای یک زبان جدید به اسم پایتون هم شنیده میشود (البته جدید از دید مدت نفوذ این زبان در ایران زیرا قدمت این زبان به سال 1991 برمیگردد) که به عقیده ی بسیاری از متخصصین می تواند جایگزین مناسبی برای متلب باشد.

حال در این تاپیک سعی داریم مقایسه ای نسبی بین این دو محیط بر اساس تجربه کار با هر دو زبان و همچنین تحقیقات انجام شده در بین کامیونیتی های فعال در این حوزه به ثمر برسانیم.

مقایسه اکوسیستم پایتون و متلب:


pythonvsmatlab.png

متلب از یک اکوسیستم استاندارد و واحد بهره می برد که بصورت یک پکیج کامل به کاربر عرضه میشود. محیط کد نویسی، جستجوگر فایل، Command Prompt و... مورد استفاده برای متلب کاملا منحصر بفرد این برنامه است و هیچ جایگزین دیگری موجود نیست (البته این اکوسیستم آنقدر قوی هست که به عقیده ی بسیار از کاربران شاید نیاز آنچنانی به جایگزین وجود نداشته باشد). تمام تابع ها و دستورات مورد استفاده در متلب همراه با خود برنامه عرضه شده اند و نیازی به ایمپورت آنها توسط کاربر نیست، گرچه شاید این وابستگی تابع ها به تنها تیم سازنده متلب باعث شده است انعطاف پذیری این زبان کاهش چشم گیری پیدا کند و به کارهای خاص علمی محدود شود.

اما در سوی دیگر پایتون یک زبان متن باز و کاملا تغییر پذیر است و گروه های نرم افزاری زیادی اقدام به عرضه IDE های مختلف برای این برنامه کرده اند. برای هر نوع کاربرد خاصی (از پایه ریزی یک وب سایت تا ساخت یک برنامه مبتنی بر ویندوز یا اندروید) کتابخانه های مختلفی وجود دارد که البته باید هر کدوم از اونها بر حسب نیاز بصورت دستی توسط کاربر به پروژه ادغام بشوند (لازم به ذکر است که اضافه کردن این کتابخانه ها توسط نیم خط کد نویسی انجام میشود و زحمت زیادی ندارد، مثلا: "[FONT=&quot]from skimage import morphology[/FONT]")

با متلب چه مشکلی داریم؟
شاید بپرسید حال که این زبان برنامه نویسی به این خوبی هم در جامعه دانشگاهی و همچنین صنعتی ایران جا افتاده است پس چه نیازیست که به فکر پیدا کردن یک جایگزین برای آن باشیم؟
بهمین عنوان قصد داریم چند مورد از نقوص زبان متلب را عنوان کنیم:

گران بودن
نسخه خانگی 2016 این نرم افزار که فقط به شما امکان کد نویسی را می دهد تا 200 دلار برای شما آب می خورد، جدای از این برای استفاده از هر فریم ورک متلب باید مبلغ جداگانه ای بپردازید و اگر مسائل مربوط به پرداخت های ارزی و مشکلات مربوط به تحریم و... را در نظر بگیریم این مشکل بروز بیشتری پیدا می کند (البته شاید برای من و شمایی که به راحتی چند کلیک از نسخه کرک شده استفاده می کنیم زیاد مورد مهمی نباشد اما در بعد عمومی و صنعتی می تواند هزینه ساز شود).

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

مشکلات مربوط به اجرای نرم افزار در سیستم دیگر
تیم سازنده متلب تا توانسته اند بر سر روند اجرای کد نوشته شده شما در یک سیستم دیگر محدودیت اجرا کرده اند. اگر بخواهید نرم افزاری که به کک این زبان ساخته اید را در محیطی دیگر اجرا کنید ابتدا باید مطمئن شوید که در سیستم مقصد هم متلب نصب شده باشد و همچنین ورژن آن دقیقا مطابق با ورژن نرم افزار خودتان باشد. شاید این مشکل در ابتدا آنچنان مهم بنظر نرسد اما اگر این نکته را در نظر بگیرید که متلب هر 6 ماه یک نسخه جدید منتشر می کند آنگاه بزرگی این مشکل به نظرتان خواهد آمد.


چرا پایتون می تواند انتخاب مناسب تری باشد؟

رایگان بودن
استفاده از پایتون حتی یک ریال هم برای شما خرجی ندارد و تنها با نصب پکیج اصلی می توانید شروع به کد نویسی کنید.

متن باز بودن
اوپن سورس بودن این زبان به شما این اجازه را می دهد که تا ریز ترین تابع های مورد استفاده در یک عملکرد را مشاهده و ویرایش کنید. همچنین ایجاد راحت نسخه مخصوص برای کارایی شرکت یا پروژه شما می تواند در استفاده سایرین از محصول شما بسیار کمک کننده باشد.

زبانی اصیل و قدرتمند
پایتون از همان ابتدا برای استفاده بعنوان یک زبان برنامه نویسی عام ساخته شده و ایده های شما به دلیل ساختار موضوع-محوری این زبان با آسانی بیشتری کدنویسی شوند. برخلاف متلب که چون ابتدا شرط ماتریس بودن را اعمال میکند انعطاف خوبی در بسیاری از مسائل از خود نشان نمی دهد.

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

سهولت کار با عبارت ها
استرینگ ها در پایتون به آسانی هر چه تمام تر قابل ویرایش و استفاده اند. برای مثال دستور جایگزینی یک کلمه در یک عبارت و همچنین جاستیفای کردن آن که شاید در متلب وقت زیادی از شما بگیرد اینجا با این دستور ساده قابل انجام است: (I code in Matlab".replace('Matlab','Python').rjust(30"

پرتابل بودن نرم افزار
بدلیل ذات آزاد پایتون نرم افزار شما به راحتی روی هر سیستم عاملی اعم از ویندوز، OS X یا لینوکس به راحتی قابل اجراست.

ابزار های متعدد برای ساخت رابط کاربری
جدای از امکاناتی که خود پایتون برای ساخت یک رابط کاربری هوشمند به شما می دهد، به آسانی می تواند از ابزار های Qt و Wx نیز برای انجام بهتر این مورد بهره ببرید.


این بود مقایسه ما بین این دو زبان برنامه نویسی شناخته شده و قدرتمند. حال نظر شما در این باره چیست؟ اگر تجربه کار با یک یا هر دوی این دو زبان را دارید می توانید آن را با دوستان خود در میان بگذارید تا به بحث گذاشته شود.
 
بالا