پايتون
اين زبان تاكنون توسط شركت يا سازمانهاي مطرح زيادي مورد استفاده قرار گرفته و در طراحي سايت رايگان و
برنامههاي كاربردي زيادي نيز از آن استفاده شده است كه از جمله اين موارد ميتوان به: reddit ،Pinterest
،Instagram (شبكههاي اجتماعي) / Google (موتور جستجوگر و نيز سرويس يوتيوب) / Yahoo (سرويس نقشه) /
IBM ،Intel ،Cisco ،Seagate (تست سختافزار) / Dropbox (سرويس ميزباني ابري فايل) / EVE Online
(بازيهاي آنلاين) / NASA ،Los Alamos (امور علمي) / iRobot (رباتيك) / Pixar ،Industrial Light and Magic
،Walt Disney (ساخت فيلمهاي انيميشن) / BitTorrent (اشتراك فايل نظير به نظير) / CIA (وبسايت) / PayPal
(سيستم انتقال پول آنلاين) / Mercurial (سيستم كنترل نسخه) / ESRI (نقشهبرداري در برنامه GIS) و بسياري
ديگر [4] اشاره نمود.
نكته مهم در مورد زبان برنامهنويسي پايتون، انواع پيادهسازي (Implementation) آن است. تاكنون از اين زبان
پيادهسازيهاي گوناگون و با اهداف متفاوتي توسعه يافته است كه از اين بين ميتوان به Jython (خاص ماشين
مجازي جاوا)، IronPython (خاص چارچوب NET. مايكروسافت)، PyPy (با هدف سرعت اجراي بيشتر)، Stackless
(با هدف اجراي بهتر برنامههاي چندنخي) و البته CPython اشاره نمود.
ويژگي ها
پايتون يك زبان برنامهنويسي طراحي سايت رايگان ، متن باز (Open Source) و با بياني كاملتر، آزاد است كه
هماكنون (يعني از نسخه 2.1 و جديدتر) پروانه آن توسط « بنياد نرمافزار پايتون» PSF اداره ميگردد. پروانه پايتون
سازگار با پروانه GPL3 است، با اين حال به برنامهنويس اين اجازه را ميدهد كه بتواند برنامهاي با سورس بسته
(Closed Source) توليد نمايد.
پايتون يك زبان برنامهنويسي همه منظوره (General-Purpose) است به اين معني كه ميتوان از آن در توسعه طيف
گستردهاي از انواع برنامهها در حوزههاي نرمافزاري گوناگون بهره برد؛ از جمله در توسعه برنامههاي تحت وب و
برنامههايي با قابليت « واسط گرافيكي كاربر» (GUI).
پايتون يك زبان برنامهنويسي به همراه مجموعه بزرگي از قابليتهاي از پيش آماده و قابل حمل است كه به عنوان
كتابخانه استاندارد آن شناخته ميشود. همچنين در كنار اين كتابخانه ميتوان از طيف بسيار وسيعي از
كتابخانههاي شخص ثالث (Third-Party) پايتون نيز بهره برد. كتابخانههاي شخص ثالث ابزارهاي مفيدي را در امور
فرواني همچون: برنامهنويسي علمي ~ NumPy ،SciPy / پردازش زبانهاي طبيعي NLTK / ارتباط درگاه سريال
PySerial / ايجاد بازيPyGame ،Pyglet ،PyOpenGL ،PySoy / هوش مصنوعي PyBrain / ايجاد وب سايتDjango
،Flask ،Bottle ،CherryPy / پردازش تصويرPIL/Pillow ،PythonMagick / واسط گرافيكي كاربر PyGtk ،PyQt
،WxPython / كار با اسناد rdflib / pdf / رمزنگاري PyCrypto ،pyOpenSSL ،cryptography و بسياري ديگر... كه
مدام در حال توسعه هستند و بر تعداد و تنوع آنها نيز افزوده ميشود را در اختيار برنامهنويسان پايتون قرار
ميدهند.
پايتون يك زبان برنامهنويسي طراحي سايت رايگان پويا (Dynamic) بوده و نيز از قابليت مديريت خودكار حافظه برخوردار
است. اين زبان شباهتهايي با TCL ،Perl ،Ruby ،PHP يا ديگر زبانهاي برنامهنويسي پويا دارد. در اين نوع زبانها
برخلاف زبانهاي ايستا (Static) مانند C++ ،C و Java نيازي به تعريف صريح نوع متغيرها (Variables) نيست و
همچنين نوع متغير در طول برنامه قابل تغيير است. در زبانهاي پويا متغيرها از خود نوعي ندارند و تصميم گيري
براي تخصيص نوع در زمان اجرا (RunTime) انجام ميپذيرد.
تفاوت عملكرد كامپايلر و مفسر
يك كامپايلر (در زبانهاي كامپايلشده) تمامي سطرهاي سورس كد برنامه را به صورت يكجا خوانده و سپس با
ساخت يك فايل جديد و مستقل از سورس كد با نام «كد مقصد يا آبجكت كد» (Object Code) يا فايل اجرايي
(Executable) عمل ترجمه به زبان ماشين را پايان ميبخشد. برنامه حاصل از كامپايلر توانايي هر چند بار اجرا در
رايانه مقصد، بدون نياز به كامپايل دوباره را دارد، اما فاقد حملپذيري بوده و كاربر نهايي نيز به هيچ عنوان توانايي
دسترسي به سورس كد برنامه و تغيير يا ويرايش آن را نخواهد داشت. اما يك مفسر (در زبانهاي تفسيرشده)
سورس كد برنامه را به صورت سطر به سطر ميخواند و هر سطر را به صورت جداگانه به زبان ماشين ترجمه و
سپس بلافاصله آن را اجرا ميكند. به اين صورت كه هنگامي يك سطر در حال اجراست در همان لحظه سطر بعدي
در حال ترجمه به زبان ماشين ميباشد. برنامههاي نوشته شده با زبانهاي برنامهنويسي تفسيرشده براي هر بار
اجرا در رايانه هدف نياز به تفسير دوباره دارند. اين تفاوت عملكرد گرچه باعث كاهش سرعت اجراي برنامههاي
تفسيرشده نسبت به برنامههاي كامپايلشده ميشود ولي خواندن سطر به سطر كدها در مفسر علاوه بر قابليت
تشخيص خطاي بهتر، اين امكان را بوجود ميآورد كه هر كاربري بتواند حتي در زمان اجراي برنامه سورس كد را
ويرايش و تغيير دهد؛ اين دسته از زبانها در مواقعي كه پيوسته نياز به افزودن ويژگيهاي متفاوت به برنامه است
بسيار مورد توجه قرار گرفتهاند.
پايتون يك زبان برنامهنويسي قابلحمل (Portable) است. ميتوان گفت سورس كد برنامهاي به اين زبان قابليت
اجرا در هر رايانهاي را دارد. بايتكد پايتون شبيه به زبان ماشين است ولي با اين تفاوت كه مخصوص هيچ ماشين
(يا رايانه) خاصي نيست. در مقابل، وقتي سورس كد برنامهاي توسط كامپايلر به زبان ماشين ترجمه ميشود،
نتيجه آن فايلي است كه تنها در ماشينهايي كه اين كد براي آنها (متناسب با معماري پردازنده) ترجمه شده
است، قابل اجرا ميباشد ولي بايتكد پايتون به كمك ماشين مجازي خود اين توانايي را دارد كه در هر ماشيني
اجرا گردد.
كارايي
معمولا افراد در مواجه با يادگيري زبان پايتون نگرانيهايي در مورد كارايي (Performance) برنامههاي توسعه يافته
با اين زبان خواهند داشت به خصوص در جايگاه مقايسه با زبان Java، به هر حال پايتون يك زبان تفسيرشده است
و در اجرا سرعت كمتري نسبت به زبانهاي كامپايلشده مانند C و Java خواهد داشت. معمولا كارايي بالا برابر با
سرعت بالاست ولي قضاوت در مورد كارايي به اين سادگي درست نيست!در بسياري از كاربردها سرعت پايتون
كاملا قابل قبول است، وجود بايتكد موجب افزايش سرعت در اجراهاي بعدي برنامه ميشود و نكات برنامهنويسي
زيادي براي بهبود سرعت اجرا در پايتون وجود دارد كه در اين كتاب به تدريج اشاره خواهد شد. نبايد فراموش كرد كه
يكي از مهمترين عاملهاي كارايي داشتن الگوريتمي بهينه است و البته نوشتن ماژولها به زبان C نيز موجب
افزايش قابل توجه كارايي پايتون ميشود - پايتون كند است اگر اشتباه استفاده شود - با اين وجود در حالت عادي
اگر هزار مورد وجود داشته باشد كه پايتون براي آنها بهترين انتخاب باشد، سرعت يكي از آنها نخواهد بود و براي
توسعه طراحي سايت رايگان برنامههايي كه سرعت اجرا نقش بسيار تعيين كنندهاي دارد بايد از زبانهاي ديگري استفاده
نماييد.
نسخه ها
در يك سير تاريخي، نسخه پايدار 2.0 در شانزدهم اكتبر سال ۲۰۰۰ ميلادي و در ادامه نسخه 1.6 منتشر (Release) ميشود؛ پس از آن نيز توسعه پايتون به همان صورت پيشين ادامه مييابد تا اين كه در دسامبر سال ۲۰۰۸ ميلادي نسخهاي از پايتون با شماره 3.0 كه از آن با عنوان ”Python 3000“ يا ”Py3K“ نيز ياد ميشود، با رويكرد شكستن «سازگاري با نسخههاي پيشين» طراحي سايت رايگان (Backward Compatibility) منتشر ميگردد. به بيان ديگر: مفسر نسخههاي جديد (3x) پايتون قادر به اجراي سورس كدي كه بر پايه مفسر نسخههاي پيشين تهيه شده است، نخواهد بود. (كه اين اتفاق در جامعه پايتون بسيار بحث برانگيز بوده و هست!)