زبان برنامه نویسی پایتون (Python Programming Language) یکی از مشهورترین زبان‌های برنامه‌نویسی، به‌خصوص در حوزه‌ی یادگیری ماشین و هوش مصنوعی است. Guido van Rossum این زبان را در سال ۱۹۹۱ خلق کرده است. پایتون یک زبان شیء‌گرا (Object-oriented)، تفسیری (Interpreted) و همه‌منظوره است که نحو (Syntax) ساده‌ای دارد و بسیاری از برنامه‌نویسان در سراسر جهان در حوزه‌های مختلف به آن علاقه دارند. این روزها همه درباره‌ی زبان برنامه نویسی پایتون صحبت می‌کنند. خب، این امر اصلاً جای تعجب ندارد؛ زیرا پایتون یکی از محبوب‌ترین زبان‌های برنامه‌نویسی است که به‌سرعت در حال رشد است. پایتون زبانی همه‌منظوره و در اکثر زمینه‌ها کاربردی است؛ این امر یکی از بزرگ‌ترین مزیت‌های این زبان محسوب می‌شود. در این ادامه با زبان برنامه نویسی پایتون بیشتر آشنا می‌شویم، تاریخچه‌ی کوتاهی از آن را بررسی خواهیم کرد، اصطلاحات کاربردی آن را بررسی می‌کنیم، درباره‌ی موارد کاربرد آن بیشتر خواهیم دانست و درنهایت منابعی را معرفی کنیم که به یادگیری این زبان کمک می‌کنند.

زبان برنامه نویسی پایتون (Python) چیست؟

پایتون (Python) یک زبان برنامه‌نویسی تفسیری (Interpreted Language) است که نحو بسیار ساده‌ای دارد؛ به‌همین دلیل، یادگیری آن راحت‌ است و البته خوانایی بهتری نیز دارد. زبان پایتون زبانی همه‌منظوره است که در هر کاری می‌تواند استفاده شود و یکی از مشهورترین زبان‌ها برای توسعه‌ی نرم‌افزار محسوب می‌شود؛ اما چرا؟

اولین دلیل این موضوع ماژولاربودن (Modular) زبان پایتون است. این ویژگی به پایتون امکان می‌دهد به‌راحتی از کدی که برای یک کار خاص نوشته شده است برای کارهای دیگر در پرژوه‌های دیگر نیز استفاده کنیم.

دومین دلیل را می‌توان متن‌بازبودن (Open-source) آن دانست؛ درواقع با وجود متن‌بازبودن (Open-source) این زبان توسعه‌دهندگان می‌توانند آن را تغیبر دهند و سهمی در توسعه‌ی این زبان داشته باشند؛ البته بنیاد نرم‌افزار پایتون (Python Software Foundation / PSF) روی روند این تغییرات نظارت دارد.

پایتون

دلیل دیگر محبوب‌بودن زبان پایتون این است که پایتون یک زبان تفسیری (Interpreted Programming Language) است. زبان‌های تفسیری یک مفسر (Interpreter) دارند که در طول برنامه خط‌به‌خط را مستقیماً اجرا می‌کند، بدون اینکه نیاز باشد از قبل به زبان ماشین کامپایل (Compile) شده باشند. این موضوع انعطاف‌پذیری بیشتر زبان را در پی دارد و می‌توان کد نوشته‌شده را در هر پلتفرمی اجرا کرد. مواردی که به آن‌ها اشاره شد شاید تنها برخی از دلایل محبوبیت این زبان باشد. در ادامه با موارد بیشتری آشنا خواهیم شد.

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

تاریخچه‌ای کوتاهی از زبان برنامه نویسی پایتون (Python)

برنامه‌نویسی هلندی به‌نام Guido van Rossum پایتون را در اوایل دهه‌ی ۱۹۹۰ خلاق کرد. او طرفدار سریال کمدی Monty Python’s Flying Circus بود که Monty Python ساخته بود که به The Pythons نیز شهرت پیدا کرد. Guido نام زبان برنامه‌نویسی پایتون را به‌عنوان ادای احترام به کمدین‌های موردعلاقه‌ی خود انتخاب کرد.

طبق نظرسنجی Stack Overflow در سال ۲۰۲۰ پایتون چهارمین زبان مورداستفاده در ۴۴.۱ درصد از برنامه‌نویسان و هم‌چنین سومین زبان موردعلاقه ۶۶.۷ درصد از برنامه‌نویسان بوده است. این زبان به‌طور فزاینده‌ای در حال کسب محبوبیت در حوزه‌ی یادگیری ماشین (Machine Learning) و کلان‌داده (Big Data) است؛ درواقع این دو تکنولوژی را می‌توان دلیل بخشی از محبوبیت زبان پایتون دانست. علاوه‌براین از آنجا که پایتون در بسیاری از مراکز تحقیقات پزشکی و داده‌ای استفاده می‌شود، شاخص محبوب زبان‌های برنامه‌نویسی، TIOBE، پیش‌بینی می‌کند که محبوبیت آن در دوره‌ی پساکرونا هم‌چنان روبه‌رشد باشد.

Guido Van Rossum

اصطلاحاتی که لازم است درمورد پایتون بدانیم

زبان پایتون اصطلاحات خیلی مهم و کاربردی دارد که بد نیست با آن‌ها آشنا شویم. در بخش بعد به مواردی از آن‌ها اشاره شده است.

فریم‌ورک‌های زبان برنامه نویسی پایتون (Python Framework)

فریم‌ورک‌ها (Framework) زیرساخت‌های مهم و اساسی را در خود دارند که برای توسعه‌ی یک نرم‌افزار کاربردی پایتون به آن نیاز داریم؛ درواقع با استفاده از این فریم‌ورک‌ها (Framework) نیازی نیست که همه‌ی جزئیات را شخصاً خود برنامه‌نویس مدیریت کند. پایتون فریم‌ورک‌های (Framework) مختلفی دارد که بسته به نیاز پروژه می‌توان از آن‌ها استفاده کرد. در ادامه با برخی از آن‌ها آشنا خواهیم شد.

Django

Django یکی از مشهورترین فریم‌ورک‌های پایتون (Python Framework) محسوب می‌شود؛ درواقع اگر به موقعیت‌هاش شغلی برنامه‌نویسی پایتون سری بزنید، خواهید دید که این فریم‌ورک (Framework) بسیار پرطرفدار است.

Django ویژگی‌های خیلی کاربردی، مانند پنل ادمین (Admin Panel)، فرم‌های عمومی (Generic Forms) و کامپوننت‌های آماده (Ready-to-use Components)، دارد. هم‌چنین این فریم‌ورک فول‌استک (Full-stack) است؛ یعنی هم برای بک‌اند (Backend) و هم فرانت‌اند (Frontend) قابل استفاده است؛ به‌همین دلیل، برای استفاده در پروژه‌های بزرگ بسیار کاربردی است. همان‌طور که اشاره شد، Django ویژگی‌های منحصربه‌فردی دارد و به‌همین دلیل، فریم‌ورکی قدرتمند محسوب می‌شود، اما این نکته حائز اهمیت است که Django خیلی انعطاف‌پذیر نیست و قوانین و استایل کدینگ (Coding Style) خاص خود را بر برنامه‌نویس تحمیل می‌کند.

Tornado

Tornado یک فریم‌ورک وب پایتون (Python Web Framework) است که FriendFeed، شرکتی که بعدها فیس‌بوک آن را خرید، ایجاد شده است. Tornado از خیلی جهات به فریم‌ورک‌های دیگر شبیه است و بسیاری از ویژگی‌هایی را دارد که پیش از این برای Django گفته شد؛ اما چیزی که این فریم‌ورک را در مقایسه با باقی متمایز می‌کند تمرکزش روی سرعت و قابلیت مدیریت حجم بالای ترافیک وب است. Tornado یک انجمن کاربران فعال دارد و یکی از مدرن‌ترین فریم‌ورک‌های پایتون (Python Framework) محسوب می‌شود.

Fast API

Fast API فریم‌ورکی سریع و جدید برای ساخت APIهای پایتون نسخه‌ی بالاتر از ۳.۶ است. استفاده از این فریم‌ورک بسیار راحت است. حدود چهل درصد از خطاهای انسانی را کاهش و سرعت توسعه را تا دویست یا سیصد درصد افزایش می‌دهد؛ علاوه‌براین کپی‌کردن کد را به حداقل می‌رساند که این خود تا حد زیادی می‌تواند بر کاهش خطاها تأثیر بگذارد.

Flask

Flask یکی از مشهورترین میکروفریم‌ورک‌های پایتون محسوب می‌شود که به‌دلیل سهولت استفاده، سرعت و قابلیت اطمینان در انجمن توسعه‌دهندگان پایتون تحسین شده است. Flask در پروژه‌های کوچک و متوسط استفاده می‌شود، زمانی‌که استفاده از Django نیازی نیست و کار را پیچیده‌تر و سخت‌تر می‌کند.

تا اینجا به تعدادی از فریم‌ورک‌های پایتون اشاره کردیم. در بخش بعدی با برخی از کتابخانه‌های پایتون (Python Libraries) آشنا خواهید شد.

کتابخانه‌های پایتون (Python Libraries)

کتابخانه‌ها نیز مانند فریم‌ورک‌ها می‌توانند در توسعه‌ی نرم‌افزار به‌عنوان منبعی بسیار مفید استفاده شوند. این کتابخانه‌ها تعداد زیادی ماژول (Module) و تابع (Function) آماده دارند که به‌راحتی قابل‌استفاده هستند و به برنامه‌نویسان در صرفه‌جویی زمان بسیار کمک می‌کنند؛ درواقع یکی از دلایل محبوبیت روزافزون زبان پایتون همین حجم زیاد کتابخانه‌هایی است که می‌توان از میان آنان، متناسب با پروژه‌ی خود، انتخاب کرد.

در ادامه به سه مورد از معروف‌ترین کتابخانه‌های پایتون اشاره می‌کنیم.

TensorFlow

TensorFlow یکی از کتابخانه‌های متن‌باز (Open-source) پایتون است که گوگل توسعه داده است. قطعاً بسیاری از ما از خدمات مبتنی بر این کتابخانه، مانند جست‌وجو ازطریق صدای گوگل (Google Voice Search)، استفاده کرده‌ایم. TensorFlow کتابخانه‌ی موردعلاقه محققان حوزه‌ی یادگیری ماشین (Machine Learning) است.

برای آشنایی بیشتر با ماشین لرنینگ مطلب یادگیری ماشین (Machine Learning) را مطالعه کنید.

NumPy

NumPy کتابخانه‌ی مشهور دیگری است که برای پروژه‌های یادگیری ماشین استفاده می‌شود. این کتابخانه، به‌دلیل تعامل و سادگی و هم‌چنین توانایی پیاده‌سازی سریع و آسان فرایندهای پیچیده‌ی ریاضی، بسیار موردتوجه برنامه‌نویسان است؛ هم‌چنین بسیاری از توسعه‌دهندگان تأکید می‌کنند که استفاده از آن حتی برای کسانی که تجربه‌ی قبلی کار با کتابخانه‌ها را ندارند بسیار آسان است.

PyTorch

PyTorch نیز یکی از کتابخانه‌های پایتون است که در سال ۲۰۱۷ معرفی شد و به‌سرعت در میان محققان یادگیری ماشین (Machine Learning) محبوب شد. در سال ۲۰۱۹ تا ۲۰۲۰ محبوبیت PyTorch به شدت افزایش یافت، به‌طوری‌که در حال حاضر این کتابخانه یکی از جایگزین‌های کتابخانه TensorFlow محسوب می‌شود. درواقع PyTorch، به‌دلیل سهولت استفاده، قابل‌فهم‌بودن و پیاده‌سازی آسان API، بسیار موردتوجه است.

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

اشیا و کلاس‌های پایتون (Python Objects and Classes)

زبان برنامه نویسی پایتون یک زبان شیء‌گرا (Object-oriented) است و همواره روی ایجاد اشیا تمرکز می‌کند؛ بنابراین دو اصطلاح دیگری که لازم است بدانیم شیء (Object) و کلاس (Class)  هستند. البته درک این‌ها نیازمند آن است که کاملاً به مسائل فنی وارد شویم و با نحوه‌ی کدنویسی پایتون آشنا باشیم. در اینجا ما به توضیح مختصری از این دو بسنده می‌کنیم.

یک شیء (Object) درواقع مجموعه‌ای از داده‌ها و توابعی است که روی آن داده‌ها اعمال می‌شوند و کلاس (Class) یک طرح اولیه از آن شیء (Object) است. اگر بخواهیم واضح‌تر این دو موضوع را درک کنیم، می‌توانیم در نظر بگیریم که کلاس (Class) یک طرح اولیه از یک خانه است که تمام‌ی جزئیات مانند درها، پنجره‌ها، طبقات و غیره است. حال براساس این طرح اولیه ما یک خانه می‌سازیم که همان شیء (Object) است. همان‌طور که از طرح اولیه‌ی یک خانه می‌توان خانه‌های زیادی ساخت، از هر کلاس (Class) نیز می‌توان تعداد زیادی شیء (Object) ساخت.

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

پایتون (Python) کجا قابل استفاده است؟

همان‌طور که قبلاً اشاره شد، استفاده از پایتون ساده است، امکان دسترسی به کتابخانه‌های زیادی را می‌دهد و همه‌منظوره است؛ این یعنی در پروژه‌های زیادی قابل‌استفاده است. در این بخش به برخی از حوزه‌های مهمی که پایتون در آن استفاده می‌شود اشاره می‌کنیم.

توسعه‌ی وب و نرم‌افزار (Web and software development)

فریم‌ورک‌های مبتنی بر پایتون، یعنی Django و Flask، به گزینه‌های محبوبی برای توسعه‌ی وب تبدیل شده‌اند.

خواندن آن‌ها آسان است و در مقایسه با دیگر زبان‌های برنامه‌نویسی به کد بسیار کمتری نیاز دارند که این امر سرعت توسعه‌ی محصول را افزایش می‌دهد؛ علاوه‌براین پایتون به‌راحتی با دیگر زبان‌های برنامه‌نویس، مانند جاوا (Java)، ادغام می‌شود.

کاربرد در حوزه‌ی صدا / تصویر (Audio/video applications)

اینترنت امروزه مملو از محتوای صوتی و تصویری است که می‌توانیم از پایتون برای تجزیه‌وتحلیل همه‌ی آن استفاده کنیم؛ برای مثال، کتابخانه‌های پایتون، مانند Librosa و pyAudioAnalysis، به‌طور خودکار محتوای صوتی را تجزیه‌وتحلیل می‌کنند. خوب است بدانیم که برنامه‌های کاربردی، مانند TimPlayer و Cplay  که مبتنی بر پایتون هستند، در مقایسه با برنامه‌هایی که از پایتون استفاده نکرده‌اند، ثبات و عملکرد بسیار بهتری دارند.

توسعه‌ی بازی (Game Development)

شاید پایتون را به‌عنوان زبان مورداستفاده برای ساخت بازی نشناسیم، اما برخی از بازی‌های پرطرفدار مبتنی بر پایتون ساخته شده‌اند، ازجمله EVE آنلاین، Battlefield 2 و World of Tanks. پایتون کتابخانه‌های متعددی مناسب توسعه‌ی بازی دارد که با آن‌ها سرعت توسعه افزایش می‌یابد؛ علاوه‌براین ایجاد بازی‌های سه‌بعدی با استفاده از موتور Panda3D در پایتون امکان‌پذیر است.

یادگیری ماشین و هوش مصنوعی (Machine Learning & Artificial Intelligence)

دنیا مجذوب این دو تکنولوژی شده است. قطعاً همه‌ی ما به دنیای شخصی‌سازی بیشتر، توصیه‌های هوشمندانه‌تر و نتایج جست‌وجوی بهتر نیازمند هستیم. همه‌ی این‌ها را می‌توان با استفاده از هوش مصنوعی (AI) و یادگیری ماشین (ML)  به دست آورد.

اما چرا زبان برنامه نویسی پایتون برای هر دو گزینه مناسبی است؟ هوش مصنوعی (AI) و یادگیری ماشین (ML) به الگوریتم‌های پیچیده‌ای نیاز دارند. به‌لطف سادگی پایتون، توسعه‌دهندگان می‌توانند به‌جای پرداختن به موارد فنی، بر حل یک مسئله‌ی یادگیری ماشین (ML) تمرکز کنند.

علاوه‌براین، پروژه‌های هوش مصنوعی (AI) وقت‌گیر هستند؛ بنابراین داشتن یک ساختار خوب برای اینکه بتوان راحت‌تر نتایج را آزمود بسیار ضروری است و این همان چیزی است که پایتون ارائه می‌کند.

حال که متوجه شدیم پایتون دقیقاً در چه حوزه‌هایی کاربرد دارد، در ادامه به چند مورد کاربرد مشهور پایتون اشاره خواهیم کرد.

مثال‌هایی از کاربرد پایتون در شرکت‌های معروف جهان

بزرگ‌ترین کمپانی‌های دنیا که بسیار محبوب هستند از پایتون برای ساخت محصولات خود استفاده کرده‌اند. بیایید با هم به چند مورد از آن‌ها نگاهی بیندازیم.

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

نتفلیکس (Netflix)

با اینکه برنامه‌نویسان نتفلیکس مختارند از هر زبان برنامه‌نویسی که می‌خواهند استفاده کنند، ترجیح آن‌ها کدنویسی به‌زبان پایتون است؛ اما دلیل آن‌ها چیست؟

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

اسپاتیفای

اسپاتیفای (Spotify)

اسپاتیفای (Spotify) در دو بخش از پایتون استفاده می‌کند: خدمات بک‌اند (Backend Services) و آنالیز داده (Data Analytics).

اسپاتیفای (Spotify) خدمات متعدد زیادی دارد که ازطریق یک پروتکل پیام‌رسانی به‌نام ZeroMQ با هم در ارتباط هستند. حدود ۸۰ درصد این خدمات به‌زبان پایتون نوشته شده‌اند. همان‌طور که می‌توان تصور کرد، اسپاتیفای برای ارائه‌ی پیشنهادها و توصیه‌ها برای کاربران خود به تجزیه‌وتحلیل حجم زیادی از اطلاعات متکی است که از Luigi، یک ماژول پایتون (Python Module)، برای تفسیر این داده‌ها استفاده می‌کند.

اینستاگرام

اینستاگرام (Instagram)

اینستاگرام (Instagram) هم جزو برنامه‌های کاربردی است که با وجود میلیون‌ها کاربرد در حال حاضر، بدون پایتون شاید اصلاً وجود نداشت. خالقان این برنامه از زبان پایتون و به‌طور خاص، از فریم‌ورک Django برای ساخت این برنامه استفاده کرده‌اند. انگیزه‌ی آنان از استفاده از پایتون این بود که دنبال تکنولوژی بودند که استفاده از آن آسان باشد، کاربردی باشد و امکان توسعه‌ی سریع را داشته باشد. با اینکه در سال ۲۰۱۲ فیس‌بوک (Facebook) این شرکت را خرید و برنامه‌ی اینستاگرام (Instagram) بارها تحت تغییرات زیادی قرار گرفت، هم‌چنان پایتون در بک‌اند (Backend) آن استفاده شده است.

گوگل

گوگل (Google)

یکی از مهندسان گوگل درباره‌ی پایتون این‌طور می‌گوید: «ما هر جا که بتوانیم از پایتون استفاده می‌کنیم، هر جا که مجبوریم از ++C.»

در سال ۱۹۹۰ خالقان گوگل، Sergey Brin و Larry Page و اولین کارمندشان Craig Silvestreen، تصمیم گرفتند پایتون را انتخاب کنند و البته که بسیار در انتخاب‌شان موفق بوده‌اند؛ علاوه‌براین آنان از پایتون برای جست‌وجوی گوگل ازطریق صدا (Google Voice Search) و سرویس پخش آنلاین ویدئو، مانند YouTube، استفاده کرده‌اند. البته فراموش نکنیم که گوگل یکی از بزرگ‌ترین کتابخانه‌های پایتون، یعنی TensorFlow، را خلق کرده است.

فیس‌بوک

فیس‌بوک (Facebook)

فیس‌بوک (Facebook)، بزرگ‌ترین شبکه‌ی اجتماعی در جهان که از اواسط سال ۲۰۲۰، ۲/۶میلیارد کاربر فعال داشته است، از طیف وسیعی از فناوری‌ها و زبان‌های برنامه‌نویسی استفاده می‌کند که پایتون یکی از آن‌هاست؛ درواقع پایتون سومین زبان پرکاربرد در این شرکت، درست بعد از PHP و ++C است.

جمع‌بندی مطالب

در این مطلب زبان برنامه نویسی پایتون را معرفی کردیم و با اصطلاحات مهم آن آشنا شدیم. دیدیم که در چه زمینه‌هایی قابل‌استفاده است و کدام شرکت‌های بزرگ دنیا از این زبان استفاده می‌کنند. محبوبیت پایتون با اینکه از سال 1991 ظهور پیدا کرد، هم‌چنان در حال افزایش است. این موضوع دلایل محکمی هم دارد؛ برای مثال، از میان این دلایل می‌توان به کاربرپسندبودن (User-friendly) و نحو ساده، کتابخانه‌ها و فریم‌ورک‌های بی‌شمار، سرعت توسعه و مقرون‌به‌صرفه‌بودن از لحاظ زمان و درنهایت همه‌منظوره‌بودن آن اشاره کرد. نباید

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