موضوع مقاله: تاریخچه پایتون | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # تاریخچه پایتون | مقدمه: زبان ABC توانایی مدیریت استثناءها را داشت و همچنین رابط سیستم عامل آمیب نیز بود نقش مداوم فان روسوم (طراح اصلی پایتون) در تصمیم‌گیری پیرامون اهداف پایتون، باعث شد که انجمن پایتون به او لقب دیکتاتور خیرخواه جاویدان را بدهد. | ## بخش 1: تاریخچه پایتون | (اگرچه فان روسوم در ۱۲ ژوئیه ۲۰۱۸ از سمت خود کناره گرفت.) نام پایتون از نمایش تلویزیونی بی‌بی‌سی یعنی سیرک پرنده مانتی پایتان گرفته شده‌است. این نسخه قابلیت‌های جدید زیادی داشت، از جمله بازیافت حافظه با قابلیت شناسایی دور (علاوه بر مرجع شماری) برای مدیریت حافظه و پشتیبانی از یونی‌کد. اما مهمترین تغییر در خودِ روند توسعه بود که به سمت شفافیت بیشتر و پشتیبان‌گیری بیشتر از جامعه پیش می‌رفت. بسیاری از ویژگی‌های عمده آن نیز پیش‌انتقال شده‌است به نسخه‌های با سازگاری عقبرو، یعنی پایتون ۲٫۶ و ۲٫۷ که در حال حاضر دیگر پشتیبانی نمی‌شوند. در این نسخه یک سیستم پودمان (ماژول) وجود داشت که از ماجولا ۳ به عاریت گرفته شده بود؛ فان روسوم ماژول را به عنوان «یکی از واحدهای مهم برنامه‌نویسی پایتون» توصیف می‌کند. به دست آورد.» پایتون ۱٫۲ آخرین نسخهٔ پایتون بود که هنگام حضور فان روسوم در CWI منتشر شد. از ویژگی‌های جالب توجه در میان این اضافات می‌توان به الهام گرفتن از آرگومان‌های کلیدی ماژول-۳ (که خود آن از آرگومان‌های کلیدی لیسپ الهام گرفته شده بود) و پشتیبانی از اعداد مختلط اشاره کرد. همچنین اضافه شدن شکل ابتدایی نهان‌سازی اطلاعات به وسیلهٔ دستکاری نام، اگرچه به راحتی قابل دور زدن بود. (با سواد پایه ای خواندن و نوشتن زبان انگلیسی و سواد ابتدایی ریاضی مقایسه کنید که از ملزومات استخدام شدن توسط کار فرمایان است) پایتون در این پروژه نقش اصلی را ایفا می‌کرد: به دلیل تمرکز روی نحو تمیز، از قبل مناسب بود، و اهداف CP4E شباهت‌هایی با سلف خود، یعنی ABC داشت. این پروژه توسط دارپا سرمایه‌گذاری شداز سال ۲۰۰۷ پروژه CP4E غیرفعال شد، و با این حال پایتون تلاش می‌کند در نحو و معناشناسی خود به راحتی قابل یادگیری باشد و خیلی رازآلود نباشد، و برقراری ارتباط با غیر برنامه نویسان یک نگرانی فعال نباشد. | ## بخش 2: تاریخچه پایتون | CNRI درخواست کرد ورژن ۱٫۶ساخته شود، بدین ترتیب اعضای گروه توسعه دهندهٔ پایتون را به جایی رساند که CNRI را ترک کنند. نسخهٔ پایتون ۱٫۶ پروانهٔ CNRI جدیدی داشت که بسیار طولانی‌تر از پروانهٔ CWI بود (پروانهٔ CWI برای نسخه‌های قبلی استفاده شده بود). این پروانهٔ جدید دارای بندی بود که بیان می‌کرد پروانه تحت قوانین ایالت ویرجینیا اجرا شود. پایتون ۱٫۶٫۱ عمدتاً مشابه پایتون ۱٫۶ بود و تفاوت آن فقط در پروانهٔ سازگار با GPL جدید و رفع جند باگ جزئی بود. (به جز اینکه هسکل در کاراکترهای نشانه‌گذاری برتری داشت و پایتون در کلمات کلیدی الفبایی برتری داشت) پایتون ۲٫۰ همچنین سیستمی برای بازیافت حافظه با قابلیت جمع‌آوری دورهای مرجع نیز داشت. جواز آن به جواز مؤسسهٔ نرم‌افزار پایتون تغییر نام یافت؛ و تمام کدها، اسناد و مشخصاتی که از زمان انتشار نسخهٔ آلفای پایتون ۲٫۱ اضافه شده بودند را مؤسسه نرم‌افزار پایتون (PFS) دارا شد.سازمان غیرانتفاعی‌ای که در سال ۲۰۰۱ تشکیل شد و از بنیاد نرم‌افزار آپاچی الگو برداری کرده بود. تغییرات در این انتشار شامل تغییری در مشخص‌گری زبان(language specification) بود تا مانند دیگر زبان‌های دامنه ایستا، دامنه‌های تو در تو را پشتیبانی کند.(این ویژگی تا پیش از پایتون ۲٫۲ به‌طور پیش فرض خاموش بود و مورد نیاز نبود) پایتون ۲٫۲ در دسامبر ۲۰۰۱ منتشر شد.< تغییر عمده در پایتون ۲٫۲ یکسان‌سازی نوع‌های پایتون که به زبان C نوشته شده بودند و نوع‌هایی که به زبان پایتون نوشته شده بوند (کلاس‌ها) به یک سلسله مراتب بود. پایتون ۲٫۶ همزمان با پایتون ۳٫۰ منتشر شد و برخی از ویژگی‌های آن نسخه را نیز داشت، و از آن نسخه ویژگی اخطارها "warnings" اضافه شد که وظیفهٔ آن نشان دادن یک پیام اخطار هنگام استفاده از ویژگی‌های حذف شده در پایتون ۳ بود. به همین ترتیب، پایتون ۲٫۷ همزمان با پایتون ۳٫۱ در تاریخ ۲۶ ژوئن ۲۰۰۹ منتشر شد، از آن پس انتشار موازی نسخه‌های 2.x و 3.x پایتون متوقف شد و پایتون ۲٫۷ آخرین نسخه در سری 2.x بود. در نوامبر ۲۰۱۴ اعلام شد که پایتون ۲٫۷ فقط تا سال ۲۰۲۰ پشتیبانی می‌شود و کاربران تشویق می‌شوند هرچه سریع تر به پایتون ۳ مهاجرت کنندپشتیبانی از پایتون ۲٫۷ از اول ژانویه سال ۲۰۲۰ به پایان رسید. | ## بخش 3: تاریخچه پایتون | نسخه ۳ پایتون ۳٫۰ (که به آن پایتون ۳۰۰۰ و Py3k نیز گفته می‌شود) در ۳ دسامبر ۲۰۰۸ منتشر شد.این نسخه برای اصلاح نقایص اساسی طراحی شده‌بود - تغییرات مورد نیاز نمی‌توانستند با رعایت کامل سازگاری عقبرو با سری 2.x، انجام شوند همین موجب شد که به نسخه اصلی جدیدی نیاز باشد. اصل راهنمای پایتون ۳ چنین بود: «کاهش ویژگی‌های‌های تکرار شده به وسیلهٔ حذف روش‌های قدیمی انجام کار». با این حال از آنجایی که در پایتون روش‌های نو و زائد برای انجام یک کار مشخص انباشته شده بود پایتون ۳ بر حذف ساختارها و ماژول‌های تکراری مبادرت ورزید؛ و این کار را باتوجه به اصل «برای انجام این کار باید یک (ترجیها یک) روش آشکار وجود داشته باشد.» انجام داد. با این وجود، پایتون ۳٫۰ چند پارادایمی باقی ماند و کد نویسان همچنان می‌توانستند، از پارادایم‌های برنامه‌نویسی مختلفی مثل شیء گرا، ساخت یافته و تابعی پیروی کنند، اما در چنین حالتی که گزینه‌های گوناگونی وجود داشتند، مقرر شد جزئیات در پایتون ۳٫۰ واضح تر از آنچه در پایتون 2.x بود، باشد. ابزاری به نام "2to3" بخش‌هایی از ترجمه را که می‌توان به صورت خودکار انجام داد، انجام می‌دهد. در این مرحله، به نظر می‌رسید 2to3 نسبتاً موفق بوده‌است، هرچند که در یک بررسی اولیه، اشاره شد که جنبه‌هایی از ترجمه وجود دارند که چنین ابزاری هرگز قادر به انجام آن نیست.Ruby, Sam; , September 1, 2007 قبل از قدرت گرفتن پایتون ۳، پروژه‌هایی وجود داشتند که نیاز به سازگاری با هر دو سری 2.x و 3.x داشتند توصیه می‌شد که یک منبع (برای سری 2.x) داشته باشند و نسخه‌هایی را برای پلتفرم پایتون 3.x با استفاده از 2to3 ارائه دهند تا مدت‌ها ویرایش‌های مربوط به کد پایتون 3.x نادرست شمرده می‌شد زیرا لازم بود کد در پایتون 2.x اجرا شود. که این باعث مشود تغییر ماژول به منظور استفاده از یک تابع پرینت دیگر آسان‌تر شود و بنابراین نحو را قاعده مند تر می‌کند. در آن حالت تابع ورودی داده شده به جای این که یک عبارت در نظر گرفته شود یک رشته به عنوان خروجی می‌دهد. تغییر تابع تقسیم عدد صحیح: در پایتون ۲ ، 5 / 2 برابر 2 می‌شد ولی در پایتون ۳، 5 / 2 برابر 2.5 می‌شود. | ## جمع‌بندی | (در پایتون ۲ (۲٫۲ به بعد) و پایتون ۳، یک عملگر جداگانه برای نمایش نتیجهٔ قدیمی وجود دارد: 5 // 2 برابر 2 می‌شود) نسخه‌های بعدی سری Python 3.x امکانات بنیادین جدیدی داشتند.