همهچیز درباره پایتون؛ زبان برنامهنویسی برای همه
پایتون (Python) یکی از محبوبترین زبانهای برنامهنویسی در جهان است و اکثر افرادی که میخواهند اولین قدمها را در مسیر برنامهنویسی بردارند، پایتون را انتخاب میکنند؛ چراکه پایتون به زبان انگلیسی بسیار نزدیک است و بخش عمدهای از ترس و دودلی مبتدیان را در همان مراحل اولیه، برطرف میکند؛ بهطوری که یادگیری زبان برنامهنویسی برایشان شدنی بهنظر میرسد.
این مطلب در تاریخ ۲۹ فروردین ۱۴۰۲ بهروز شد.
طبق جدیدترین نظرسنجی Stack Overflow در سال ۲۰۲۲، پایتون از نظر محبوبیت در بین افرادی که میخواهند زبان برنامهنویسی یاد بگیرند، جایگاه سوم و در بین توسعهدهندگان، جایگاه چهارم را دارد.
پایتون همچنین به عنوان یک زبان همهکاره که در زمینههای مختلف از جمله هوش مصنوعی، یادگیری ماشین، علم داده و توسعه وب استفاده میشود، بهراحتی در فهرست پردرآمدترین زبانهای برنامهنویسی ۲۰۲۳ قرار میگیرد.
اگر دربارهی پایتون کنجکاوید و دوست دارید پیش از شروع یادگیری زبان برنامهنویسی، مطمئن شوید که پایتون دقیقا زبان موردنیاز شما است، با این مقاله همراه شوید.
- داستان تولد پایتون
- ذن پایتون
- پایتون چطور کار میکند؟
- دلایل محبوبیت پایتون
- فریمورکهای پایتون
- ۱. جنگو (Django)
- ۲. فلسک (Flask)
- ۳. باتل (Bottle)
- ۴. چریپای (CherryPy)
- ۵. وب-تو-پای (Web2Py)
- کتابخانههای پایتون
- ۱. تنسورفلو (TensorFlow)
- ۲. سایکیتلرن (Scikit-Learn)
- ۳. نامپای (Numpy)
- ۴. کرس (Keras)
- ۵. پایتورچ (PyTorch)
- با پایتون چه پروژههایی را میتوان توسعه داد؟
- چه شرکتهایی از پایتون استفاده میکنند؟
- نصب پایتون
- یادگیری پایتون چقدر زمان میبرد؟
- برای یادگیری پایتون از کجا شروع کنیم؟
- زبانهای جایگزین پایتون
- نقاط ضعف پایتون
- آینده پایتون
داستان تولد پایتون
زبان برنامهنویسی پایتون دسامبر ۱۹۸۹ هنگام تعطیلات کریسمس در آمستردام هلند متولد شد. خیدو فان روسوم (Guido van Rossum)، برنامهنویس هلندی که آن زمان در مؤسسهی تحقیقات ریاضی و علوم کامپیوتر Centrum Wiskunde & Informatica مشغول به کار بود، از روی تفریح و درحالیکه مشغول سپری کردن تعطیلات کریسمس بود، تصمیم گرفت برای زبان برنامهنویسی جدیدی که مدتها در سر داشت، مفسری بنویسد که مبتنی بر ABC باشد.
ABC زبان برنامهنویسی همهمنظوره و سطح بالا شبیه بیسیک و پاسکال است که در مؤسسهای که روسوم در آن کار میکرد، ابداع شد. هدف ایجاد ABC آموزش برنامهنویسی و نمونهسازی بود و چون سطح بالا بود (یعنی شبیه زبان انسانها بود)، بهراحتیِ انگلیسی خوانده میشد و برای آموزش طرز کار حلقه، منطق و داده به مبتدیان، بهترین راهحل بود. فان روسوم چند سال روی پروژهی ABC کار کرده بود و بسیاری از ویژگیهای آن را در پایتون به کار برد. علت انتخاب اسم پایتون برای این زبان جدید هم علاقهی او به سریال کمدی «سیرک پرنده مانتی پایتون» بود.
خیدو میخواست توسعهی اپلیکیشن بهسادگی و بدون نگرانی از سختافزار، مدیریت حافظه و پیچیدگیهایی از این دست، امکانپذیر باشد؛ پس به این فکر افتاد زبان برنامهنویسی خودش را ابداع کند، ایدههایش را از ABC الهام بگیرد و زمان انجام پروژه را از سه سال به پروژهای سهماهه کاهش دهد؛ و اینگونه بود که پایتون متولد شد.
اسم پایتون از سریال کمدی مانتی پایتون گرفته شده
فوریه ۱۹۹۱، فان روسوم کد پایتون را در alt.sources منتشر کرد. alt.sources شبیه فرومی بود که افراد در آن سورسکدهای خود را به اشتراک میگذاشتند و آن را میتوان جزو اولین پلتفرمهایی دانست که به توسعهی پروژههای متنباز کمک کرد.
پایتون زبان سطحبالا و مفسری (interpreter) است؛ به این معنی که به زبان انسان نزدیکتر است، پس یادگیری آن برای مبتدیها آسانتر است، اما برای قابلفهم شدن برای کامپیوتر نیاز به نرمافزاری برای پیادهسازی مستقیم دستورالعملها دارد. درواقع، زبان پایتون بر اصل قابل فهم کردن برنامهنویسی برای همه پایهگذاری شد و فان روسوم در تمام طول مسیر کاریاش بر این اصل پایبند بود.
پایتون بر اصل قابل فهم کردن برنامهنویسی برای همه پایهگذاری شد
اوایل، خیدو چندان به محبوبیت پایتون امیدوار نبود. قبل از جهانی شدن اینترنت، متقاعد کردن افراد به استفاده از زبان برنامهنویسی جدید کار دشواری بود و در دههی ۱۹۸۰، خیدو سالها برای معرفی و تبلیغ ABC مجبور به سفر و توزیع نوارهای مغناطیسی بین افراد بود. ABC آن زمان نتوانست بین برنامهنویسان جا باز کند؛ بههمیندلیل خیدو انتظار خاصی هم از پایتون نداشت؛ هرچند معرفی پایتون که آنروزها کافی بود از گروههای خبری موسوم به یوزنت دانلود شود، بسیار آسانتر از توزیع خانه به خانهی نوارهای مغناطیسی بود.
اما در سال ۱۹۹۵، شرکتی به نام Zope تأسیس شد که متخصص در زمینهی تولید موتور آگهینامه برای اینترنت بود. شرکت Zope صفحات وب داینامیکی ایجاد میکرد که با پایتون نوشته شده بودند و بدینترتیب، باعث محبوبیت پایتون در روزهای اولیه شد. Zope را تیمی از توسعهدهندگان پایتون هدایت میکند و در سال ۲۰۰۰ فان روسوم نیز به آنها ملحق شد.
حول و حوش همین وقتها بود که فان روسوم لقب «دیکتاتور خیرخواه جاویدان» (benevolent dictator for life) گرفت، چون او مبدع این زبان بود و مراحل توسعهی آن را کنترل میکرد. این لقب بعدها به رهبران پروژههای متنبازی که خود بنیانگذار پروژه بودهاند و در بحثها و اختلافنظرها، حرف نهایی را میزنند، داده شد.
نسخهی ۲ پایتون در اکتبر ۲۰۰۰ توانست به سرعت در بخش سیستمی معروف شود، چون برنامهنویسان قادر بودند به کمک این نسخه برای خودکار کردن فرایندهای خود روشهای خلاقانهای پیدا کنند. در این دوره ، توسعهی وب هم با رشد چشمگیری روبهرو شد و فریمورکهایی چون جینجا (Jinja)، فلسک (Flask) و جنگو (Django) هم ظهور کردند و بلافاصله انجمنهای بزرگی برای این فریمورکها ایجاد شد.
در سال ۲۰۰۱، بنیاد نرمافزار پایتون تأسیس شد که سازمانی آمریکایی و غیرانتفاعی بود و بهطور کامل به زبان پایتون اختصاص داشت. این بنیاد همچنین مسئول برگزاری کنفرانس پایتون است که در ۴۰ کشور برگزار میشود.
تا سال ۲۰۱۰ با اینکه به تعداد رقیبان وبسایتهای داینامیک روزبهروز اضافه میشد، فریمورکهای مبتنی بر پایتون جزو ده مورد برتر بودند، بهطوری که میتوان دههی ۲۰۰۰ را سالهای اوج پایتون نامید. براساس رتبهبندی سایت TIOBE، در سال ۲۰۰۰، پایتون در بین زبانهای پراستفاده، جایگاه بیستم را داشت؛ تا سال ۲۰۰۵ به جایگاه ششم صعود کرد و در آوریل ۲۰۲۳، سرانجام به جایگاه نسخت دست پیدا کرد. این وبسایت پایتون را در سالهای ۲۰۰۷، ۲۰۱۰، ۲۰۱۸، ۲۰۲۰ و ۲۰۲۱ بهعنوان «زبان برنامهنویسی سال» انتخاب کرده است.
در سال ۲۰۰۵ فان روسوم به گوگل پیوست و روی گوگل اپ انجین یا موتور اجرای برنامه گوگل که برنامههای پایتون را در فضای ابری اجرا میکرد، مشغول به کار شد. با پیوستن فان روسوم به گوگل آیندهی روشن پایتون تضمین شد.
نسخهی ۳ پایتون دسامبر ۲۰۰۸ عرضه شد و چون با پایتون ۲ سازگار نبود، برای توسعهدهندگان دردسر زیادی ایجاد کرد. برخی از توسعهدهندگان ترجیح میدادند با پایتون ۲ و برخی دیگر با پایتون ۳ کار کنند.
پایتون اگرچه بهسرعت بین استارتاپهای حوزهی فناوری محبوب شد، تامدتها نتوانست جای خود را بین شرکتهای بزرگ باز کندبود. تا اینکه اواخر دههی ۲۰۰۰، درو هیوستون، دانشجوی MIT، بعد از آنکه فلش مموری خود را در خانه جا گذاشت، به فکر ایجاد فضایی برای اشتراک فایل افتاد و در سال ۲۰۰۷، نرمافزار دراپباکس را برای این منظور عرضه کرد. دراپباکس با پایتون نوشته شده بود و در مدت یک سال به سه میلیون کاربر رسید و توجه شرکتهای بزرگ را به خود جلب کرد. ازآنجاکه دراپباکس با پایتون ۲ نوشته بود، فان روسوم در سال ۲۰۱۳ به این تیم پیوست تا برنامه را به پایتون ۳ ترجمه کند. فان روسوم تا زمان بازنشستگیاش با دراپباکس همکاری داشت.
اکتبر ۲۰۱۹ بود که فان روسوم رسما اعلام بازنشستگی کرد و از سمت «دیکتاتور خیرخواه جاویدان» کناره گرفت. بعد از بازنشستگی فان روسوم، توسعهدهندگان اصلی پایتون شورای مدیریتی تشکیل دادند تا دربارهی تغییرات آیندهی پایتون تصمیمگیری کنند و فان روسوم هم عضوی از این شورا است.
این روزها پایتون چنان بزرگ و پرطرفدار شده که افراد بیشتری دربارهی آن تصمیمگیری میکنند. نوامبر ۲۰۲۰ فان روسوم اعلام کرد دوران بازنشستگی برای او کسالتبار بوده و تحت عنوان «Distinguished Engineer» که به برجستهترین مهندسان یک شرکت ارائه میشود، به بخش توسعهدهندگان مایکروسافت پیوست. او در توییتی قول داد تا استفاده از پایتون را برای تمام پلتفرمها و نه فقط برای ویندوز بهتر کند.
ذن پایتون
تیم پیترز، یکی از توسعهدهندگان اصلی پایتون، مجموعهای از اصول برنامهنویسی را در سال ۱۹۹۹ نوشت که به «ذن پایتون» (Zen of Python) مشهور است. توسعهدهندگان و برنامهنویسان پایتون همچنان در تلاشند تا به این اصول پایبند باشند. برای مشاهدهی این اصول در مفسر پایتون کافی است کد «import this» را وارد کنید تا این فهرست برای شما نمایش داده شود:
- زیبا بهتر از زشت است.
- بیان صریح بهتر از ضمنی است.
- ساده بهتر از پیچیده است.
- پیچیده بهتر از بغرنج است.
- مستقیم و صاف بهتر از تودرتو است.
- پراکنده بهتر از متراکم است.
- خوانایی مهم است.
- موارد ویژه به اندازهای ویژه نیستند که بهخاطر آنها قوانین را شکست.
- گرچه انجامپذیری به خلوص سرتر است.
- خطاها هرگز نباید در سکوت رد شوند.
- مگر اینکه صریحا مسکوت شده باشند.
- هنگام مواجهه با ابهام، از وسوسهی حدس زدن بپرهیز.
- برای انجام کار باید یک (و ترجیحا فقط یک) روش واضح وجود داشته باشد.
- اگرچه ممکن است این روش در ابتدا واضح به نظر نرسد، مگر اینکه هلندی باشید.
- حالا بهتر از هرگز است.
- اگرچه «هرگز» اغلب بهتر از «همین حالا» است.
- اگر تشریح پیادهسازی آن سخت باشد، ایدهی بدی است.
- اگر تشریح پیادهسازی آن آسان باشد، ممکن است ایدهی خوبی باشد.
- فضای نامها ایدهی بینظیری است، بیایید بیشتر از آنها استفاده کنیم!
پایتون چطور کار میکند؟
وقتی برنامهای را با C یا ++C مینویسید، باید آن را کامپایل کنید؛ بهاین معنی که باید کدی را که برای انسانها قابلفهم است، به کدی قابلفهم برای کامپیوتر تبدیل کنید. کد ماشین درواقع دستورالعملهایی سطحپایین است که میتواند مستقیما توسط CPU اجرا شود. پس از اینکه فرایند کامپایل با موفقیت انجام شد، کد شما فایلی قابلاجرا تولید میکند. اجرای این کد تمام دستورعملهایی را که نوشتهاید، قدم به قدم پیاده میکند.
اما پایتون بهطور کلی یک زبان تفسیری (interpreted) است و نه کامپایلی، هرچند کامپایل هم یکی از مراحل فرایند کدنویسی با پایتون بهشمار میرود. کد پایتون که در فایل py. نوشته میشود، ابتدا بهصورت بایتکد (bytecode) کامپایل میشود و بعد در فرمت pyc. یا pyo. ذخیره میشود.
درواقع، کد پایتون بهجای اینکه مانند ++C به کد ماشین ترجمه شود، به بایتکد ترجمه میشود. بایتکد مجموعهای از دستورعملهای سطحپایین است که میتواند توسط یک مفسر اجرا شود. در بیشتر کامپیوترها، مفسر پایتون در مسیر usr/local/bin/python3.11/ نصب میشود. بایتکد بهجای اینکه دستورعملها را روی پردازنده اجرا کند، آنها را روی ماشین مجازی اجرا میکند.
یکی از مزایای زبانهای تفسیری مانند پایتون این است که مستقل از سیستمعامل هستند؛ بهاین معنی که تازمانیکه بایتکد پایتون و ماشین مجازی، از یک نسخه باشند، این کد میتواند در هر پلتفرمی ازجمله ویندوز یا مکاواس اجرا شود.
دلایل محبوبیت پایتون
به روزی فکر کنید که هر کاربری بتواند برای کامپیوتر خودش برنامهنویسی کند. نگاه ما به آیندهای است که در آن هر کاربر کامپیوتر قادر خواهد بود «کاپوت را بالا بزند» و اپلیکیشنهای داخل کامپیوتر را بهبود ببخشد. ما معتقدیم این کار بهطور اساسی ماهیت نرمافزار و توسعهی نرمافزار را متحول خواهد کرد.
این جملات پروپوزالی بود که پروژهی «برنامهنویسی کامپیوتر برای همه» برای معرفی خود به کار برد. این پروژه را فان روسوم برای تشویق افراد به برنامهنویسی آغاز کرد و معتقد بود زبان برنامهنویسی باید آنقدر ساده و قابلفهم باشد تا هر کاربر کامپیوتر بتواند آن را بهراحتی بیاموزد.
زبان پایتون اگرچه نسبت به سی و جاوا کندتر است و برای طراحی اپلیکیشنهایی که به سرعت بالا برای اجرا شدن نیاز دارند، مانند بازیهای سنگین، مناسب نیست، مزیتهایی بسیاری دارد که باعث شده به یکی از محبوبترین زبانهای برنامهنویسی تبدیل شود؛ ازجمله:
۱. یادگیری و استفاده آسان
یادگیری و استفاده از زبان پایتون برای مبتدیان بسیار راحت است، چون ساختاری ساده، کدهای خوانا و دستوراتی بسیار نزدیک به زبان انگلیسی دارد و نسبت به زبانهای دیگر، به نوشتن خطوط کد بسیار کمتری برای اجرای تسکها نیاز دارد.
۲. انجمن حامی و بزرگ پایتون
پایتون بیش از ۳۰ سال پیش ایجاد شد و از آن زمان انجمن برنامهنویسان این زبان بهقدری رشد کرده تا هر توسعهدهندهای را در هر سطحی، چه مبتدی چه حرفهای، پشتیبانی کند. برای یادگیری پایتون منابع و ویدیوهای آموزشی رایگان بسیاری در این انجمن و سراسر اینترنت وجود دارد و بههمیندلیل افرادی که این زبان را برای یادگیری انتخاب میکنند، نگرانی بابت کمبود منابع نخواهند داشت.
۳. حمایت اسپانسرهای بزرگ
زبانهای برنامهنویسی با حمایت شرکتهای بزرگ سریعتر رشد میکنند. فیسبوک از زبان PHP، شرکت اورَکل از زبان جاوا و مایکروسافت از زبان ویژوال بیسیک و سیشارپ حمایت میکنند. زبان پایتون هم از حمایت فیسبوک، سرویسهای وب آمازون و بهویژه گوگل برخوردار است. گوگل از سال ۲۰۰۶ زبان پایتون را برای توسعهی بسیاری از اپلیکیشنها و پلتفرمهای خود انتخاب کرد.
۴. صدها کتابخانه و فریمورک پایتون
پایتون بهدلیل اسپانسرهای بزرگ و انجمن فعال، دارای کتابخانههای متنوع و بینظیری است که استفاده از آنها در وقت برنامهنویسان صرفهجویی میکند. سرویسهای چندرسانهای ابری بسیاری وجود دارد که از طریق ابزارهای کتابخانهای، از برنامهنویسان پایتون در پلتفرمهای مختلف پشتیبانی میکنند.
۵. تطبیقپذیری، کارایی، اطمینان و سرعت
از زبان پایتون میتوان در محیطهای مختلفی از جمله اپلیکیشن موبایل و دسکتاپ، توسعهی وب و برنامهنویسی سختافزار استفاده کرد. تطبیقپذیری پایتون آن را به انتخاب اول بسیاری از برنامهنویسان در حوزههای مختلف تبدیل کرده است. اگرچه سرعت اجرای برنامههایی که با پایتون نوشته میشوند، اندکی از زبانهای کامپایلشونده چون سی، پایینتر است، توسعهی اپلیکیشن با پایتون زمان بسیار کمتری میبرد و جای کمتری در حافظه اشغال میکند.
۶. کلانداده، یادگیری ماشین و رایانش ابری
پایتون بعد از آر (R) محبوبترین زبان برنامهنویسی در حوزهی علم داده و تجزیه و تحلیل است، چون برای خیلی از پژوهشگران که سررشتهای از برنامهنویسی ندارند، زبان بسیار قابلفهمی است. حجم زیادی از پردازش داده در شرکتها تنها با پایتون انجام میشود. اغلب پروژههای تحقیق و توسعه نیز با زبان پایتون انجام میشود، چون پایتون کاربردهای فراوانی از جمله سهولت تجزیهوتحلیل و ساماندهی دادهی قابلاستفاده دارد. در ضمن، صدها کتابخانهی پایتون هر روز در هزاران پروژهی یادگیری ماشین به کار میروند. با درک اهمیت پایتون، استخدام برنامهنویس پایتون با تسلط بر اصول علم داده نیز بسیار افزایش پیدا کرده است.
۷. انعطافپذیری زبان پایتون
پایتون آنقدر منعطف است که به توسعهدهنده این امکان را میدهد هر بار پروژهی متفاوتتری را امتحان کند. پایتون، توسعهدهندگان را به توسعهی اپلیکیشنهای خاصی محدود نمیکند و دست آنها را برای خلق هر اپلیکیشن دلخواه باز میگذارد. در ضمن، کوچ کردن از زبان جاوا اسکریپت به پایتون برای افرادی که میخواهند از فرانت اند به بک اند بروند، بسیار راحت است، اگرچه این دو زبان با هم متفاوت هستند.
۸. استفاده از پایتون در دانشگاهها
بهدلیل کاربرد پایتون در حوزهی هوش مصنوعی، یادگیری عمیق و علم داده، امروزه این زبان برای آموزش برنامهنویسی در مدارس و دانشگاهها به کار میرود.
۹. قابلیت خودکارسازی
ابزارها و ماژولهای فراوانی که پایتون در اختیار توسعهدهنده قرار میدهد، فرایند خودکارسازی یا اتوماسیون تسکهای تکراری و خستهکننده را بسیار آسان کرده و در وقت صرفهجویی میکند. در ضمن، تعداد خطوط کد پایتون برای توسعهی ابزار اتوماسیون آنقدر کم است که برنامهنویس را شگفتزده میکند.
۱۰. پایتون زبان استارتاپها
استفادهی راحت، توسعهی سریع و هزینههای پایین، زبان پایتون را به انتخاب مناسبی برای استارتاپهای کوچک با بودجهی محدود تبدیل کرده است. با افزایش چشمگیر محبوبیت رسانههای اجتماعی و انفجار داده در این بستر، بسیاری از استارتاپهای فعال در زمینهی آنالیز داده، سراغ زبان پایتون میروند.
فریمورکهای پایتون
فریمورکهای پایتون مجموعهای از ماژولها و بستههایی است که برای سرعت بخشیدن به توسعه به کمک برنامهنویسان میآید. این فریمورکها، فرایندها و پیادهسازیهای رایج را خودکارسازی میکنند و با صرفهجویی در وقت، به توسعهدهنده این امکان را میدهند تا تنها روی منطق اپلیکیشن تمرکز کند و اجرای این فرایندهای عادی را به فریمورک بسپارد.
فریمورکهای پایتون بهطور کلی به دو دسته تقسیم میشوند:
- میکرو فریمورک (micro-framework) که استفاده از آنها آسان و راحت است و برای توسعهی اپلیکیشنهای کوچک و متوسط مناسب است.
- فول استک فریمورک (full-stack framework) که ماهیت پیچیدهتری دارد، کتابخانههای گستردهتری در اختیار کاربر میگذارد، قابلیت مدیریت داده دارد و برای توسعهی اپلیکیشنهای مختلفی به کار میرود.
توسعهدهندگان برای ساخت اپلیکیشن با زبان پایتون نیاز به دسترسی به فریمورکهای این زبان را دارند. در اینجا ۵ نمونه از بهترین و محبوبترین فریمورکهای پایتون را معرفی میکنیم:
۱. جنگو (Django)
شرکتهای بزرگ از فریمورک جنگو برای صرفهجویی در وقت و کدنویسی کمتر در توسعهی اپلیکیشنهای وب استفاده میکنند. جنگو فریمورکِ فول استک است و بهدلیل رایگان بودن و متنباز بودن بهشدت محبوب است. در واقع جنگو اینقدر محبوب است که اگر سراغ توسعهدهندهی پایتونی بروید، او را از خواب بیدار کرده و با تهدید اسلحه از او بخواهید برای شما اپلیکیشنی طراحی کند، شک نکنید که او بهطور خودکار به سمت جنگو خواهد رفت.
این فریمورک بهطور پیشفرض شامل تمام ویژگیهای ضروری میشود، اما ویژگی اصلی آن تأکید بر اصل «پرهیز از کار تکراری» است. توسعهدهندگان به کمک رابطه نقشهبرداری به شیء (Object-Relational Mapping) که در فریمورک جنگو موجود است، در توسعهی پروژههای خود در وقت صرفهجویی میکنند.
شرکتها و سازمانهای بزرگی که از فریمورک جنگو برای ساخت اپلیکیشن استفاده میکنند، شامل این موارد است: ناسا، اینستاگرام، یودمی، یوتیوب، واشنگتن پست.
۲. فلسک (Flask)
فلسک در دستهبندی میکروفریمورکها قرار میگیرد، به این معنی که تمرکزش روی موارد اساسی و حداقلهاست و باقی کار را به خود توسعهدهنده واگذار میکند. فریمورک فلسک برای افرادی که دقیقا میدانند چه میخواهند و مایلند دستشان در طراحی اپلیکیشنهای وب باز باشد، انتخاب بسیار مناسبی است. این فریمورک همچنین برای پروژههای اورژانسی، در مقیاس متوسط تا بزرگ، انتخاب خوبی است. در مواردی که جنگو پاسخگوی نیازهای شما در توسعهی پروژههای وب نیست، میتوان سراغ فلسک رفت.
برندهای معروفی که از فلسک استفاده میکنند، شامل این موارد است: نتفلکیس، لیفت، ایربیانبی، ردیت و میلگان (Mailgun).
۳. باتل (Bottle)
اگر فکر میکنید فلسک به اندازهی کافی دست شما را به طراحی اپلیکیشن مورد نظر خود باز نمیگذارد، سراغ باتل بروید. فریمورک باتل برای توسعهی اپلیکیشنهای بسیار کوچک (مثلا کمتر از ۵۰۰ خط کد) که به ویژگیهای خاصی نیاز ندارند، انتخاب خوبی است. ازآنجاکه باتل، میکروفریمورک است، تنها به کتابخانهی استاندارد پایتون وابسته است.
البته این نکته را هم در نظر داشته باشید که در عمل ممکن است استفاده از فریمورک باتل در کار شما اختلال ایجاد کند؛ اگر وسط پروژه نیاز داشتید ویژگی خاصی را به اپلیکیشن اضافه کنید، به دردسر میافتید، چون باتل تمام کدها را تنها درون یک فایل قرار میدهد. فریمورک باتل برای توسعهی اپلیکیشنهای بزرگ مناسب نیست.
۴. چریپای (CherryPy)
چریپای، میکروفریمورک متنباز پایتون است. طراحی مینیمال آن برای ساخت اپلیکیشنهای وب با قابلیت اجرا در پلتفرمهای مختلف، از جمله ویندوز، مک او اس، لینوکس و هر سیستم عامل دیگری که از پایتون پشتیبانی میکند، مناسب است.
چریپای برای استارتاپها گزینهی مناسبی است، چون محدودیتهای کمی دارد. این فریمورک از هر نوع تکنولوژی برای قالبسازی، دسترسی داده و غیره استفاده میکند و از پس نشستها (sessions)، آمار، کوکی، آپلود فایل و مواردی از این دست، بهراحتی بر میآید. انجمن چریپای هم از مبتدیان و هم از توسعهدهندگان حرفهای پشتیبانی میکند.
۵. وب-تو-پای (Web2Py)
Web2Py فریمورکِ فولاستک است و بهدلیل قابلیت مدیریت داده، برای توسعهدهندگان و دانشمندان داده انتخاب مناسبی است. از این فریمورک بیشتر برای پروژههای مرتبط با جمعآوری و آنالیز داده استفاده میشود.
کتابخانههای پایتون
تفاوت عمده بین فریمورک و کتابخانه مبحث «پیچیدگی» آنها است که در کتابخانهها کمتر است. کتابخانه مجموعهای از پکیجهایی است که عملیات خاصی را اجرا میکند، درحالیکه فریمورک حاوی معماری اپلیکیشن است.
وقتی توسعهدهنده، مِتُدی را از کتابخانه فرا میخواند، کنترل فرایند توسعه در دست خود اوست؛ اما در مورد فریمورک، کنترل فرایند در دست فریمورک است، نه توسعهدهنده. فریمورکها بیشتر از کتابخانه مورد استفاده قرار میگیرند، چون انعطافپذیری بیشتری دارند و ابزارهایی در اختیار کاربر میگذارند تا به کمک آنها ویژگیهایش را گسترش دهد. درادامه، ۵ کتابخانه از کتابخانههای محبوب پایتون را معرفی میکنیم.
۱. تنسورفلو (TensorFlow)
TensorFlow کتابخانهای متنباز و مناسب پروژههای مربوط به شبکههای عصبی، گرافهای محاسباتی و اپلیکیشنهای متمرکز بر یادگیری ماشین است. این کتابخانه را گوگل با همکاری تیم تحقیقاتی هوش مصنوعی یادگیری عمیق Brain Team ساخته است؛ بههمیندلیل این کتابخانه تقریبا در تمام اپلیکیشنهای گوگل برای یادگیری ماشین حضور دارد.
۲. سایکیتلرن (Scikit-Learn)
کتابخانه سایکیتلرن مخصوص اپلیکیشنهای پایتونی است که بر یادگیری ماشین متمرکز هستند و برای بررسی صحت مدلهای تحت نظارت بر دادههای دیدهنشده، گزینهی ایدهآلی است. Scikit-Learn همچنین رویکردی کارآمد برای خوشهبندی، تحلیل عاملی و تحلیل مولفههای اصلی برای شبکههای عصبی بدون نظارت ارائه میدهد و در حوزهی پردازش تصویر، نظیر استخراج ویژگیها از تصاویر و متون، انتخاب خوبی است.
۳. نامپای (Numpy)
نامپای (Numpy) کتابخانهای است که کتابخانههای دیگر نظیر TensorFlow از آن بهعنوان کتابخانهی داخلی خود برای اجرای چندین عملیات استفاده میکنند. از آنجاکه پایتون با اپلیکیشنهایی در حوزهی داده سروکار دارد، Numpy با قابلیتهای پیچیدهی خود به توسعهدهندگان کمک بسیاری میکند.
مزیت نامپای قابلیتهای تعاملی و سهولت در استفاده از آنها است. این کتابخانه پیادهسازیهای پیچیدهی ریاضی را بسیار ساده میکند. اگر در فکر انجام پروژهای در زمینهی علم داده و یادگیری ماشین هستید، استفاده از کتابخانهی Numpy در این مسیر کمک زیادی به شما خواهد کرد.
۴. کرس (Keras)
کرس (Keras) کتابخانهی یادگیری ماشین در پایتون است و سازوکاری روان برای توسعهی شبکههای عصبی فراهم میکند. کرس همچنین بهترین برنامههای کاربردی را برای کامپایل مدل، پردازش مجموعه دادهها، مصورسازی نمودارها و سایر موارد ارائه میدهد.
این کتابخانه در توسعهی بک اند اپلیکیشنهای مبتنی بر پایتون به کار میرود. برای مثال اوبر، نتفلکیس، و اینستاکارت از این کتابخانه استفاده میکنند. علاوه بر این، استارتاپهایی که یادگیری ماشین در هستهی طراحی محصولاتشان قرار دارد، نگاه ویژهای به این کتابخانه دارند.
۵. پایتورچ (PyTorch)
پایتورچ (PyTorch) یکی از بزرگترین کتابخانههای یادگیری ماشین است که به توسعهدهندگان امکان انجام محاسبات تنسور را میدهد و عملکرد خوبی نیز در حوزهی شبکههای عصبی دارد. اگر به پردازش زبانهای طبیعی (NLP) علاقه دارید، کتابخانهی PyTorch گزینهی مناسبی برای پروژههای شما است.
فیسبوک این کتابخانه را در گروه تحقیقاتی هوش مصنوعی خود توسعه داد و اوبر از آن در بک اند نرمافزار برنامهنویسی «Pyro» استفاده میکند. پایتورچ از زمان تأسیس، محبوبیت زیادی پیدا کرده و توجه تعداد روزافزونی از توسعهدهندگان یادگیری ماشین را به خود جلب کرده است.
با پایتون چه پروژههایی را میتوان توسعه داد؟
یادگیری اصول ابتدایی پایتون یک طرف قضیه است، اما اینکه حالا با این مهارت چه میشود کرد، داستان دیگری است و ممکن است برای عدهای به چالش تبدیل شود. در اینجا ۱۵ پروژهی جالب و کاربردی را که میتوان با پایتون توسعه داد، معرفی میکنیم که برای شروع گزینههای مناسبی هستند:
۱. ساماندهی فایلها در سیستم
از پایتون میتوان بهراحتی برای ساماندهی خودکار فایلها روی سیستم استفاده کرد. عملیاتی نظیر تغییر عنوان، کپی و جابجایی صدها فایل را میتوان تنها با نوشتن یک قطعه کد پایتون در چند ثانیه انجام داد. برای مثال نرمافزار رایگان و متنباز beets که مخصوص ساماندهی فایلهای موسیقی است، از پایتون استفاده میکند و به کاربر اجازهی دستکاری کدها و حتی نوشتن پلاگین مدنظر خود را میدهد.
۲. فهرستسازی
با استفاده از پایتون میتوانید بهجای بوکمارک کردن وبسایتهای مورد علاقه و دردسر انتقال آنها از مرورگری به مرورگر دیگر، فهرستی از آنها را در خط فرمان پایتون ذخیره کنید. برای مثال، مدیریت بوکمارک buku به زبان پایتون ۳ نوشته شده و در کنار مدیریت فهرست وبسایتهای موردعلاقه، امکان تگ خودکار، اصلاح لینکهای خراب و جستوجو در پایگاه داده و حتی قفل و رمزگذاری کردن فهرستهای شما را دارد.
این برنامه پروژهی متنباز است و اگر ایدهای در سر دارید و نمیدانید با آن چه کار کنید، میتوانید آن را بهعنوان ویژگی جدیدی به این پروژه اضافه کنید تا کاربران دیگر نیز بتوانند از آن استفاده کنند.
۳. ساخت رزومه در وبسایت استاتیک
Pelican که به زبان پایتون نوشته شده مخصوص ساخت وبسایتهای استاتیک است و برای ساخت رزومهای تمیز و در عین حال تعاملی، گزینهی بسیار خوبی است. در Pelican میتوانید به کدهای پایتون دسترسی پیدا کنید و تا جایی که میخواهید آنها را به سلیقهی خود تغییر دهید.
۴. ساخت وبسایتهای داینامیک
فریمورکهای وب پایتون نظیر جنگو و فلسک برای ساخت وبسایتهای داینامیک با قابلیتهای بسیار به شما کمک زیادی خواهند کرد. برای مثال اینستاگرام از جنگو و پینترست از فلسک استفاده میکند و هر دو قابلیت مدیریت تصاویر با رزولوشن بالا، تعاملات کاربری پیچیده و المانهای طراحی وب واکنشگرا را دارند و از پایتون در بک اند خود استفاده میکنند.
۵. مصورسازی داده
کتابخانههای پایتون مجموعهی بزرگی از ابزار برای مصورسازی داده ارائه میدهند تا بررسی داده به کمک نمودار و نقشه آسانتر شود. به کمک کتابخانهی مصورسازی Seaborn و Matplotlib که مبتنی بر زبان پایتون است، میتوانید به آسانی دادههای خود را بهصورت نمودار و نقشه نشان دهید و از کتابخانههایی مانند Bokeh برای اضافه کردن قابلیتهای تعاملی بیشتر استفاده کنید.
۶. ساخت شبکه عصبی
شرکتهایی مانند اوبر از شبکههای عصبی برای برقراری ارتباط بین مسافران و رانندگان و حتی بهبود کیفیت پیشنهاد غذا و رستوران استفاده میکنند. زبان پایتون هم در مرکز این فعالیتها قرار دارد. بهگفتهی اوبر، کتابخانهی مخصوص یادگیری عمیق Pytorch، پای ثابت توسعهی الگوریتمهای این شرکت است.
پایتون برای پروژههای مربوط به یادگیری عمیق، کتابخانههایی نظیر تنسورفلو و کرس را در اختیار کاربر قرار میدهد. با یادگیری پایتون و استفاده از این کتابخانهها برای ساخت شبکههای عصبی، مهارتی کسب خواهید کرد که تا سالهای آینده در پروژه های مختلف به کارتان خواهد آمد.
۷. ساخت موتور پیشنهادگر
یکی دیگر از مصارف محبوب یادگیری ماشین، موتور پیشنهادگر است. کتابخانههای پایتون نظیر NumPy و Scikit-Learn مجموعهی بزرگی از ابزارهای متنوع در اختیار کاربر قرار میدهند تا پلتفرمی برای پیشنهاد محصول، مثلا در فروشگاههای آنلاین، ایجاد کنند. برای مثال، اسپاتیفای و نتفلیکس به کمک این پشتهی علم داده و ترکیب آن با فریمورکهای کلانداده مانند آپاچی هدوپ میتوانند دادهها را آنالیز کرده و به کاربران، موسیقی و فیلم موردعلاقهیشان را پیشنهاد دهند.
۸. آنالیز بازخورد کاربران
تحلیل احساسات (Sentiment Analysis) کاربر به کسبوکارها در تصمیمگیریهای مهم کمک میکند و پشتهی علم دادهی پایتون، جعبهابزار زبان طبیعی (nltk) آن و ترکیب آن با الگوریتمهای یادگیری ساده و تحت نظارت میتواند به سرعت نظرات، توییتها، یا هر نوع بازخوردی را از سمت کاربر بررسی کند.
۹. جمع آوری داده از وبسایتها
البته که بسیاری از این پروژههایی که تا اینجا به آن اشاره شد، بدون جمعآوری داده ممکن نیست. به کمک پایتون و کتابخانهها و فریمورکهایی مانند Selenium، ScraPy و BeautifulSoup میتوانید به آسانی اطلاعات را از وبسایتهای مختلف استخراج کنید. علاوه بر این، پایتون بهراحتی با APIهای موجود سازگار میشود و کمک میکند تا دادههای ساختاریافته را به سرعت و بهطور مؤثر از وبسایتها بیرون بکشید.
۱۰. ساخت اپلیکیشنهای موبایل
بیش از ۴۵ درصد جمعیت جهان از گوشی هوشمند استفاده میکنند و بههمیندلیل بازار اپلیکیشنهای موبایل همیشه داغ است. به کمک فریمروک Kivy پایتون میتوانید اپلیکیشنهایی با قابلیت اجرا در سیستمعاملهای مختلف توسعه دهید. برای مثال، دراپباکس از پایتون برای ساخت اپلیکیشن موبایلی خود استفاده کرده که بدون هیچ مشکلی روی سیستمعامل ویندوز، مک او اس و حتی برخی توزیعهای لینوکس اجرا میشود.
۱۱. مبادلهی رمزارز
به کمک پایتون میتوان ربات معاملهگر رمزارز ایجاد کرد که تمام وقت فعال است و مستقل از کاربر عمل میکند. همچنین میتوان با ترکیب الگوریتمهای یادگیری ماشین در این بات، بهترین زمان برای خرید و فروش رمزارز را پیشبینی کرد. حتی اگر خودتان علاقهای به ورود به حیطهی خرید و فروش رمزارز ندارید، بات شما میتواند در بازار قیمت بالایی داشته باشد.
۱۲. ساخت بات شبکههای اجتماعی
به کمک پایتون میتوان باتهایی ساخت تا انجام حجم زیادی از فعالیتهای آنلاین شما را در شبکههای اجتماعی به عهده بگیرد. میتوانید به کمک کتابخانههایی مانند Tweepy و InstaPy مستقیم با سرویسهای شبکههای اجتماعی ارتباط برقرار کنید، یا برای باتی کد بنویسید و آن را به API متصل کنید، درست شبیه آنهایی که یوتیوب یا ردیت یا دیسکورد ارائه میدهند.
۱۳. ساخت چتبات
اینروزها، با روی کار آمدن ChatGPT و بینگ چت، بازار چتباتها داغ داغ است! پایتون ساخت چتباتهای پیچیده را به کمک تلفیق nltk با کتابخانههای یادگیری ماشین ممکن میکند. حتی میتوانید به کمک کتابخانههای PyAudio و SpeechRecognition و اضافه کردن قابلیت گفتار به متن، به چتبات خود صدا اضافه کنید.
۱۴. اتصال به اینترنت اشیا
به کمک ابزارهایی مانند آردوینو و رزبریپای میتوانید ربات، لوازم خانگی و دستگاههای کوچکی بسازید که به اینترنت اشیا متصل میشوند و از زبان پایتون استفاده میکنند. برای مثال، MicroPython پروژهای متن باز است که برنامهنویسی برای میکروکنترلرها را بسیار ساده کرده است. حتی میتوانید به کمک پایتون، فایروال یا سیستم آبیاری خود را راه اندازی کنید.
۱۵. استفاده از قابلیت زبانهای دیگر
گاهی پروژهای که در سر دارید را نمیتوان بهطور کامل با پایتون نوشت. در این شرایط لازم نیست بهطور کامل پایتون را کنار بگذارید و سراغ زبانهای دیگر بروید؛ بلکه انعطافپذیری پایتون این امکان را به شما میدهد تا هرجا نیاز به استفاده از زبان دیگری مانند سی یا ++C داشتید، به کمک ماژولهای خاص پایتون (extension module) از قابلیتهای آنها در پروژهی پایتونی خود استفاده کنید.
چه شرکتهایی از پایتون استفاده میکنند؟
بسیاری از شرکتهای تکنولوژی و سازمانهای بزرگ و موفق دنیا از زبان پایتون برای توسعهی بک اند وبسایت خود یا آنالیز داده استفاده میکنند. در اینجا با برخی از آنها آشنا میشویم:
اینستاگرام
اینستاگرام، بزرگترین اپلیکیشن اشتراک عکس در دنیا با بیش از ۲ میلیارد کاربر فعال روزانه، برای بک اند خود از فریمورک جنگو که به زبان پایتون است، استفاده میکند و دلیل این کار را سادگی و محبوبیت پایتون عنوان میکند.
گوگل
گوگل با سهم ۹۳ درصدی از بازار، پراستفادهترین موتور جستوجو در دنیا است. گوگل از همان ابتدا از طرفداران پایتون بوده و بنیانگذاران آن تصمیم گرفتند «هرجا میشد از پایتون استفاده کنند و هرجا که باید از ++C.» در سهولت استفاده از پایتون همین بس که اولین خزندهی وب گوگل که با جاوا نوشته شده بود، کمی بعد به زبان پایتون بازنویسی شد تا استفاده از آن راحتتر شود.
اسپاتیفای
اسپاتیفای، پلتفرم پخش موسیقی و پادکست در سال ۲۰۰۸ عرضه شد و تا امروز بیش از ۴۵۰ میلیون کاربر فعال دارد. درحالیکه وبسایت اسپاتیفای از وردپرس استفاده میکند، اپلیکیشن آن با پایتون ساخته شده است. ۸۰ درصد سرویسهای اسپاتیفای مبتنی بر پایتون و باقی مبتنی بر زبانهای دیگری چون جاوا، سی و ++C هستند. اسپاتیفای همچنین از پایتون برای آنالایز داده و خدمات بک اند استفاده میکند.
نتفلیکس
نتفلکیس با بیش از ۲۰۰ میلیون عضو، بزرگترین شبکهی تلویزیونی اینترنتی در دنیاست. نتفلکیس مانند اسپاتیفای از پایتون برای آنالیز داده استفاده میکند. علاوه بر این، به مهندسان نرمافزار خود اجازه میدهد با هر زبانی که راحتترند کدنویسی کنند و اغلب برنامهنویسان نتفلکیس، زبان پایتون را ترجیح دادهاند. از نظر مهندسان نتفلکیس، کتابخانهی استاندارد پایتون، انجمن بسیار فعال و روبهرشد آن و تنوع زیاد در کتابخانههای موجود، حل هر مشکلی را برای توسعهدهندگان امکانپذیر کرده است.
ردیت
وبسایت ردیت ماهانه بیش از ۴۰۰ میلیون کاربر فعال دارد و در سال ۲۰۲۳، دهمین وبسایت پربازدید در دنیاست. ردیت ابتدا از Lisp استفاده میکرد، اما شش ماه بعد از عرضه، با پایتون بازنویسی شد. علت این تغییر هم دسترسی پایتون به کتابخانههای متنوعتر و انعطافپذیری آن از نظر توسعه بود. ردیت هنگام استخدام برنامهنویس به آنها میگوید هرچه مینویسند باید به زبان پایتون باشد تا خوانش آن آسانتر باشد و بشود بهراحتی فهمید آیا کدی که نوشتند خوب است یا بد.
زبان پایتون بین شرکتها و سازمانهای بزرگ طرفداران زیادی دارد. نمونههای دیگر از شرکتهای مطرحی که از پایتون استفاده میکنند، شامل این موارد است: فیسبوک، ناسا، Quora، پینترست، یوتیوب، دراپباکس، آمازون، اوبر، لیفت، سازمان سیا، پیپال، نوکیا و آیبیام.
نصب پایتون
پایتون قابل نصب در ویندوز، لینوکس، مک او اس و پلتفرمهای خاصی مانند اندروید، iOS ،Solaris و IBM AS/400 و غیره است و روشهای مختلفی برای نصب آن وجود دارد. اما پیش از نصب باید بدانید که پایتون دارای دو نسخه ۲ و ۳ است. نسخهی ۲ در دههی ۲۰۰۰ محبوبیت زیادی داشت، اما حالا بهترین نسخه برای استفاده، نسخهی سوم است؛ چراکه خود زبان و کتابخانهها فقط در نسخهی سوم بهروز میشوند.
سادهترین راه برای نصب جدیدترین نسخهی پایتون این است که آن را از خود سایت رسمی دانلود کنید. فقط حواستان باشد هنگام نصب، تیک گزینه «Add Python 3.x to PATH» را بزنید تا پس از نصب بتوانید از طریق محیط cmd کدنویسی و پکیجهای پایتون را نصب کنید. در محیط ویندوز همچنین میتوانید از طریق مایکروسافت استور به دانلود و نصب پایتون اقدام کنید که کار بسیار راحتی است.
روی بیشتر توزیعهای لینوکس نیز پایتون به صورت پیشفرض وجود دارد و شاید لازم باشد که آن را به جدیدترین نسخه بهروز کنید. برای نصب پایتون در لینوکس میتوانید از طریق پکیج منیجر و اگر امکانپذیر نبود، از طریق کدهای منبع اقدام کنید.
سادهترین راه برای اضافه کردن قابلیتهای مختلف به پایتون خالص، مخصوصا برای دانشمندان داده، دانلود آن از سایت Anaconda است. پکیجی که از این سایت دانلود میکنید شامل پایتون خالص، کتابخانههای ضروری برای دانشمندان و یادگیری ماشین (نظیر نامپای، سایپای و پاندا) و همچنین دو ابزار کدنویسی Spyder و Jupyter Notebook است. نصب این پکیج هم بسیار آسان است و تنها کافی است سیستم عامل خود را انتخاب و روی download کلیک کنید.
یادگیری پایتون چقدر زمان میبرد؟
اگر هیچ پیشزمینهای در پایتون ندارید و میخواهید یادگیری آن را از صفر شروع کنید، معمولا سه تا شش ماه زمان لازم است تا آن را یاد بگیرید؛ هرچند متخصص شدن در این زبان به چندین سال زمان نیاز دارد.
اگر پیشزمینهای در زبان برنامهنویسی جاوا دارید و میخواهید پایتون را بهعنوان زبان دوم یاد بگیرید، تنها یکی، دو روز لازم است تا با محیط پایتون آشنا شوید و اولین کد «hello world» خود را بنویسید. اگر هم از پلتفرمهای تعاملی مانند Educative یا CodeCademy یا freeCodeCamp استفاده کنید، میتوانید در عرض چند دقیقه برنامههای بسیار سادهای را به زبان پایتون بنویسید.
از سوی دیگر، اگر قصد دارید از پایتون در علم داده استفاده کنید (برای مثال برای آنالیز داده یا یادگیری ماشین)، یادگیری آن به زمان کمتری نیاز دارد، به این دلیل که برای علم داده فقط به استفادهی خاصی از زبان نیاز دارید و درک اصول اساسی آن بین یک تا دو ماه بیشتر طول نمیکشد. طبق آمار 365datascience، اگر روزی ۵ ساعت از وقتتان را به یادگیری پایتون اختصاص دهید، میتوانید در عرض یک ماه اصول بنیادی مورد نیاز برای تحلیل علم داده در زبان پایتون را بیاموزید.
خوشبختانه برای اینکه بتوانید بهعنوان برنامهنویس پایتون استخدام شوید، نیازی به تخصص کامل در این زمینه ندارید و صرفا یادگیری پایتون، دیباگ کردن و آشنایی با ابزارهای توسعه نرمافزار ازجمله گیت کافی است؛ تخصص را در طول مسیر به دست خواهید آورد.
برای یادگیری پایتون از کجا شروع کنیم؟
بهترین راه برای یادگیری پایتون یا کلا هر زبان برنامهنویسی دیگر، تمرین کدنویسی بهصورت روزانه است. البته این به گفتن آسان است، چون به محض اینکه شروع به کدنویسی کنید، با چالشهای بزرگی روبهرو میشوید و فقط کافی است جایی یک کامانقطه را جا انداخته باشید تا کلی پیام خطا به سمتتان روانه شود. بههمینخاطر برای یادگیری پایتون به راهنما نیاز خواهید داشت.
اگرچه بهترین راهنمایی را از تعاملات رودررو با افراد آشنا به پایتون دریافت خواهید کرد، روشهای دیگری نیز برای یادگیری این زبان وجود دارد. مثلا میتوانید از وبسایتهای رایگانی چون w3school یا geeksforgeeks یا freecodecamp یا دورههای آنلاینی مانند The Complete Python Pro Bootcamp در وبسایت Udemy استفاده کنید و زمانیکه به درک خوبی از این زبان رسیدید، سراغ خواندن کتاب مثل Automate the Boring Stuff with Python بروید تا دانش عمیقتری از پایتون به دست آورید. البته خواندن کتاب برای یادگیری زبان برنامهنویسی روش سادهای نیست و میتوانید از دورههای آنلاینی که براساس این کتابها ایجاد شدهاند، استفاده کنید.
از طرفی میتوانید یادگیری پایتون را با اجرای پروژه پیش ببرید؛ مثلا پروژهای مرتبط با خودکارسازی، ساخت وب اپلیکیشن یا حتی مدل یادگیری ماشین.
اینروزها، یادگیری پایتون با اپلیکیشنهای موبایل نیز حسابی محبوب شده است؛ برنامههایی مثل SoloLearn یا Datacamp روش سادهای برای آشنایی با زبانهای برنامهنویسی در اختیارتان قرار میدهند و از محیطی برای اجرای کدها بهره میبرند؛ هرچند شاید لازم باشد درکنارش از راهنماییهای دیگر نیز کمک بگیرید.
زبانهای جایگزین پایتون
معروفترین زبان برنامهنویسی جایگزین پایتون، Ruby نام دارد که از لحاظ ساختاری چنان به پایتون شبیه است که یادگیری آنها یکی پس از دیگری دشوار است؛ مثل این میماند که بخواهید همزمان اسپانیایی و پرتغالی یاد بگیرید.
زبان جایگزین دیگر در حوزهی وب، جاوا اسکریپت فول استک است. پایتون و جاوا اسکریپت خیلی شبیه هم نیستند، اما میتوان از آنها برای اهداف مشابه استفاده کرد.
نقاط ضعف پایتون
پایتون بهخاطر سطحبالا و تفسیری بودن، اغلب به «کند بودن» متهم میشود؛ چون مفسر باید کار اضافی ترجمهی بایتکد را به چیزی که برای ماشین قابلاجرا باشد، انجام دهد. بهعبارت سادهتر، اگر بتوانید با زبان مادری خود با کسی صحبت کنید، مکالمه با سرعت بیشتری از کمک گرفتن از مترجم برای تبدیل زبان شما به زبان قابلفهم برای فرد روبهرو انجام میشود.
پایتون اغلب به «کند بودن» متهم میشود
پایتون هم چون باید به زبان قابلفهم برای کامپیوتر تبدیل شود، وقت بیشتری برای اجرا شدن از زبانهای سطحپایین و کامپایلشدهای مثل جاووا یا Rust میگیرد. درنتیجه، در مواردی که سرعت اجرا فوقالعاده مهم است، مثل ساخت سیستمهای پایگاه داده توزیعشده یا توسعهی بازیهای سنگین، زیاد از زبان پایتون استفاده نمیشود.
از سوی دیگر، کارآمدی پایتون از نظر استفاده از حافظه و فضای ذخیرهسازی کمتر زبانهای کامپایلی است؛ درنتیجه، اپلیکیشنهای موبایلی که بهزبان پایتون نوشته میشوند، رم و باتری زیادی مصرف میکنند.
یکی دیگر از ضعفهای پایتون، تنوع نسخههای مختلف آن است که باعث میشود کسانی که قصد دارند برنامهنویسی را برای اولینبار آغاز کنند، سردرگم شوند.
درمورد پایتون گاهی دغدغهی مقیاسپذیری نیز مطرح میشود؛ هرچند میتوان با پیادهسازیهای جایگزین پایتون نظیر پایپای (PyPy) این مشکل را تاحدودی برطرف کرد.
آینده پایتون
زبان پایتون با شروع فروتنانهی خود بهعنوان پروژهای کوچک برای گذران تعطیلات کریسمس، سفر طولانی و پر فراز و نشیبی را تا تبدیل شدن به یکی از محبوبترین زبانهای برنامهنویسی دنیا طی کرده است. بسیاری از اصول کلیدی که منجر به تولد پایتون شد، از جمله سادگی و فهم آسان، همچنان در مورد این زبان پابرجاست و مسیر توسعهاش را در آینده تعریف میکند.
اگرچه پایتون روزبهروز محبوبتر میشود و حوزهی علم داده را عملا تصاحب کرده است، چالشهایی نیز سر راهش قرار دارد. برای مثال، حضور پایتون در گوشیهای هوشمند که این روزها رایجتر از کامپیوتر هستند، یا پردازندههای چندهستهای، بسیار کمرنگ است.
پایتون حوزهی علم داده را تصاحب کرده؛ اما حضورش در گوشیهای هوشمند کمرنگ است
دلیل عمدهی محبوبیت پایتون استفاده از آن در یادگیری ماشین است؛ اما در حوزهی توسعه اپلیکیشن موبایل یا وب حرف زیادی برای گفتن ندارد، چون کند است. فان رسوم، خالق پایتون که حالا در مایکروسافت مشغول به کار است، قبول دارد که اپلیکیشنهای مبتنیبر پایتون رم و باتری زیادی مصرف میکنند. او در حال بهبود عملکرد پایتون است و معتقد است که دوبرابر شدن کارآمدی پایتون در آینده شدنی است.
افزونبراین، پایتون بهدلیل «چسبنده» بودن، طیف گستردهتری از کاربران را به خود اختصاص داده است و برنامهنویسان هر روز مرزهای این زبان را با قدرت خلاقیت و نوآوری خود جابهجا میکنند. بسیاری از افراد گمان میکنند پایتون فقط در بک اند کاربرد دارد، اما قابلیتهای این زبان بسیار بیشتر از این حرفهاست.
به قول خالق پایتون، خیدو فان روسوم، «پایتون آزمایشی برای تعیین میزان آزادی عمل مورد نیاز برنامهنویسان است. اگر از حد خود بیشتر شود، دیگر کسی نمیتواند کد فرد دیگری را بخواند. اگر هم از حد خود کمتر شود، قابلیت ابراز ایده به خطر میافتد.»
نظرات