نگاهی به مقاله کلاسیک ادسخر دیکسترا درباره خطای برنامهنویسی با زبان طبیعی (۱۹۷۸) — The foolishness of "natural language programming" (1978)
خلاصه
مقاله کلاسیک ادسخر دیکسترا در سال ۱۹۷۸ استدلال میکند که استفاده از زبان طبیعی برای برنامهنویسی تلاشی اشتباه است. او نمادهای صوری را به عنوان یک مزیت و ابزار پالایش تفکر میداند، نه یک مانع دستوپاگیر.
مقاله معروف و تاریخی ادسخر دیکسترا (Edsger W. Dijkstra) با عنوان «درباره حماقت برنامهنویسی با زبان طبیعی» که در سال ۱۹۷۸ نوشته شده است، یکی از عمیقترین نگاهها به ماهیت تعامل انسان و ماشین را ارائه میدهد. این مقاله با وجود قدمت بالای چهار دهه، در عصر ابزارهای هوش مصنوعی و مدلهای زبانی بزرگ (LLM) ارتباطی شگفتانگیز با مسائل روز توسعه نرمافزار پیدا کرده است.
زمینه و پیشزمینه تاریخی
از سالهای نخستین پیدایش رایانههای خودکار، همیشه افرادی وجود داشتند که از لزوم دقت و مراقبت سختگیرانه در برنامهنویسی ناراضی بودند. برنامهنویسی نیازمند استفاده از نمادهای صوری (formal symbolism) است و ماشینها دستورات را با سرسپردگی کورکورانه اجرا میکنند؛ حتی اگر آن دستورات حاوی خطایی آشکار باشند.
با گذر از کد ماشین به زبانهای سطح بالا، صنعت نرمافزار آموخت که چگونه از خطاهای احمقانه جلوگیری کند. ظاهر شدن پیامهای خطا به جای تولید پاسخهای اشتباه غلط، یک پیشرفت بزرگ بود. با این حال، ماشین همچنان یک اتوماسیون بیروح باقی ماند که دستورات را موبهمو اجرا میکند.
چرا زبان طبیعی برای برنامهنویسی مناسب نیست؟
ایده جذاب اما فریبندهای که همیشه مطرح شده این است: چرا به جای زبانهای برنامهنویسی سختگیرانه، از زبان مادری خود برای دستور دادن به ماشین استفاده نکنیم؟ دیکسترا این فرض را به چالش میکشد:
- توهم تقسیم کار: انتخاب یک رابط کاربری صرفاً تقسیم کار نیست؛ بلکه کار مربوط به همکاری و ارتباط در دو طرف مرز رابط نیز اهمیت دارد. تغییر به سمت زبان طبیعی لزوماً کار انسان را سادهتر نمیکند.
- تاریخچه ریاضیات: پیشرفت ریاضیات مدیون گذار از زبان گفتاری و مبهم به نمادهای صوری طراحیشده توسط افرادی مانند دکارت، لایبنیتس و بول است. ریاضیات یونانی و جبر اسلامی زمانی در بنبست قرار گرفتند که به سبکهای رتوریک و گفتاری تکیه کردند.
- ابهام ذاتی زبان طبیعی: زبان طبیعی سرشار از ابهام، گزارههای بیمعنی و وابستگی به زمینههای فرهنگی است که دوری از آنها در متنهای رسمی غیرممکن است. نمادهای صوری به کودکان دبستانی اجازه میدهند کارهایی را انجام دهند که در گذشته نیازمند سطح نبوغ بالایی بود.
نگاه جامعه هکرنیوز به این مقاله در عصر هوش مصنوعی
بازنشر این مقاله در هکرنیوز با واکنشهای زیادی روبهرو شده است، به ویژه از این رو که امروزه مدلهای هوش مصنوعی مدعی امکان برنامهنویسی با زبان طبیعی شدهاند. نکات برجسته از دید کاربران:
- هوش مصنوعی جایگزین کامپایلر نیست: کاربران اشاره میکنند که استعارهی «زبان انگلیسی به عنوان زبان سطح بالا» خطاست. مدلهای هوش مصنوعی جایگزین کامپایلرها نمیشوند، بلکه به نوعی جایگزین توسعهدهندگان میشوند و کدهای حاصل از آنها همچنان نیاز به بازبینی و دقت مهندسی دارد.
- نیاز به مشخصات دقیق (Specification): توسعه مبتنی بر پرامپت نیازمند جزئیات بسیار دقیق است و زبان طبیعی به تنهایی مملو از ظرایف پنهان است.
- هزینه پردازشی: ساخت برنامههای کاربردی صرفاً با زبان طبیعی نیازمند زیرساختهای عظیم پردازشی است تا بتواند نتایجی نیمهآماده تولید کند.
چرا این مقاله برای مهندسان اهمیت دارد؟
این نوشتار به مهندسان یادآوری میکند که دقت در نمادها و سیستمهای صوری یک «امتیاز» بزرگ است، نه یک بار اضافی. اصرار بر استفاده از زبانهای صوری به این دلیل است که ابزاری فوقالعاده مؤثر برای حذف انواع مزخرفات و ابهاماتی هستند که در زبانهای طبیعی به وفور یافت میشوند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل