همهچيز درباره پايتون؛ زبان برنامهنويسي براي همه
پايتون (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) اين اشكال را تاحدودي برطرف كرد.
آينده پايتون
زبان پايتون با شروع فروتنانهي خود بهعنوان پروژهاي كوچك براي گذران تعطيلات كريسمس، سفر طولاني و پر فراز و نشيبي را تا تبديل شدن به يكي از محبوبترين زبانهاي برنامهنويسي دنيا طي كرده است. بسياري از اصول كليدي كه منجر به تولد پايتون شد، از جمله سادگي و فهم آسان، همچنان در مورد اين زبان پابرجاست و مسير توسعهاش را در آينده تعريف ميكند.
اگرچه پايتون روزبهروز محبوبتر ميشود و حوزهي علم داده را عملا تصاحب كرده است، چالشهايي نيز سر راهش قرار دارد. براي مثال، حضور پايتون در موبايلهاي هوشمند كه اين روزها رايجتر از كامپيوتر هستند، يا پردازندههاي چندهستهاي، بسيار كمرنگ است.
پايتون حوزهي علم داده را تصاحب كرده؛ اما حضورش در موبايلهاي هوشمند كمرنگ است
دليل عمدهي محبوبيت پايتون استفاده از آن در يادگيري ماشين است؛ اما در حوزهي توسعه اپليكيشن موبايل يا وب حرف زيادي براي گفتن ندارد، چون كند است. فان رسوم، خالق پايتون كه حالا در مايكروسافت مشغول به كار است، قبول دارد كه اپليكيشنهاي مبتنيبر پايتون رم و باتري زيادي مصرف ميكنند. او در حال بهبود عملكرد پايتون است و معتقد است كه دوبرابر شدن كارآمدي پايتون در آينده شدني است.
افزونبراين، پايتون بهدليل «چسبنده» بودن، طيف گستردهتري از متخصصان را به خود اختصاص داده است و برنامهنويسان هر روز مرزهاي اين زبان را با قدرت خلاقيت و نوآوري خود جابهجا ميكنند. بسياري از افراد گمان ميكنند پايتون فقط در بك اند متخصصد دارد، اما قابليتهاي اين زبان بسيار بيشتر از اين حرفهاست.
به قول خالق پايتون، خيدو فان روسوم، «پايتون آزمايشي براي تعيين ميزان آزادي عمل مورد نياز برنامهنويسان است. اگر از حد خود بيشتر شود، ديگر كسي نميتواند كد فرد ديگري را بخواند. اگر هم از حد خود كمتر شود، قابليت ابراز ايده به خطر ميافتد.»
هم انديشي ها