تحظى ميزات إغلاق .NET بشعبية لدى العديد من المطورين، ويبدو أن Java ستطبقها قريبًا. بالطبع، هذه ميزة لغة وليست ميزة وقت التشغيل. أعتقد أن أيًا من الخيارين الذي تختاره في النهاية يعود إلى التفضيل الشخصي وفرص العمل المحلية. تحظى ميزات إغلاق .NET بشعبية لدى العديد من المطورين، ويبدو أن Java ستطبقها قريبًا. بالطبع، هذه ميزة لغة وليست ميزة وقت التشغيل. أعتقد أن أيًا من الخيارين الذي تختاره في النهاية يعود إلى التفضيل الشخصي وفرص العمل المحلية.
1. ماذا سيحدث عندما يواجه Java SE 7 .NET CLR؟
كما ترون من قائمة ميزات Java SE 7، فقد تحسنت بشكل كبير مقارنة بالإصدارات السابقة. لذا، هل هذا تغيير في قواعد اللعبة، لا أعتقد ذلك؟ على مدى السنوات القليلة الماضية، كانت هناك العديد من التحسينات لكل من JVM و.NET CLR، والعديد من الأشياء التي لم يكن من الممكن إنجازها في الماضي إلا من قبل المبرمجين ذوي المهارات العالية أصبحت الآن ضمن قدرات المبرمجين العاديين بفضل التحسينات في JVM؛ و.NET CLR.
على الرغم من أن JVM و.NET CLR لم ينفذا نفس الفكرة في نفس الوقت، إلا أنه إذا ظهرت فكرة جيدة على جانب واحد، فسوف يتابعها الجانب الآخر بسرعة، ولا ينعكس هذا فقط على مستوى وقت التشغيل. على سبيل المثال، بالنسبة لـ Java، بعد أن حقق مشروع Hibernate نجاحًا كبيرًا، أطلق .NET أيضًا بسرعة NHibernate. تحظى وظائف الإغلاق الخاصة بـ .NET بشعبية كبيرة بين العديد من المطورين، ويبدو أن Java ستنفذها قريبًا. بالطبع، هذه ميزة لغوية وليست ميزة وقت التشغيل.
لقد حققت عمليات إغلاق .NET نجاحًا كبيرًا، وستتبع Java حذوها قريبًا
2. هل سيهزم أحد وقتي التشغيل الآخر تمامًا في المستقبل المنظور؟
على الرغم من أن JVM و.NET CLR متشابهان جدًا على المستوى الفني، إلا أن كل منهما لديه سوقه الخاص، ولا يتمتع أي منهما بالمرونة الشديدة. إذا قام أحدهم بإنشاء البنية التحتية الخاصة به حول خادم .NET وIIS، فلا توجد طريقة يمكنهم من خلالها الاستيقاظ في اليوم التالي وترحيل كل ذلك إلى Java، والعكس صحيح. حتى إذا قررت الشركة تبديل منصة التطوير الخاصة بها، فقد تحتاج إلى استبدال فريق التطوير بالكامل أو تدريبهم من الصفر. حتى بعد اكتمال التدريب، لا تزال هناك أوجه قصور خطيرة في المهارات؛ فمن المستحيل أن يصبح أحد كبار مطوري .NET فجأة أحد كبار مطوري Java بعد 3 أشهر من التدريب.
بالإضافة إلى ذلك، تحتاج الشركة إلى الاحتفاظ بالموظفين الفنيين الحاليين للحفاظ على الكود الحالي. هل تعتقد أن هؤلاء الموظفين سوف يجلسون ويشاهدون وظائفهم يتم التخلص منها، أو تصبح مهاراتهم عديمة الفائدة أو تنخفض قيمتها بالطبع لا؟ بالنسبة لشركة ما، يعد التحول الكامل من Java إلى .NET أو التبديل بالكامل من .NET إلى Java بمثابة عمل انتحاري. على الأكثر، سيتم إعادة تثقيف الموظفين من خلال مشروع متعدد السنوات. استغرق الترحيل من VB6 إلى .NET 8 سنوات منذ إصدار .NET.
يستغرق تحول المبرمجين والمشاريع وقتًا
3. هل تكلفة تطوير Java أكثر اقتصادية من تطوير .NET؟ إذا كان الأمر كذلك، فهل سيلجأ الناس إلى Java لتوفير الاستثمار؟
إذا كنت تنظر فقط إلى الأدوات، فإن إجابتي هي "الصواب والخطأ". في الواقع، يمكنك تشغيل Java على حزمة مفتوحة المصدر تمامًا إذا كنت تريد ذلك. يمكنك استخدام مجموعة Linux/Tomcat/MySQL/Java، أو استخدام مجموعة SpringSource من جانب الخادم وEclipse أو NetBeans على كمبيوتر المطور. ولكن من المهم الإشارة إلى أنك لن تكون من أشد المعجبين بالبدائل مفتوحة المصدر لأي سبب من الأسباب، وأنا لا أقول إن البدائل سيئة، وإذا كان الأمر كذلك، فإن سعر أدوات Java مقارنة بـ أدوات .NET باهظة الثمن، وفي كثير من الحالات تكون أكثر تكلفة. وبالنظر إلى ما تفعله شركات مثل Oracle وIBM، فمن الواضح أن العديد من الشركات تشعر بالحاجة إلى الدفع مقابل أدوات Java الخاصة. من حيث السعر، تعد Microsoft دائمًا تقريبًا البائع الأقل سعرًا للمؤسسات في أي قطاع معين من السوق.
بالإضافة إلى ذلك، عليك أن تفكر في مقدار الأموال التي ستوفرها الشركة إذا لم تكن هناك تكاليف تبديل. تكلفة نسخة Visual Studio أقل بكثير من الراتب الأسبوعي وأقساط التأمين للمطور ذي الدخل المتوسط. علاوة على ذلك، فإن الوقت الذي يستغرقه نفس المطور لتعلم Java والوصول إلى المستوى الذي يجيد فيه .NET أطول بكثير من أسبوع.
لكي نكون منصفين، ينطبق هذا التحليل أيضًا على الانتقال من Java إلى .NET. بالمقارنة مع معاناة تبديل النظام الأساسي، فإن تكلفة أدوات التطوير لا تذكر حقًا. بالطبع هناك استثناءان. الموقف الأول هو بناء شركة جديدة، لذلك لا توجد مشكلة في تكلفة الترحيل. في هذه الحالة، لا تزال Java لا تتمتع بميزة التكلفة، لأن Microsoft أطلقت أيضًا نسخة مجانية من Visual Studio (إصدار Express)، وإذا كانت شركتك شركة جديدة، فيمكنك الحصول عليها مجانًا لمدة ثلاث سنوات من خلال BizSpark خطة MSDN وMicrosoft مرخصة، فهي ليست سيئة. الاستثناء الآخر هو شركة ذات نسبة خادم إلى مطور عالية جدًا، مثل Google أو Yahoo. قد يكون لدى هذه الشركات العديد من المطورين الذين يعملون على تطبيق يعمل على آلاف الخوادم. في هذه الحالة، لا تعد أدوات المطور هي العامل الرئيسي في توفير التكاليف، ولكن مساحة الخادم هي العامل الرئيسي. بالنسبة للشركات التي تواجه هذا الموقف، يمكن أن تتمتع Java (وغيرها من التقنيات مفتوحة المصدر) بميزة تكلفة حاسمة.
4. ما مقدار لغة البرمجة النصية التي يحتاج مطور Java إلى معرفتها لتحقيق الكفاءة في .NET؟
أولاً، هل تعمل في مجال تطوير الويب؟ إذا كان الأمر كذلك، فقد ترغب في معرفة بعض جافا سكريبت والتعرف على أطر العمل المقابلة لها. بالنسبة للعمل الخلفي، فإن معرفة لغة ديناميكية أو لغة برمجة نصية ليست إلزامية أو مطلوبة. ومع ذلك، هناك العديد من الخيارات الجيدة لهذا الغرض في مساحة جافا. بالنسبة لشخص ليس مطور Java حاليًا، ليس لدي أي خبرة فعلية في هذا المجال لأتحدث عنها، لكنني سمعت الكثير من التقييمات الجيدة حول Groovy وScala. إذا كنت ترغب في اختيار بعض التقنيات الأكثر شيوعًا، فإن JRuby وJython هما خياران جيدان.
هناك طرق مختلفة لتحسين أداء تطبيقات Java
على مدى السنوات القليلة الماضية، بدأ JVM في دعم اللغات غير Java بأعداد كبيرة، وأصبح لدى المطورين الآن العديد من الخيارات. إن تعلم واحدة من هذه الأشياء سيساعدك بالتأكيد على أن تصبح مطورًا أفضل (حتى لو لم تستخدمها في مشاريع الإنتاج الفعلية)، ويمكن أن يوفر لك اتجاهًا بديلاً عندما يتعثر مشروعك.
هل ستحل Java محل .NET، ومن السابق لأوانه القول؟ وفي الوقت نفسه، لن يقوم .NET بقتل Java. كلاهما لهما مزايا وعيوب. أعتقد أن أيًا من الخيارين الذي تختاره في النهاية يعود إلى التفضيل الشخصي وفرص العمل المحلية.