در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
پایتون از همه قابلیتهای یک زبان قدرتمند از جمله شییگرایی و ساختارگرایی پشتیبانی میکند. سیستم پایتون مانند زبانهای پرل و روبی دینامیک است و مدیریت حافظه در آن بهصورت کاملا خودکار انجام میشود. همین امر سبب میشود که پایتون مانند دیگر زبانهای دینامیک برای اسکریپت نویسی نیز مورد استفاده قرار گیرد.
پایتون در اواخر دهه هشتاد در شرکت CWI در هلند پا به عرصه وجود گذاشت. گیدو وان روسوم، طراح پایتون در مورد دلیل پیدایش پایتون میگوید: «زمانی من در شرکت CWI در گروه برنامهنویسی زبان ABC به پیادهسازی این زبان مشغول بودم. کار در این گروه نکات زیادی را در مورد طراحی یک زبان جدید به من آموخت. زبان ABC دستور زبان جالبی داشت اما محدودیتهایی در این زبان وجود داشت که توسعه و گسترش زبان را در عمل ناممکن میساخت. این موضوع انگیزه اصلی برای طراحی و پیادهسازی زبانی بود که قابلیت توسعه داشته باشد و در آن بتوانم ایدههای جدید خود و انتقاداتی را که به زبان ABC داشتم، پیادهسازی کنم. در آن زمان من در کار با زبان مادولا (Modula) تبحر داشتم و پس از صحبت با طراحان آن و مطالعه دستور زبان طراحی پایتون را شروع کردم. زبان پایتون بخش وسیعی از دستور زبان خود را از ABC و مادولا به ارث برده است. بخش مدیریت استثناها با الهام از مادولا3 نوشته شده است.» در حقیقت قابلیت گسترش پایتون بسیار بیشتر از اغلب زبانهای دیگر است. در پایتون می توان دو نوع ماجول مختلف و کاملا متفاوت داشت : می توانید ماجولهای پایتون را در کنار ماجولهایی که به طور کامل به زبان C نوشته شدهاند، استفاده کنید. چنین ماجولی میتواند انواع جدیدی از دادهها و اشیا را در اختیار ما قرار دهد. پایتون با استفاده از زبان C پیادهسازی شده است. این پیادهسازی CPython نامیده میشود و با استاندارد C89 سازگار است. CPython برنامه پایتون را به بایت کد واسط کامپایل میکند. بایت کد حاصل توسط ماشین مجازی اجرا می شود.
گیدو برای نامگذاری زبان خود بهدنبال نامی کوتاه، منحصر بهفرد و اندکی رمزآمیز میگشت. او همزمان با پیادهسازی پایتون، فیلمنامه سریال کمدی "سیرک پرنده مونتیپایتون" را میخواند و تصمیم گرفت زبان جدید را پایتون بنامد. او پس از گذشت حدود دو دهه هنوز نقش خود را به عنوان تصمیم گیرنده اصلی درتعیین جهت توسعه پایتون حفظ کرده است و این نقش چنان پررنگ است که جامعه برنامهنویسان پایتون به وی لقب دیکتاتور مهربان داده است.
با وجود تاثیرپذیری از زبانهای دیگر، پایتون فرهنگ، استیل و دیدگاه خاص خود را در حل مسائل دارد. پایتون میکوشد سادگی در برنامهنویسی را حفظ کند و تا حد امکان به برنامهنویس در حل مسئله کمک کند. درک کد پایتون برای برنامهنویسانی که به این زبان آشنا نیستند آسان است. مهمترین اصل در برنامهنویسی پایتون این است: «از ساده ترین راهی که ممکن است به حل مساله منجر شود، استفاده کنید.»
از دیگر اصول مهم پایتون در اولویت قرار دادن درستی و وضوح برنامه نسبت به سرعت است. بخش بزرگی از کد مفسر پایتون و کتابخانههای استاندارد به شیوهای کاملا مستقیم نوشته شده و درک آن بسیار ساده است.
توسعه دهندگان کد پایتون مایل نیستند به بهای ناخوانا شدن کد یا پیچیده کردن آن سرعت مفسر را افزایش دهند. در گذشته برخی از برنامه نویسان پیشنهاد افزودن قطعه کدهای پیچیده ای را به منظور افزایش سرعت سیستم مطرح میکردند، اما این کار نگهداری از سیستم را دشوار میساخت. در این زبان، ساختارهای مسطح به ساختارهای تو در تو، ساختارهای ترکیبی به ساختارهای پیچیده و بیان مستقیم مفاهیم به بیان غیر مستقیم ترجیح داده می شود.
برخی از منتقدان پایتون آن را کند توصیف میکنند. با این حال در حل اکثر مسالههایی که با پایتون حل میشوند، سرعت نقش حیاتی ایفا نمیکند. از سوی دیگر با افزایش سرعت سخت افزار کامپیوتر به صورت نمایی، زبانهای برنامهنویسی منابع سختافزاری بیشتری در اختیار دارند. زمانی که سرعت در برنامهنویسی اهمیت پیدا میکند، برنامهنویسان از روشهای بهبود الگوریتمها یا تغییر ساختارهای داده استفاده می کنند. از جمله ترفندهای برنامه نویسان برای افزایش سرعت، پیادهسازی توابع وابسته به زمان توسط زبانهایی نظیر C است که سرعت بالاتری دارد. راهحل دیگر ترجمه کد پایتون به کد C با استفاده از ابزارهایی نظیر Cython یا بایت کد جاوا توسط Jython است. به این ترتیب، مهارت و تجربه برنامهنویس عامل موثری در افزایش سرعت برنامه است.
هرچند هنوز آموزش برنامه نویسی به دانشجویان مبتدی با یک زبان برنامهنویسی ساختیافته نظیر پاسکال، C، C++ یا جاوا آغاز میشود، پایتون دارای قابلیتهایی است که آن را به انتخاب مناسبی برای آموزش به مبتدیان تبدیل میکند. پایتون از دستورالعملی بسیار ساده و پایدار و کتابخانههای استاندارد بزرگ برخوردار است. از همه این مزایا که بگذریم، استفاده از پایتون در یک کلاس برنامهنویسی مبتدی به دانشجویان کمک میکند تا بر مفاهیم و تواناییهای مهم برنامهنویسی نظیر تحلیل مساله، طراحی الگوریتم مناسب برای حل مساله و طراحی نوعهای دادهای متمرکز شوند. سادگی دستورالعملهای پایتون سبب میشود دانشجویان در مدت زمان کوتاهتری با مفاهیم اولیه زبان نظیر حلقهها و توابع آشنا شوند. انتخاب پایتون به عنوان زبان اول، دانشجویان را قادر میسازد در اولین دوره برنامهنویسی مفاهیم پیشرفتهای همچون شیگرایی و اشیای ساخته شده توسط کاربر را به کار گیرند.
از دیگر موفقیتهای پایتون میتوان به تاثیر آن بر دیگر زبانهای برنامهنویسی و نیز پیادهسازی برخی پروژههای مهم با پایتون اشاره کرد. نسخههای مختلفی از لینوکس، که از مهمترین آنها میتوان به Red Hat اشاره کرد، تمام یا بخشی از نرمافزار نصب (installer) نرمافزارمدیریت سیستم خود را با استفاده از پایتون پیادهسازی کردهاند. از جمله شرکتهای بزرگی که از پایتون در پیادهسازی سیستمهای خود بهره میگیرند میتوان به گوگل، یاهو و نور و شعبده بازی صنعتی (Industrial Light and Magic) اشاره کرد.
پایتون به عنوان زبان اسکریپتنویسی در تعدادی از معروفترین نرم افزارهای پویا نمایی، گرافیک و بازیها مورد استفاده قرار گرفته است. نرمافزارهایی مانند Maya, Blender و GIMP از شناخته شده ترین کاربران پایتون هستند.
پایتون یکی از اجزای استاندارد در بسیاری از سیستم عاملها است. نسخههای مختلف لینوکس، NetBSD, OpenBSD و Mac OS X است.
کد پایتون در مجموع در مقایسه با دو زبان دیگر قابل درکتراست و به ویژه مدیریت دادههای ورودی توسط کاربر و یا دادههای خروجی به مراتب سادهتر است. این امر موجب استقبال گسترده برنامهنویسان واسط گرافیکی کاربر از پایتون شده است و بسیاری از این برنامهنویسان امروزه از پایتون بجای دیگر زبانها استفاده میکنند. با اینوجود، برای محاسبات پیچیده یا بزرگ هنوزدر درجه اول از C++ و سپس از جاوا استفاده میشود. گروهی از برنامهنویسان معتقدند که استفاده از پایتون در پروژههای برنامهنویسی بزرگ، سبب پیچیدگی کد میشود.
بهطور خلاصه میتوان گفت برنامهنویسی و توسعه کد با استفاده از پایتون سریع و آسان است. سیستم دینامیک آن قادر است به سادگی خطاهای برنامهنویسی را در زمان اجرا پیدا کند. توابع و کتابخانههای ارائه شده همراه با این سیستم بسیار غنی هستند و کتابخانههای کد باز نوشته شده توسط دیگر شرکتها، عملا هر نوع محاسباتی را ممکن میسازند. قابلیت حمل کدهای نوشته شده توسط پایتون نیز بسیار بالاست. در مقایسه با پایتون، کد نویسی با استفاده از++ C و جاوا نسبتا دشوار است. دیباگ کردن در C++ شبیه یک کابوس، اما در جاوا ساده است. سرعت هر دو زبان و بخصوص++ C از پایتون بالاتر است. کتابخانههای استاندارد جاوا بسیار گسترده ومفید هستند اما در++ Cاز این نظر محدودیتهای بزرگی وجود دارد. قابلیت حمل کد در C++ به مراتب کمتر اما در جاوا به مراتب بیشتر از پایتون است.
پایتون به توسعهدهندگان و برنامهنویسان اجازه میدهد پیشنهادهای خود برای افزایش قابلیتهای زبان را در وب سایتی که به همین منظور طراحی شده است ثبت کنند. برای ثبت پیشنهادهای جدید و مشاهده پیشنهادهای موجود میتوانید به نشانی زیر مراجعه کنید:
http://www.python.org/dev/peps/
پیشنهادهای جدید در لیست نامههای الکترونیکی به این نشانی مورد بررسی قرار میگیرد:
http://mail.python.org/mailman/listinfo/python-dev.
آوید افضل
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: