اليس من الغريب ان تكون لغة السى اقرب في الترتيب من C++ وسى شارب مثلا هل تعتقد هذا يرجع لكون لغة سي تستخدم في برمجة العديد من الاشياء زي برمجة الهارد وير مثلا ولماذا تعتقد في وجهة نظرك السبب الرئيسي لانتشار لغة الجافا هكذا
انا اعتقد ان السبب الرئيسي لانتشار لغة الجافا هو ال portability
مجرد تعليق مش اكتر وشكرا علي الموضوع
لكن ممكن سؤال: ايه رأيك في اللغات ال dynamic زي ال lisp والحاجات دي انا قرأت ان لغة الفيجوال بيزيك لغة ديناميكية واعتقد دا يزيد لغات الدوت نت جاذبية باحتوائها علي لغات static like C# and dynamic like VB
من اهم مزايا جافا الـ portability كما تفضل الأخ أحمد. وأعتقد إن هنالك بعض المزايا الأخرى التي قد تكون ساهمت في إحتفاظ جافا بالمرتبة الأولى, مثلاً قدرتها على العمل بشكل جيد جداً في بيئة clusters, وطبعاً إمتلاكها مزايا Rapid Development... ولكن فوق كل ذلك فقد أصبح العمل بجافا أشبه بالتقليد في بعض الشركات الكبرى, لا أرى شخصياً إن NET Framework. مقصر ويقدم قوة مشابهه... وقد تكلمت في هذا الموضوع مع شخص أعرفه يعمل كمبرمج في إحدى الشركات العملاقة التي تعمل بالجافا, ومن كلامه فقد فهمت إن أحد الأسباب الرئيسية لعدم الإقتناع بدوت نت كتقنية بديلة هي إن هنالك مشاكل معينة مع الدوت نت عندما تعمل في بيئة تتألف من عدد كبير من محطات العمل clustered environment, بينما جافا لا تعاني من نفس المشاكل لأنها مصممة للعمل في هكذا بيئة.
هنالك أيضاً ميزة مهمة, توفر عدد كبير من الأشخاص المؤهلين للعمل على جافا بالمقارنة مع أعداد العاملين في اللغات الأخرى, لذلك فاليد العاملة متوفرة (أو العقول العاملة في هذه الحالة (-; ) وكنتيجة فأعتقد إن مرتبات العاملين بالجافا أقل من مرتبات العاملين بالـ ++C أو NET. مثلاً...
في تعليقات لاحقة للموضوع، تكشف أن هذه الإحصائية ليس معبرة تماماً... انظروا معي كيف يعمل الموقع:
يقوم ببساطة بإجراء عملية بحث في محركات البحث عن العبارات التالية: C++ Programming Java Programming C Programming List Programming
وهكذا... مما يعني عدة أمور:
1- الإحصائية منحازة باتجاه لغات برمجة الويب، وذلك بسبب كون هؤلاء يشكلون تواجداً أكثر من لغات برمجة محطات العمل (mainframe computers) برأيي، حيث أن أغلبهم له مدونة أو يشارك بمنتديات أو يسجل خبراته في صفحات.
2- الإحصائية منحازة إلى الطريقة التي يتحدث فيها المبرمجين عن اللغة. كمثال، استبدال كلمة البحث Programming بالكلمة Scripting ستنتج تقريباً 107 ألف نتيجة إضافية لجافا (تقدم بنسبة 29% في الترتيب)، وتعطي لغة كوبول 141 صوتاً إضافياً (1% زيادة في الترتيب)...
3- الإحصائية منحازة للغات التي يحدث فيها الكثير من الحوار، كالحديث عن الإصدارات الجديدة أو المشاكل أو الأخطاء أو المقارنات ... الخ.
4- النتائج نسبية وليست مطلقة. مما يعني أن أي قفزة في لغة ما ستخفض النتائج للغات الأخرى. مثلاً، في حال ظهور لغة مثل روبي وتبدأ الإنترنت في الحديث عنها بحماس، فإننا سنرى أن بقية اللغات تنحدر فوراً.
5- النتائج تتأثر وبشدة بطريقة محرك البحث في إيجاد النتائج. مثلاً، نجد انحدارات غريبة في مخطط جافا، ناتجة فقط عن تغيير طفيف في محرك بحث جوجل لإيجاد النتائج، مما جعل بعض الصفحات تسقط ولا يتم حسبانها.
بتاريخ 06 مايو 2008 03:43 م، قطب ahmed ezz حاجبيه بشدة وهو يقول:
لكن ممكن سؤال: ايه رأيك في اللغات ال dynamic زي ال lisp والحاجات دي انا قرأت ان لغة الفيجوال بيزيك لغة ديناميكية واعتقد دا يزيد لغات الدوت نت جاذبية باحتوائها علي لغات static like C# and dynamic like VB
ايه رأي حضرتك؟
كان هناك حوار لطيف بين مجموعة مبرمجين عن هذا الموضوع في الحقيقة. أحدهم يمثل طرف اللغات الستاتيكية، وأحدهم يمثل الطرف الآخر. للأسف خبرتي في الموضوع محدودة لأنني لم أتعامل مع مفاهيم أنواع البيانات الديناميكية سوى مؤخراً، وقد وجدتها ممتعة جداً ومفيدة في حالات معينة، لكنني ما زلت لا أستطيع تقدير فائدتها في حالات أكثر عموماً (أحتاج للمزيد من الممارسة). خبرتي تنحصر في إضافات #C الجديدة في الإصدار الثالث (إعلان متغيرات من نوع var)، وقد كانت بالفعل رائعة بالتعاون مع LINQ، لكني لم أستخدمها خارج هذا النطاق بعد... في ++C يمكنك لحد ما تحقيق ذلك مع الـ templates، لكن أبداً ليس بمرونة #C الحالية (أرجو أن يتم إضافة هذه الميزة في C++/CLI قريباً)...
لغة ليسب لها وضع مختلف، لكونها تركز على المفاهيم الوظيفية في البرمجة بدلاً من الطريقة الحتمية/التلقينية للغات مثل C. بصراحة هناك العديد من المشاكل في برمجة الألعاب والتي يمكن حلها بلغة مثل ليسب بسهولة وأناقة مطلقة. مثلاً عمليات التحريك Animation يمكن أن يتم تنفيذها بطريقة وظيفية بشكل يساعد على تحسين الأداء والحفاظ على كود واضح ومفهوم، بينما الجزء الأعظم من الكود الذي شاهدته حتى الآن للتحريك مكتوب بطريقة مزعجة (وهذا ليس لأن من كتب الكود هو مبرمج فاشل، بل لأن اللغة ليست الأنسب لمثل هذه التعبيرات).
برأيي الشخصي أعتقد أن LINQ تمثل بداية رائعة لمن يحب التعرف على البرمجة الوظيفية دون الدخول في لغة وظيفية كاملة. جربوا #C أو #F كحالة أكثر تقدماً وستلمس الجمالية في التعامل مع مثل هذه النوعية من البرمجة.
ايضا بمناسبة الحديث عن لغات البرمجة الديناميكية وجدت عند البحث في Wikipedia ان لغة VB9 مثلا تمثل احدي اللغات الديناميكية وللمزيد عن ذلك يمكنكم فقط البحث عن لغة Visual Basic 9 وهى احدث لغات بيئة الدوت نت في ويكيبيديا وسترى وصف اللغة هناك. وبالتالى توفر لغات الدوت نت عند استخدامها معا ميزات رائعة فيمكن بالطبع العمل علي اكثر من لغة في نفس المشروع وحتى ال VS يوفر ميزة ال cross-debugging فيمكن عمل تتبع لكود جزء من البرنامج مثلا مكتوب بسي شارب ونكمل متابعة ال debug له من كود VB يتم استدعاؤه.
وفي 07 مايو 2008 06:31 م، أعرب وسام البهنسي عن رأيه بالموقف كالآتي:
(أرجو أن يتم إضافة هذه الميزة في C++/CLI قريباً).
بصراحة لقد كان هذا سؤال موجه الى Boris Jabes وهو يعمل كـ Program Manager فى فريق ال Visual C++ وكان هل تقدم ال C++/CLI ميزة مثل الموجودة في C# والتى نستخدمها بالكلمة var فقال ان هذه الميزة ستضاف قريبا الي C++/CLI وبالاخص عند اضافة ال next C++ standard support للمزيد ايضا عن ال TR1 C++ يمكنكم فحص هذا العنوان http://aristeia.com/EC3E/TR1_info_frames.html