سؤال

كوني مطور C# منذ الإصدار 1.0، فقد استحوذت F# على وقت فراغي خلال الأسابيع القليلة الماضية.أجهزة الكمبيوتر تباع الآن مع 2، 4 ..ليس من السهل دائمًا تحقيق النوى والخيوط المتعددة.

في الوقت الحالي أرى أن F# يتمتع بإمكانيات كبيرة لأحمال العمل المعقدة أو الثقيلة.هل تعتقد أن F# سيصبح (بمجرد RTM) لاعبًا مهمًا في سوق برمجيات المؤسسات؟

هل كانت مفيدة؟

المحلول

أعتقد أنه بغض النظر عما إذا كان F# أصبح مستوردًا لبرامج Enterprise، فإن القدرة على عزل الأجزاء الوظيفية البحتة من التعليمات البرمجية بأي لغة ستكون أمرًا أساسيًا لاستخدام إمكانات أجهزة الكمبيوتر متعددة النواة.على سبيل المثال، تعد الامتدادات الموازية لـ Microsoft لـ .NET رائعة، ولكن لا يزال هناك مجال كبير لارتكاب الأخطاء من خلال موازنة التعليمات البرمجية التي لا يمكن تنفيذها بشكل متوازٍ.إذا كانت التعليمات البرمجية في شكل لغة وظيفية بحتة أو مجموعة فرعية من لغتك وظيفية بحتة، فأنت متأكد من أنه يمكنك تنفيذها بالتوازي.تكمن الحيلة بعد ذلك في اكتشاف الطريقة الأكثر فعالية لتعيين العمل.

أود أن أقول إن الدور الذي تلعبه F # في هذا سيكون بمثابة حافز لترطيب أقدام الناس والبدء في التفكير بطريقة أكثر تصريحية.

نصائح أخرى

أعتقد أن F# لديه فرصة عظيمة لتحقيق نجاحات في بعض المجالات المتخصصة لتطبيقات المؤسسات مثل النمذجة الرياضية (على سبيل المثال.للتطبيقات المصرفية/التجارية).تؤدي إزالة الآثار الجانبية من الوظائف أيضًا إلى فرص كبيرة للتوازي والحفظ.من الصعب أن نقول ما إذا كانت هذه اللغات سوف تنطلق في التنمية السائدة، ولكن في رأيي من المرجح أن تكون المشاكل موجهة نحو الإنسان (أي اللغات البشرية).الافتقار إلى المهارات ومنحنى التعلم العالي للأشخاص المطلعين على اللغات النموذجية مثل c#/Java/c++) بدلاً من التقنية.

ما أعتقد أننا سنراه هو أن بعض الأشياء الوظيفية ستنتقل إلى C# مثل زيادة استخدام الأنواع غير القابلة للتغيير ووظائف وضع العلامات على أنها نقية وما إلى ذلك.لا أستطيع أن أرى أن F# لها دور أوسع في تطوير المؤسسات، وهو أمر محير للغاية بالنسبة للمطور العادي.

ستكون C#/VB هي اللغات الرئيسية دائمًا، لكن F# هي الأفضل في حل المشكلات المعقدة.تعد لغة C# ذات أغراض عامة بينما F# أفضل في IA والإحصاء والعلوم (العثور على علاج للسرطان، على سبيل المثال)، وما إلى ذلك.لن تحل F# محل C# أبدًا، ولكنها ستمكن .NET من المنافسة في المزيد من مجالات علوم الكمبيوتر.أما بالنسبة لاستخراج البيانات ومعالجة كميات كبيرة من البيانات، فمن الأفضل أن تقوم بالتطوير مباشرة داخل قاعدة البيانات - مثل SQL Server أو Oracle.

أما بالنسبة لصعوبة تعلم لغة #F، فذلك فقط لأننا "أفسدنا" طريقة التفكير الحتمية في معظم اللغات الأخرى.من الصعب أن تتخلى عن شيء فعلته لمدة 5 سنوات!أيضًا، في تجربتي، يعد استخدام ocaml وF# ممتعًا.الشكوى الوحيدة التي لدي بخصوص F#/Ocaml هي أن الأشخاص في معظم الأوقات يفرطون في استخدام استنتاج النوع مما يجعل الكود غير قابل للقراءة.أفضل أن أعلن عن أنواع متغيرة لتسهيل صيانتها.

أعتقد أن لغة F# ستكون دائمًا لغة متخصصة، مقارنةً بـ VB/C#/Java، لأنها تتطلب خلفية رياضية أو خلفية في علوم الكمبيوتر.ومع ذلك، فإن حقيقة أنها لغة CLR تعني أنها ستحظى بتعرض أكبر بكثير من اللغات الوظيفية السابقة.

أنا أعمل في أحد البنوك الاستثمارية ونحن نستخدم بالفعل F# لبعض أغراض البرمجة النصية المخصصة، ونحن حريصون جدًا على رؤية إصدار تم إصداره من F# حتى نتمكن من التفكير في المزيد من التكامل الرسمي في أنظمتنا (على الرغم من أنه من المرجح أن تظل أساسية) على أساس C #).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top