نقل قول نوشته شده توسط IamOverlord مشاهده تاپیک
نگاه کن اگه بخوای مستقل از Platform عمل کنی نمی تونی یه کد رو برای چند Platform کامپایل کنی. باید برای Windows از API استفاده کنی، برای Lunux از وقفه ی 80h استفاده کنی و برای فلانی فلان کارو کنی. حالا اگه نه بتونی از وقفه استفاده کنی، نه حداقل API تعریف کنی، هیچ کار نمی تونی بکنی. بعدشم قرار نیست توابعی که با API ها یا وقفه ها تعریف می شن رو هر دفعه کاربر تعریف کنه. بلکه باید یه بار اینا رو توی فایل های lib تعریف کنیم. حالا اگه بخوایم یه روال بنویسیم برای چند Platform، باید همین کاری که در زبان C یا زبان های دیگه می کنند رو انجام بدیم، یعنی یه سری If تعریف کنیم که اینا اجرا نشن، فقط کامپایلر موقع کامپایل چکشون کنه یا حالا هر کار دیگه ای... مثلا اگه با FASM کار کنی می بینی که یه کتابخانه ای ساختن برای Windows، Linux و DOS که تو یک کد رو می نویسی و برای Platform های مختلف کامپایل می کنی. اما از کجا می فهمه Platform ات چی می خوای باشه، می بینه که System رو (نام یه ثابت هست) برابر با چی قرار دادی تو برنامت.
می بینی که هر زبانی (که مستقل از Platform هست) یه روشی رو برای کامپیال کردن واسه Platform مورد نظر، در نظر گرفته. اما در نهایت باید امکان استفاده از امکانات هر Platform وجود داشته باشه که حالا بخواد انتخابی صورت بگیره.
اگه می خوای مستقل از Platform بنویسیم باید هم بتونه از Interrupt ها استفاده کنه و هم بتونه از API ها استفاده کنه (API ها مختص Windows نیستن هر سیستمی API های مربوط به خودشو می تونه داشته باشه)، حالا این استفاده کننده هر کی که می خواد باشه، چه کسی باشه که برنامه های کاربردیشو می نویسه و چه کسی باشه که lib ها رو می نویسه و جزئیات رو از دید پنهان می کنه.
من با استفاده برنامه نویس از API اصلآ مشکلی ندارم. فقط میگم نباید برای کارهای اصلی زبان مثل خواندن و نوشتن در کنسول, برنامه نویس مجبور باشه از API استفاده کنه.
تو اگه چند زبان به عنوان نمونه بهم نشون بدی که از این روش استفاده میکنند.اونوقت قانع میشم و این کارو منطقی میدونم.