زبان برنامه نویسی Crystal 1.0 در دسترس است


زبان برنامه نویسی Crystal 1.0 منتشر شده است. این نسخه به عنوان اولین نسخه قابل توجه علامت گذاری شده است که نتایج 8 سال کار را خلاصه می کند و ثبات زبان و آمادگی را برای استفاده در پروژه های تولیدی نشان می دهد. شاخه 1.x سازگاری به عقب را حفظ می کند و اطمینان حاصل می کند که هیچ تغییری در زبان و کتابخانه استاندارد ایجاد نمی کند که بر ایجاد و عملکرد کد موجود تأثیر منفی بگذارد.

نسخه 1.0.y فقط شامل اصلاحات اصلاحی است و نسخه های 1.x.0 با حفظ سازگاری کد ، عملکرد جدید و تغییرات قابل توجهی را ارائه می دهند. ایده های جدید و تغییرات بالقوه ناسازگار در شاخه جداگانه ای توسعه می یابد که بر اساس آن نسخه Crystal 2.0 در آینده شکل می گیرد. برخی از ویژگی های Crystal 1.0 به عنوان اولیه اعلام شده اند ، و اگرچه در شاخه 1.0 هستند ، اما به طور رسمی پشتیبانی نمی شوند. از جمله این ویژگی ها می توان به موضوع تک رشته ای ، کار بر روی سیستم عامل ویندوز ، استفاده در سیستم های دارای پردازنده ARM اشاره کرد.

به یاد بیاورید که توسعه دهندگان Crystal در تلاشند راحتی برنامه Ruby و عملکرد بالای C را با هم ترکیب کنند. نحو کریستال نزدیک به Ruby است ، اما با وجود اینکه برخی از برنامه های یاقوت بدون تغییر اجرا می شوند ، کاملاً با آن سازگار نیست. کد کامپایلر در Crystal نوشته شده است و تحت مجوز Apache 2.0 مجوز دارد.

این زبان از بررسی نوع استاتیک استفاده می کند که بدون نیاز به مشخص کردن صریح انواع متغیرها و آرگومان های روش در کد ، اجرا می شود. برنامه های کریستال با ارزیابی کلان و تولید کد در زمان کامپایل در فایلهای اجرایی وارد می شوند. در برنامه های به زبان Crystal ، اتصال اتصالات نوشته شده به زبان C مجاز است. موازی سازی اجرای کد با استفاده از کلمه کلیدی "spawn" انجام می شود ، که به شما امکان می دهد یک کار پس زمینه را همزمان و بدون مسدود کردن موضوع اصلی ، به صورت رشته های سبک به نام الیاف (فیبر) شروع کنید.

کتابخانه استاندارد مجموعه بزرگی از توابع عمومی را شامل می شود ، از جمله ابزارهایی برای مدیریت CSV ، YAML و JSON ، اجزای ساخت سرورهای HTTP و پشتیبانی از WebSocket. در طول فرآیند توسعه ، استفاده از دستور "بازی بلوری" که تولید یک رابط وب (به طور پیش فرض localhost: 8080) برای اجرای تعاملی کد در زبان Crystal ، راحت است.

تغییرات عمده:

  • دسترسی نمایه شده به عناصر از انواع مختلف در tup مجاز است ، زیرا کامپایلر اطلاعاتی در مورد نوع هر نوع دارد. برای مثال:
    
        tuple = {1 ، "سلام" ، "x"}
       v = tuple [0..1] # بازگردانده می شود {1 ، "سلام"}
       typeof (v) # => Tuple (Int32 ، String)
    
  • استفاده از اختصارات جایگزین در توالی فرار یونیکد مانند " uD834" در حروف الفبا و رشته ها ممنوع است.
    برای رمزگذاری مقادیر دلخواه ، از علامت " x" استفاده کنید.

  • بخش عمده ای از تعاریف ، ماکروها و روشهای قبلاً منسوخ را در کتابخانه استاندارد حذف کرد. از جمله روش های Set ، StaticArray # [] ، YAML.new ، HTTP :: Request ، HTTP :: WebSocket ، Hash # delete_if ، Process # kill و غیره
  • نوع بازگشت اکنون باید در ماکروهای گیرنده و ویژگی مشخص شود.
  • روش گرد کردن پیش فرض به TIES_EVEN ("گرد کردن بانکدار" ، به نزدیکترین عدد صحیح و برای موقعیت های مرزی به نزدیکترین عدد زوج) تغییر یافته است. پارامتر RoundingMode به شماره # دور اضافه شده است ، به شما امکان می دهد روش گرد کردن را انتخاب کنید. روش های موجود عبارتند از: TIES_EVEN ، TIES_AWAY ، TO_ZERO ، TO_POSITIVE ، TO_NEGATIVE.
  • # نقشه_ مسطح و تعداد تکرار # نقشه_ مسطح قابل شمارش در مجموعه هایی با عناصر انواع مخلوط پشتیبانی می شوند.
  • اکنون در هنگام سریال سازی دنباله های Enum از نمایش رشته های زیرخط دار استفاده می شود.
  • انواع تعریف شده در ماژول XML از استفاده به ساختار به کلاس تبدیل می شوند.
  • به دلایل امنیتی ، رمزگشایی نام کوکی ها و همچنین رمزگذاری و رمزگشایی مقادیر کوکی (رمزگذاری مجدد به دوش چارچوب ها و برنامه ها است) متوقف شد. روش HTTP :: Cookies.from_headers به ​​دو گزینه برای سرورها و کلاینت ها تقسیم شده است.

OpenNET


نظر شما