۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

F# 6 مایکروسافت کارایی و سهولت را افزایش می دهد

اهداف طراحی نسخه جدید ساده‌تر، کارآمدتر کردن، یادگیری آسان‌تر، و یکنواخت‌تر کردن و سازگاری بیشتر با سایر زبان‌های دات‌نت بود.

اهداف طراحی نسخه جدید ساده‌تر، کارآمدتر کردن، یادگیری آسان‌تر، و یکنواخت‌تر کردن و سازگاری بیشتر با سایر زبان‌های دات‌نت بود.

F# 6، ارتقاء به زبان برنامه نویسی متن باز، چند پارادایم مایکروسافت، اکنون به عنوان بخشی از .NET 6 به طور رسمی در دسترس است. مایکروسافت گفت که نسخه جدید این نوید را می دهد که نوشتن کد مختصر و عملکردی را آسان تر کند.

.NET 6 به طور رسمی در ۸ نوامبر رونمایی شد. F# 6 همچنین با .NET 6  Release Candidate 2 و Visual Studio 2022 RC2. F# از چندین مدل برنامه نویسی از جمله عملکردی، شی گرا و امری پشتیبانی می کند.

با F# 6، توسعه دهندگان پروژه قصد داشتند زبان را در زمینه هایی از جمله طراحی زبان، کتابخانه و ابزار ساده تر و کارآمدتر کنند. هدف از تکامل بلندمدت زبان حذف مواردی است که کاربران را غافلگیر می کند یا موانع غیرضروری برای پذیرش است.

سرعت و قابلیت همکاری در F# 6 با قابلیت task {…} برای ایجاد یک کار و انتظار آن پرداخته می شود. یکی از ویژگی‌های درخواستی برای F# و مهم‌ترین ویژگی فنی در F# 6، ساده‌تر کردن، کارایی بیشتر و سازگار کردن کارهای ناهمزمان با سایر زبان‌های NET مانند C# بوده است.

نقد و بررسی: Appsmith برای توسعه کم کد با بودجه می درخشد

قبل از این نسخه، ایجاد وظایف .NET با استفاده از async {…}  برای ایجاد یک کار و سپس فراخوانی Async.AwaitTask لازم بود. اکنون می توان از task {…} مستقیماً برای ساختن یک کار استفاده کرد. پشتیبانی داخلی برای task {…} در کد F# بدون نیاز به باز کردن فضاهای نام موجود است. پشتیبانی از کار برای F# 5 از طریق کتابخانه های TaskBuilder.fs و Ply در دسترس بود. اینها طراحی پشتیبانی وظیفه را در F# 6 هدایت کردند.

در جای دیگر F# 6:

  • الگوی کنسول F# 6 ساده شده است. الگوی جدید دو خط است:
       // برای اطلاعات بیشتر به https://aka.ms/fsharp-console-apps
       printfn "Hello from F#" مراجعه کنید.
  • برای یکنواختی، F# 6 به _ اجازه می دهد تا در پیوند use استفاده شود.
  • برای ساده‌تر کردن F#، این پروژه به نحو expr[idx] برای تقلید از نمایه ساز/برش نحو.
  • برای سریع‌تر کردن زبان، F# 6 از نمایش‌های ساختاری برای الگوهای فعال، به توسعه‌دهندگان اجازه می‌دهد تا از یک ویژگی برای محدود کردن یک الگوی فعال جزئی برای بازگرداندن یک گزینه مقدار.
  • برای سرعت، F# 6 عملکرد بهبود یافته ای را برای اشکال زدایی عبارات لیست و آرایه ارائه می دهد. همچنین برای سرعت، یک ویژگی اعلانی جدید اضافه شده است که به کد اجازه می‌دهد به صورت اختیاری نشان دهد که آرگومان‌های لامبدا باید در سایت‌های تماس خطی شوند.
  • پشتیبانی «کلاس اول» برای تبدیل‌های ضمنی به سبک NET ارائه می‌شود. در F# 6، تبدیل‌های op_Implicit به‌طور خودکار برای عبارات آرگومان در صورت در دسترس بودن اعمال می‌شوند و انواع برای عبارت منبع و نوع هدف شناخته می‌شوند.
  • اشکال‌زدایی خط لوله در زنجیره ابزار F# اضافه شده است.
  • برای یکنواختی، F# 6 ویژگی “عملیات سفارشی بیش از حد در عبارات محاسباتی” را فعال می کند، که امکان DSL های ساده تر را در F#، از جمله اعتبارسنجی و برنامه نویسی وب، فراهم می کند. همچنین برای یکنواختی، سمت راست یک الگوی “as” اکنون خود می تواند یک الگو باشد، و تعدادی از ناسازگاری ها و محدودیت ها در استفاده F# از نحوه ی تورفتگی آگاه. یکنواختی نیز با انواع عددی اضافی با حاشیه نویسی واحد افزایش یافته است.
  • برای عملکرد و مقیاس‌پذیری، در زمینه‌هایی مانند کامپایلر، که اکنون مرحله تجزیه را به صورت موازی انجام می‌دهد، و در نتایج تجزیه و تحلیل که اکنون همزمان انجام می‌شود، بهبودهایی انجام شده است.
  • توسعه‌دهندگان F# از پیشرفت‌های NET 6 مانند ساخت منبع بهره خواهند برد تا قوانین بسته‌بندی را برآورده کنند. توزیع‌های لینوکس متداول و بهینه‌سازی هدایت‌شده نمایه، که می‌تواند راه‌اندازی را کامپایل کند کد با کیفیت بالاتر، اندازه باینری را کاهش دهید، و باینری های برنامه را دوباره مرتب کنید تا کدهای مورد استفاده در هنگام راه اندازی در نزدیکی ابتدای فایل قرار بگیرند.
  • ارجاع بین پروژه ای در حافظه کار بین پروژه های F# و C# را ساده می کند. با این قابلیت، پروژه های C# اکنون بلافاصله در یک پروژه F# بدون نیاز به کامپایل مجدد پروژه C# روی دیسک منعکس می شوند.
  • اگر توسعه دهندگان یک اسکریپت F# (.fsx) را در ویژوال استودیو باز کنند، به طور پیش فرض اسکریپت با استفاده از NET Core با اجرای ۶۴ بیتی اجرا می شود.
  • استفاده از عملگرهای نمادین به ندرت استفاده شده کاهش یافته است. ویژگی‌های قدیمی منسوخ حذف شده‌اند، مانند چندین پارامتر عمومی با استفاده از یک نام نوع پسوند.
توسعه دهندگان بیشتری از زبان Rust استفاده می کنند