در یک جمله #S زبان برنامه نویسی و قابلیتهای SmallTalk را به محیط دات نت اضافه میکند. SmallTalk اولین محیط واقعی تولید و توسعه نرم افزارهای شی گرا بود که حتی عده ای وی را پدر جاوا میخوانند.
در محیط SmallTalk حتی Integer ها و String ها هم شی هستند! حالا باید دید این زبان محبوب دهه 80 چگونه با قابلیتهای دات نت سازگاری پیدا کرده است.
اس شارپ نه تنها از لحاظ ساختار ظاهری زبان ( SyntaX ) با بقیه محیطهای توسعه دات نت ( وی بی - سی شارپ و ... ) متفاوت است بلکه طراحی شی گرا و نحوه برخورد آن با کلاسهای نرم افزار نیز بطور کل فرق میکند.
این مساله را حتی قبل از مشاهده اس شارپ با خواندن متن سخنرانی مدیر دپارتمان طراحی و گسترش SmallTalk آقای سیمونز در همایشی که سال 99 و به دعوت مایکروسافت از طراحان خبره نرم افزار برای ایده پروری حول دات نت برگزار شده بود میتوان فهمید . او نمیخواست اس شارپ چیزی مثل وی بی یا سی شارپ باشد و با پایه مشترک !
اس شارپ یک زبان اسکریپت نگاری است. حتما بلافاصله کلمه Jscript.Net به ذهنتان خطور میکند ...
اس شارپ ( مثل اغلب محیطهای تولید اسکریپت همچون PHP یا Perl ) نیازی به تعریف نوع متغیر ندارد . ( dynamically typed language ) اس شارپ پشت صحنه تلاش زیادی خواهد کرد تا شما ( به عنوان یک توسعه دهنده نرم افزار ) درگیر تخصیص حافظه مناسب Type Casting های متعدد و مدیریت فضای مورد استفاده توسط اشیا نشوید!
( فرض کنید تابعی دارید که به عنوان یکی از پارامترهای ورودی یک String دریافت میکند و شما در پیاده سازی تابع بناست از String.IndexOf استفاده کنید . فرض کنید استفاده کننده از تابع بجای رشته یه Null به تابع شما هدیه کند. دات نت تابع را به این امید که شما سیستم مدیریت خطای خود را راخل تابع پیاده سازی کرده اید اجرا میکند اما در محیط اس شارپ حتی Null هم یک شی پذیرفته شده است! کافیست یکبار متد null.indexof را تعریف کنید و به همراه مجموعه کلاسهایتان عرضه کنید )
اس شارپ میتواند از هر آنچه که دات نت به وی بی و سی شارپ اعطا کرده استفاده کند. اس شارپ توانائی برقراری ارتباط با Dll ها ( Activex Dlls - win32 API Dlls - other Dlls ) را دارد همچنین توانائی برقراری ارتباط با دات نت اسمبلی و دات نت کامپوننتهائی که با بقیه زبانها طراحی شده اند. اس شارپ حتی میتواند اسمبلی های استاندارد دات نت را تولید کند.
هر چند محیط دات نت فعلا بطور صریح و مستقیم از وراثت چندگانه حمایت نمیکند اما این قابلیت در عمق مترجم اس شارپ موجود است .
حالا برنامه نویسان اس شارپ میتوانند سرویسهای وب صفحات ASP.NET و حتی برنامه های سرویس ویندوز و کنسول تولید کنند.