یکی از تفاوت های سی شارپ با زبان های دیگه که Garbage Collector دارن مثل GO توی نوع bootstrapping اش هست.
حالا Bootstrapping چیه؟
برای مثال، اولین کامپایلر زبان GO با assembly توسعه داده شد، بعد از اون اومدن دوباره کامپایلر رو از اول و با خود زبان GO نوشتن. به این فرایند میگن Bootstrapping.
اما توی سی شارپ یکم قضیه فرق میکنه.
کامپایلر Roslyn با سی شارپ نوشته شده، اما یه بخش قابل توجهی از Common Language Runtime (CLR) با C/C++ نوشته شده. برای مثال یه بخشی از Library های Reflection با استفاده از قابلیت Interop ازین کدها استفاده میکنند و این یکی از دلایل قابل توجه برای کند بودن Reflection میشه.
البته باید بگم که همیشه هدف سرعت نیست. بحث Reflection از اول بصورت آگاهانه، در اهداف خودش سرعت بالا رو هدف قرار نداده و هدف دسترسی امن و قابل اطمینان به یکسری اطلاعات از سمت کامپایلر هست. بعدا مفصل راجب Reflection حرف میزنیم 😉
@ever_code
Post #18
185
- 👍 1
- 🔥 1