مفهوم Backward compatibility

تو دنیای نرم‌افزار و سخت‌افزار مفهومی تحت عنوان backward compatibility وجود داره . این مفهوم زمانی رخ میده که یک ورژن جدید از سخت افزار یا نرم افزار میتونه با ورژن های قدیمی تر خودش سازگار باشه و بتونه از ورژن های قدیمی تر خودش استفاده کنه . به عبارت دیگر، زمانی که تو ساخت یک محصول نرم‌افزاری یا سخت‌افزاری، از فناوری یا ویژگی جدیدی استفاده بشه و سیستم بتونه با ورژن جدید مثل ورژن قبلی و بدون مشکل کار کنه ، اصطلاحا میگن که این ورژن Backward Compatible هست . نقطه مقابل اون هم Backward Incompatible هست و زمانی رخ میده که ورژن فعلی با ورژن قبلی خودش ناسازگار باشه و این باعث بروز خطا و مشکلاتی بین اون دو ورژن از سخت‌افزار یا نرم‌افزار میشه .

مثال :

USB 3.0

برای درک این مفهوم اکثرا USB 3.0 رو مثال میزنن ، این پورت همون پورت آبی رنگی است که امروزه روی اکثر دستگاه های جدید دیده میشه .

این نسخه از USB ها از سرعت انتقال اطلاعات بالاتری نسبت به ورژن قبلی یعنی USB 2.0 برخوردارند .

اما نکته‌ای که اینجا باید بهش توجه کنیم اینه که پورت های USB 3.0 علاوه بر ساپورت کردن فلش‌ها ، کیبورد‌ها ، موس‌ها و دستگاه‌های USB 3.0 ، ورژن قبلی خودش یعنی USB 2.0 رو هم ساپورت می‌کنه.
به زبان ساده‌تر اگه ما فلش‌های USB 2.0 رو به پورت های USB 3.0 روی سیستم خودمون بزنیم ، کامپیوتر فلش رو تشخیص میده .

پس اینجا میگیم که USB 3.0 قابلیت Backward Compatibility داره .




یا مثال دیگه اینه که زمانی که PlayStation 5 به بازار عرضه شد ، قابلیتی رو همراه خودش عرضه کرد که خیلی سروصدا به‌پا کرد . اون زمان می‌گفتند این نسخه از کنسول های Sony قابلیت
Backward Compatibility رو همراه خودش عرضه کرده ، در واقع شما با این کنسول حتی میتونستید بازی های نسخه قبل یعنی PlayStation 4 رو تجربه کنید .

یا مثلا نرم‌افزار Word 2022 قابلیت کارکردن با فایل های ساخته شده توسط Word 2007 و ... رو داره .
فتوشاپ هم همینطور .
یا مثلا اکثر برنامه های نوشته‌شده برای Windows 8 روی Windows 10 هم قابل اجراست .
و هزاران مورد این چنینی که اگه دور‌ و بر خودمون رو با دقت نگاه کنیم متوجه انواع و اقسام Backward Compatibility ها میشیم .


خب تا اینجا فکر میکنم که این مفهوم رو کاملا متوجه شده باشید ، پس مثال بیشتر نمیزنم و اگر علاقه‌مند بودید می‌تونید مثال‌های بیشتری رو تو اینترنت پیدا کنید .
در آخر هم باید بگم که به‌زودی میخوایم سراغ مبحثی تحت عنوان Semantic Versioning بریم و این مفهوم Backward Compatibility پیش‌نیازی برای اون بحث هستش .

سخن پایانی :

اگه پینشهاد یا انتقادی دارید خوشحال میشم که من رو در جریان بزارید .

ممنون از وقتی که گذاشتید 💖🙏