۱۱ آبان ۱۴۰۵ github.com ۳ دقیقه مطالعه

معرفی SOML؛ فرمت پیکربندی جدیدی که تلاش می‌کند حد وسط JSON و YAML باشد

معرفی SOML؛ فرمت پیکربندی جدیدی که تلاش می‌کند حد وسط JSON و YAML باشد — SOML – A Config Format for Humans

خلاصه

پروژه SOML یک فرمت پیکربندی جدید و خوانا برای انسان است که تلاش می‌کند سادگی و قابلیت کامنت‌گذاری YAML را با دقت و ساختار سخت‌گیرانه JSON ترکیب کند. این زبان طراحی شده تا از حدس زدن خودکار نوع داده‌ها جلوگیری کند و انواع داده‌ای بومی مانند تاریخ و بازه‌های زمانی را پشتیبانی کند.

توسعه‌دهندگان نرم‌افزار سال‌هاست که بین انتخاب فرمت‌های پیکربندی مختلف مانند JSON، YAML و TOML در گیر هستند. هر کدام از این گزینه‌ها مزایا و معایب خود را دارند؛ مثلاً JSON از کامنت پشتیبانی نمی‌کند و پر از کاراکترهای اضافی است، در حالی که YAML به خاطر حدس زدن خودکار نوع داده‌ها و مشکلات تورفتگی گاهی دردسرساز می‌شود. اکنون پروژه جدیدی به نام SOML (مخفف Sindre's Objectively Marvelous Language) معرفی شده است که تلاش می‌کند مشکلات این فرمت‌ها را برطرف کند.

پروژه SOML چیست و چه مشکلی را حل می‌کند؟

هدف SOML ارائه یک فرمت داده برای فایل‌هایی است که انسان‌ها آن‌ها را می‌خوانند و می‌نویسند. این زبان در واقع همان ساختار درختی اشیاء و آرایه‌ها را در JSON حفظ می‌کند، اما سر و صدای اضافی (مانند کاماها و آکولادهای اجباری در سطح بالا) را حذف کرده و امکان درج کامنت را فراهم می‌کند. مهم‌ترین قاعده در طراحی SOML این است که نوع داده هر مقدار از روی سینتکس آن مشخص می‌شود و هرگز به محتوای آن وابسته نیست؛ بنابراین '123' یک رشته و 123 یک عدد صحیح است و ابهامی وجود نخواهد داشت.

ویژگی‌های کلیدی فنی

  • بدون ابهام در نوع داده: مقادیر بدون نقل‌قول یا باید عدد باشند، یا تاریخ، بازه زمانی (Duration)، کلمات کلیدی یا بوولین؛ در غیر این صورت فایل دارای خطا خواهد بود. مثلاً مقدار country: no به جای تبدیل شدن به false، یک خطای ساختاری اعلام می‌کند.
  • پشتیبانی از مقادیر زمانی بومی: تاریخ‌ها (مانند 2026-09-19)، لحظات دقیق (2026-09-19T14:00:00Z) و بازه‌های زمانی (1m30s) مقادیر واقعی و اول‌دسته در زبان هستند.
  • رشته‌های بلوکی و تحت‌اللفظی: مسیرهای فایل و عبارت‌های باقاعده (Regex) نیازی به Escape کردن ندارند و رشته‌های بلوکی چندخطی به راحتی قابل نوشتن هستند.
  • فرم متعارف (Canonical Form) و Suite انطباق: مقادیر مساوی در این فرمت، بایت‌های یکسانی تولید می‌کنند که برای هش کردن و امضا کردن عالی است. همچنین یک مجموعه‌تست یا conformance suite شامل نزدیک به ۱۰۰۰ کیس مختلف تضمین می‌کند که همه مفسرها فایل را به یک شکل بخوانند.
  • دقت عددی: اعداد صحیح دقیقاً ۶۴ بیتی هستند و اعداد اعشاری و صحیح از یکدیگر تفکیک شده‌اند.

چرا این پروژه روی هکرنیوز مورد توجه قرار گرفت؟

این مخزن گیت‌هاب که با مجوز MIT منتشر شده، اخیراً در Hacker News مورد بحث قرار گرفته است. جامعه توسعه‌دهندگان نظرات جالبی درباره آن مطرح کرده‌اند:

  • برخی کاربران با لحنی طنزآمیز به سبک نگارش مستندات اشاره کردند و پرسیدند که آیا متن‌ها توسط هوش مصنوعی تولید شده‌اند یا خیر.
  • برنامه‌نویسانی از نقص‌های احتمالی مانند مشخص نبودن دقیق نوع اعشاری (Double vs Decimal) و عدم پشتیبانی از ساختارهای پیچیده‌تر مانند Unionهای برچسب‌دار یا الگوهای فراخوانی تابع انتقاد کردند.
  • برخی دیگر آن را مشابه فرمت‌های قدیمی‌تر مانند INI یا نسخه‌های ساده‌شده‌ای از زبان CUE دانستند و پرسیدند چرا توسعه‌دهندگان نباید مستقیماً از ابزارهای موجود استفاده کنند.

در یک نگاه

  • نام مخزن: soml-lang/soml
  • وضعیت: پیش‌نویس مشخصات (Draft Spec)
  • مجوز: MIT
  • تمرکز اصلی: خوانایی بالا برای انسان، ساختار سخت‌گیرانه، حذف ابهام نوع داده‌ها و پشتیبانی از کامنت و زمان‌سنجی‌ها

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

خبرهای فناوری در قالب پست و ویدیوی کوتاه، در اینستاگرام هکرنیوز بلاگ. به‌زودی
هر خبر به محض انتشار، به‌همراه پادکست روزانه در کانال تلگرام هکرنیوز بلاگ.