« زبان برنامه نویسی پایتون » (Python Programming Language)، زبانی با یادگیری آسان محسوب میشود و از همین رو بسیاری از برنامهنویسهای تازهکار آن را به عنوان اولین زبان برنامهنویسی خود برمیگزینند، زیرا پایتون به عنوان یک «زبان همهمنظوره» (General-Purpose Language) ساخته و توسعه داده شده و محدود به توسعه نوع خاصی از نرمافزارها نیست. به بیان دیگر، میتوان از آن برای هر کاری، از «تحلیل داده» (Data Analysis) گرفته تا ساخت بازیهای کامپیوتری استفاده کرد.
همچنین، پایتون در میان جوامع علمی از محبوبیت فوقالعادهای برخوردار است، زیرا از آن برای محاسبه معادلات پیچیده و تحلیلهای داده استفاده میشود. در ادامه به طور دقیقتر به چیستی این زبان، دلایل محبوبیت، ویژگیها، مزایا و معایب، کاربردها، نسخههای گوناگون و چگونگی انتخاب از میان آنها، روش راهاندازی محیط پایتون، چیستی «جنگو» (Django)، تفاوتهای پایتون با دیگر زبانهای برنامهنویسی، جمعیت برنامهنویسهای پایتون در جهان، وضعیت اشتغال برنامهنویسهای پایتون در ایران، شش پروژه برنامهنویسی پایتون برای مبتدیان، مزایای یادگیری و روش یادگیری این زبان پرداخته خواهد شد.
زبان برنامه نویسی پایتون چیست؟
به بیان فنی، «پایتون» (Python) یک زبان برنامهنویسی «شیگرا» (Object-Oriented) و «سطح بالا» (High-Level) با «معناشناسی» (Semantic) پویای یکپارچه شده برای وب و ساخت و توسعه «نرمافزارهای کاربردی» (Application software) است. این زبان برنامهنویسی در زمینه «توسعه سریع نرمافزارهای کاربردی» (Rapid Application Development) دارای جذابیت بالایی محسوب میشود زیرا دارای «انواع پویا» (Dynamic Types) و «انقیاددهنده پویا» (Dynamic Binding) است.
پایتون، زبان برنامهنویسی نسبتا سادهای محسوب میشود که یادگیری آن به دلیل دارا بودن «نحو» یکتایی که بر قابلیت خوانایی تمرکز و تاکید دارد آسان است. خواندن و ترجمه کدهای نوشته شده به زبان برنامهنویسی پایتون نسبت به دیگر زبانها برای «توسعهدهندگان» (Developers) سادهتر محسوب میشود. این موضوع به نوبه خود هزینههای نگهداری و توسعه برنامههای نوشته شده به این زبان را کاهش میدهد زیرا امکان همکاری تیمها بدون مواجهه با موانع زبانی و وجود تجربیات کاری متفاوت در میان اعضای تیم را به دست میدهد.
علاوه بر این، پایتون از «ماژولها» (modules) و «بستهها» (packages) استفاده میکند، بدین معنا که برنامههای این زبان قابل طراحی به سبک «ماژولار» (modular) هستند و کدهای نوشته شده در یک پروژه در پروژههای گوناگون دیگر نیز قابل استفاده مجدد محسوب میشوند. هنگامی که کاربری ماژول یا بسته مورد نیاز خود را توسعه داد، خودش یا دیگر علاقمندان (در صورتی که کد در اختیار عموم قرار بگیرد) میتوانند آن را برای استفاده در دیگر پروژهها گسترش دهند. «ایمپورت» (Import) و «اکسپورت» (Export) کردن این ماژولها نیز کار آسانی است.
بهتر است مطالعه کنید : ۶ زبان برنامهنویسی قدرتمند برای پروژههای هوش مصنوعی و یادگیری ماشین
یکی از قابل توجهترین مزایای زبان برنامهنویسی پایتون آن است که «کتابخانه» (Library) و «مفسر استاندارد» (Standard Interpreter) آن، هم به صورت «دودویی» (binary) و هم «منبع» (source) به رایگان در دسترس همگان قرار دارند. در پایتون هیچ انحصاری وجود ندارد، زیرا همه ابزارهای لازم برای آن در کلیه «پلتفرمهای اصلی» (Main Platforms) موجود هستند. بنابراین، پایتون برای توسعهدهندگانی که نمیخواهند دغدغه هزینههای بالای توسعه را داشته باشند گزینهای جذاب به شمار میآید.
برای افرادی که تصور میکنند مطالبی که بالاتر پیرامون پایتون ارائه شد فراتر از دانش آنها است جای نگرانی وجود ندارد. کلیه جزئیات لازم در این رابطه در ادامه همین مطلب به طور کامل و به بیان ساده تشریح خواهد شد. آنچه افراد برای ادامه مطالعه این مطلب نیاز دارند بدانند این است که پایتون یک زبان برنامهنویسی برای توسعه نرمافزارهای وب و نرمافزارهای کاربردی از جمله برنامههای موبایل محسوب میشود، یادگیری آن آسان و ابزارهای اساسی آن به رایگان در دسترس است. این امر موجب میشود که پایتون تقریبا برای همه افراد در دسترس و قابل استفاده باشد. افرادی که زمان کافی را به یادگیری زبان برنامهنویسی پایتون تخصیص دهند، میتوانند برنامههای جالبی با این زبان خلق کنند.
دلایل محبوبیت پایتون
میانگین درآمد برنامهنویسهای پایتون ممکن است بالا باشد، اما این موضوع نمیتواند چرایی اینکه بسیاری از افراد آن را به عنوان زبان برنامهنویسی محبوب خود انتخاب میکنند توضیح دهد. در ادامه دلایل محبوبیت پایتون به طور جزئیتر مورد بررسی قرار خواهد گرفت.
۱. غولهای فناوری دنیا این زبان را دوست دارند:
«گوگل» (Google)، «یوتیوب» (Youtube)، «فیسبوک» (Facebook)، «ناسا» (NASA)، «دراپباکس» (Dropbox)، «یاهو» (Yahoo)، «موزیلا» (Mozilla)، «کورا» (Quora)، «اینستاگرام» (Instagram)، «ردیت» (Reddit) و IBM تنها برخی از نامهای بزرگ فناوری به شمار میآیند که از پایتون به طور گسترده برای اهداف گوناگون استفاده میکنند و به طور مستمر به دنبال استخدام مهندسهای پایتون هستند. (آمارهای ارائه شده در نمودارهای آتی مربوط به سال ۲۰۱۸ است.)
گوگل از پایتون برای هر کاری از پیادهسازی الگوریتمهای «هوش مصنوعی» (Artificial Intelligence) گرفته تا «موتور اجرای برنامه گوگل» (App Engine Cloud) استفاده میکند. این در حالیست که ۹۹/۹٪ کد دراپباکس شامل «بکاند سرور» (server backend)، کلاینت دسکتاپ، «منطق کنترلگر وبسایت» (website controller logic)، «بَکاند رابط برنامهنویسی کاربردی» (API backend) و ابزارهای تحلیلی آن به زبان پایتون نوشته شدهاند.
۲. به طور گسترده در یادگیری ماشین مورد استفاده قرار میگیرد:
با رشد علم داده، محبوبیت پایتون به عنوان یک زبان علمی اوج گرفت. کتابخانههای «یادگیری ماشین» (Machine Learning) بسیار زیادی به زبان پایتون نوشته شدهاند. در عین حال، ابزارهای زیادی نیز با فراهم آوردن امکان استفاده از زبان پایتون، انجام پروژههای یادگیری ماشین را آسانتر میسازند.
۳. مناسب بودن برای مبتدیها:
پایتون انتخاب خیلی خوبی برای برنامهنویسهای مبتدی محسوب میشود زیرا ساده است و نحو انعطافپذیری دارد. با پایتون، میتوان به سرعت و سادگی برنامههای قابل استفادهای ساخت. احساس دستاورد داشتن سریع فاکتور بسیار مهمی در یادگیری برنامهنویسی است.
۴. پایتون میتواند تنها زبان مورد نیاز کاربر باشد:
از آنجا که پایتون یک زبان برنامهنویسی همه منظوره است، کاربر میتواند تقریبا برای کلیه پروژهها از آن استفاده کند. مطابق گزارش «Skill Up ۲۰۱۸: Developer Skills»، پایتون زبان برنامهنویسی اسکریپتی است که به همه از «کارشناسان تست نفوذ» (pentesters) گرفته تا مهندسان «دواُپس» (DevOps engineers) درجه قابل توجهی از کنترل کردن را میدهد و آنها را قادر به حل مسائل گوناگون میسازد. میتوان از پایتون برای ساخت وبسایتها، توسعه «واسط گرافیکی کاربر» (GUI | Graphical User Interface) و تحلیل داده استفاده کرد. این یعنی پایتون قابلیتهای زبانهای برنامهنویسی گوناگون را در یکجا گرد هم آورده و در واقع آنچه خوبان همه دارند پایتون به تنهایی دارد و بنابراین میتواند تنها زبانی باشد که یک برنامهنویس برای کلیه وظایف لازم در حین توسعه به آن نیاز دارد.
ویژگیهای پایتون
زبان برنامهنویسی پایتون را اغلب میتوان با زبان «پِرل» (Perl)، «روبی» (Ruby)، «پیاچپی» (PHP) و «جاوا» (Java) مقایسه کرد. این موضوع به دلیل قدرت فوقالعاده پایتون به عنوان یک زبان «شیگرا» است. پایتون همچنین دارای ویژگیهای شایان توجهی دیگری است که آن را به زبانی جذاب برای توسعهدهندگان مبدل میکند. برخی از این ویژگیها در ادامه بیان شدهاند.
- پایتون از «نحو» (syntax) ظریفی استفاده میکند که موجب میشود خوانایی برنامههای نوشته شده به این زبان بالا باشد. این امر به آن دلیل به وقوع میپیوندد که پایتون به جای نزدیک بودن به زبانی که کامپیوترها برای خواندن و تفسیر کد استفاده میکنند، یک زبان سطح بالا محسوب میشود که به زبان انسان نزدیک است (به گونهای که انسانها کلمات را در زبان انگلیسی مینویسند نزدیک است). برای مثال، دستور «print» آنچه را به آن داده شود – در زمان اجرا – نمایش میدهد.
- پایتون زبانی ساده و استفاده از آن آسان است، بدین معنا که بالا آوردن برنامهها و اجرای آنها راحت خواهد بود. به همین دلیل است که پایتون زبانی ایدهآل برای ساخت پیشنمونه (پروتوتایپ | prototype) و دیگر وظایف برنامهنویسی اد-هاک (اد-هوک | Ad-Hoc) محسوب میشود. این ویژگی برای تعمیر و نگهداری نرمافزار نیز بسیار مفید است.
- پایتون با «کتابخانههای استاندارد پایتون»، پشتیبانی قابل توجهی را برای انواع وظایف برنامهنویسی مانند «همگامسازی» (syncing) با مرورگرهای وب، جستوجو از طریق متن و ویرایش فایلها ارائه میکند. در اکثر زبانهای برنامهنویسی دیگر، نیاز به ساخت این محتوا از پایه است.
بهتر است مطالعه کنید : چرا یادگیری پایتون برای متخصصان داده ضروری است؟
- این زبان دارای یک حالت تعاملی است که تست کردن نرمافزار برای تکههای کوتاه کد را آسان میسازد. حتی یک محیط توسعه یکپارچه نیز برای زبان پایتون و همراه با آن ارائه میشود (این ویرایشگر کد به زبان پایتون نوشته شده و همراه با بسته پایتون در سیستمعامل ویندوز و مک نصب میشود). محیط توسعه، راهاندازی را بسیار آسانتر و سریعتر میسازد.
- زبان پایتون را میتوان با افزودن ماژولهای جدید توسعه داد، حتی اگر این ماژولها در زبان های C یا C++ کامپایل شده باشند. بهتر آنکه این ماژولها را میتوان پس از ساخت به عنوان «میانبُرها» (shortcuts) در پروژههای آتی مورد استفاده قرار دارد.
- پایتون در یک برنامه کاربردی قابل «توکار» (Embedding) شدن است. این امر یک رابط قابل برنامهنویسی برای کاربران آن نرمافزار کاربردی فراهم میکند. این ویژگی در شرایطی که کاربر برنامهای برای آموزش کدنویسی میسازد و یا در پروژههایی که نیاز به کار با پایتون در ترمینال است بسیار مفید محسوب میشود.
- زبان برنامهنویسی پایتون با گستره وسیعی از کامپیوترها و سیستمهای عامل مانند گنو/لینوکس، ویندوز، MacOS، بسیاری از برندهای یونیکس، OS/2 و بسیاری از دیگر گزینهها سازگار است. علاوه بر این، پایتون از رابط مشابهی در کلیه این پلتفرمها استفاده میکند و این یعنی جابهجایی بین آنها برای کاربر آسان خواهد بود.
- پایتون واقعا رایگان است زیرا دانلود یا استفاده از آن هیچ هزینهای ندارد و هیچ هزینه پروانهای (licensing fees) برای آن وجود ندارد. همچنین، این زبان به طور آزادانهای قابل ویرایش و بازتوزیع است، زیرا علارغم آنکه «حق نشر» (کپی رایت | Copyright) دارد، همراه با پروانههای متنباز ارائه میشود.
مزایا و معایب زبان برنامهنویسی پایتون
شرکتهای نرمافزاری، پایتون را به این دلیل میپسندند که دارای ویژگیهای متنوع و در عین حال نیازمند نوشتن کدهای کمتری است. نزدیک به ۱۴٪ برنامهنویسان از این زبان روی سیستمعاملهایی مانند یونیکس، لینوکس، ویندوز و Mac OS استفاده میکنند.
برنامهنویسهای شرکتهای بزرگ از پایتون به دلیل ویژگیهای گوناگون از جمله موارد زیر بهره میبرند:
- تعاملی (Interactive)
- مفسری
- ماژولار (Modular)
- پویا
- شیگرا
- قابل حمل (Portable)
- سطح بالا
- توسعهپذیر در ++C و C
در ادامه مزایا و معایب بهرهگیری از این زبان به طور مشروح بیان شده است.
مزایای پایتون
زبان پایتون دارای کاربردهای متنوعی در شرکتهای توسعه نرمافزار مانند بازیسازی، چارچوبهای وب، برنامههای کاربردی، توسعه زبانی، پیشنمونهسازی، برنامههای طراحی گرافیکی و دیگر موارد است. این موارد موجب شدهاند پایتون جایگاه ویژهای در میان زبانهای برنامهنویسی پیدا کند. در ادامه برخی از مزایای این زبان بر شمرده میشوند.
کتابخانههای پشتیبان گسترده
پایتون دارای کتابخانههای استاندارد بسیاری در زمینههای گوناگون مانند عملیات روی رشتهها، اینترنت، ابزارهای وب سرویس، رابطهای سیستمعامل و پروتکلها است. اغلب وظایف برنامهنویسی که زیاد مورد استفاده قرار میگیرند در پایتون اسکریپتنویسی شدهاند تا تعداد خطوط کد مورد نیاز برای نوشتن یک برنامه کاهش پیدا کند.
یکپارچگی ویژگیها
پایتون «Enterprise Application Integration» را یکپارچه میسازد و توسعه سرویسهای وب را با فراخوانی مولفههای COM یا COBRA افزایش میدهد. این زبان دارای تواناییهای کنترلی قدرتمندی است، زیرا قابلیت فراخوانی مستقیم توسط C++ ،C یا جاوا با «جایتون» (Jython) را دارد. پایتون همچنین میتواند XML و دیگر «زبانهای نشانهگذاری» (Markup Language) را پردازش کند تا روی سیستمعاملهای مدرن از طریق بایت کد مشابهی اجرا شوند.
بهبود بهرهوری برنامهنویسها
زبان برنامهنویسی پایتون دارای کتابخانههای پشتیبان گسترده و طراحی شیگرای تمیزی است که بهرهوری برنامهنویسها را به نسبت کار با زبانهایی مانند VB، «پِرل» (Perl)، جاوا، C++ ،C و C# دو تا ده برابر میکند.
بهرهوری
فرآیندهای یکپارچهسازی قدرتمند، «چارچوب تست واحد» (Unit Testing Framework) و تواناییهای کنترل بهبود یافتهای که پایتون دارد، موجب افزایش سرعت و بهرهوری برنامههای کاربردی میشود.
معایب پایتون
پایتون دارای مزیتهای بسیار زیاد و متنوعی است و برنامهنویسان این زبان را نسبت به دیگر زبانها به دلیل سادگی یادگیری و کد نویسی ترجیح میدهند. اگرچه این زبان هنوز جایگاه خود را در برخی حوزههای پردازش کامپیوتری مانند «Enterprise Development Shops» به دست نیاورده است. بنابراین، ممکن است پایتون قادر به حل برخی از راهکارهای سازمانی نبوده و با محدودیتهایی مواجه باشد که برخی از آنها در ادامه ذکر شدهاند.
دشواری در استفاده از دیگر زبانها
عاشقان پایتون که با ویژگیها و کتابخانههای گسترده این زبان اُنس گرفتهاند ممکن است در کار یا یادگیری دیگر زبانهای برنامهنویسی دچار مشکل شوند. متخصصان پایتون ممکن است اعلان مقادیر یا نوع متغیرها و الزام به افزودن آکولاد یا «نقطه ویرگول» (semi colons) در بخشهایی از کد را دشوار و بیدلیل بپندارند (چون انجام چنین کارهایی در پایتون نیاز نیست).
ضعیف در پردازش موبایل
پایتون جایگاه خود را در بسیاری از سکوهای دسکتاپ و سرور به دست آورده و تثبیت کرده، اما در پردازش موبایل ضعیف به نظر میرسد. به همین دلیل است که برنامههای کاربردی موبایل کمی با استفاده از آن ساخته میشوند. از جمله برنامههای موبایل ساخته شده با پایتون میتوان به Carbonnelle اشاره کرد.
کاهش سرعت
پایتون به جای استفاده از کامپایلر با بهرهگیری از یک مفسر اجرا میشود و این امر میتواند موجب کاهش سرعت آن شود. از سوی دیگر، پایتون برای بسیاری از کاربردهای وب سریع به شمار میآید.
خطاهای زمان اجرا (Runtime Errors)
زبان پایتون به طور پویایی تایپ میشود، بنابراین دارای محدودیتهای طراحی زیادی است که توسط برخی توسعهدهندگان این زبان (+) بیان شدهاند. حتی مشاهده شده که این زبان نیاز به زمان تست بیشتری دارد و هنگامی که برنامهها در نهایت اجرا میشوند خطاهایی بروز میکنند.
لایههای دسترسی پایگاه داده توسعه نیافته
در مقایسه با دیگر فناوریهای محبوب مانند JDBC و ODBC، لایه دسترسی به پایگاه داده پایتون اندکی تحت توسعه و ابتدایی به نظر میرسد و از همین رو قابل اعمال بر کسبوکارهایی نیست که نیاز به تعاملهای روان برای دادههای میراثی پیچیده دارند.
کاربردهای پایتون
پایتون یک زبان برنامهنویسی همه منظوره است. به عبارت دیگر، میتوان از پایتون تقریبا برای همه کار استفاده کرد. نکته حائز اهمیت آن است که پایتون یک «زبان تفسیری» (interpreted language) به شمار میآید، بدین معنا که کد نوشته شده به این زبان در زمان اجرا واقعا به فرمت قابل خواندن برای کامپیوتر ترجمه نمیشود. این در حالی است که اغلب زبانهای برنامهنویسی این تبدیل را حتی پیش از اجرا انجام میدهند. این نوع از زبان با عنوان «زبان اسکریپتنویسی» (scripting language) نیز نامیده میشود زیرا هدف از ساخت آن در ابتدا برای استفاده در پروژههای کوچک بوده.
مفهوم «زبان اسکریپتنویسی» از بدو پیدایش آن به شکل قابل توجهی تغییر کرده، زیرا پایتون برای نوشتن نرمافزارهای کاربردی و تجاری بزرگ به جای پروژههای کوچک مورد استفاده قرار میگیرد.
استفاده از پایتون در پروژههای گوناگون با افزایش محبوبیت آن رشد قابل توجهی کرده است. بسیاری از برنامههای کاربردی و پلتفرمهای تحت وب از پایتون استفاده میکنند، از این جمله میتوان به «موتور جستوجوی گوگل» (Google’s Search Engine)، «یوتیوب» (YouTube) و سیستمهای تراکنش مبتنی بر وب «بازار بورس نیویورک» (New York Stock Exchange | NYSE) اشاره کرد. برکسی پوشیده نیست که زبان برنامهنویسی که برای سیستم بازار بورس مورد استفاده قرار میگیرد باید بسیار قدرتمند باشد.
«ناسا» (NASA) نیز از پایتون برای برنامهنویسی تجهیزات و ماشینآلات فضایی خود بهره میبرد. فوقالعاده است، نه؟ پایتون همچنین برای پردازش متن، نمایش اعداد یا تصاویر، حل معادلات علمی و ذخیرهسازی داده مورد استفاده قرار میگیرد. به بیان کوتاه، این زبان در پشت صحنه برای پردازش عناصر زیادی که کاربر ممکن است نیاز داشته باشد یا در دستگاه خود با آن مواجه شود – از جمله دستگاههای موبایل- مورد استفاده قرار میگیرد. پایتون در دامنههای وسیعی کاربرد دارد. در ادامه برخی از این موارد بیان میشوند.
توسعه وب و اینترنت
پایتون قابلیتهای زیادی را برای توسعه وب فراهم میکند که از این جمله میتوان به مواردی که در ادامه آمده اشاره کرد.
- چارچوبهایی مانند «جنگو» (Django)، «پیرامید» (Pyramid) و «چریپای» (CherryPy)
- «میکرو چارچوبها» (Micro-frameworks) مانند «فلسک» (Flask) و «باتل» (Bottle)
- سیستمهای مدیریت محتوای پیشرفته مانند «پلون» (Plone) و «جنگو سیاماس» (django CMS).
کتابخانههای استاندارد پایتون از پروتکلهای اینترنتی متعددی پشتیبانی میکنند که برخی از آنها در زیر آمدهاند.
- HTML و XML
- JSON
- پردازش ایمیل
- پشتیبانی از FTP، IMAP و دیگر پروتکلهای اینترنتی
- «رابط سوکت» (Socket Interface) با استفاده آسان
و دیگر بستههای قدرتمندی که برای توسعه وب قابل استفادهاند از جمله موارد زیر:
- Requests: یک کتابخانه قدرتمند برای کلاینت HTTP
- BeautifulSoup: یک پارسر HTML است که انواع HTMLهای عجیب و غریب را مدیریت میکند.
- Feedparser: برای parsing خوراکهای RSS/Atom
- Paramiko: پیادهسازی پروتکل SSH۲
- Twisted Python: چارچوبی برای برنامهنویسی شبکه ناهمگام
پردازشهای علمی و عددی
پایتون به طور گستردهای در پردازشهای علمی و عددی مورد استفاده قرار میگیرد. از جمله کتابخانههایی که در این راستا قابل استفادهاند میتوان به موارد زیر اشاره کرد.
- SciPy: مجموعهای از بستههای ریاضیاتی، علمی و مهندسی است.
- Pandas: یک کتابخانه تحلیل داده و مدلسازی است.
- IPython: یک «شِل» (Shell) تعاملی قدرتمند است که امکان ویرایش و ثبت آسان جلسات کاری را فراهم و از بصریسازی و پردازش موازی پشتیبانی میکند.
آموزش
پایتون زبانی فوقالعاده برای آموزش برنامهنویسی هم در سطح مقدماتی و هم دورههای پیشرفتهتر است. جاوا برای سالها زبان برنامهنویسی منتخب بسیاری از دانشگاهها، مدارس و موسسات آموزشی برای آموزش دادن به دانشجویان، دانشآموزان و فراگیران بود. اما پایتون توانست این جایگاه را تصاحب کند و در حال حاضر به دلایل گوناگونی از جمله سادگی، امکان یادگیری سریع و آسان و تواناییهایی که در پردازشهای علمی دارد توانسته زبان اول آموزش در جهان شود.
واسطهای گرافیکی کاربر دسکتاپ
کتابخانه واسط گرافیکی کاربر TkInter در بیشتر توزیعهای دودویی پایتون وجود دارد.
برخی از ابزارهایی که در همین راستا در سکوهای گوناگون به طور مجزا موجود هستند عبارتند از:
- wxWidgets
- Kivy برای نوشتن برنامههای کاربردی «چند لمسی» (multitouch)
- Qt با pyqt و pyside
جعبه ابزارهای ویژه پلتفرمهای خاص نیز برای پایتون موجود هستند که از این جمله میتوان به موارد زیر اشاره کرد.
- +GTK
- اغلب کلاسهای بنیاد مایکروسافت از طریق افزونههای win ۳۲
توسعه نرمافزار
پایتون اغلب به عنوان یک زبان پشتیبان توسط توسعهدهندگان نرمافزار برای ساخت، کنترل و مدیریت، تست و کارهای دیگر مورد نیاز در فرآیند تولید و نگهداری نرمافزار مورد استفاده قرار میگیرد. برخی از قابلیتهای پایتون در همین راستا عبارتند از:
- SCons برای ساخت کنترل
- Buildbot و Apache Gump برای تست و کامپایل خودکار مداوم
- Roundup یا Trac برای ردیابی باگ و مدیریت پروژه
کاربردهای تجاری
- پایتون برای ساخت سیستمهای «برنامهریزی منابع سازمانی» (Enterprise Resource Planning | ERP) مورد استفاده قرار میگیرد.
- Odoo یک نرمافزار مدیریت همه در یک (all-in-one) نوشته شده به زبان پایتون است که یک مجموعه کامل از برنامههای کاربردی مدیریت کسبوکار به شمار میآیند.
چه نسخهای از پایتون را باید استفاده کرد؟
دو نسخه اصلی از پایتون وجود دارد که انتخاب از میان آنها ممکن است کار را برای افراد مبتدی و برنامهنویسان تازهکار کمی گیجکننده کند. دو نسخه پایتون ۲ و ۳ هستند. خبر خوب آن است که در زمینه «نحو» (Syntax) این زبانها باید گفت که بسیار مشابه هستند و توسعه هر دو نسخه قابل قبول است.
پایتون نسخه ۳.۵ (یا بیشتر) به صورت فعالی در حال توسعه است. با توجه به اینکه جامعه متنباز آن همواره در حال توسعه این نسخه از پایتون است، به طور ثابت ویژگیها و عملکردهای جدیدی به آن افزوده میشود. بنابراین به افرادی که تمایل به داشتن ویژگیها و پشتیبانی پیشرفته دارند استفاده از این نسخه توصیه میشود.
پایتون نسخه ۲.۷ تا ۳.۴ (از جمله ۳.۲) همچنان به طور فعالی تعمیر و نگهداری میشوند. این مساله در صورت نیاز به کمک یا مواجهه با مشکل حائز اهمیت است. نسخه ۲.۷، به دلیل اینکه مدت زیادی از انتشار آن میگذرد دارای بیشترین پشتیبانی از کتابخانههای شخص ثالث است. بسیاری از افراد با در نظر گرفتن کتابخانههای هر نسخه، در صورتی که کتابخانه مورد نظرشان به نسخههای جدید پایتون پورت نشده باشد، از همان نسخههای قدیمی استفاده میکنند.
بهتر است مطالعه کنید : ۶ زبان برنامهنویسی قدرتمند برای پروژههای هوش مصنوعی و یادگیری ماشین
مهمتر آنکه هنگام استفاده از نسخه قدیمیتر پایتون، پرش از یک نسخه به نسخه دیگر کار دشواری نیست. در صورتی که کاربر به نسخه جدید مهاجرت کند، تنها نیاز به یادگیری ویژگیها و توابع جدید دارد. افرادی که از نسخههای جدید به قدیمیترها جابهجا میشوند معمولا با مشکلی روبهرو نمیشوند، اگرچه ممکن است با توابعی مواجه باشند که با نسخههای قدیمیتر ناسازگار است.
قصه انتخاب نسخه پایتون سر دراز دارد و کاملا بسته به کاربر است که با توجه به نیاز خود اقدام به انتخاب کدام نسخه از پایتون کند. هیچ پاسخ درست یا غلطی وجود ندارد. جابهجایی بین نسخههای گوناگون پایتون سخت نیست و افراد پس از آشنایی بیشتر با این زبان و قابلیتهای هر نسخه میتوانند به نسخه مورد نظر خودشان مهاجرت کنند.
راهاندازی محیط پایتون
یکی از مهمترین موضوعات هنگام کار کردن با هر زبان برنامهنویسی «راهاندازی» (setup) یک «محیط توسعه» (Development Environment) برای آن است که امکان اجرای کدهای نوشته شده به آن زبان را میدهد. بدون این محیط توسعه، کاربر هرگز قادر به بررسی اینکه کدی که نوشته کار میکند یا نه و آیا دارای خطا است یا خیر، نخواهد بود.
برای زبان برنامهنویسی پایتون، به چیزی با عنوان «مفسر» (interpreter) نیز نیاز است که کد را تبدیل به آنچه میکند که برای کامپیوتر قابل خواندن و اجرا است (و در واقع کل برنامه نوشته شده را میسازد). برای تبدیل کد، ابتدا باید از «شِل پایتون» (Python shell) استفاده کرد که اغلب مفسر را از طریق چیزی که خط «بَنگ» (bang) نامیده میشود فراخوانی میکند.
همانطور که برای ساخت یک برنامه کاربری یا فایل دو راه وجود دارد، برای این کار نیز دو روش موجود است. میتوان برنامه را با یک «ویرایشگر متن» (text editor) ساده مانند WordPad یا ++Notepad ساخت. همچنین، میتوان برنامه را با استفاده از شل پایتون آماده کرد. مزایا و معایبی برای هر روش وجود دارد که در ادامه تشریح خواهند شد.
شل پایتون در مقایسه با فایل متنی
«شِل» (Shell) برنامه یا ابزاری است که برای تعامل با سیستم قابل استفاده محسوب میشود. برای مثال، شِل سیستمعامل ویندوز با بهرهگیری از «ترمینال» یا خط فرمان برای نوشتن «فرمانها» (commands) و «آرگومانها» (arguments) قابل استفاده است. با بهرهگیری از پایتون، کارها کمی متفاوتتر از شِل سیستمعامل پیش میرود. شِل پایتون برای تعامل با مفسری مورد استفاده قرار میگیرد که کد را به فرم قابل درک کامپیوتر به آن میخوراند.
هنگامی که برنامه پایتون نوشته شده توسط کاربر اجرا میشود، مفسر کد را خوانده و آن را به دستورات قابل استفاده مبدل میکند. مهمترین مسالهای که در این رابطه باید به آن توجه کرد آن است که همه این کارها پس از آن که برنامه اجرا شد انجام میشوند. با یک شِل، تفسیر – یا تبدیل – در زمان واقعی که کد در کامپیوتر یا سیستم نوشته میشود صورت میپذیرد. این یعنی برنامه واقعی هنگام تایپ اجرا نیز میشود. این امر موجب میشود تا کاربر دیدگاهی پیرامون آنکه کد نهایی چگونه به نظر خواهد رسید و چه کاری را در نهایت انجام خواهد داد داشته باشد.
بهتر است مطالعه کنید : TensorFlow چیست و چگونه کار میکند؟
هنگامی که کد در یک فایل متنی نوشته میشود، هیچ یک از موارد بیان شده به وقوع نمیپیوندد تا مستندات به یک مفسر خورانده شوند. اگر پایتون روی کامپیوتر کاربر نصب باشد، میتوان مفسر را با استفاده از خط فرمان فراخوانی کرد، اما این گام پس از آنکه کد نوشته شد انجام میشود. این امر، کشف خطاها در کد را دشوارتر میکند و همچنین اگر مفسر با مسالهای مواجه شود خسته کننده خواهد شد زیرا ممکن است در صورت استفاده از شِل خطاها آنگونه که هستند ظاهر نشوند. هنوز هم توسعهدهندگان بسیاری ترجیح میدهند از ابزارهای ویرایشگر متن استفاده کنند به دلیل آنکه ساده و استفاده از آنها آسان است. ویرایشگرهای متن با کارکردهای افزودهای مانند «++Notepad» وجود دارند که هدف اصلی ساخت آنها برنامهنویسی و توسعه نرمافزار بوده است.
بهترین راه برای آغاز
فراگیران پیش از آنکه کاری با زبان برنامهنویسی انجام دهند، نیاز به پیکربندی محیط توسعه دارند. اکنون، به چگونگی راهاندازی پایتون و مفسری که میتواند برنامههای سفارشی کاربر را اجرا کند پرداخته خواهد شد. پایتون در سیستمعامل «مَک» (Mac) و بسیاری از توزیعهای «لینوکس» (Linux) از پیش نصب شده است. اگرچه، امکان دارد نیاز به دانلود یک نسخه به روز شده از آن با توجه به قدمت سیستمعامل نصب شده روی سیستم کاربر وجود داشته باشد.
نکته: نسخه پایتون نصب شده روی سیستم را میتوان به سادگی با باز کردن ترمینال و اجرای دستور زیر بررسی کرد:
python -V | ۱ |
کاربرانی که سیستمعامل ویندوز را روی سیستم خود نصب دارند، میتوانند نرمافزار پایتون را از مسیر بیان شده در بخش بعدی دانلود کنند.
چگونگی دریافت پایتون
برای افرادی که نیاز به نصب پایتون دارند، بهترین راه وبسایت رسمی آن (+) است. در این وبسایت میتوان نسخهای از پایتون که مناسب سیستمعامل نصب شده روی سیستم کاربر است (۳۲ یا ۶۳ بیت) را نصب کرد.
- مَک: اغلب کامپیوترهای Mac OS X پایتون نسخه ۲ را به صورت نصب شده دارند که برای استفاده بسیار مناسب است. بهترین راه برای نصب آخرین نسخه استفاده از «سیستم مدیریت بسته» (package management system) رایگان و متنباز «Homebrew» (+) برای فعالسازی و مدیریت آنها است. دستورالعملهای چگونگی استفاده از آن در اینجا (+) موجود است.
- لینوکس: پایتون در اغلب توزیعهای لینوکس وجود دارد. کاربران باید نسخه کنونی نصب شده روی سیستم خود را بررسی کرده و در صورت نیاز آن را با استفاده از مدیر بسته نصب شده روی سیستم عامل خود ارتقا دهند.
- ویندوز: کافی است پایتون از PSF دانلود شود.
نکته: کاربرانی که از ویندوز استفاده میکنند، باید اطمینان حاصل کنند که گزینه افزودن Python.exe به مسیر سیستم را در طول نصب بزنند. این کار را میتوان با انتخاب گزینه «Add python.exe to path» انجام داد و سپس هارد درایو اصلی را به عنوان محل نصب انتخاب کرد.
جنگو چیست؟
«جنگو» (Django) یک چارچوب برنامههای کاربردی وب متن باز نوشته شده به زبان پایتون است. این چارچوب چیزی بیش از یک مجموعه از ماژولها که توسعه را آسانتر میکنند نیست. این ماژولها با هم گروهبندی شدهاند و به کاربر امکان ساخت برنامههای کاربردی یا وبسایتها را از یک منبع موجود به جای نوشتن آنها از پایه میدهند.
این همان روشی است که توسعهدهندگان میتوانند با بهرهگیری از آن وبسایتهای (حتی انواع ساده آنها که توسط یک نفر ساخته شده) دارای کارکردهای پیشرفته مانند «پشتیبانی از احراز هویت» (authentication support)، «پنل مدیریت» (Management Panel) و «پنل مدیر» (Admin Panel)، «فرمهای تماس» (contact forms)، «جعبه نظرات» (comment boxes)، «پشتیبانی از بارگذاری فایل» (file upload support) و بسیاری از دیگر موارد را بسازند. به بیان دیگر، اگر کاربر قصد داشته باشد یک وبسایت را از پایه بسازد، باید کلیه این مولفهها را ساخته و توسعه دهد. در عوض، با استفاده از یک چارچوب، این مولفهها به صورت ساخته شده وجود دارند و تنها نیاز به پیکربندی آنها به شکل مناسب برای وبسایت کاربر است.
بهتر است مطالعه کنید : MACHINE LEARNING یا یادگیری ماشین پنجره ای رو به آینده
سایت رسمی پروژه پایتون (+)، جنگو چنین معرفی میکند: «چارچوب وب پایتون سطح بالا که توسعه سریع، تمیز و طراحی عملگرا را امکانپذیر میسازد. این چارچوب توسط توسعهدهندگان با تجربه ساخته شده و به حل بسیاری از مشکلات توسعه وب کمک میکند، بنابراین کاربر میتواند برنامه خود را بدون نیاز به اختراع چرخ بسازد. این چارچوب رایگان و متنباز است».
جنگو مجموعه بزرگی از ماژولهای قابل استفاده در پروژههای گوناگون را ارائه میدهد. چارچوبها در درجه اول با این هدف ایجاد شدند تا در وقت توسعهدهندگان صرفهجویی شود و جنگو نیز از این قاعده مستثنی نیست. ممکن است برای بسیاری از افراد جالب توجه باشد که جنگو با در نظر داشتن «توسعهدهندگان فِرانتاند» (front-end developers) ساخته شده است. «جنگو یک زبان قالب است که طراحی شده تا افرادی که با HTML کار میکنند، مانند طراحان یا توسعهدهندگان Front-end در کار با آن راحت باشند و به سادگی آن را بیاموزند.
با این وجود، جنگو انعطافپذیر و بسیار توسعهپذیر است و به توسعهدهندگان امکان افزودن زبان قالب را در صورت نیاز میدهد». افرادی که قصد کار با پایتون را دارند، به ویژه برای برنامههای کاربردی وب یا طراحی وب، باید جنگو را به خاطر بسپارند. این چارچوب قطعا به کار خواهد آمد.
CherryPy نیز یک چارچوب برنامه کاربردی وب شیگرای مبتنی بر پایتون است که برای کار عالی محسوب میشود. اگرچه، این چارچوب با در نظر داشتن سادگی مطلق طراحی شده. CherryPy چارچوبی است که کاربران پس از آنکه مقداری تجربه در کار با پایتون به دست آوردند باید در آن به اکتشاف بپردازند.
پایتون چه تفاوتی با دیگر زبانها دارد؟
پرسشی که ممکن است برای بسیاری از افراد مطرح باشد آن است که پایتون چه تفاوتهایی با دیگر زبانها مانند پیاچپی یا روبی دارد؟ پایتون جایگاهی خوبی به دست آورده زیرا یادگیری و درک آن آسان است. بسیاری از افراد روبی را مانند پایتون زبان خوبی برای شروع میدانند، در حالیکه پایتون چند سالی زودتر از روبی وارد میادین شده و این یعنی ردپای بزرگی در جهان کسبوکار دارد.
همچنین، پایتون در میان توسعهدهندگان زبان برنامهنویسی C نیز از محبوبیت بیشتری برخوردار است، زیرا جابهجایی بین دو زبان و استفاده از یکی از آنها همراه با دیگری آسان است. هم روبی و هم پایتون رشد قابل توجهی در بازار کار داشتهاند، بنابراین انتخاب هر یک از آنها برای کسب شغل میتواند مناسب باشد. PHP نیز با وجود آنکه کاربرد آن متفاوت است زیاد مورد استفاده قرار میگیرد. در نهایت انتخاب بسیار بسته به زمینه مورد استفاده و نوع پروژه موجود دارد.
زبانهای گوناگون در کنار پایتون
«پیاچپی» (PHP) یک زبان اسکریپتنویسی سرور است که در درجه اول برای ساخت وبسایتهای پویا و تعاملی مورد استفاده قرار میگیرد. PHP بهترین زبان برای ساخت محتوای HTML است و برای ساخت هر چیزی از یک بلاگ ساده گرفته تا یک وبسایت بزرگ به سبک شرکتهای بزرگ قابل استفاده خواهد بود.
«پایتون» (Python) یک زبان برنامهنویسی سطح بالا، شیگرا و همه منظوره است که بسیار قابل تطبیق به شمار میآید و تقریبا برای هر کاری میتوان از آن استفاده کرد. این زبان به طور متداولی برای توسعه کاربردهای وب و موبایل، «خزندههای وب» (web crawlers)، «اندیسگذارها» (indexers)، «دیمِن» (Daemon) و «برنامههای کاربردی دارای واسط گرافیکی کاربر دسکتاپ» (Desktop GUI Apps) مورد استفاده قرار میگیرد.
بهتر است مطالعه کنید : ارتباط هوش مصنوعی ، یادگیری ماشین و داده کاوی با یکدیگر
«روبی» (Ruby) یک زبان سطح بالا و شیگرا است که برای کار با برنامههای کاربردی وب و «موجودیتهای داده» (data entities) مورد استفاده قرار میگیرد. این زبان برای تمرکز زُدایی از وظایف «پُرسوجو» (query) ایجاد شده است. روبی برای سیستم انواع پویای آن مشهور است که بررسی نوع را در طول زمان اجرا انجام میدهد. این زبان همچنین دارای ویژگی مدیریت حافظه خودکار است.
نکته: دلیل «سطح بالا» گفتن به یک زبان آن است که نحو و دستورات آن به زبان انسانی نزدیکتر از زبان کامپیوتر است. عبارت سطح بالا در ابتدا برای تشریح زبانهایی به کار میرفت که وابسته به انواع مشخصی از کامپیوترها نبودند.
از هر سه زبان برنامهنویسی بیان شده، پایتون برای افراد کاملا مبتدی بهتر است و اغلب توسط برنامهنویسها توصیه میشود زیرا از نحوی ساده بهره میبرد که بر سادگی و سهولت استفاده تاکید دارد. این در حالیست که روبی برای برنامهنویسانی که تجربه کار با دیگر زبانها را دارند بهتر است. PHP گزینه خوبی برای توسعهدهندگان وب است. همه این زبانها اهداف خاص خود را دارند. برای درک بهتر این موارد، در ادامه برخی از شرکتهایی که از این زبانها استفاده میکنند نام برده شدهاند.
چه کسانی از PHP استفاده میکنند؟
به طور خلاصه باید گفت که PHP برای توسعه وب و ساخت صفحات پویای وب طراحی شده است. برندهایی که از PHP برای قدرت بخشیدن به محصولات خود استفاده میکنند شامل موارد زیر میشوند.
- گوگل
- ناسا
- یودمی (Udemy)
- ویکیپدیا
- فیسبوک
چه کسانی از پایتون استفاده میکنند؟
به طور خلاصه، پایتون برای تاکید بر بهرهوری، خوانایی و سهولت استفاده طراحی شده است. برندهایی که از پایتون برای تولیدات خود بهره میبرند شامل موارد زیر میشوند.
- یوتیوب
- گوگل
- یاهو! مپ (Yahoo! Map)
- شاپزیلا (Shopzilla)
- اولتراسیک (Ultraseek)
چه کسانی از روبی استفاده میکنند؟
روبی به طور خاص برای جذابتر و انعطافپذیرتر شدن فرآیند توسعه برای برنامهنویسان خلق شده است. از جمله برندهایی که از روبی استفاده میکنند میتوان به موارد زیر اشاره کرد.
- توییتر (Twitter)
- هولو «Hulu»
- ایندیگوگو (Indiegogo)
- گروپون (Groupon)
کدام زبان برنامهنویسی برای یادگیری بهترین است؟
اهمیتی ندارد که این سوال را از چه کسی بپرسید، پاسخ آن همیشه مشابه خواهد بود. هیج «بهترینی» در دنیای برنامهنویسی وجود ندارد زیرا هر زبان برای هدف خاصی طراحی شده است. هر سه زبان معرفی شده در اینجا برای اهداف گوناکونی قابل استفاده هستند.
هیچ پاسخ درست و غلطی وجود ندارد!
همچنین، چارچوبهایی برای هر یک از این زبانها وجود دارد که توسعه با آنها را آسانتر میسازد. PHP دارای چندین سیستم مدیریت محتوا مانند «وُردپرس» (WordPress)، «دروپال» (Drupal) و «جوملا» (Joomla) است. پایتون از جنگو (Django) و CherryPy بهره میبرد. در نهایت، روبی دارای ریلز (Rails) یا روبی آن ریلز (Ruby on Rails) است.
منبع : فرادرس