خانه توسعهدهنده تکنولوژی بکاند پایتون پایتون چیست؟ آشنایی با زبان برنامهنویسی Python
پایتون چیست؟ آشنایی با زبان برنامهنویسی Python

طبق نظرسنجی Stack Overflow در سال ۲۰۲۱، پایتون (Python) سومین تکنولوژی محبوب دنیا پس از JavaScript و HTML/CSS محسوب میشود. اما پایتون چیست؟ در این مقاله توضیح خواهیم داد که پایتون چیست و چه کاربرد و مزایایی دارد.
اگر به یادگیری پایتون علاقهمند هستید و تمایل دارید با یکی از محبوبترین و پرکاربردترین زبانهای برنامهنویسی آشنا شوید، دوره آموزش پایتون کوئرا کالج گزینهی خوبی برای شما خواهد بود تا کار با این زبان محبوب را به شکل کاربردی یاد بگیرید.
پایتون چیست؟

Python یکی از برترین زبانهای برنامهنویسی در دنیای امروز و یک زبان برنامهنویسی همهمنظوره، مفسری، شیءگرا و سطح بالا است که از معناشناسی پویا بهره میبرد. اما این اصطلاحات چه معنایی دارند؟
همهمنظوره (General-purpose): استفاده از پایتون به یک صنعت یا زمینهی خاص محدود نمیشود. پایتون دامنهی گستردهای از وظایف را پوشش میدهد و از آن در زمینههای بیشماری استفاده میشود؛ از جمله:
- توسعهی وب
- تحلیل داده
- یادگیری ماشین
- دواپس و مدیریت سیستم
- تست اتوماتیک
- نمونهسازی نرمافزارها
- و…
این ویژگی، Python را از زبانهای تکمنظوره مانند HTML و CSS که محدود به طراحی وب هستند یا SQL که منحصراً برای دسترسی به دادهها در سیستمهای مدیریت پایگاه داده رابطهای (Relational Database Management Systems) استفاده میشود، متمایز میکند.
مفسری (Interpreted): در پایتون، کد منبع به یک فرمت میانی به نام bytecode کامپایل میشود. این کدهای سطح پایین و فشرده، بر روی ماشین مجازی پایتون (Python Virtual Machine) اجرا میشوند. PVM نرمافزاری است که کار سختافزار واقعی را شبیهسازی و نقش یک مفسر را بازی میکند و در حین اجرای برنامه، دستورالعملهای نوشتهشده به bytecode را به زبان ماشین ترجمه میکند.
کامپایل در پایتون، شبیه چیزی که در زبانهایی مانند ++C یا Swift اتفاق میافتد نیست. در این زبانها قبل از اجرای کد، کد منبع بهصورت یکجا به زبان ماشین ترجمه میشود و خبری از یک مرحلهی میانی نیست.
شیءگرایی (Object-Oriented): پایتون نیز مانند ++Java ،Ruby ،C و بسیاری از زبانهای محبوب دیگر از برنامهنویسی شیءگرا پشتیبانی میکند. در برنامهنویسی شیءگرا، برنامهنویس با موجودیتهایی به نام شیء سروکار دارد. یک شیء میتواند نمایندهی یک موجودیت واقعی یا انتزاعی باشد که دارای ویژگیها (state) و رفتاری (method) منحصربهفرد است.
اگرچه از پایتون بهعنوان یک زبان کاملاً شیءگرا یاد میشود، با این وجود میتواند امکان برنامهنویسی تابعی (Functional) را نیز در اختیار شما قرار دهد. هنگامی که مشغول نوشتن برنامههای بزرگ با استفاده از پایتون هستید، بسته به هدفی که دنبال میکنید، میتوانید بین شیوههای برنامهنویسی شیءگرا و تابعی جابهجا شوید.
سطح بالا (High-Level): پایتون به دسته زبانهای برنامهنویسی سطح بالا تعلق دارد؛ به این معنا که این زبان به زبانهای طبیعی بسیار شبیه است و وابستگی به پردازندهی کامپیوتر در آن مشاهده نمیشود. در مقابل، یک زبان سطح پایین شباهت کمی به زبان انسان داشته یا اصلاً هیچ شباهتی به آنها ندارد و بسیار نزدیک به سختافزار است. زبان سطح پایین، اغلب برای یک CPU خاص بهینه شده است.
معناشناسی پویا (Dynamic Semantics): پایتون از Dynamic Typing استفاده میکند؛ به این معنا که نیازی نیست که توسعهدهنده هنگام تعریف یک متغیر، نوع داده را مشخص کند. در زمان اجرا، نوع داده بهصورت خودکار بر اساس مقداری که به متغیر اختصاص داده شده است، تشخیص داده میشود و نوع متغیر میتواند بارها تغییر کند. انجام این کار در زبانهایی که Static Type هستند، غیرممکن است.
حالا که فهمیدیم پایتون چیست، بیایید نگاهی مختصر به تاریخچه آن بیندازیم.
تاریخچهی پایتون

داستان Python از اواخر دههی هشتاد میلادی و با زبان برنامهنویسی ABC آغاز شد. این زبان در آمستردام و در مرکز تحقیقات ملی ریاضیات و علوم کامپیوتر (Centrum Wiskunde & Informatica) ساخته شد. هدف از ساخت این زبان، ایجاد توانایی شروع سریع برنامهنویسی در افرادی بود که تجربهی کافی در زمینهی برنامهنویسی نداشتند. متأسفانه زبان ABC موفقیت موردانتظار را نداشت. بعدها، یکی از توسعهدهندگانِ ABC، یعنی خیدو فان روسوم (Guido van Rossum) از این زبان شکستخورده برای ساخت Python استفاده کرد.
«من تصمیم گرفتم یک زبان اسکریپتنویسیِ ساده طراحی کنم که شامل بهترین ویژگیهای ABC باشد، اما مشکلات آن را نداشته باشد. بنابراین یک ماشین مجازی ساده، یک parser و یک runtime ساده ایجاد کردم. من نسخهی خودم را با استفاده از قسمتهایی از ABC که دوست داشتم، ایجاد کردم. من یک سینتکس ساده ایجاد کردم که در آن برای گروهبندیِ دستورات، بهجای استفاده از آکولاد یا بلوکهای begin و end از تورفتگیها استفاده شده بود. همچنین تعدادی نوع دادهی (data type) قدرتمند را توسعه دادم؛ یک جدول درهمسازی (hash table)، یک لیست، رشتهها و اعداد.»
خیدو فان روسوم
تابهحال به این فکر کردهاید که چرا به این زبان، پایتون (Python) میگویند؟ این نامگذاری هیچ ارتباطی به مار پایتون ندارد. داستان از این قرار است که زمانی که خیدو فان روسوم شروع به پیادهسازی این زبان برنامهنویسی کرد، در حال خواندن نمایشنامهی یک سریال کمدی به نام «سیرک پرندهی مونتی پایتون» (Monty Python’s Flying Circus) بود. خیدو فان روسوم نام زبان برنامهنویسی خود را از این نمایشنامه الهام گرفت.
تولد رسمی پایتون ۲۰ فوریه سال ۱۹۹۱ است، زمانی که خیدو فان روسوم اولین نسخهی پایتون یعنی نسخهی 0.9.0 را منتشر کرد. این نسخه شامل تمامی انواع دادههای کلیدی، توابع، پشتیبانی از شیءگرایی و سیستم ماژول بود.
در ژانویه ۱۹۹۴، نسخه 1.0 پایتون منتشر شد که شامل ابزارهایی برای برنامهنویسی تابعی بود.
در اکتبر ۲۰۰۰، نسخه 2.0 پایتون منتشر شد که در آن بهبودهای مهمی نظیر پشتیبانی از Unicode و یک garbage collector برای مدیریت حافظه معرفی شده بود. garbage collector به طور خودکار حافظهای که دیگر از آن استفاده نمیشود را برای استفادههای دیگر آزاد میکند.
در نهایت، در دسامبر ۲۰۰۸، نسخهی 3.0 پایتون معرفی شد که در واقع بیشتر از اینکه یک بهروزرسانی محسوب شود، یک پروژه کاملاً جدید بود. این نسخه از پایتون با نسخهی ۲ پایتون سازگار نبود. در واقع به دلیل bytecode و ماشین مجازیِ متفاوت، اجرای پایتون ۲ بر روی ماشین مجازیِ پایتون ۳ امکانپذیر نیست و بالعکس. نسخهی جدید همچنین تعدادی از ویژگیها و ساختارهای منسوخ که در طول عمر پایتون روی هم انباشته شده بود را کنار گذاشت. سرانجام در آوریل سال ۲۰۲۰، پشتیبانی از نسخهی ۲ پایتون متوقف و این نسخه از پایتون رسماً بازنشسته شد.
خیدو فان روسوم تا جولای ۲۰۱۸ زمانی که از مسئولیت خود بهعنوان «دیکتاتور خیرخواه جاویدانِ» پایتون یا «Benevolent dictator for life» بهطور دائم کنارهگیری کرد، توسعهدهنده اصلی پایتون محسوب میشد. چند سال بعد، او به بخش توسعهی مایکروسافت ملحق شد.

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

قبلاً تعدادی از مزایای Python را بهعنوان ویژگیهای اصلی آن بیان کردیم. حالا اجازه دهید در ادامهی پاسخ به سؤال پایتون چیست، در مورد مزایای استفاده از آن بیشتر توضیح دهیم.
یادگیری آسان
فهم و یادگیری Python برای افراد مبتدی نسبتاً آسان است. به لطف سینتکسِ سادهشده آن که بسیار شبیه به زبان انگلیسی است، افراد مبتدی بهجای تمرکز بر روی پیچیدگیهای ساختار زبان، روی اصول برنامهنویسی، مفاهیم و کدنویسی خوب تمرکز میکنند و در نتیجه میتوانند بهسرعت چارچوب فکری یک توسعهدهنده را یاد بگیرند.
سرعت توسعه بالا
سینتکس واضح و مختصر پایتون، نهتنها یادگیری آن بلکه روند ساخت نرمافزار با آن را نیز سرعت میبخشد. بهعلاوه، کتابخانهی استاندارد آن، ویژگیهای ازپیشساختهشده بسیاری را در اختیار برنامهنویسان قرار میدهد و به آنها این اجازه را میدهد که با تلاش بسیار کمتری با پروتکلهای اینترنتی، مدیریت سیستمعامل، دستکاری دادهها یا یکپارچهسازی سرویسهای وب کار کنند.
یک برنامه در پایتون نسبت به زبانهای Java یا ++C، در تعداد خط کد کمتری نوشته میشود. این مسئله پایتون را به یک گزینهی مطلوب برای ساخت نمونهی اولیه از نرمافزارها تبدیل میکند. بنابراین نسبت به سایر زبانها میتوانید سریعتر و با هزینهی کمتر ایدههای خود را تست کنید.
فرایند توسعه با وجود فریمورکهای پایتون که مؤلفههای ازپیشکدنویسیشده را در اختیار شما قرار میدهند، سریعتر هم میشود. بهجای ساختن همهچیز از ابتدا، برنامهنویسان میتوانند از تکهکدهای آماده استفاده کنند. از میان محبوبترین فریمورکهای پایتون که برای توسعه سریع وب کاربرد دارند، میتوان به Django ،Flask و Falcon اشاره کرد.
Python همچنین عضوی از مجموعه فناوریهای توسعهی وب (LAMP) محسوب میشود. LAMP مخفف Linux ،Apache ،MySQL ،Python ،PHP یا Perl است که همگی داینامیکتایپ هستند. این مجموعه، یک روش استاندارد و کامل برای ساخت وباپلیکیشنها فراهم کرده است تا در زمانِ توسعه صرفهجویی شود.
قابلیت حمل و توسعهپذیری به سایر زبانها
پایتون یک زبان platform-agnostic است؛ به این معنا که شما میتوانید یک کد منبع را روی سیستمعاملهای مختلف از macOS گرفته تا Windows و Linux اجرا کنید. قابلیت حمل به لطف bytecode و ماشین مجازی پایتون فراهم شده است.
علاوه بر این، پایتون با استفاده از افزونههایی نظیر Cython برای C و Gython برای Go و Jython برای Java و IronPython برای Net.، بهراحتی با سایر زبانهای برنامهنویسی همراه میشود. این افزونهها به توسعهدهنده اجازه میدهند تا زبانهای برنامهنویسی را با هم ترکیب کرده، عملکردی که در تکنولوژی اصلی وجود ندارد را قرض گرفته و کد خارجی را در اپلیکیشنهای خود اجرا کند.
همهمنظوره و ابزارهایی وسیع برای تقریباً هر کاری
علاوه بر توسعهی نرمافزار، از پایتون میتوان برای انجام طیف گستردهای از کارها استفاده کرد. تعداد کتابخانههای پایتون به حدوداً ۱۳۷۰۰۰ میرسد. پایتون کار محققان، دانشمندان داده، مهندسان داده، مهندسان تضمین کیفیت و متخصصان دواپس (DevOps) را تسهیل میکند. پایتون همچنین یکی از محبوبترین ابزارها برای تحلیلهای مالی محسوب میشود. در ادامه، بهصورت اجمالی محبوبترین موارد استفاده از Python و ابزارهای مربوط به آنها را مرور خواهیم کرد.
یادگیری عمیق و هوش مصنوعی: پایتون به لطف مجموعهای از کتابخانههای اختصاصی مانند TensorFlow ،Keras و PyTorch یک زبان برنامهنویسی پیشتاز در حوزهی یادگیری عمیق و هوش مصنوعی است.
برنامهنویسی علمی و علم دادهها: دانشمندان، مهندسان، تحلیلگران مالی، ریاضیدانان و سایر متخصصانی که با تحقیقات مبتنی بر داده سروکار دارند، اصلیترین کاربران اکوسیستم SciPy هستند. SciPy ابزارهای قدرتمندی مانند pandas ،NumPy ،scikit-learn و matplotlib را برای تحلیل داده و مصورسازی شامل میشود.
خودکارسازی فرایندهای رباتیک: پایتون بهترین زبان برای نوشتن برنامههای سبک برای خودکارسازی فعالیتهای تجاری روزمره است. بهعنوان مثال پر کردن فرمهای آنلاین، خواندن و نوشتن فایلها، ایجاد و حذف پوشهها، ارسال ایمیل و اعلان، وب اسکرپینگ (web scraping) و درخواست داده از طریق APIها است.
خودکارسازی تست: پایتون به داشتن تعداد زیادی فریمورک تست که تستِ کد شما را در هر مرحله از توسعهی نرمافزار سرعت میبخشند، مشهور است. خودکارسازی تست، المانی حیاتی در شیوههای دواپس محسوب میشود که با هدف افزایش سرعت انتشار نرمافزار و بر پایهی پیوند توسعه، تضمین کیفیت و عملیاتهای IT و تبدیل آنها به یک چرخهی واحد و تکرارشونده بنا شده است.
دواپس: دواپس (DevOps) بر بهینهسازی و خودکارسازی چرخهی توسعهی نرمافزار تمرکز دارد و این همان جایی است که اسکریپتهای خوانا و ساختاریافتهی نوشتهشده با پایتون، خود را نشان میدهند. بسیاری از ابزارهای دواپس با پایتون نوشته شدهاند؛ از جمله: SCons ،PyBuilder ،Ansible و Buildbot.
رایگان و جامعه بزرگ جهانی
Python متنباز بوده و استفاده از آن حتی برای استفادههای تجاری برای همه رایگان است. بنابراین جای تعجبی ندارد که جامعهی بزرگی از آن استفاده کنند. تا سال ۲۰۱۹، هشت میلیون و دویست هزار توسعهدهنده از پایتون استفاده میکردند، در حالی که این عدد برای برنامهنویسان جاوا هفت میلیون و ششصد هزار نفر بود. از آن زمان تاکنون، جامعه توسعهدهندگان پایتون رشد بیشتری داشته است و توانسته عنوان پرتقاضاترین زبان برنامهنویسی را برای پنج سال پیدرپی کسب کند. بیش از هزار و ششصد گروهِ کاربر پایتون در ۳۷ کشور دنیا وجود دارد که تعداد اعضای آنها روی هم از هشتصد و شصت هزار نفر تجاوز میکند.
مطلب مرتبط: MRO در پایتون چیست؟
مطلب مرتبط: Coroutine در پایتون چیست؟
آیندهی پایتون

در حال حاضر، پایتون بکاندِ پروژههای مشهوری مانند Reddit ،Dropbox ،Google ،Pinterest ،Facebook و YouTube را پشتیبانی میکند. به همین دلیل، عرضهی نسخهی ۴ در حال حاضر بسیار بعید است. تیم توسعهی پایتون درسهایی را از عرضهی نسخه ۳ گرفته است. دوران انتقال از نسخهی ۲ به نسخهی ۳ دوران سختی بود که چندین سال به طول انجامید و تلاشی بیش از آنچه انتظار میرفت را میطلبید.
صحبت کردن درمورد پایتونِ ۴ یک جور تابو محسوب میشود. ما در حال حاضر یک برنامه سختیگرانهی سالانه برای عرضهی بهروزرسانیها داریم. بنابراین پس از عرضهی پایتون 3.10، نسخهی 3.11 خواهد آمد و پس از آن نسخهی 3.12 و سپس نسخههای بعدی. میتوانیم تا عرضهی نسخه 3.99، قبل از آنکه مجبور شویم نسخه 4 را منتشر کنیم، ادامه دهیم. عرضهی نسخهی ۴ موضوع پیشپاافتادهای نیست، با این حال هنوز بهتر است از نسخهی ۳ به نسخهی ۴ رفتن خودداری کنیم.
خیدو فان روسوم
در حال حاضر، تیم توسعه در حال کار بر روی سرعت پایتون است. نسخهی 3.11 که عرضهی آن برای اکتبر ۲۰۲۲ برنامهریزی شده است، به همراه بهبودهای قابلتوجهی عرضه میشود و از نسخههای پیشین بسیار سریعتر خواهد بود. خیدو فان روسوم همچنین قول افزایش سرعت پایتون را در نسخههای 3.12 و 3.13 و نسخههای بعدی داده است.
دورهی «برنامهنویسی پایتون پیشرفته و تفکر شیءگرا» کوئرا کالج
دورهی برنامهنویسی پایتون پیشرفته و تفکر شیءگرا کوئراکالج، با هدف ایجاد دید گسترده و عمیق نسبت به مفاهیم برنامهنویسی و شیءگرایی طراحی شده است. این دوره، تمام مفاهیم برنامهنویسی پایتون پیشرفته را در قالب درسنامهها، تمرینها و پروژههای متعدد به شما آموزش میدهد.
شما میتوانید همین حالا اطلاعات تکمیلی در مورد دورهی آموزش پایتون را از صفحه کوئرا کالج را کسب کرده و در این دوره ثبتنام کنید.
