سلام. دوستان كدهاي F# رو ديدين؟
من بعضي كدهاشو تو Visual Studio 2010 ديدم، از ظاهر دستورها زياد خوشم نيومد. نسبت به زباني مثه C# خيلي فرق كرده. مثلاً سميكلون ديگه نمي ذاري، در تهريف تابه به جاي پرانتز فقط فاصله مي ذاري، براي تعريف هر نوع متغير فقط يه let اولش مي نويسي و ...
نظر شما در موردش چيه؟
سلام
زبان های برنامه نویسی معمولی که باهاشون کار میکنیم(سی، پاسکال، دلفی، وی بی، سی پلاس پلاس، جاوا و ...) بر مبنای مدل تورینگ می باشند، زبانهای مبتنی بر تورینگ بصورت دستوری هستند! یعنی در آنها بر چگونگی (how) انجام کار تاکید میشه!
اما در مدل لامبدا که یک زبان بیانی می باشد بیشتر بر این که چه کاری (what) را می خواهیم انجام دهیم تاکید می شود.(مانند اس کیو ال)
زبانهای تابعی(مانند #F) هم بیشتر بصورت بیانی هستند و بر روی what تاکید دارند تا how.
زبانهای رایج امروزی مانند جاوا و سی شارپ، شی ءگرا و دستوری هستند هرچند که امروزه برخی قابلیتهای جدید هم به آنها اضافه شده که برنامه نویسی برای مدلهای تابعی را هم پشتیبانی می کنند اما هسته اصلی آنها بصورت دستوری می باشد؛ زبانهای تابعی همزمان با زبانهای دستوری متولد شده اند اما این زبانها به علت های زیر تنها در سطح آکادمیک و دانشگاهی باقی مانده اند:
نداشتن کتابخانه وسیع و غنی
نداشتن حمایت مالی شرکتهای نرم افزاری
عدم توانایی برقراری ارتباط با زبان سی، برای ارتباط با سیستم عامل
سرعت اجرای پایین
شیب زیاد منحنی یادگیری
و...
F محصول تیم تحقیقاتی شرکت ماکروسافت به سرپرستی Dony Syme، پورتی از زبان OCamle می باشد. این زبان شی گرا، تابعی و استاتیک است.
#F در اصل یک زبان استاتیک است منتها با استفاده از محیط تعاملی این زبان مثل زبانهای پایتون و روبی بصورت دینامیک کد نوشت؛ این زبان بر اساس سینتکس زبان OComl نوشته شده و کتابخانه های آن را بجز موارد معدودی پشتیبانی می کند؛ مدل شیی این زبان همانند سی شارپ است.(چون زبانی تحت دات نت است)
این زبان مذایای زیادی بر سایر زبانهای تابعی دارد:
هم تابعی است و هم شی گرا
زبانی استاتیک است اما اجازه میدهد مانند زبانهای دینامیک با آن کار کنیم
سینتیکی(گرامر) دارد که حدود 30 سال است با آن کار می کنیم.(گرامر زبان سی)
مشکل کمبود کتابخانه ندارد(کتابخانه دات نت)
حمایت شرکت ماکروسافت را دارد.
در ادامه اگر دوستان مشتاق بودند بیشتر درباره مزایا و نحوه کار با این زبان جدید صحبت میکنیم.