محمدرضا حقیری | Muhammadreza Haghiri
محمدرضا حقیری | Muhammadreza Haghiri
خواندن ۴ دقیقه·۶ سال پیش

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

این روزها تقریبا هر شخصی که دستی در کد زدن و برنامه نوشتن داره، از زبان پایتون صحبت می‌کنه. پایتون در نوع خودش یک زبان جدید و مدرن محسوب میشه، ابزارهای زیادی داره و خب تقریبا هرجا که ۲-۳ تا برنامه نویس دور هم جمع باشن با تقریب خوبی دو سومشون از پایتون سردرمیارن.

در این مطلب، قصد دارم به سوالی که پرسیدم پاسخ بدم. «چرا باید پایتون بلد باشیم؟». امیدوارم این متن رو حوصله کنید و تا آخر بخونید، چون حاصل مشاهداتیه که در چند سال اخیر از جامعه برنامه نویسان ایرانی داشتم.

سینتکس، مهم ترین عامل

اصولا وقتی شما قرار باشه زبانی رو برای برنامه نویسی انتخاب کنید، احتمالا اولین گزینه‌ای که بررسی می‌کنید سینتکس اون زبانه. چرا؟ چون وقتی سینتکس زبان ساده باشه، مشخصا یادگیریش هم ساده تر میشه. پایتون با تقریب خوبی نزدیک ترین سینتکس رو به زبان آدمیزاد داره (نه صرفا انگلیسی، زبانی که آدمیزاد بتونه بفهمه) و همین خودش یک نکته مثبت در این زبانه. برای مثال بیاید یک قطعه کد پایتون رو ببینیم :

def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)

این قطعه کد برای ما فاکتوریل یک عدد ورودی رو محاسبه می‌کنه. به همین سادگی. خیلی از درگیری هایی که در زبانهای دیگر مثل C داشتیم رو اینجا نداریم، صرفا ایده‌ای که در ذهنمون اومده رو می‌نویسیم و اگر اصولی که در این زبان وجود داره رو رعایت کرده باشیم، احتمالا در کمترین زمان ممکن اجرا میشه.

نمونه کدهای بسیار

بعنوان دانشجوی کامپیوتر دست کم ۲۰ واحد درسی داریم که مستقیما به کد زدن ما مربوط میشن. تقریبا از بعد از برنامه نویسی پیشرفته، یعنی از دروسی مثل ساختمان داده و الگوریتم دیگه کم کم اون انحصار از دست یک زبان خارج میشه (برای مثال در دانشگاه ما ++C ) و انتخاب زبان برای پروژه ها، بر عهده خود شخص دانشجو خواهد بود. در دروسی مثل طراحی الگوریتم، بیش از این که زبان پیاده سازی مهم باشه، درک الگوریتم و پیدا کردن راه های پیاده سازیشه که مهمه. عموم الگوریتم های مهمی که در این درس توضیح داده میشن هم، توسط پایتون پیاده سازی شدند و در اینترنت موجودن.

در واقع وقتی در یک زبانی نمونه کد زیادی موجود باشه، نشان از اینه که این زبان پویایی داره و زنده‌ست. پس این میتونه دلیل خوبی باشه بر یادگیری پایتون!

هوش مصنوعی و یادگیری ماشین

این روزها موضوعات مربوط به هوش مصنوعی در همه محافل کاملا نقل مجلس شدند و محاله شما ازشون نشنوید. حتی در جوامع هنری هم این بحث وارد شده و البته تا حد زیادی هم مایه نگرانی خیلی از اشخاصیه که از جایگزینی ماشین با انسان، ترس دارند.

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

وب

در بازار وب هم، با وجود ابزارهای بسیاری که موجودند، پایتون با فریم‌ورک های جنگو و فلاسک همچنان از پیشتازان ماجرا محسوب میشه. بسیاری از شرکتهای بزرگ روی جنگو یا فلاسک هستند یا حداقل بخشی از API هاشون روی این فریم‌ورکها نوشته شده. البته پایتون دونستن برای بازار وب کافی نیست و احتمالا مجبور خواهید بود از اسمشو نبر هم استفاده کنید!

سایر حوزه ها و پایتون

خب دو حوزه AI و وب معمولا جایین که پایتون خیلی خیلی بولد میشه، در حالی که پایتون در سایر حوزه ها هم حرفی برای گفتن داره معمولا. زبانی که تا این حد پویایی داره تقریبا برای هرچیزی یک راه حلی ارائه داده و برای مثال، آخرین چیزی که من کشف کردم، ابزار MyHDL بود که یک «زبان توصیف سخت افزار» بر پایه پایتونه! پس اگر در حوزه های متفاوتی کار می‌کنید هم نگران نباشید، تقریبا در این زبان ابزار همه کاری پیدا میشه، ضمن این که شما مجبور نیستید حتما به این زبان مهاجرت کنید!

حرف آخر

چیزی که دانشجو رو زنده نگه می‌داره، بخصوص دانشجوی کامپیوتر (نه حتما شخصی که در دانشگاه مشغول تحصیله) یادگیری بیش از پیشه. اگر این مطلب رو نوشتم (که هیچ‌وقت فکرش رو نمی‌کردم بنویسم!) به این خاطره که چند روز اخیر خیلی درگیر پایتونم و پروژه دوست عزیزی با هدف فارسی‌زایی هم باعث شد که بیش از پیش به اهمیت این زبان پی‌ببرم. من تخصصی روی پایتون کار نمی‌کنم و ادعایی هم در زمینه پایتون ندارم، ولی این روزها لازم می‌بینم به همه توصیه کنم که تا حدی این زبان رو یاد بگیرند. امیدوارم این مطلب برای شما مفید واقع شده باشه :).


برنامه نویسیپایتونمهندسی کامپیوتر
مهندس سخت افزاری که آهنگسازی میکنه و عاشق ادبیاته :) وبگاه شخصی : haghiri75.com
شاید از این پست‌ها خوشتان بیاید