زبان برنامه نویسی F#: تاریخچه، مزایا و فرصت های آتی

زبان برنامه نویسی F#: تاریخچه، مزایا و فرصت های آتی

زبان برنامه نویسی F#

توسعه­ دهندگان نرم افزار تازه ­کار ممکن است اسم آن را F Hash («اف هَش») تلفظ کنند، اما احتمال واکنش شدید و منفی از سوی متخصصان این حوزه بسیار کم است. F sharp (#  شارپ تلفظ می­شود) یک زبان برنامه ­­نویسیِ متن­باز، با نوع­دهی نیرومند و دارای چندین الگو است. این زبان برنامه­نویسی دارای چندین الگو متفاوت، برنامه­ نویسی تابعی، دستوری و شیء­گرا را پشتیبانی می­کند.

هر زبان برنامه­نویسی می­تواند تحت یکی از این دو دسته­بندی قرار بگیرد: 1) نوع­دهی نیرومند، و 2) نوع­دهی کم­زور

زبان­های نوع­دهی نیرومند از لحاظ نوع­دهی، قوانین سفت و سختی در زمینه زمان کامپایل دارند، که به طور تلحویحی اشاره به احتمال بیشتر وقوع خطاها و استثناها دارد. اکثریت این قوانین بر روی ارزش­های بازگشتی، انتساب متغیر، و فراخوانی تابع اثر می­گذارند.

در سمت دیگر زبان­های نوع­دهی کم نیرو هستند که قوانین نوشتاری سست آن­ها اغلب منجر به نتایج غیرقابل پیش­بینی یا حتی تبدیل ضمنی نوع در زمان اجرا می­شود.

منظور از چندین الگو این است که بیش از یک الگوی برنامه­ نویسی را پشتیبانی کرده، و به برنامه­نویسان اجازه انتخاب نوع برنامه­نویسی مورد دلخواه، و همچنین ساختارهای زبانی مرتبط با آن، را برای هر پروژه می­دهد.

بیشتر اوقات از این زبان به عنوان یک زیرساخت زبان مشترک (CLI) دارای چند پلتفرم استفاده می­شود، و همچنین قابلیت تولید کدهای جاوا اسکریپت و واحد پردازش گرافیکی (GPU) را نیز دارد.

این زبان برنامه­نویسی توسط بنیاد نرم­افزار F# و شرکت مایکروسافت در همکاری با دیگر شرکای آزاد توسعه پیدا کرده است.

تاریخچه کوتاه

F# اولین بار در سال 2005 مطرح شد و توسط شرکت تحقیقاتی مایکروسافت توسعه پیدا کرد. در اوایل، از .NET (دات نت) اُکمل (کمل شئ گرا) استفاده می­کرد، چون قدرت و دستور زبان کاربردی، و هزاران قابلیت کتابخانه­ای، مورد دسترسی زبان­های دات نت را همزمان قابل استفاده می­کرد.

از سال 2005، F# دچار تغییر و تحول های مورد نیاز گشته است، و توسعه­دهندگان آن نسخه­های متفاوتی از آن را که از نسخه­های ابتدایی بهتر عمل می­کند، منتشر کرده­اند. راه اندازی آن تحت لیسانس Apache این اجازه را داد تا این زبان برنامه­نویسی به صورت متن­باز (open source) استفاده شود، یعنی قابلیت اصلاح، توزیع، و استفاده بدون پرداخت هزینه به توسعه­دهندگان اولیه را دارد.

نسخه اولیه، که در سال 2005 روانه بازار شد، تنها با ویندوز قابلیت کارکرد داشت و از زمان اجرای 1.0 تا 3.5 دات نت استفاده می­کرد. محدودیت استفاده از آن در پلتفرم­ها مختلف بزرگترین ضعف این نسخه بود. این مشکل در نسخه بعدی مورد توجه قرار گرفت، و OS X و لینوکس نیز به جمع پلتفرم­های مورد پشتیبانی در نسخه 2.0 منتشر شده در سال 2010 قرار گرفتند.

در سال 2012، جاوا اسکریپت و GPU نیز به جمع پلتفرم مورد پشتیبانی F# اضافه شدند. نسخه 4.0 جدیدترین نسخه آن است که در سال 2015 منتشر شد.

آینده F#

به باور بسیاری از افراد، F# یکی از منفورترین، دست کم گرفته شده ترین و کم استفاده ترین زبان­های برنامه­نویسی است. ولی این تنها یک روی سکه است. بر اساس گزارش StackOverflow، F# پردرآمدترین زبان برنامه­نویسی در جهان است.

با این حال، همان گزارش نشان می­دهد که F# حتی جزو 25 زبان برنامه­نویسی از حیث استفاده در سطح جهان نیز نمی­باشد. به رغم داشتن یکی از فعال­ترین گروه­های کاربری، این زبان هنوز در حاشیه قرار دارد.

پس اگر F# جزو منفورترین زبان­ها است، توسعه­دهندگان علاقه بسیار زیادی نسبت به کار کردن با آن نشان می­دهند؟ این زبان که زاییده ذهن برنامه­نویسی استرالیایی به نام دان سایم است، در مقایسه با دیگر زبان­های برنامه­نویسی کاربردی مشابه خودش مانند Scala، مقاومت بیشتری در برابر پیچیدگی­های بیش از حد و مشکلات نشان داده است. این مقاومت به برنامه­نویسان دیگر را که ممکن است علاقه­ای به کار با برنامه­نویسی کاربردی دارند را همچنان اجازه دسترسی و استفاده از آن می­دهد.

وقتی که نیاز به توسعه داده، و دامنه، محور وجود داشته باشد، F# بسیار مفید ظاهر شده است. حالا همچنین قابلیت استفاده از آن در جاوا اسکریپ، یکی از محبوب­ترین زبان­های دنیا، نیز به وجود آمده است. به همین دلیل نیز دسترسی به کتابخانه­های جامع و دستگاه­های جاواسکریپ نیز ممکن شده است.

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

چه چیزی سد راه رشد F# است؟

گرچه ممکن است هضم این موضوع سخت باشد، اما مقصر اصلی در این زمینه سازندگان اولیه آن، یعنی مایکروسافت است. آنان جلوی محبوبیت F# را گرفته و به C# اجازه اشباع بازار را داده­اند. مایکروسافت F# را ضعیف­تر از C# ساخته است.

یک چرخه همیشگی در این رابطه وجود دارد، شغل­های بسیاری کمی برای F# وجود دارد چون تعداد کمی برنامه­نویس F# وجود دارد، و تعداد پایین برنامه­نویسان F# به دلیل کم بودن فرصت­های شغلی برای این زبان است. اما این روند با حرکت خزنده­ای شروع به تغییر کرده است.

Jet.com اولین شرکت بزرگ بود که شروع به استفاده از F# کرد. با گذر زمان، شرکت Kaggle، و بسیاری از شرکت­های مالی و بیمه­ای نیز به این به آن پیوستند.

توسعه­دهندگان F# تلاشی برای محبوب­تر کردن آن نکرده­اند، و با داشتن خصوصیاتی همچون زبان چند الگویی که در هوش مصنوعی بسیار پرکاربرد است، بهترین کار تمرکز بر روی مزایای اصلی F# است، که زمان اجرای کوتاه­تر، باگ­های کمتر و بهره­وری بیشتر می­باشد.

آیا F# واقعا نسبت به C# برتری­ دارد؟

  • F# بسیاری از فعالیت­های معمول در برنامه­نویسی را ساده­تر می­کند. به عنوان نمونه می­توان به ایجاد و استفاده از تعاریف نگارشی پیچیده، پردازش لیست، ماشین­های حالات، برابری و مقایسه و بسیاری از اعمال دیگر اشاره کرد.
  • عدم وجود نقطه ویرگول (؛)، آکولاد و چیزهای مشابه با آن. در F# شما تقریبا هیچوقت نیاز به مشخص کردن نوع شیء، به دلیل وجود یک سیستم تشخیص نوع قوی، نخواهید داشت. همچنین تعداد کمتری خط کد برای حل این مشکل نیاز خواهید داشت.
  • F# یک زبان کاربردی است، اما از دیگر مدل­هایی که کاملا خالص نیستند نیز پشتیبانی می­کند، که امکان تعامل با دنیای ناهمگونی­ها مانند دیتابیس­ها، وبسایت­ها و از این دست را آسان تر می­سازد. به خصوص، F# به عنوان یک زبان کاربردی در ترکیب با شیء گرا ها طراحی شده است، به همین دلیل هر آنچه C# انجام می­دهد را می­تواند خود انجام دهد. با این حال، F# به زیبایی با اکوسیستم دات نت ادغام شده که به شما اجازه دسترسی به تمامی ابزارها و کتابخانه­های شخص ثالث دات نت را می­دهد.
  • F# بخشی از مایکروسافت ویژوال استدیو است و به شما اجازه استفاده از یک ادیتور خوب با پشتیبانی IntelliSense، اشکال یاب (دیباگر) و تعداد زیادی پلاگین برای آزمایش یونیت ­ها، کنترل منبع، و دیگر فعالیت­های مرتبط با برنامه ­نویسی را می­دهد.

 


منبع : eduonix


 

لینک کوتاه: http://Tjjc.ir/dgtfn
مطالب زیر را حتما بخوانید

دیدگاهتان را بنویسید