با مقالهی شگفتانگیز جان مککارتی از سال ۱۹۸۰ با عنوان «لیسپ – یادداشتهایی بر گذشته و آینده آن»، به بخشی جذاب از تاریخ علوم کامپیوتر سفر کنید. حتی در آن زمان که لیسپ ۲۱ سال از عمرش میگذشت، مککارتی، خالق این زبان، به دلایل ماندگاری آن و نیازهای آیندهاش فکر میکرد. این مقاله گواهی بر آیندهنگری اوست، زیرا مشاهداتش امروز نیز برای هر زبان برنامهنویسی با طول عمر بالا به طرز شگفتآوری معتبر است.
مککارتی استدلال میکرد که بقای لیسپ به این دلیل بود که «یک بهینه محلی تقریبی در فضای زبانهای برنامهنویسی» بود. به زبان سادهتر، لیسپ در هدف اصلی خود — محاسبات نمادین و هوش مصنوعی — آنقدر خوب بود که هیچ جایگزین برتر دیگری برای کنار زدنش ظهور نکرده بود. این زبان جایگاه بینظیر خود را پیدا کرده و در آن درخشیده بود. این یک درس قدرتمند در طراحی زبان است: پیدا کردن و تسلط بر یک حوزه خاص میتواند به طول عمر فوقالعادهای منجر شود.
با این حال، او از انتقاد ابایی نداشت. او اشاره کرد که لیسپ «کشتیچسبهایی انباشته کرده که باید تراشیده شوند.» این استعارهی زیبا به ویژگیهای اضافی، قابلیتهای قدیمی و سینتکسهای نامناسبی اشاره دارد که به مرور زمان در هر سیستم در حال تحولی جمع میشوند. او همچنین به این نکته اشاره کرد که «فرصتهای دیرینه برای بهبود نادیده گرفته شدهاند» و به طور خاص بر نیاز به نگهداری مشارکتی، به ویژه در ایجاد و نگهداری کتابخانههای برنامه، تأکید کرد. این فراخوانی برای یک اکوسیستم استاندارد و مدیریت بسته بود، دههها قبل از اینکه سیستمهایی مانند npm، PyPI یا Cargo به بخش مرکزی جریانهای کاری توسعه مدرن تبدیل شوند.
شاید آیندهنگرانهترین بخش، دیدگاه او در مورد صحت برنامه بود. مککارتی میدید که بنیاد ریاضیاتی قوی لیسپ، آن را به گزینهای اصلی برای اثبات صحت برنامهها با کمک کامپیوتر تبدیل کرده است. او میدانست که کارهای نظری بیشتری و «هموارسازی خود زبان» مورد نیاز است، اما به وضوح مسیر به سوی نرمافزار با تأیید رسمی را میدید — حوزهای که اکنون برای کاربردهای حیاتی در هوافضا، امور مالی و امنیت بسیار مهم است.
در یادداشتی که در سال ۱۹۹۹ اضافه شد، مککارتی ذکر کرد که این مقاله تقریباً به طور کامل با نظرات او پس از گذشت نزدیک به دو دهه مطابقت دارد. این موضوع نشان میدهد که این چالشها چقدر بنیادی هستند: مدیریت میراث گذشته، ساختن یک اکوسیستم مشارکتی، و بهرهبرداری از نقاط قوت نظری یک زبان، همگی تلاشهایی جاودانه در مهندسی نرمافزار هستند. این مقاله فقط در مورد لیسپ نیست؛ بلکه یک طرح کلی برای فکر کردن در مورد چرخه حیات هر فناوری است.
از منبع اصلی بیشتر بیاموزید: لیسپ – یادداشتهایی بر گذشته و آینده آن – ۱۹۸۰