سؤال

أنا أعمل في بيئة Microsoft، لذا يمكنني استخدام مطرقة C# الخاصة بي على أي مسامير أجدها.ومع ذلك، ما هي اللغات (المترجمة، والمترجمة، والبرمجية، والوظيفية، وأي أنواع!) التي تكمل معرفة C#، ولأي أغراض؟على سبيل المثال، قمت بنقل الكثير من وظائف البرامج النصية بعيدًا عن تطبيقات وحدة التحكم المترجمة إلى البرامج النصية لـ Powershell.إذا كنت أحد مطوري برامج MS، فهل وجدت مكانًا مناسبًا في عالمك للغات أخرى مثل F#، أو IronRuby، أو IronPython، أو شيء مشابه، وما هو المجال الذي يملأونه؟

ملحوظة:هذا السؤال موجه إلى موظفي Microsoft dev نظرًا لأنني لا أستطيع البدء والبدء في تثبيت مجموعات LAMP حول شركتي، وبالتالي يتعين علي دعمها إلى الأبد.:) ومع ذلك، لا تتردد في ذكر أي لغات أخرى وجدتها مثيرة للاهتمام لإنجاز مهمة/دور معين في عالمك بعيدًا عن لغتك الرئيسية.

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

المحلول

تعد Python/Perl/Ruby/PowerShell مكملات رائعة لـ C#/VB.NET.إذا سلمك رئيسك ملفًا نصيًا وطلب منك إدراجه في قاعدة البيانات مرة أو مرتين، فيجب أن يكون أي من برامج Perl/Python/Ruby (لست متأكدًا من Powershell ولكني أتخيل أنه ليس أكثر صعوبة) مناسبًا تحليلها.وفي كلتا الحالتين، بالنسبة لتطبيقاتك الرئيسية، من المحتمل أن تكون عالقًا في لغة C#.يمكنك استخدام إحدى اللغات الأكثر ديناميكية لإنشاء التعليمات البرمجية في C#.

نظرًا لأنك تعمل في بيئة Microsoft، فربما تكون أفضل فرصة لك للحصول على قبول الحل الخاص بك هي PowerShell.بجانب ذلك أود أن أقول IronPython أو أي شيء آخر يتكامل مع CLR.لكن المشكلة الرئيسية هي أنه لكي يتمكن شخص آخر من الحفاظ على ما تفعله، يجب عليه معرفة اللغة التي تستخدمها.لدى MS في المستقبل خطط لاستخدام PowerShell أكثر من ذلك بكثير، لذلك ربما يكون من الأسهل تبرير PowerShell ثم قول Python/Perl/Ruby.

إذا كنت تقوم فقط بمعالجة ملف نصي للاستخدام مرة واحدة.أو إنشاء منشئ أكواد لمرة واحدة لإنشاء كل الأكواد ومن ثم تنوي الحفاظ على الكود الذي تم إنشاؤه، فلا يهم.أنت من سيستهلك النتائج، وإذا قمت بتوفير الوقت باستخدام لغة Perl، فستوفر لك المزيد من القوة.ولكن إذا كنت تفعل شيئًا سيتم استخدامه مرارًا وتكرارًا (مثل منشئ الأكواد النشطة حيث يمكنك تغيير القوالب وتشغيل المولد بدلاً من الحفاظ على الكود الذي تم إنشاؤه) فإن المطورين الآخرين الذين يعملون على ما فعلته سيحتاجون إلى معرفة اللغة استخدمته.من الصعب جدًا الجدال بشأن تعلم لغة Perl/Ruby/Python في متجر Microsoft.لكن يبدو أن PowerShell هو الحجة الأسهل.أعتقد أن الخطة الكبرى لـ MS هي أن التطبيقات ستكشف في النهاية عن المزيد من وظائف Power Shell من خلال الأوامر.بافتراض حدوث ذلك، فإن PowerShell يعد أمرًا لا يحتاج إلى تفكير لأنه سيكشف عن الكثير من الوظائف القابلة للبرمجة والتي لن تحصل عليها بأي طريقة أخرى.

نصائح أخرى

تعد لغة البرمجة النصية الرائعة دائمًا أداة جيدة في متناول يدك.يرى روبي, ، أو بايثون.

أستخدم لغة بايثون للنماذج الأولية، نظرًا لعدم وجود وقت تقريبًا بين التعديلات وتشغيل الإصدار الجديد من الكود.وقد ينتهي بي الأمر باستخدامه في مشروع حقيقي - فكلما استخدمته أكثر، زاد إعجابي به.

سيستغرق الأمر بعض الوقت للتعود عليه كمبرمج C#، على الرغم من أن نظام تعريف المسافة البادئة الذي يستخدمه غريب بعض الشيء في البداية.

نظرًا لأنك في متجر MS، أود أن أقترح ذلك بوويرشيل كلغة برمجة لائقة للتعلم.إنه يلعب بشكل جيد مع C#.أنا معجب كبير بروبي أيضًا.

أود الثعبان الثاني أو الثالث.على وجه التحديد، يتيح لك IronPython (ttp://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython) تعلم لغة python ولكنه يتيح لك أيضًا الوصول إلى الأشياء الجيدة لإطار عمل .net.

إنها رائعة جدًا للمهام المتعلقة بالبرمجة النصية، لذا من المحتمل أن تكون مفيدة لحياة البرمجة اليومية الخاصة بك، وأيضًا طريقة لطيفة للتجول بطريقة تجريبية للبرمجة/النماذج الأولية.

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

ربما العب مع Boo وشاهد رأيك.
بوو في Codehaus.org
بو في ويكيبيديا

إذا كنت تستخدم إطار عمل .Net، فلن تكون اللغة مهمة حقًا حيث يقوم المترجم والمترجم الفوري بإنشاء نفس كود IL على أي حال.

إذا ابتعدت عن عالم .Net، فأنا أرى أن أدوات التطوير واللغات هي عبارة عن صندوق أدوات.أسعى جاهداً لاستخدام الأدوات المناسبة للمهمة الحالية، مع الأخذ في الاعتبار قاعدة مهارات المطورين الآخرين والاتجاه الذي تسعى إليه الشركة بالطبع (أنا مستشار).

أنا مع jjnguy.جرب إحدى لغات البرمجة النصية.بالإضافة إلى ذلك، كمكافأة، عندما تتعلم Ruby/PythonPearl، وما إلى ذلك... فهي عبارة عن بوابة دواء... لغة خاطئة للتطوير لبيئات أخرى.

تجربة اللغات خارج صندوق الأدوات العادي الخاص بك ستمنحك طرقًا جديدة للتعامل مع الأشياء بلغتك المفضلة الحالية.حتى لو كنت لا تستخدمها في مشاريع جادة، فلغات مثل Perl (لإدارة البيانات)، Lisp (البرمجة الوظيفية)، وجافا سكريبت (البرمجة القائمة على النموذج الأولي) سيعلمك طرقًا جديدة للتفكير في المشكلات في لغتك الحالية.

باعتبارك مطور ويب عن طريق التجارة، قد تنظر إلى عائلة XSLT/XPath حيث أنه بالنسبة لأنواع معينة من معالجة XML، يمكن أن تكون أدوات قوية جدًا.

من المؤكد أن Linq2Xml في C# 3.x يعرض بعض الوظائف المماثلة المضمنة.

ومع ذلك، يمكن أن يكون XSLT وسيلة فعالة لفصل البيانات عن العرض التقديمي في تطبيقاتك.

أنا مهتم جدًا بـ F# وبعض اللغات الجديدة الأخرى في CLR/DLR.قد تكون لغات DLR أفضل بكثير لواجهة المستخدم الخاصة بك، لأنها لا تجعلك تقوم بالكثير من الأشياء الغبية.

ومع ذلك، أعتقد أنه من المهم أن تضع في اعتبارك أن تعلم لغة جديدة، خاصة في مجال جديد، مثل البرمجة الوظيفية، يعد دائمًا طريقة جيدة لإعادة تدريب عقلك بحيث تتعرض لمفاهيم جديدة ويمكنك يمكنك استخدام التعليمات البرمجية بشكل أفضل باللغة التي تختارها، حتى لو لم تستخدم هذه اللغات الجديدة مطلقًا.

تحقق من Boo - فهو يعمل أعلى مكدس .NET، لكن تركيبه يشبه لغة Python.

لتعلم لغة جديدة تكمل لغة C#، سأختار لغة C++.يمكنك استخدامه بأسلوب "أفضل من p/invocation" للوصول إلى التعليمات البرمجية غير المُدارة من تطبيقات C# الخاصة بك.يمكنك بعد ذلك البدء في استخدامه لكتابة التطبيقات ذات الذاكرة المحدودة و/أو الأجزاء المهمة للأداء، إذا وجدت أن بعض تطبيقات .NET الخاصة بك تبدأ في استهلاك كل ذاكرة الوصول العشوائي (RAM) و/أو وحدة المعالجة المركزية (CPU) أو بشكل عام ليست بالسرعة المطلوبة. تريد.

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