تفاوت زبان سی شارپ و جاوا
تفاوتهای زبانهای برنامه نویسی C# و جاوا با دیدگاه سیستمی
در زبان برنامه نویسی C#، ميتوانيد كدي را كه در كلاس System.XML.XML Datal Document استفاده ميشود، و سند XML را بارگذاري و تجزيه ميكند، بنويسيد. سپس به شما اجازه ميدهد تا در زمان اجرا به DOM برويد. هر زمان كه يك گره <object> مشاهده شود، خصوصيت گره والد آن بايد به برخي Object هاي تازه ايجاد شده كه تعريف كوتاهي دارند تنظيم شود و هر زمان كه يك گره <function> مشاهده شود، Object والد ايجاد شده بايد داراي تابعي باشد كه از طريق پارامترهايي كه بعدا تعريف ميشوند، آن را با نام فراخواني كند.
در اين صورت ميتوانيد هر نوع Objectي را كه بخواهيد ايجاد كنيد و خصوصيات را تنظيم كرده و توابع را براي مقداردهي اوليه به حالت بازگشتي فراخواني كنيد. كدي كه اين كار را انجام ميدهد كوچك است زيرا از مزيت خود بازگشتي (recusion) و ماهيت عمومي reflection بهره ميبرد.
در هر زبان هنگاميكه از reflection استفاده ميكنيد، كامپايلر خيلي به شما كمك نميكند زيرا آنچه كه ميخواهيد انجام دهيد، نوع Object اي كه ميخواهيد نگاه داريد و اينكه چه توابعي را تا زمان اجرا فرا ميخوانيد ـ تقريبا هر چيزي كه به صورت كلاس انتزاعي، Object اداره ميشود اطلاع چنداني ندارد. و مطمئن باشيد كه روند آن كند است. بسيار كندتر از فراخوانيهاي مستقيم به رابط شناخته شده. اما اگر reflection تنها در هنگام ايجاد و مقداردهي اوليه دادهها استفاده ميكنيد، سپس اين دادهها را گرفته و از طريق تبديل برخي Object هاي بازگشتي به رابطهاي شناخته شده يا كلاس پايه خود، فراخوانيهاي مستقيم را انجام دهيد، سپس ميتوان كد بسيار پويا و توانمندي را نوشت كه به شما اجازه ميدهد رفتار برنامه را بدون كامپايل كردن مجدد، اصلاح نماييد ـ تنها سند xml را اصلاح كنيد نوسازي (refresh) در اين سناريو كار خواهد كرد.
گامهاي موفق و گامهاي ناموفق
C# و جاوا نسبت به بقيه زبانهاي پيش از خود روشهاي مختلفي براي برنامهنويسي دارند. برخي از آنها موفق و برخي ديگر ناموفق هستند. و البته جاي پيشرفت وجود دارد. اما اكثر تغييرات بسيار خوبند. C# و جاوا چه چيزهايي را fix ميكنند؟ برخي موارد در جاوا و C# ثابت شده هستند. تعدادي از آنها به اين ترتيب ليست شدهاند.
عبارتهاي Boolean
C++ ، C# جاوا و ديگر زبانهاي برنامهنويسي از عبارتهاي if فرم if(expression) statement 1 [else statement 2] پشتيباني ميكنند.
در حاليكه expression در زبانهايي نظير C++ ميتواند تقريبا هر عبارتي باشد، C# و جاوا لازم ميدانند كه اين عبارت حداقل قابل تبديل به نوع Boolean باشد. بنابراين عبارت if زير در C++ قانوني است.