مقدمه
بسياري از زبانهاي برنامهنويسي امروزي از اين قرارند: C++,C ، Javad , C# , COBOL , Microsoft Visual Basic و غيره. با وجود اين همه زبان، يك مهندس نرمافزار چگونه تصميم ميگيرد كه كداميك از آنها را براي يك پروژه استفاده كند. گاهي اوقات، يك زبان به اين دليل انتخاب ميشود كه توليد كنندگان يك شركت كار با آن را دوست دارند و يا ميشناسند، كه اين ميتواند يك دليل منطقي باشد. گاهي اوقات يك زبان به دليل جديد بودن و فوق العاده بودنش انتخاب ميشود، كه اين يك ابزار بازاريابي براي جلب نظر عمومي به يك محصول ميباشد، و ممكن است اين دليل منطقي به نظر نرسد. در حالت ايدهآل، يك زبان برنامهنويسي بايد بر مبناي تواناييهاي آن جهت اجراي يك كار خاص انتخاب شود و حل يك مشكل بايد تعيين كننده زبان باشد.
ما تنها به مقايسه زبانهاي C# و جاوا ميپردازيم. برخي زبانها، همچون C++ و پاسكال، نيز در اين مقايسه استفاده ميشوند، اما تنها براي كمك به اثبات انگيزههاي بالقوه براي ايجاد زبانهاي برنامهنويسي جديدتر با ويژگيهاي جديدتر. اگر در زبان قديميتر ضعفهايي وجود دارد و در زبان جديدتر اين ضعفها ديده نميشوند و يا از نظرها پنهان شدهاند، اين مسئله ميتواند بيانگر انگيزه معماران در انجام برخي تغييرات در زبان جديدتر باشد. شناخت اين انگيزه اغلب حائز اهميت است، چرا كه در غير اينصورت انتقاد هدفدار از يك زبان غيرممكن ميشود.
مثلا، اگر ويژگي معروفي كه در زبان قبلي وجود داشته از زبان جديدتر حذف شود، يك توليد كننده برنامه كاربردي ممكن است احساس كند كه زبان جديدتر جايگزين با ارزشي براي زبان قبلي نيست، چرا كه قدرت زبان قبلي را ندارد. هر چند كه زبان جديدتر ممكن است واقعا ويژگيهاي موثري را در اختيار او قرار دهد و او را از گرفتار شدن در برخي مشكلات شناخته شده حفظ نمايد.
توليد جاوا به قبل C# باز ميگردد، و C# جداي از ديگر زبانها ايجاد نشد. كاملا طبيعي است كه C# در برگيرنده نقاط قوت و ضعف جاوا است، درست مانند جاوا كه برگرفته از Objective – C بود و آن هم برگرفته از C و به همين ترتيب.
بنابراين، C# نبايد متفاوت از جاوا باشد. اگر جاوا كامل بود، ديگر دليلي براي ايجاد C# وجود نداشت. اگر C# كامل باشد، ديگري دليلي براي ايجاد زبان برنامهنويسي جديدتر وجود ندارد. بهرحال، آينده نامشخص است، و هم اكنون C# و جاوا زبانهاي برنامهنويسي شيءگراي خوبي هستند.