کریستال 0.34.0 منتشر شد

نسخه جدیدی از Crystal منتشر شده است، یک زبان برنامه نویسی کامپایل شده با سینتکس Ruby، که ویژگی های اصلی آن زمان اجرا با حلقه رویداد داخلی است، که در آن تمام عملیات ورودی/خروجی ناهمزمان هستند، پشتیبانی از multithreading (تا زمانی که همانطور که توسط یک پرچم در طول کامپایل فعال می شود) و عملیات بسیار ساده و راحت با کتابخانه ها در C.

با شروع نسخه 0.34.0، زبان رسماً شروع به حرکت به سمت اولین نسخه واقعی خود می کند (یعنی نسخه 1.0).

نسخه جدید Crystal شامل تغییرات و بهبودهای زیر به ترتیب اهمیت است:

  • یک کتابخانه ورود به سیستم جدید به API اضافه شده است ورود، که بر خلاف نسخه قدیمی، می تواند پیام ها را به باطن های مختلف ارسال کند و بسته به "منبع" این پیام ها را به طور متفاوتی فیلتر کند.

  • مقدماتی از دنیای توسعه C، ارنو и WinError، که برای I/O اولیه استفاده می شود، به لطف سلسله مراتب استثنایی به گذشته تبدیل شده است. IO:: خطا (با این حال، هیچ کس استفاده از Errno را هنوز ممنوع نکرده است).

  • جایگزینی خودکار else nil از اپراتور حذف شد مورد/وقتی/دیگر. این کار به منظور جلوگیری از پرش تصادفی یکی از شاخه ها توسط توسعه دهنده انجام می شود. چه زمانی هنگام تطبیق در موارد قطعی مانند enums و عبور از انواع از Union. یعنی به زبان ساده این کد بدون مشخص کردن کد دیگر دیگر کار نخواهد کرد چه زمانی (هنگامی که Char) یا وظایف دیگر-شاخه ها:

a = 1 || 'x' || "فو"
مورد الف
زمانی که Int32
#…
هنگامی که رشته
#…
پایان

  • گزینه کامپایلر disable_overflow دیگر در دسترس نیست. برای عملیات سرریز، از روش های &+، &-، &* استفاده کنید.

  • آرایه#پر اکنون به لطف جایگزین کردن حلقه احمقانه با یک ممست ساده، سریعتر از یک گلوله پرواز می کند.

  • مدیر قطعات (بسته ها)، به طور متناقض، نامیده می شود، خرده ریز، اکنون از الگوریتم رضایت وابستگی سریعتر و کارآمدتر Molinillo که در CocoaPods (Swift) و Builder (Ruby) یافت می شود استفاده می کند.

  • پشتیبانی اضافه شد LLVM 10که در تئوری باعث افزایش بهره وری، ثبات و غیره می شود.

... و بسیاری دیگر، به نظر ذهنی من، پیشرفت های کمتر قابل توجه.

من می خواهم توجه داشته باشم که Crystal یک زبان ساخته شده بر روی LLVM است که به شما امکان می دهد برنامه ها را گاهی سریع تر، ساده تر و مختصرتر از "برادران" تفسیر شده خود بنویسید و در عین حال یک باینری نسبتاً سریع در نتیجه دریافت کنید. در مقایسه با Golang، به دلیل OOP کاملاً کامل، پشتیبانی از ژنریک و نحو بسیار ساده و قابل فهم آن متمایز است. هدف آن تا حد زیادی شبیه به Nim است، اما در عین حال به وضوح بر استفاده عملی "اینجا و اکنون" متمرکز است، که به لطف آن در زرادخانه API خود بسیاری از ابزارهای مستند، راحت و با کیفیت بالا را دارد که توسط توسعه دهندگان زبان و بنابراین بسیار پایدار است.

منبع: linux.org.ru

اضافه کردن نظر