Sarp
مدیر بازنشسته
امروزه از هر کسی بپرسیم با چه زبانی برنامهنویسی ميکند به استثنای برنامهنویسهای حرفهای خاص، بيشتر آنها میگویند: C، VB، Delphi و در نهایت++C.
كمتر اتفاق ميافتد برنامهنويس حرفهاي پيدا كنيم كه حتي تمايل به يادگيري زبان جديدي داشته باشد، زيرا نيازي به اين كار نميبيند. اغلب برنامهنويسها هنوز نسخه پیشین نرمافزاری را کاملاً فرا نگرفته، نسخه جدید آن را نصب كرده و از چند قابلیت آن استفاده میکنند، اما به دلیل اینکه ممکن است هیچگاه به قابلیتهای دیگر نياز نداشته باشند به سراغ آن نیز نمیروند.
به عنوان مثال، در Visual Studio 2010 که به تازگی از طرف مايکروسافت به بازار آمده صدها قابلیت شگفت انگیز وجود دارد، اما ممکن است فقط به اندازه انگشتان دست از قابلیتهاي این نسخه جدید استفاده کنیم. یکی از قابلیتها و زبانهایی که بهصورت رسمی وآن هم پس از حدود پنج سال تحقیق و بررسی توسط دانشگاههای معتبر جهان مانند کمبریج و تیم تحقیقاتی مايکروسافت توسط این شرکت عرضه شد، زبان# F است. زبانی که تاريخچه آن شاید به حدود چهل سال قبل برمیگردد، يعني زمانی که زبان ML توسط رابین میلنر توسعه دادهشد. طراحی این زبان بهصورت Functional در دات نت انجام شده و زبانی Type Safe است که قابلیتهای برنامهنویسی Data Oriented، پردازشموازی ورودی و خروجی، پردازشهای موازی در سطح پردازشگر، اسکریپت و توسعه الگوریتم را دربردارد. این زبان برای prototype کردن به وفور استفاده ميشود، زيرا به برنامهنویس اجازه ميدهد بدون اینکه کل پروژه را کامپایل کند تنها قسمتی از نرمافزار را اجرا و اشکالیابی كند و ميتوان با استفاده از این زبان، FP (سرنام Functional Programming) را به آسانی انجام داد.
FP در واقع سعی در تبدیل عملیاتهای برنامه به عملیاتهای ریاضی دارد، به نحوی که بتوان مانند یک فرمول ریاضی با دادن چندین مقدار یک خروجی مشخص را استخراج کرد. این زبان به شما اين قابليت را میدهد تا تایپ مورد نظر را انتخاب کنید كه اين امر ميتواند مانع استفاده از مقادیر NULL شود و در نهایت برخلاف زبانهایی مانند #C یا VB.NET در این زبان دیگر با Null Pointer Exception در زمان کامپایل کد روبهرو نخواهید شد. یکی دیگر از امتیازاتی که این زبان دارد این است که فرمولنویسی در این زبان آسان است. دیگر نیازی نیست که به حرف کامپیوتر در نوشتن فرمول گوش کنید. به آساني ميتوانید فرمولهای ریاضی خود را در این زبان نوشته و اجرا کنید. همچنين، اگر هنوز دوست دارید ميتوانيد با استفاده از زبانهای دیگری که به آنها تسلط بیشتری دارید این کار را انجام دهيد و به عنوان مثال، در کدهای خود از زبان #C هم استفاده کنید كه با این کار ميتوانید از مزایای هر دو زبان برنامهنویسی بهره بگیرید.
نکته جالبی که نظر مرا به این زبان بیشتر جلب کرد، این بود که با استفاده از این زبان ميتوان پروژههای دادهکاوی یا DM (سرنام Data Mining) را قویتر از قبل انجام داد. محیطهای برنامهنویسی تجاری در DM را ميتوان به سه گروه عمده SAS و MATLABو SPSS تقسیم کرد. SAS زباني ماکرویی است و ميتواند از GUI نیز پشتیبانی کند، اما SPSS از GUI بهتری استفاده ميکند که از SAS قویتر است. Matlab که به عنوان غول DM در محیطهای تجاری شناخته شده از SAS و SPSS قویتر به نظر ميرسد، اما هر کدام از این سیستمها قابلیتهای خوبی دارند که در DM استفاده ميشود. اما نکته جالب توجه اینجا است که با استفاده از توابع کتابخانهای#F، خودمان ميتوانیم نرمافزارهاي ساده DM بسازیم. قابلیتهایی که این زبان را به زبان متمایزی نسبتبه سایر زبانها برای استفاده در DM تبديل ميكند، عبارتند از: قابلیت پشتیبانی از دیتاستهای Dense و Sparce و پشتیبانی از فرمتهای اطلاعاتی مختلف حتی جدولهاي اکسل و SVM.
در #F برخی از الگوریتمهای معروف DM از قبیل Classificatin، Regression، Clustring، Dimention Redution و MISC پیادهسازی شده است. همچنین توابع کتابخانهاي قدرتمندی برای پردازش موازی و حتی موازیسازی در سطح الگوریتم نيز در این زبان وجود دارد. به عنوان مثال، K-Means Clustering و بهصورت پیش فرض DM در زبان #F به صورت موازی انجام ميپذیرد يا Clustering و Classification ميتوانند به صورتموازی در سیستم انجام شوند که این امر به سرعت اجرای درخواستها در DM کمک خواهد کرد.
در #F چندین الگوی طراحی DM وجود دارد که ميتوان با استفاده از آن طراحی راه حلهای DM را انجام داد. همچنین همانگونه که مشخص است در DM، نقش استفاده از فرمولهای ریاضی در الگوریتمها بسیار مشهود است و این کار از عهده #F که توابع کتابخانهای قدرتمندی در ریاضی دارد، بر ميآید.
علاوه بر قابلیتهایی که در بالا به آن اشاره شد، قابلیت اجرای #F در محیط داتنت به ما اجازه استفاده از هزاران قابلیت و تابع کتابخانهای چه با این زبان و چه با زبانهای دیگر دات را خواهد داد که خود امتیاز ویژهای محسوب ميشود. پس اگر خواستید این بار VS 2010 را روی سیستم خود نصب کنید گزینه نصب #F را انتخاب کنید تا با این قابلیتها از نزدیک آشنا شوید.
كمتر اتفاق ميافتد برنامهنويس حرفهاي پيدا كنيم كه حتي تمايل به يادگيري زبان جديدي داشته باشد، زيرا نيازي به اين كار نميبيند. اغلب برنامهنويسها هنوز نسخه پیشین نرمافزاری را کاملاً فرا نگرفته، نسخه جدید آن را نصب كرده و از چند قابلیت آن استفاده میکنند، اما به دلیل اینکه ممکن است هیچگاه به قابلیتهای دیگر نياز نداشته باشند به سراغ آن نیز نمیروند.
به عنوان مثال، در Visual Studio 2010 که به تازگی از طرف مايکروسافت به بازار آمده صدها قابلیت شگفت انگیز وجود دارد، اما ممکن است فقط به اندازه انگشتان دست از قابلیتهاي این نسخه جدید استفاده کنیم. یکی از قابلیتها و زبانهایی که بهصورت رسمی وآن هم پس از حدود پنج سال تحقیق و بررسی توسط دانشگاههای معتبر جهان مانند کمبریج و تیم تحقیقاتی مايکروسافت توسط این شرکت عرضه شد، زبان# F است. زبانی که تاريخچه آن شاید به حدود چهل سال قبل برمیگردد، يعني زمانی که زبان ML توسط رابین میلنر توسعه دادهشد. طراحی این زبان بهصورت Functional در دات نت انجام شده و زبانی Type Safe است که قابلیتهای برنامهنویسی Data Oriented، پردازشموازی ورودی و خروجی، پردازشهای موازی در سطح پردازشگر، اسکریپت و توسعه الگوریتم را دربردارد. این زبان برای prototype کردن به وفور استفاده ميشود، زيرا به برنامهنویس اجازه ميدهد بدون اینکه کل پروژه را کامپایل کند تنها قسمتی از نرمافزار را اجرا و اشکالیابی كند و ميتوان با استفاده از این زبان، FP (سرنام Functional Programming) را به آسانی انجام داد.
FP در واقع سعی در تبدیل عملیاتهای برنامه به عملیاتهای ریاضی دارد، به نحوی که بتوان مانند یک فرمول ریاضی با دادن چندین مقدار یک خروجی مشخص را استخراج کرد. این زبان به شما اين قابليت را میدهد تا تایپ مورد نظر را انتخاب کنید كه اين امر ميتواند مانع استفاده از مقادیر NULL شود و در نهایت برخلاف زبانهایی مانند #C یا VB.NET در این زبان دیگر با Null Pointer Exception در زمان کامپایل کد روبهرو نخواهید شد. یکی دیگر از امتیازاتی که این زبان دارد این است که فرمولنویسی در این زبان آسان است. دیگر نیازی نیست که به حرف کامپیوتر در نوشتن فرمول گوش کنید. به آساني ميتوانید فرمولهای ریاضی خود را در این زبان نوشته و اجرا کنید. همچنين، اگر هنوز دوست دارید ميتوانيد با استفاده از زبانهای دیگری که به آنها تسلط بیشتری دارید این کار را انجام دهيد و به عنوان مثال، در کدهای خود از زبان #C هم استفاده کنید كه با این کار ميتوانید از مزایای هر دو زبان برنامهنویسی بهره بگیرید.
نکته جالبی که نظر مرا به این زبان بیشتر جلب کرد، این بود که با استفاده از این زبان ميتوان پروژههای دادهکاوی یا DM (سرنام Data Mining) را قویتر از قبل انجام داد. محیطهای برنامهنویسی تجاری در DM را ميتوان به سه گروه عمده SAS و MATLABو SPSS تقسیم کرد. SAS زباني ماکرویی است و ميتواند از GUI نیز پشتیبانی کند، اما SPSS از GUI بهتری استفاده ميکند که از SAS قویتر است. Matlab که به عنوان غول DM در محیطهای تجاری شناخته شده از SAS و SPSS قویتر به نظر ميرسد، اما هر کدام از این سیستمها قابلیتهای خوبی دارند که در DM استفاده ميشود. اما نکته جالب توجه اینجا است که با استفاده از توابع کتابخانهای#F، خودمان ميتوانیم نرمافزارهاي ساده DM بسازیم. قابلیتهایی که این زبان را به زبان متمایزی نسبتبه سایر زبانها برای استفاده در DM تبديل ميكند، عبارتند از: قابلیت پشتیبانی از دیتاستهای Dense و Sparce و پشتیبانی از فرمتهای اطلاعاتی مختلف حتی جدولهاي اکسل و SVM.
در #F برخی از الگوریتمهای معروف DM از قبیل Classificatin، Regression، Clustring، Dimention Redution و MISC پیادهسازی شده است. همچنین توابع کتابخانهاي قدرتمندی برای پردازش موازی و حتی موازیسازی در سطح الگوریتم نيز در این زبان وجود دارد. به عنوان مثال، K-Means Clustering و بهصورت پیش فرض DM در زبان #F به صورت موازی انجام ميپذیرد يا Clustering و Classification ميتوانند به صورتموازی در سیستم انجام شوند که این امر به سرعت اجرای درخواستها در DM کمک خواهد کرد.
در #F چندین الگوی طراحی DM وجود دارد که ميتوان با استفاده از آن طراحی راه حلهای DM را انجام داد. همچنین همانگونه که مشخص است در DM، نقش استفاده از فرمولهای ریاضی در الگوریتمها بسیار مشهود است و این کار از عهده #F که توابع کتابخانهای قدرتمندی در ریاضی دارد، بر ميآید.
علاوه بر قابلیتهایی که در بالا به آن اشاره شد، قابلیت اجرای #F در محیط داتنت به ما اجازه استفاده از هزاران قابلیت و تابع کتابخانهای چه با این زبان و چه با زبانهای دیگر دات را خواهد داد که خود امتیاز ویژهای محسوب ميشود. پس اگر خواستید این بار VS 2010 را روی سیستم خود نصب کنید گزینه نصب #F را انتخاب کنید تا با این قابلیتها از نزدیک آشنا شوید.