پایتون

پایتون چیست؟

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

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

تعریف پایتون – What is Python

پایتون (به انگلیسی Python) یک زبان برنامه‌نویسی همه منظوره، سطح بالا، شیءگرا، اِسکریپتی و متن باز است که توسط خیدو فان روسوم (Guido van Rossum) در سال ۱۹۹۱ در کشور هلند طراحی شد.
فلسفه از ایجاد این زبان برنامه نویسی دو هدف اصلی بوده است. این اهداف عبارتند از:
    ۱-  خوانا بودن کدهای نوشته شده
    ۲- کوتاهی و بازدهی نسبی بالای آن است.
کلمات کلیدی و اصلی این زبان به صورت حداقلی تهیه شده‌اند و در مقابل کتابخانه‌هایی که در اختیار کاربر است بسیار وسیع هستند.
بر خلاف برخی زبان‌های برنامه‌نویسی مبتنی بر گرامر زبان C که بلاک‌های کد در آکولاد قرار می‌دهند، در زبان پایتون از کاراکتر فاصله در متن برنامه برای مشخص کردن بلاک‌های کد استفاده می‌شود. به این معنی که تعدادی یکسان از کاراکتر فاصله در ابتدای سطرهای هر بلاک قرار می‌گیرند، و این تعداد در بلاک‌های کد درونی‌تر افزایش می‌یابد. بدین ترتیب بلاک‌های کد به صورت خودکار ظاهری مرتب دارند.
پایتون مدل‌های مختلف برنامه‌نویسی از جمله شی‌گرا و تابع محور (Object-oriented programming & Structured programming) را به طور کامل پشتیبانی می کند و همچنین بسیاری از قابلیت های آن از برنامه نویسی Functional و aspect-oriented پشتیبانی می کند.
این زبان از زبان‌های برنامه‌نویسی مفسر بوده و به صورت کامل یک زبان شیءگرا است که در ویژگی‌ها با زبانهای تفسیری پرل، روبی، اسکیم، اسمال‌تاک و تی‌سی‌ال مشابهت دارد و از مدیریت خودکار حافظه استفاده می‌کند.
پایتون پروژه‌ای Free  و Open Source است و توسط بنیاد نرم‌افزار پایتون مدیریت می‌گردد.

تاریخچه پایتون – Python History

همانطور که پیش از این عنوان شد، پایتون در اواخر دهه ۱۹۸۰ و توسط Guido van Rossum و در CWI یا همان مؤسسه ملی تحقیقات ریاضی و رایانه در کشور زیبای هلند متولد شد. پایتون به عنوان جانشین زبان ABC که خود این زبان از SETL الهام گرفته است ایجاد شد. قایلیت حل کردن استثناها و همچنین ارتباط با سیستم عامل Amoeba از قابلیت های این زبان قدرتمند است. اجرای این نرم افزار از سال ۱۹۸۹ شروع شد. نقش مداوم Guido در تصمیم‌گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان بدهد. وی در ژانویه ۲۰۱۸ بازنشسته شد.
در سال ۱۹۹۱ فان روسوم نسخه ۰٫۹٫۰ را منتشر کرد. البته در این مرحله از پیشرفت کلاس‌هایی با خاصیت ارث بری، پردازش استثنا، توابع و انواع داده list, dict, str  وجود داشت. همچنین در این نسخه ابتدایی یک سیستم ماژول با اقتباس از ماژول-۳ وجود داشت، که فان روسوم این ماژول را به عنوان «یکی از واحدهای عمده برنامه‌نویسی پایتون» توصیف کرد. مدل استثناء پایتون نیز شباهت‌هایی به ماژول-۳ داشت، که به آن شرط else افزوده شده بود. در سال ۱۹۹۴ اولین مجمع مباحثه پیرامون پایتون شکل گرفت که مرحله برجسته‌ای در پیشرفت کاربری پایتون بود.
پایتون در ژانویه ۱۹۹۴ به نسخه ۱٫۰ رسید. خصوصیات عمده جدید این نسخه شامل ابزارهای برنامه‌نویسی تابعی lambda, map, filter, reduce  بود.

پایتون در ژانویه ۱۹۹۴ به نسخه ۱٫۰ رسید. خصوصیات عمده جدید این نسخه شامل ابزارهای برنامه‌نویسی تابعی lambda, map, filter, reduce  بود.
پایتون نسخه ۱٫۲ در سال ۱۹۹۵، زمانی‌که خَودو در CVVI بود، ارائه شد. خَودو به فعالیت‌های خود روی پایتون در مؤسسه ملی تحقیقات و ابتکارات (CNRI) در رستون ادامه داد و در همان‌جا چندین نسخه جدید انتشار یافت.
در نسخه ۱٫۴ به پایتون چندین ویژگی جدید اضافه شد. از ویژگی‌های جالب توجه در میان این اضافات می‌توان به الهام گرفتن از آرگومان‌های کلیدی ماژول-۳ (که خود از آرگومان‌های کلیدی لیسپ الهام گرفته بود) و همچنین پشتیبانی اعداد مختلط اشاره کرد.
در مدت فعالیت فان روسوم در CNRI، او پروژه برنامه‌نویسی کامپیوتر برای هر کس (CP4E) را ایجاد کرد تا برنامه‌نویسی را در دسترس افراد بیشتری که اطلاعات پایه‌ای برای برنامه‌نویسی (برای مثال توانایی در زبان انگلیسی و مهارتهای اولیه ریاضی) را دارند، قرار دهد.  زبان برنامه‌نویسی پایتون به دلیل تمرکزش بر روی پاکسازی فرم دستوراتش، نقش مرکزی را ایفا کرد. این پروژه توسط دارپا سرمایه‌گذاری شد و از سال ۲۰۰۷ غیرفعال شد.
پایتون نسخه ۲٫۰ در ۱۶ اکتبر ۲۰۰۰ با اضافه شدن بسیار از قابلیت های مهم جدید ارائه شد. برخی از این قابلیت عبارتند از cycle-detecting garbage collector و همچنین پشتیبانی از Unicode.
پایتون ۳٫۰ در ۳ دسامبر ۲۰۰۸ ارائه شد. این یک تغییر نسخه بزرگ بود که در بعضی از موارد با نسخ قبلی سازگار نداشت. کمپانی گوگل نیز شروه به کار بر روی نسخه ۲٫۷ پایتون برای تبدیل Source to Source زبان Go برای بهینه سازی کارایی آن در پردازش های همزمان کرد.

فلسفه پایتون – Python philosophy

فلسه اصلی پایتون در مقاله ای با عنوان  Zen of Python (PEP 20) آمده است. این مقاله شامل مواردی است که اعدادی از آنها عبارتند از:
     •    زیبایی بهتر از زشتی است — Beautiful is better than ugly
     •    وضوح و خوانایی بهتر از ضمنی بودن است — Explicit is better than implicit
     •    سادگی بهتر از پیچیدگی است — Simple is better than complex
     •    پیچیدگی بهتر از بغرنج بودن است — Complex is better than complicated
     •    خوانا بودن — Readability counts
بجای آن که تمام قابلیت های آن به core پایتون اضافه شود، پایتون بسیار توسعه پذیر طراحی شده است. امکان مادولار بودن و همچنین جمع و جور بودن این زبان (compact modularity) باعث شده است که به عنوان وسیله ای برای اضافه کردن رابط های قابل برنامه ریزی به برنامه های موجود، سیار محبوبیت داشته باشد. دیدگاه ون راسوم از یک زبان با هسته یا همان core کوچک با کتابخانه ای استاندارد و مترجم یا همان interpreter با قابلیت گسترش و توسعه ساده، از ناکامیهایش در استفاده از زبان ABC گرفته شده است، که البته با رویکردی مخالف اتخاذ شده است.

پایتون ۳ – Python Version 3

پایتون (۳٫۰ که پایتون ۳۰۰۰ ویا Py3k نیز خوانده می‌شود) به منظور شکستن سازگاری عقبرو یا همانbackward compatibility یا به عبارتی قطع سازگاری با پایتون ۲ و بهبود خطاها و رخنه‌ها در نسخه ۲ و همچنین حذف روش‌های قدیمی طراحی شد. به عبارتی دیگر لازم نیست که پایتون ۳ بتواند کدی که با پایتون ۲ نوشته شده را تفسیر کند که البته این مشکل توسط نرم‌افزار ۲to3 حل می‌شود.

فلسفه پایتون ۳  --  Python Version 3 philosophy

پایتون ۳٫۰ با همان فلسفه ورژن‌های قبل، در حال توسعه یافتن است، بنابراین هر منبعی در فلسفه پایتون، در پایتون ۳٫۰ به خوبی مشاهده می شود. اگرچه، همان‌طور که پایتون روش‌های جدید در برنامه‌ریزی را جمع‌آوری کرده، پایتون ۳٫۰ تأکید زیادی بر از بین بردن ساختارها و ماژول‌های تکراری دارد: «باید یک – و ترجیحاً فقط یک – روش بدیهی برای انجام آن وجود داشته باشد.» با این وجود پایتون ۳٫۰ به ساختار زبان چند نمونه‌ای ادامه خواهد داد. کد نویس‌ها همچنان اختیارات شیء گرایی، برنامه‌نویسی ساخت یافته، برنامه‌نویسی تابعی و دیگر نمونه‌ها را دارند، اما در انتخاب‌های وسیع. همچنین جزئیات در پایتون ۳٫۰ آشکارتر از پایتون نسخه ۲ هستند.

سازگاری و همزمانی

اولین نسخه پایتون ۳٫۰ در ۱۷ سپتامبر ۲۰۰۸ منتشر شد. پایتون سری ۲ و ۳ به ‌طور همزمان با هم وجود خواهند داشت. پایتون ۳٫۰ سازگاری قبل را نقض خواهد کرد. الزامی ندارد که کدهایی که با پایتون ۲ اجرا می‌شوند، برای پایتون ۳٫۰ بدون تغییر اجرا شوند. چون تغییرات اساسی بین این دو ورژن وجود دارد مثل اختلاف در دستور پرینت (بنابراین هر استفاده از پرینت به عنوان توضیح باعث خطا در اجرای برنامه می‌شود).

مقایسه محبوبیت زبان های برنامه نویسی

همانطور که می دانید زبان های برنامه نویسی بسیاری در دنیا وجود دارند که هرکدام کاربرد های خاص خود را دارند. بعضی از این زبان های برنامه نویسی برای مقاصدی خاص تولید شده اند و بعضی از آنها عمویت بیشتری دارند. با توجه به میزان استفاده از زبان های برنامه نویسی و همچنین محبوبیت آنها در میان برنامه نویسان و همچنین کدها و برنامه های ارائه شده، سالیانه آمارهایی در خصوص محبوب ترین زبان های برنامه نویسی ارائه می شود. من برای رسیدن به یک نتیجه واقعی مقالات و سایت های زیادی را بررسی کردم. یکی از بهترین و منطقی ترین مقالاتی که در این خصوص خواندم را در ادامه ارائه خواهم کرد که در خصوص محبوب ترین زبان های برنامه نویسی در شروع سال ۲۰۱۸ است. برای مراجعه به سایت اصلی این مقاله می توانید از لینک زیر استفاده نمائید.

در این مقاله آمده است که :
وقتی صحبت از مقایسه زبان های برنامه نویسی باشد، صدها شاخص متفاوت مدنظر خواهد بود. ولی برای رسیدن به پاسخ مناسب تر ما بر روی تعدادی از معتبرترین های آنها تمرکز می کنیم. این شاخص ها عبارتند از:
     •    Tiobe Programming Index : برای دهه ها این شرکت شاخص محبوب ترین زبان های برنامه نویسی را منتشر کرده است. آنها این لیست را به صورت ماهیانه بروزرسانی می کنند.
     •    Indeed.com: به عنوان بزرگترین Search engine موجود در زمینه مشاغل، بهترین منبع برای اندازی گیری نیاز واقعی مشاغل مربوط به حوزه برنامه نویسی است.
     •    GitHub: که بزرگترین code repository فعال حال حاضر دنیاست. هر ساله گزارشی تحت عنوان Year in Review ارائه می کند. این گزارش شامل آمار community های برنامه نویسان است.
در ادامه توجه شما را به گزارش بالاترین زبان های برنامه نویسی جلب می کنم:

تصویر فوق ۲۰ عدد از محبوب ترین زبان های برنامه نویسی را در تا ماه دسامبر سال ۲۰۱۷ نشان می دهد. این جدول با توجه به اطلاعات ارائه شده از Tiobe حاصل شده است. همانطور که مشهود است پایتون با رسیدن به جایگاه بسیار مناسب چهارم بالاتر از C# و JavaScript قرار گرفته است.

نمودار فوق بیانگر میزان تقاضای شغل بر اساس اطلاعات سایت Indeed.com است.همانطور که می بینید در این نمودار هم پاتیون جایگاه بسیار قابل قبولی دارد. میزان گزینه های شغلی برای پایتون که در این نمودار هم در رتبه چهارم قبول دارد بیانگر میزان استفاده بسیار شرکت ها از این زبان برنامه نویسی محبوب است.
میزان شغل ایجاد شده در رابطه با زبان های برنامه نویسی طبیعتا بیانگر محبوبیت هر یک از این زبان هاست. در نتیجه زبان هایی که رتبه های بالای جدول را به خود اختصاص داده اند طبیعتا از محبوبیت بیشتری برخوردارند.
در ادامه توجه شما را به گزارش سالیانه GitHub در خصوص ۱۵ زبانی که بیشترین Pull Request را داشته اند جلب می کنم. لازم به ذکر است که Pull Request به عنوان شاخصی از مقدار کد نوشته شده است.   

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

در مقاله سایت Stackify که لینک آن کمی بالاتر ارائه شد در رابطه با چهار زبان برتر دنیا مطالبی ارائه شده است که در این مقاله پایتون بعد از Java و C رتبه سوم را دارد. به متن مقاله در ادامه توجه نمایید.

Python is on the rise
The popularity of Python has risen steadily over the past 15 years, finally breaking the top 5 on the Tiobe Index a few years ago. This is because Python is a major language in some of most exciting technologies today. Machine learning, artificial intelligence (AI), Big Data, and Robotics all rely heavily on Python (Robotics also relies on C for its use in systems programming). Cyber Security, one of the top software challenges of our time, is also driven by Python.
It’s surprising how simple Python is to learn. It’s now the most popular introductory language taught in universities and often picked up by experienced developers as a second or third language.

پایتون در حال صعود

محبوبیت پایتون در ۱۵ سال گذشته به طور پیوسته افزایش یافته است، و در نهایت چندین سال پیش باعث شکست در فهرست پنجگانه شاخص Tiobe شد. دلیل این اتفاق آن است که پایتون یک زبان برنامه نویسی اصلی در برخی از فناوری های جذاب و هیجان انگیز امروز است. یادگیری ماشین، هوش مصنوعی (AI)، Big Data و روباتیک همه به شدت به Python بستگی دارد (رباتیک همچنین به زبان برنامه نویسی C برای استفاده از آن در برنامه نویسی سیستم متکی است). Cyber Security  یکی از بالاترین چالش های نرم افزاری زمان ما نیز توسط پایتون هدایت می شود.
یادگیری پایتون بسیار ساده است و این جزو موارد تعجب آور این زبان است. پایتون در حال حاضر محبوب ترین زبان مقدماتی است که در دانشگاه ها تدریس شده و اغلب توسط توسعه دهندگان با تجربه به عنوان زبان دوم یا سوم انتخاب شده است.
آمار و ارقام بالا به خوبی بیان گر این موضوع هستند که پایتون به یکی از محبوب ترین و همچنین یکی از زبان های بسیار کارآمد در این دوره تبدیل شده است. در نتیجه اگر برای شما سوال است که یادگیری این زبان را شروع کنید یا خیر بهتر نگاه دقیق تری به آمار فوق و یا اصل گزارشات ارائه شده در هریک از سایت های مرتبط بیاندازید.

چه شرکت هایی تا به حال از پایتون استفاده کرده اند؟

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

لطفا فقط برای شروع به لیست این شرکت ها توجه کنید:
     •    Industrial Light and Magic
     •    Google
     •    Facebook
     •    Instagram
     •    Spotify
     •    Quora
     •    Netflix
     •    Dropbox
     •    Reddit
از سادگی و چابکی زبان پایتون برای شما گفته ام. شاید برایتان سوال باشد برنامه های واقعی در دنیای کسب کار چگونه از پایتون استفاده می کنند؟ شاید با توضیح مختصر در خصوص شرکت های بزرگ نرم افزاری فوق بتوان این سوال را پاسخ داد.
       •    Industrial Light and Magic: شرکتی است که در زمینه جلوه های ویژه و در سال ۱۹۷۵ تاسیس شده است. این شرکت توسط George Lucas برای ایجاد FX برای پروژه جنگ ستارگان ایجاد شد. این شرکت در ادامه جوایز بسیاری را در خصوص FX کسب نموده اند.
شرکت ILM در مقایسه با زبان هایی مانند Perl و Tcl شروع به استفاده از نسخه ۱٫۴ پایتون کرد. دلیل این انتخاب قابلیت پایتون در اتصال آن بخ زیرساخت های آن زمان شرکت بود. به دلیل قابلیت همکاری (interoperability) آسان پایتون با C و C ++، برای شرکت ILM وارد کردن Python به حوزه نرم افزار اختصاصی خود که عموما در حوزه نرم افزارهای گرافیکی هستند بسیار ساده تر بود.
       •    Google: گوگل از ابتدا طرفدار پایتون بود. بنیانگذاران گوگل در ابتدا تصمیم مهمی گرفتند، ” Python برای زمانی که می توانیم، C++ برای زمانی که مجبوریم “. این تصمیم به این معناست که C++ زمانی مورد استفاده قرار بگیرد که کنترل حافظه ضروری بود و یا زمان تاخیر کم مورد نظر باشد. در حقیقت، انتخاب پایتون به دلیل سهولت نگهداری و زمان کد نویسی نسبتا سریع مورد استفاده قرار گرفت.
پایتون در حال حاضر یکی از زبان های رسمی گوگل در سمت سرور (server-side) است.C++، Java و Go سه زبان برنامه نویسی دیگری هستند که در گوگل مورد استفاده قرار می گیرند. نکته قابل توجه آن است که خالق پایتون یا همان Guido van Rossum از سال ۲۰۰۵ تا سال ۲۰۱۲ در گوگل مشغول به کار بوده است و این نشان از اهمیت این زبان برنامه نویسی دارد.
Peter Norvig  گفته است که :
“پایتون از همان ابتدا بخش مهمی از گوگل بوده و همچنان در حال رشد و تکامل یافته است. امروزه ده ها تن از مهندسان گوگل از پایتون استفاده می کنند و ما به دنبال جذب افراد بیشتری با مهارت در این زبان هستیم. “
       •    Facebook: مهندسان فیسبوک به شدت به پایتون علاقه مند هستند و این سومین زبان محبوب در غول رسانه های اجتماعی است (درست بعد از C++ و PHP). به طور متوسط، بیش از ۵۰۰۰ سرویس و ابزار در فیسبوک که شامل مدیریت زیرساخت (managing infrastructure)، توزیع دودویی (binary distribution)، تصویربرداری سخت افزاری (hardware imaging) و اتوماسیون عملیاتی (operational automation) است که از پایتون استفاده می کنند.
با توجه به گزارش سال ۲۰۱۶  ارائه شده توسط فیسبوک، پایتون در حال حاضر مسئولیت چندین سرویس در مدیریت زیرساخت را بر عهده دارد. این سرویس ها شامل استفاده از TORconfig برای مدیریت تنظیمات سوئیچ شبکه و تصویربرداری، FBOSS برای CLI سوئیچ whitebox و استفاده از Dapper برای برنامه ریزی و اجرای کار تعمیر و نگهداری است.
       •    Instagram: در سال ۲۰۱۶ تیم مهندسی اینستاگرام افتخار دارد که بزرگترین پیاده سازی تحت وب جهان را که کاملا با زبان پایتون نوشته شده است در اختیار دارد. این برتری احتمالا هنوز ادامه دارد. Min Ni، یکی از مهندسین نرم افزار در اینستاگرام در مورد استفاده از پایتون اینچنین می گوید:
“ما در ابتدا تصمیم گرفتیم به خاطر شهرت پایتون به سادگی و کاربردی از آن استفاده کنیم، که البته با فلسفه ما یعنی “انجام دادن کار ساده ای برای اولین بار” هماهنگ است.”
از آن به بعد، تیم مهندسی اینستاگرام زمان و منابع خود را برای پیاده سازی محصول که در مقیاس وسیع (حدود ماهیانه ۸۰۰ میلیون کاربر فعال) در حال فعالیت هستند، با استفاده از پایتون سرمایه گذاری کرده است.
در سال ۲۰۱۷ اینستاگرام از پایتون نسخه ۲٫۷ به نسخه ۳٫۰ ارتقا یافت که یکی از مهاجرت های بزرگ این شرکت محسوب می شود.

در مقاله اصلی در صورت علاقه می توانید وضعیت سایر شرکت های عنوان شده در فهرست ۸ شرکت را مطالهخ نمائید که به خوبی بیانگر میزان محبوبیت و قابلیت های بالای این زبان برنامه نویسی است.
در مقاله دیگری با عنوان ۱۰ MAJOR USES OF PYTHON که از جو شرکت ها انتشاراتی معتبر دنیاست نوشته شده است که تعداد زیادی از شرکت ها در حال حاضر از پایتون استفاده می کنند. از این مقاله تنها به ذکر عنوان این شرکت ها بسنده می گردد:
     •    Corel
     •    D-Link
     •    Eve-Online
     •    ForecastWatch.com
     •    Frequentis
     •    Honeywell
     •    HP
     •    Industrial Light & Magic
     •    Philips
     •    United Space Alliance
همچنین توصیه می گردد برای مطالعه بیشتر در این مورد به لینک زیر که در سایت اصلی پایتون قراردارد مراجعه نمایید:

مزایای استفاده از پایتون -- Why You Should Use Python

بعد از بررسی و ذکر شرکت های بزرگی که از پایتون استفاده کرده اند نوبت به آن می رسد که به بررسی مزایای استفاده از این زبان برنامه نویسی بپردازیم. همانطور که عنوان شد پایتون یکی از ۱۰ زبان برتر دنیا در سال ۲۰۱۷ بوده است. پایتون زبانی سطح بالا و چند منظوره است. شما می توانید از پایتون برای توسعه برنامه های کاربردی Desktop GUI، وب سایت ها و برنامه های کاربردی تحت وب استفاده کنید. همچنین، پایتون به عنوان یک زبان برنامه نویسی سطح بالا، شما را قادر می کند تا با مراقبت از وظایف برنامه نویسی مشترک بر روی قابلیت های اصلی برنامه تمرکز کنید. قوانین و نحو نگارش ساده این زبان برنامه نویسی به شما کمک می کند که پایه کد را قابل خواندن و قابل نگهداری نگاه دارید. چند دلیل وجود دارد که باعث ترجیح پایتون به زبان های برنامه نویسی دیگر می شود:
     •    خوانایی و قابلیت پشتیبانی — Readable and Maintainable Code
هنگام نوشتن یک برنامه نرم افزاری، می بایست بر روی کیفیت سورس کد خود تمرکز کنید تا در آینده نگهداری و بروزرسانی ساده تری داشته باشید. قوانین کد نویسی پایتون به شما این امکان را می دهد تا مفاهیم و نیازمندی های خود را بدون نوشتن کد اضافی بیان کنید. همزمان، بر خلاف زبان های دیگر برنامه نویسی، پایتون بر روی قابلیت خوانا بودن کد تمرکز می کند و به شما اجازه می دهد تا به جای علامت گذاری و یا کلمات کلیدی از کلمات انگلیسی استفاده کنید. از این رو، شما می توانید از پایتون برای ساخت برنامه های سفارشی بدون نوشتن کد اضافی استفاده کنید. پایه کد خوانا و تمیز به شما کمک می کند تا بدون نیاز به صرف زمان و انرژی بیشتر، نرم افزار را پشتیبانی و بروزرسانی کنید.
     •    پارادایم های برنامه نویسی چندگانه — Multiple Programming Paradigms
همانند دیگر زبان های برنامه نویسی مدرن، پایتون نیز از چندین روش برنامه نویسی پشتیبانی می کند. پایتون از برنامه نویسی شی گرا و ساختار یافته (object oriented and structured programming) کاملا پشتیبانی می کند. همچنین ویژگی های پایتون از مفاهیم مختلفی در برنامه نویسی کاربردی و جنبه گرا پشتیبانی می کند. همزمان پایتون دارای یک سیستم پویای مدیریت خودکار حافظه است. پارادایم های زبان برنامه نویسی به شما کمک می کند از آن برای توسعه برنامه های کاربردی نرم افزارهای بزرگ و پیچیده استفاده کنید.
     •    سازگاری با سیستم عامل های اصلی — Compatible with Major Platforms and Systems
در حال حاضر، پایتون از بسیاری از سیستم عامل ها پشتیبانی می کند. شما به راحتی می توانید از مفسران پایتون برای اجرای کد مورد نظر خود در سیستم عامل ها و ابزارهای خاص استفاده کنید. همچنین، پایتون یک زبان برنامه نویسی تفسیر شده است (interpreted programming language). در نتیجه این امکان را برای شما فراهم می کند که کدهای خود را بدون نیاز به کامپتیل مجدد یا همان (recompilation) در سیستم عامل های مختلف اجرا کنید. از این رو لازم نیست پس از انجام تغییرات در کد مجددا آن را کامپایل کنید. شما می توانید کد برنامه اصلاح شده را بدون کامپایل مجدد اجرا کرده و بلافاصله از نتیجه تغییرات خود آگاه شوید. این ویژگی باعث می شود بدون صرف زمان زیادی تغییرات مورد نیاز خود را انجام دهید.
     •    کتابخانه قوی و استاندارد — Robust Standard Library
کتابخانه استاندارد و بزرگ پایتون، امتیاز آن را بیش از سایر زبانهای برنامه نویسی بالا می برد. این کتابخانه استاندارد به شما اجازه می دهد تا از طیف گسترده ای از ماژول ها با توجه به نیازهای خود انتخاب و استفاده کنید. هر ماژول با اضافه کردن قابلیتی به پایتون، شما را قادر به استفاده از آن بدون نوشتن کد اضافی می کند. برای مثال، هنگام نوشتن یک برنامه وب در پایتون، می توانید از سرویس های وب استفاده کنید، عملیات رشته ای را انجام دهید، مدیریت رابط سیستم عامل یا کار با پروتکل های اینترنتی را انجام دهید. شما حتی می توانید از طریق پیمایش کتابخانه استاندارد پایتون اطلاعاتی در مورد ماژول های مختلف جمع آوری کنید.
     •    تعداد زیادی از چارچوب ها و ابزارهای منبع باز — Many Open Source Frameworks and Tools
پایتون به عنوان یک زبان برنامه نویسی Open Source، به شما کمک می کند تا هزینه توسعه و تولید نرم افزار خود را به طور قابل توجهی کاهش دهید. شما همچنین می توانید از چارچوب های چندگانه Open Source پایتون و کتابخانه ها و ابزارهای توسعه و تولید برای محدود کردن زمان توسعه بدون افزایش هزینه آن استفاده کنید. شما طیف گسترده ای از چارچوب های پایتون که Open Source هم هستند در اختیار داریدکه می توانید با توجه به نیازهای خود از میان آنها انتخاب کنید. برای مثال، شما می توانید با استفاده از چارچوب های قدرتمند پایتون مانند Django، Flask، Pyramid، Bottle و Cherrypy، برای ساده سازی و سرعت بخشیدن به توسعه نیازمندی های وب خود استفاده کنید. به همین ترتیب، می توانید برنامه های کاربردی Desktop GUI را با استفاده از چارچوب های GUI Python و ابزارهای مانند PyQT، PyJs، PyGUI، Kivy، PyGTK و WxPython بهینه و تسریع کنید.
     •    ساده سازی توسعه نرم افزاری پیچیده — Simplify Complex Software Development
پایتون یک زبان برنامه نویسی عمومی است. از این رو، شما می توانید از زبان برنامه نویسی برای توسعه برنامه های کاربردی دسکتاپ و وب استفاده کنید. همچنین می توانید از پایتون برای توسعه برنامه هایی با کاربردهای علمی و عددی استفاده کنید. در پایتون ویژگی هایی برای تسهیل در data analysis و  visualizationوجود دارد. شما می توانید از این ویژگی ها برای ایجاد راه حل های سفارشیی بزرگ داده ها (custom big data solutions) بدون صرف وقت و تلاش بیشتر استفاده کنید. در عین حال، کتابخانه های   visualizationو API های ارائه شده توسط پایتون داده ها را به شیوه های جذاب تر و موثر ارائه دهید. بسیاری از توسعه دهندگان پایتون حتی برای استفاده از هوش مصنوعی (artificial intelligence) و کارهای پردازش زبان طبیعی (natural language processing) از پایتون استفاده می کنند.
     •    اتخاذ استراتژی تست — Adopt Test Driven Development
شما می توانید از پایتون برای ایجاد پروتوتایپ نرم افزار استفاده کنید. همچنین می توانید نرم افزار خود را مستقیما از روی این نمونه اولیه (prototype) بسازید، تنها با اصلاح کدهای پایتون. همچنین پایتون یه شما این امکان را می دهد تا با اتخاذ رویکرد Test Driven Development (TDD) برنامه نویسی و تست را همزمان خود را بسیار ساده تر انجام دهید. شما می توانید به راحتی تست های لازم قبل از نوشتن کد را نوشته و از تست ها برای ارزیابی کد برنامه استفاده کنید. این تست ها همچنین می توانند برای بررسی اینکه آیا برنامه بر اساس کد های اولیه عمل می کنند یا خیر، استفاده شوند.

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

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

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

پایتون در بسیاری از نرم افزارهای کاربردی مورد استفاده قرار می گیرد. لطفا به نمونه های زیر توجه کنید:
     •    Web and Internet Development
پایتون امکانات بسیاری را در این خصوص ارائه داده است که تعدادی از این قابلیت ها عبارتند از:

     •    Frameworks such as Django and Pyramid
     •    Micro-frameworks such as Flask and Bottle
     •    Advanced content management systems such as Plone and django CMS

کتابخانه استاندارد پایتون از بسیاری از پروتوکل های اینترنت پشتیبانی می کند: 

     •    HTML and XML
     •    JSON
     •    E-mail processing
     •    Support for FTP, IMAP, and other Internet protocols
     •    Easy-to-use socket interface

همچنین فهرست بیشتری از کتابخانه ها:

     •    Requests, a powerful HTTP client library
     •    BeautifulSoup, an HTML parser that can handle all sorts of oddball HTML
     •    Feedparser for parsing RSS/Atom feeds
     •    Paramiko, implementing the SSH2 protocol
     •    Twisted Python, a framework for asynchronous network programming

     •    Scientific and Numeric
از پایتون در بسیاری از محاسبات علمی و عددی استفاده می شود:

     •    SciPy is a collection of packages for mathematics, science, and engineering.
     •    Pandas is a data analysis and modeling library.
    •   IPython is a powerful interactive shell that features easy editing and recording of a work session, and supports visualizations and parallel computing.
    •   The Software Carpentry Course teaches basic skills for scientific computing, running bootcamps and providing open-access teaching materials.

     •    Education
پایتون یک زبان عالی برای تدریس برنامه نویسی است، چه در دوره های مقدماتی و چه در دوره های پیشرفته:

     •    Books such as How to Think Like a Computer Scientist, Python Programming: An Introduction to Computer Science, and Practical Programming.
     •    The Education Special Interest Group is a good place to discuss teaching issues.

     •    Desktop GUIs
کتابخانه معروف TK GUI در اکثر binary distributions پایتون قرار دارد. ابزارهایی که در اکثر محیط ها موجود هستند عبارتند از:

     •    wxWidgets
     •    Kivy, for writing multitouch applications.
     •    Qt via pyqt or pyside

ابزارهایی که به محیط های خاص وابسته هستند نیز موجود است:

     •    GTK+
     •    Microsoft Foundation Classes through the win32 extensions

     •    Software Development

پایتون اغلب به عنوان یک زبان پشتیبان برای توسعه دهندگان نرم افزار برای ساخت، کنترل و مدیریت، آزمایش و بسیاری از موارد دیگر مورد استفاده قرار می گیرد:

     •    SCons for build control.
     •    Buildbot and Apache Gump for automated continuous compilation and testing.
     •    Roundup or Trac for bug tracking and project management.

     •    Business Applications
پایتون برای ساخت سیستم های ERP و تجارت الکترونیک نیز استفاده می شود:

     •    Odoo is an all-in-one management software that offers a range of business applications that form a complete suite of enterprise management applications.
     •    Tryton is a three-tier high-level general purpose application platform.

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

3 دیدگاه در “پایتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *