عملکرد نسخه F# 6 مایکروسافت بهبود می یابد

چهارشنبه 17 آذر 1400

نسخه F# 6 دارای ویژگی های جدیدی است و به میزان زیادی بهبود پیدا کرده است، در این مطلب درباره برخی از ویژگی های نسخه 6 F# صحبت خواهیم کرد.

 عملکرد نسخه F# 6 مایکروسافت بهبود می یابد

نسخه 6 F# ارتقا پیدا کرده است و این زبان که یک زبان برنامه نویسی متن باز و multi-paradigm بود امروزه بعنوان بخشی از دات نت 6 شناخته می شود و به صورت رسمی جزئی از آن است. مایکروسافت گفته است نسخه جدید این زبان بسیار بهینه تر بوده و عملکرد آن نیز به میزان زیادی بهبود یافته است.

دات نت 6 به صورت رسمی در تاریخ 8 نوامبر رونمایی شد. در همین رونمایی پیش نمایشی از نسخه 6 F# نیز رونمایی شد. در خصوص زبان برنامه نویسی F# باید بدانید که این زبان از چندین مدل برنامه نویسی از جمله مدل های فانکشنال، شی گرا و imperative پشتیبانی می کند.

ما در این مطلب قصد داریم کمی بیشتر درباره نسخه 6 F# صحبت کنیم و اطلاعاتی را در اختیار شما قرار دهیم.

آشنایی با نسخه 6 F#

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

در نسخه های قبلی از این زبان برنامه نویسی برای انجام این وظایف شما ابتدا باید async {…} استفاده می کردید تا یک وظیفه را ایجاد کرده و سپس Async.AwaitTask را فراخوانی می کردید. در نسخه جدید شما می توانید از دستور task {…} به تنهایی برای ایجاد یک وظیفه جدید استفاده کنید. نکته دیگری که در نسخه 6 F# باید به آن دقت داشته باشید این است که دستور task {…} به صورت داخلی به این زبان اضافه شده است و دیگر نیازی نیست که namespaces را باز کنید.

ویژگی های اولیه نسخه جدید F#

قالب کنسول برای نسخه 6 F# به میزان زیادی ساده تر شده است. قالب جدید تنها شامل دو خط به شکل زیر است:

For more information see https://aka.ms/fsharp-console-apps //

   printfn "Hello from #F"

از دیگر ویژگی های مهم این نسخه از زبان F# می توان به موارد زیر اشاره کرد:

-          برای یکنواختی بیشتر این زبان به شما اجازه می دهد تا از " _" در زمان بایند کردن use استفاده کنید.

-          برای این که یادگیری این زبان برنامه نویسی ساده تر شود پروژه به شما اجازه می دهد تا سینتکس expr[idx] از سینتکس indexer/slicing تقلید کند.

ویژگی های عملکردی نسخه جدید F#

-          برای سریع تر کردن این زبان در نسخه جدید از نمایش های ساختاری و Struct برای الگوهای فعال استفاده می شود و توسعه دهندگان می توانند از یک ویژگی برای محدود کردن یک الگوی فعال جزئی استفاده کنند.

-          یک ویژگی دیگر که برای افزایش سرعت به نسخه 6 F# اضافه شده است یک عملکرد بهبود یافته برای دیباگ کردن عبارت هایی است که شامل لیست یا آرایه هستند. علاوه بر این برای افزایش سرعت یک ویژگی اعلانی جدید نیز اضافه شده است که به کدهای شما اجازه می دهد تا به صورت اختیاری نشان دهند که آرگومان های lambda باید در چه موقعیت هایی قرار گیرند.

-          پشتیبانی “First-class” برای تبدیلات ضمنی .NET-style پیشنهاد شده است. در نسخه جدید این زبان برنامه نویسی تبدیل های op_Implicit به طور خودکار برای عبارت های آرگومانی اعمال شده است. البته این ویژگی زمانی اعمال می شود که آنها در دسترس بوده و نوع آنها نیز شناخته شده باشد.

ویژگی های کاربردی نسخه 6 F#

-          قابلیت دیباگ Pipeline به مجموعه ابزارهای نسخه جدید F# اضافه شده است.

-          برای یکنواختی و سازگاری بیشتر نسخه 6 F# ویژگی overloaded custom operations in computation expressions یا همان عملیات های بیش از سفارشی سازی شده در عبارت های محاسباتی را فعال کرده است. این ویژگی به شما اجازه می دهد تا از DSL های ساده تر در F# استفاده کرده و از مزایای آنها برای اعتبارسنجی و برنامه نویسی وب بهره مند شوید. علاوه بر این سمت راست یک الگوی as در این نسخه به عنوان یک الگوی مستقل شناخته می شود و همچنین برخی از محدودیت ها و ناسازگاری هایی که در این زمینه در F# وجود داشت نیز در نسخه جدید حذف شده است.

-          برای مقیاس پذیری و عملکرد بهتر این نسخه از زبان برنامه نویسی F# بهبودهایی در کامپایلر نسخه 6 F# انجام شده است و در حال حاضر مرحله تجزیه در این کامپایلر به صورت موازی انجام می شود.

سایر ویژگی های مهم نسخه 6 F#

از دیگر ویژگی های کلیدی و بسیار مهمی که به نسخه جدید F# اضافه شده است می توان به موارد زیر اشاره کرد:

-          توسعه دهندگان F# می توانند از بهبودهایی که در نسخه جدید این زبان برنامه نویسی اتفاق افتاده است نهایت بهره را ببرند. از جمله مهم ترین این بهبودها می توان به قابلیت source build به منظور پکیج بندی قوانینی که در توزیع های مختلف لینوکس بسیار رایج هستند و بهینه سازی profile-guided که می تواند کد راه اندازی را با کیفیت بالاتری کامپایل کند اشاره کرد. بهینه سازی profile-guided می تواند سایز باینری را به میزان زیادی کاهش داده و باینری های اپلیکیشن را به شکلی تغییر دهد که کدهای مربوط به راه اندازی در ابتدای فایل ما قرار گیرند.

-          ارجاع بین پروژه ای و درون حافظه ای میان پروژه های F# و سی شارپ راحت تر شده است. با استفاده از این قابلیت پروژه های سی شارپ بدون نیاز به کامپایل مجدد به سرعت می توانند در یک پروژه F# بازتاب شده و برعکس پروژه های F# نیز می توانند در پروژه های سی شارپ بازتاب شوند.

-          اگر توسعه دهندگان یک اسکریپت F# با فرمت .fsx در ویژوال استودیو باز کنند به صورت پیش فرض این اسکریپت در .net core اجرا خواهد شد.

صحبت پایانی

آخرین مورد از ویژگی های نسخه 6 F# کاهش استفاده از عملگرهای نمادین است. ویژگی های قدیمی تر نیز در این نسخه حذف شده اند. 

 

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید