زبانهای داینامیک واقعاً برای LLM ارزونترن؟
خلاصهٔ کاملتر
نویسندهٔ وبلاگ، دن لو، سراغ ادعایی رفته که این روزها زیاد نقل میشه: زبانهای داینامیک و فشرده برای کار با LLM «توکنکارآمدتر»ن. منبع اصلی این ادعا یه پست پرارجاعه که فاصلهٔ ۲.۶ برابری بین C و Clojure رو گزارش کرده و بعدتر زبان آرایهای J رو با میانگین ۷۰ توکن قهرمان معرفی کرده. حتی خلاصههای هوش مصنوعی گوگل هم همین رو تکرار میکنن.
ایراد اصلی به گفتهٔ نویسنده اینه که اون آزمونها روی مسئلههای بیاهمیت (تمرینهای Rosetta Code) اجرا شدن؛ مسئلهای که تو ۷۰ توکن حل میشه اصلاً مسئله نیست، و عملکرد روی کارهای بدیهی به کارهای واقعی تعمیم پیدا نمیکنه. تو بنچمارک دومی هم که همین نتیجه رو تأیید میکرد، یه خرابی محیطی باعث شده تستها فایل اجرایی اشتباه رو صدا بزنن؛ یعنی شکستهای Rust نتیجهٔ همون خرابی بوده، نه سختی زبان.
برای همین خودش دو ارزیابی بزرگتر ساخته: تو اولی به ایجنتها RFC فرمت zstd رو داده و ازشون خواسته یه دیکودر کامل بنویسن (بدون دسترسی به تستها و اینترنت)، و تو دومی مواد بنچمارک Pandoc رو داده و نتیجه رو با یه مجموعه تست کنارگذاشتهشده سنجیده. تو تلاش متوسط (medium) خوشهٔ زبانهای داینامیک کمی جلوتره، ولی تو تلاش بالا (ultra) نتیجهها قاطی میشن و چند زبان استاتیک بهترین جایگاه رو میگیرن.
چیزی که واقعاً تکرار میشه برتری زبانهای محبوبه: تو هر دو ارزیابی همبستگی ضعیف تا متوسطی بین محبوبیت زبان و درستی بیشتر و هزینهٔ کمتر دیده میشه، و در مقابل زبانهای مهجور و اسمبلی بد جواب میدن. مثلاً Clojure تو zstd بهخاطر خطای تبدیل byte برای بازهٔ ۱۲۸ تا ۲۵۵ پشتسرهم شکست میخورد. با این حال نویسنده تأکید میکنه با دو تسک نمیشه دربارهٔ یه زبان خاص حکم داد؛ این دادهها فقط ادعاهای قوی رو رد میکنن.
نکات کلیدی:
- ادعای «داینامیک یعنی توکن کمتر» فقط روی مسئلههای خیلی کوچک دیده میشه
- تو دو ارزیابی بزرگتر (zstd و Pandoc) نه استاتیک نه داینامیک برتری روشنی نداره
- زبانهای مهجور و اسمبلی بهطور مشخص بدتر جواب میدن
- تنها الگوی پایدار: زبان محبوبتر، نتیجهٔ درستتر و ارزونتر
- تو یه آزمایش جانبی، یک اجرای ultra از تکرار medium تو حلقه بهصرفهتر بود




