برنامه‌ نویسی کاربردی چیست؟

برنامه‌ نویسی کاربردی چیست؟

مخفف Application Programming Interfaceبه معنای رابط برنامه‌ نویسی کاربردی است. در واقعAPIیک کتابخانه سیستمی شامل صدها تابع استاندارد قابل دسترسی است که شرکت Microsoftآنها را داخل یکسری فایل DLLبرای برنامه نویسی سیستمی قرار داده است.
APIرا اصطلاحا قلب سیستم عامل ویندوز می نامند ، هر کاری که در این سیستم عامل انجام می شود توسط همین توابع APIصورت می گیرد ، در حقیقت APIبر خلاف نام آن که نشان دهنده یک رابط مستقل برای ایجاد برنامه های کاربردی تحت ویندوز است بیشتر توسط خود سیستم عامل ویندوز مورد استفاده قرار می گیرد ، به بیانی دیگر تعداد زیادی از APIها را Microsoftجهت کارهای داخلی windowsاستفاده کرده و هیچ نامی از آنها برده نشده است و هیچ مستنداتی برای آنها نداریم در نتیجه بهتر است آنها را فراموش کنیم .
اما نقش APIدر برنامه نویسی چیست؟ APIسنگ بنای برنامه نویسی تحت ویندوز را فراهم می آورد . بهتر است بگوییم برنامه نویسی تحت ویندوز بدون توابع APIغیر ممکن است .
با استفاده از APIمی توانید برای برنامه ها یک رابط گرافیکی فراهم نمایید ، تصاویر را نمایش دهید و شی های سیستم مانند حافظه ، فایلها و پردازشها را مدیریت نمایید . ویندوز برای کنترل خود توابع و روال هایی را در اختیار برنامه نویسان می گذارد این توابع دارای قدرت و توانایی بالایی می باشند و قابل استفاده توسط برنامه نویسانDelphi, C++ , Visual c, VisualBasicو غیره می باشند.
علت استفاده از توابع API در برنامه‌نویسی
دلایل استفاده از توابع APIدر زبانهای مختلف برنامه‌نویسی می‌تواند این باشد که:
1 . توابع APIبه دلیل آنکه در فایلهای DLLهر سیستم عامل ویندوز می‌باشد و در هر مکان مانند یکدیگر می‌باشند پس نیازی به ارائه آن فایل DLLدر نسخه برنامه نمی‌باشد و درنتیجه حجم نسخه کم می‌شود و درضمن سندیت برنامه نیز بیشتر می‌شود و می‌توان گفت که شما از منابع ویندوز به نحو احسن استفاده کرده‌اید.
2 . نسخه‌های ویندوز به طور مداوم تغییر می کند ولی به دلیل آنکه سازندگان همیشه حالتی را در نظر می‌‌گیرند که نسخه‌های قبلی را نیز پشتیبانی کند. درنتیجه اگر شما برنامه‌ای را به کمک توابع APIبنویسید با تغییر نسخه ویندوز نیازی به تغییر جدی در توابع APIنمی‌باشد.
3 . بیشتر زبانهای برنامه‌نویسی (به‌خصوص زبانهای تحت ویندوز که خود به صورت پنهان از توابع APIاستفاده می‌کنند ) ممکن است به علت محدودیتهایی نتوانند تمام امکانات توابع را در اختیار قرا دهند. شما با دسترسی مستقیم به توابع می‌توانید از حداکثر قابلیتهای تابع استفاده کنید.
4 . در بعضی از زبانهای برنامه‌نویسی برای آنکه بتوان یک حالت را بوجود آورد و یا کار مشخصی را انجام داد، باید کدهای زیادی بنویسیم و یا در زمان خطاگیری مدت زیادی را صرف کنیم و به طور حتم کاربر استفاده‌کننده از برنامه شما نیز باید زمان بیشتری را برای گرفتن جواب صرف کند. این موارد ذکر شده هر کدام به نوبه خود می‌توانند از محبوبیت، قدرتمند و خوانابودن برنامه بکاهند. ولی توابع API به دلیل آنکه روتین شده و از قبل نوشته شده می‌باشند پس فقط کافیست تابع را فراخوانی کنیم و به آن ورودی دهیم و خروجی مورد نظر خود را دریافت کنیم.
همانطور که دیدید API ها نقش اصلی و کلیدی را در ویندوز ایفا می کنند و به گفته عده ای ویندوز مجموعه ای از توابع APIاست .
ولی استفاده از این توابع مشکلاتی را نیز در بر دارد :
مشکلات کار با API
همانطور که می دانید windowsبا Cو ++C نوشته شده و تایپ توابع آن همان تایپ ++Cبوده و فهم Cنیز نسبت به سایر زبانهای برنامه نویسی کمی مشکلتر است ، بدلیل وجود ماکروها ، اشاره گر, مدیریت حافظه پویا و …
دلیل دیگر ترس از APIظاهر پیچیده بعضی از این توابع می باشند ، وجود تعداد زیاد پارامتر که باز هر پارامتر خود یک structurمی باشد که این structاز تعدادی فیلد تشکیل شده که فهم و درک تک تک این فیلدها و پارامترها بسیار مشکل می باشد .
دلیل دیگر را می توان این گفت که برای انجام یک عمل باید یک سری از توابع APIرا با ترتیب خاص و پارامترهای مشخص فراخوانی نمود . که چگونگی ترتیب توابع ، مقادیر پارامترها و اینکه حتی چه توابعی باید فراخوانی شوند جای بحث بسیار است .
با توجه به دلایل گفته شده بسیاری از برنامه نویسان ویندوز کار با برنامه هایی چون Delphiرا ترجیح می دهند و آن را لذت بخش می دانند به علت اینکه برنامه های visualتمامی پیچیدگی های API ها را در توابع و اشیاء‌خود پنهان نموده اند و در نتیجه برنامه نویس به آن صورت درگیر APIها نمی شود ( مگر در موارد خاص) و با کمترین وقت و کار ، بیشترین نتیجه را بدست می آورد .
( حتی افرادی هستند که هیچ اطلاعاتی از APIندارند اما برنامه های تحت windowsمی نویسند )‌
بطور مثال با یک clickیک Formیا یک Buttonایجاد می شود اما در پشت پرده توابع APIمختلفی فراخوانی می شود تا این کنترل ها ایجاد شوند .
منبع:owg.ir