زبان
برنامهنویسی پایتون یک زبان برنامهنویسی
سطح بالا و شیئ گرا برای توسعهی
نرمافزارهای کاربردی و تحت وب است.
Guido
van Rossum در
سال ۱۹۸۰ میلادی طراحی این زبان برنامهنویسی
را آغاز کرد و زبان برنامهنویسی پایتون
اولین بار در سال ۱۹۹۱ منتشر شد.
وی
هدف خود از طراحی زبان پایتون را ایجاد
یک زبان برنامهنویسی بسیار ساده و قابل
درک عنوان کرده که از قدرت بالایی برخوردار
باشد و بتواند با سایر زبانهای برنامهنویسی
رقابت نماید.
همچنین
کاملاً منبع باز باشد تا تمام افراد و
برنامهنویسها در توسعهی آن شرکت
کنند.
علاوه
بر اینها توسعهی نرمافزارها در
کمترین زمان ممکن از دیگر اهداف طراحی
زبان برنامهنویسی پایتون است.
پایتون یک زبان مفسری (interpreted language) است. زبانهای مفسری در نقطهی مقابل زبانهای کامپایلری قرار دارند. در زبانهای برنامهنویسی کامپایلری، مثل C، ++C، جاوا و سی شارپ، تمام کد نوشته شده قبل از اجرا به زبان سطح پایین (زبان ماشین که توسط پردازنده قابل فهم است) ترجمه میشود و در این فرایند تمامی اشکالات برنامه نیز برطرف میشود. اما در زبانهای مفسری، مثل پایتون، جاوا اسکریپت، PHP و بیسیک، هر یک از دستورات برنامه و کدهای نوشته شده به ترتیب اجرا تفسیر شده و برنامهی زبان ماشین معادل آن اجرا میشود و این فرایند به ترتیب برای دستورات کد برنامه انجام میشود تا اجرای برنامه کامل گردد. این نوع از زبانهای برنامهنویسی با عنوان زبانهای اسکریپتنویسی (scripting language) نیز نامیده میشوند.
این زبان ویژگی ماژولار دارد و از ماژولها و بستهها استفاده میکند. بنابراین برنامههای نوشته شده به زبان پایتون میتوانند به روش ماژولار نوشته شوند و کدهای یک برنامه را میتوان به آسانی و بدون بازنویسی، در همان برنامه و در برنامههای دیگر بارها مورد استفاده قرار داد.
پایتون نحو ظریفی دارد که باعث خوانایی بالای برنامههای نوشته شده به این زبان میشود. مانند همهی زبانهای برنامهنویسی سطح بالا کدهای نوشته شده در این زبان به زبان محاوره نزدیکتر است. این ویژگی باعث سادگی و افزایش سرعت توسعه نرمافزار و همچنین اعمال تغییرات و اصلاحات در برنامهها شده و از به همین دلیل باعث کاهش چشمگیری در هزینههای تولید و نگهداری نرمافزار میگردد.
Guido van Rossum
علاوه بر خوانایی بالا، سادگی استفاده از پایتون نیز ویژگی دیگری است که هزینههای نگهداری نرمآفزار را کاهش میدهد. بالا آوردن و اجرای برنامههای نوشته شده با پایتون راحت است. بنابراین زبانی ایدهآل برای ساخت پیشنمونه (prototypr) و دیگر وظایف برنامهنویسی Ad-Hoc محسوب میشود.
ویژگی مهم دیگر این زبان کتابخانههای استاندارد فراوان آن است. این کتابخانهها برای پشتیبانی انواع وظایف برنامه نویسی تولید شدهاند. وظایفی همچون همگام سازی با مرورگرهای وب، جستجوی متن، ویرایش فایلها، محاسبات عددی و برداری، یادگیری ماشین، رسم انواع نمودار و غیره.
زبان برنامه نویسی پایتون را میتوان با افزودن ماژولهای جدید توسعه داد، حتی اگر این ماژولها در زبان های C یا C++ کامپایل شده باشند.این ماژولها را میتوان پس از ساخته شدن به عنوان میانبُرها (shortcuts) در پروژههای آتی مورد استفاده قرار دارد.
زبان برنامه نویسی پایتون با گسترهی وسیعی از سیستمهای عامل مانند لینوکس، ویندوز، MacOS، یونیکس و بسیاری دیگر سازگار است. بعلاوه، پایتون از رابط مشابهی در همهی این پلتفرمها استفاده میکند که باعث میشود جابجایی برنامهها در بین آنها برای کاربر به آسانی امکانپذیر باشد.
ویژگی قابل توجه پایتون رایگان بودن آن است. این زبان متن باز (open source) است و هر برنامهنویس میتواند به کد منبع آن دسترسی یافته و آن را ویرایش نماید. حتی میتواند ویرایش مختص خود را بازنشر کند.
زبان برنامهنویسی پایتون یک زبان همه منظوره است و تقریباً برای هر کاری میتوان از آن استفاده کرد. برنامههای کاربردی و پلتفرمهای تحت وب زیادی از پایتون استفاده میکنند. از جمله میتوان به موتور جستجوی گوگل، یوتیوب و بازار بورس نیویورک شاره کرد.
از زبان برنامهنویسی پایتون میتوان در عرصههای طراحی وب، پردازشهای علمی و تحلیل داده، دادهکاوی، یادگیری ماشین، ساخت واسطهای گرافیکی کاربر دسکتاپ، توسعهی نرمافزار، تولید نرمافزارهای موبایل و ساخت بازی استفاده کرد. برای کار طراحی سایت، پایتون فریم ورکهای قدرتمند Django، Flask، Pyramid و Cherry Py را در اختیار قرار میدهد. برای پردازشهای علمی و تحلیل داده کتابخانههای مختلفی در دسترس قرار دارد. از جملهSciPy، مجموعهای از بستههای ریاضیاتی، علمی و مهندسی، Pandas، برای تحلیل داده و مدلسازی، IPython، یک پوسته (shell) تعاملی قدرتمند با امکان بصری سازی و پردازش موازی. برای ساخت واسطهای گرافیکی کاربر دسکتاپ با استفاده از پایتون میتوان از کتابخانههای گرافیکی TkInter، wxWidgets، Qt با pyqt، pyside و Kivy برای نوشتن برنامههای کاربردی چند لمسی و نرمافزارهای موبایل استفاده کرد.
پایتون اغلب به عنوان یک زبان پشتیبان توسط توسعهدهندگان نرمافزار برای ساخت، کنترل و مدیریت، تست و کارهای دیگر مورد نیاز در فرآیند تولید و نگهداری نرمافزار مورد استفاده قرار میگیرد. برخی از قابلیتهای پایتون در همین راستا عبارتند ازSCons برای ساخت کنترل، Buildbot و Apache Gump برای تست و کامپایل خودکار مداوم، Roundup یا Trac برای ردیابی باگ و مدیریت پروژه.
امروزه زبان برنامهنویسی پایتون محبوبیت زیادی در بین برنامهنویسان دارد که میتواند دلایل متعددی داشته باشد. سادگی و سهولت یادگیری، خوانایی بالا، همهمنظوره بودن زبان، وفور کتابخانههای برنامهنویسی متعدد و متنوع، توجه غولهای فناوری به این زبان.
پایتون زبان برنامهنویسی مناسبی برای مبتدیها است. قابلیت خوانایی بالا و سادگی یادگیری زبان پایتون باعث محبوبیت آن در بین نوآموزان برنامهنویسی شده است. با پایتون میتوان به سرعت برنامههای قابل استفادهای ساخت. احساس خوشایند دستیابی به یک دستاورد و داشتن موفقیتهای کوچک فاکتور بسیار مهمی در یادگیری برنامهنویسی است. از آنجایی که نحو این زبان بر قابلیت خوانایی تأکید و تمرکز دارد، زبان برنامهسازی آسانی برای یادگیری محسوب میشود. خواندن و نوشتن کدهای این زبان نسبت به سایر زبانهای برنامهنویسی سادهتر است که به نوبهی خود هزینههای نگهداری و توسعهی نرمافزارهای نوشته شده به این زبان را نیز کاهش میدهد.
دلیل دیگر محبوبیت پایتون این است که یک زبان همهمنظوره است و تقریباً برای تمام پروژهها میتوان از آن استفاده کرد. پروژههای متنوعی همچون ساخت وب سایت، توسعهی واسط گرافیکی کاربر، تحلیل داده، توسعهی نرمافزارهای موبایل و غیره. از طرفی کتابخانههای برنامهنویسی فراوان و متنوع این زبان باعث افزایش محبوبیت آن در بین برنامهنویسان حرفهای شده است. بخصوص کتابخانههای استاندارد و کاملی در زمینهی تحلیل داده و یادگیری ماشین دارد. پایتون به طور گسترده در یادگیری ماشین استفاده میشود. کتابخانههای یادگیری ماشین زیادی به زبان پایتون نوشته شدهاند و ابزارهای زیادی که در زبان پایتون برای تحلیل داده و محاسبات مرتبط با یادگیری ماشین فراهم شده انجام پروژههای یادگیری ماشین را ساده میکند.
یکی از دلایل مهم توجه برنامهنویسان به زبان پایتون این است که غولهای فناوری این زبان را دوست دارند. گوگل (Google)، یوتیوب (YouTube)، فیسبوک (Facebook)، ناسا (NASA)، دراپباکس (Dropbox)، یاهو (Yahoo)، موزیلا (Mozilla)، کورا (Quora)، اینستاگرام (Instagram)، ردیت (Reddit) و IBM تنها برخی از نامهای بزرگ فناوری به شمار میآیند که از زبان برنامه نویسی پایتون به طور گسترده برای اهداف گوناگون استفاده میکنند و به طور مستمر به دنبال استخدام برنامهنویسان پایتون هستند. گوگل از زبان برنامه نویسی پایتون برای هر کاری از پیادهسازی الگوریتمهای هوش مصنوعی گرفته تا موتور اجرای برنامه گوگل (App Engine Cloud) استفاده میکند. این در حالیست که ۹۹/۹ در صد از کد دراپباکس شامل بکاند سرور (server backend)، کلاینت دسکتاپ، منطق کنترلگر وبسایت (website controller logic)، بَکاند رابط برنامهنویسی کاربردی (API backend) و ابزارهای تحلیلی آن به زبان برنامه نویسی پایتون نوشته شدهاند.
استفاده از پایتون به عنوان زبان برنامهنویسی مزایا و معایبی به همراه دارد. شاید تعدد و تنوع کتابخانههای استاندارد را بتوان مهمترین مزیت پایتون دانست؛ کتابخانههایی در زمینههای گوناگون از جمله عملیات رشهای، اینترنت، ابزارهای وب سرویس، رابطهای سیستم عامل، پروتکلها، محاسبات عددی، محاسبات برداری، تحلیل داده، یادگیری ماشین و غیره.
از دیگر مزیتهای پایتون محبوبیت و سهولت دسترسی آن است. جامعهی بزرگی از برنامهنویسان خبره برای پشتیبانی آمادهاند. در مسیر یادگیری و استفاده از پایتون هر گاه به مشکلی برخوردید میتوانید از این پشتیبانها برای رفع مشکل خود کمک بگیرید.
خوانایی بالای کدهای پایتون نیز مزیت دیگری است که میتوان برای این زبان قائل شد. به عنوان مثال در پایتون لازم نیست که در پایان هر دستور از نقطه ویرگول استفاده شود. این مسأله مخصوصاً برای نوآموزان برنامهنویسی بسیار خوشایند است. مثال دیگر در این زمینه مشخص کردن بلوکهای کد است که برخلاف زبانهایی مانند C++، C# و جاوا بجای آکولاد از تو رفتگی و قرار دادن فاصلههای معین در آن استفاده میشود. با این کار خود به خود قاعدهی پلهکانی در کدنویسی پایتون رعایت میشود که این قاعده خوانایی کدهای پایتون را بسیار بالا میبرد.
خوانایی بالای کدهای پایتون دستاورد مهمی دارد که به عنوان یکی از مزیتهای پایتون شمرده میشود؛ سادگی. سادگی پایتون که باعث میشود که یادگیری آن آسان باشد. هم نوآموزان و هم برنامهنویسان حرفهای از این مزیت به یک اندازه بهره میبرند. صرف انرژی کمتر و هزینههای کمتر برای یادگیری، تولید نرمافزار و نگهداری آن از دستاوردهای این ویژگی پایتون است.
از دیگر مزیتهای پایتون میتوان به مقیاسپذیری و قابلیت انتقال روی پلتفرمهای مختلف اشاره کرد. و همانگونه که پیش از این نیز اشاره کردیم این نرم افزار رایگان و متن باز است.
در کنار مزیتهای مذکور نقاط ضعفی نیز برای زبان پایتون مطرح است که در هنگام انتخاب زبان برنامهنویسی باید به آن دقت کرد.
درست است که پایتون در پردازش دسکتاپ و سرور سرعت بالایی دارد اما در پردازش موبایل ضعیف است و به همین دلیل برنامه های موبایل زیادی وجود ندارند که با این زبان نوشته شده باشند.
پایتون از مفسر بجای کامپایلر استفاده میکند. به همین دلیل در مقایسه با زبانهای دیگر سرعت پایینتری دارد. اما از آنجایی که یکی از اهداف پایتون آسان کردن توسعهپذیری بوده، میتوان با نوشتن ماژولهایی با زبان C یا C++ و استفاده از آنها در برنامهی پایتون تا حدی این نقیصه را برطرف کرد.
با توجه به اینکه دستورات برنامهنویسی در پایتون بسیار ساده هستند و نیازی به استفاده از نقطه ویرگول و آکولاد و ... نیست، امکان دارد برنامهنویسان متبحر پایتون در استفاده از زبانهای برنامهنویسی دیگر با مشکل مواجه شوند. در حالی که یک برنامهنویس C++ به راحتی میتواند در C# یا جاوا برنامه بنویسد. کوچ از زبانهایی مثل جاوا، C++ یا C# به پایتون راحتتر از کوچ از پایتون به زبانهای مذکور است.
به دلیل اینکه برنامهی پایتون کامپایل نمیشود با خطاهای زمان اجرای بیشتری مواجه میشود. میتوان گفت که برنامههای نوشته شده در پایتون به زمان تست بیشتری نیاز دارند.
در مقایسه با دیگر فناوریهای محبوب مانند JDBC و ODBC، لایه دسترسی به پایگاه داده پایتون اندکی تحت توسعه و ابتدایی به نظر میرسد و از همین رو قابل اعمال برای کسبوکارهایی نیست که نیاز به تعاملهای روان برای دادههای میراثی پیچیده دارند.
در مجموع با وجود تمام مزایا و معایب، زبان برنامهنویسی پایتون از زمان انتشار اولیه تا به امروز، هر روز برنامهنویسان بیشتری را به خود جذب کرده و در کاربردها و عرصههای گوناگون برنامهنویسی مورد استفاده قرار گرفته است. به صورتی که امروز بالاتر از سایر زبانهای برنامهنویسی از نظر محبوبیت و کاربرد قرار گرفته است.