اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
دو دقیقه
این قهرمان ما از سال ۲۰۰۲ سفر خودش را همراه با Visual Studio 2002 شروع کرد و تا الان (۲۰۲۳) حدود ۱۱ بار آپدیتهای جدید و عالیای را ارائه دادهاست. در اوایل کار، زبانی شبیه به Java بود و صرفا نسبت به زبانهای سطح پایین، تنها چیزی که اضافه داشت، بحث شیءگرایی بود، اما در ادامه وارد عصرهای مختلفی شد که بد نیست نگاهی به آنها داشته باشیم.
عصر نخستین: تبدیل شدن به یک زبان قابل قبول
C# 1.0, C# 1.2, C# 2.0
در این عصر، زبانی را مشاهده میکنیم که تقریبا مانند بقیهی زبانهای C-Base هست و تفاوت چندانی نمیکند. میشود گفت اینجا کار کردن با انواع دادهها نسبت به بقیه زبانها آسانتر است. با قابلیتهای شیءگرایی شروع کرده و در ادامه ویژگیهای دیگری را هم در ورژنهای بعدی خود ارائه داد.
عصر دوم: اضافه شدن امکانات منحصر بفرد
C# 3.0 , C# 4.0, C# 5.0
حدود سال ۲۰۰۷، قهرمان ما تصمیم گرفت امکانات منحصر بفردی را ارائه دهد که این زبان را نسبت به بقیهی هم ردیفهای خودش متمایز کند. این امکانات همراه با NET Framework version 3.5 و Visual Studio 2008 وارد بازار شدند. امکانات نام آشنایی از قبیل Lambda expression ها،Object and collection initializerها و ... در این ورژن به سیشارپ اضافه شدند.
عصر سوم: باز نویسی کامل کامپایلر با سیشارپ (Roslyn)
سال ۲۰۱۵ سیشارپ ۶ همراه با Visual Studio 2015 وارد بازار شد. اینبار سیشارپ شروع به اعمال تغییراتی کرد که عمدتا با ذهنیت کد تمیز و ساده همراه بود. از جملهی این تغییرات مهم، بازنویسی کامل کامپایلر، با خود زبان سیشارپ بود.
عصر چهارم: رضایت طرفداران کد تمیز و ساده
شروع تغییرات کوچک، در ورژن ۶ سیشارپ بود؛ ولی از ورژن ۷ به بعد، مایکروسافت تمرکز خیلی بیشتری را بر روی این کار گذاشت و تغییراتش همگی دارای یک هدف مهم بودند. آسان و تمیز بودن کدها؛ امکاناتی از قبلی tuple,out,ref و ... از جمله این تغییرات بودند.
عصر پنجم: دنیای Cross-Platform، خداحافظی با NullReferenceException و تلاش برای شبیه شدن به زبانهای اسکریپت نویسی
سالها برنامه نویسها با خطای NullReferenceException دست و پنجه نرم میکردند، ولی حالا با استفادهی درست از قابلیت Nullable reference typeها میشد تا حد قابل قبولی جلوی این اتفاق را گرفت. در ادامه تغییرات به سمتی میرفت که زبان سیشارپ را شبیه به یک زبان اسکریپت نویسی کرده بود. حالا میشد بدون تعریف کلاس و متد خاصی، دستور سادهای را اجرا کرد. همچنین قابلیتهایی که در pattern matching به سیشارپ اضافه شد، باعث سادهتر و قابل فهمتر شدن سیشارپ میشد.
نقشهی راه تصویری پیشرفت سیشارپ