برنامه نویسی موبایلبرنامه نویسی وبطراحی و پیاده سازی

API چیست؟

هیئت‌منصفه فدرال، گوگل را در مبارزه طولانی­‌مدت با رقیب خود، اوراکل، در مورد نرم‌افزار اندروئید گوگل به پیروزی بزرگی رساند. سال­‌هاست که این دو غول بزرگ نرم‌افزار به لجبازی قانونی خود ادامه می‌دهند؛ اوراکل ادعا می‌کند گوگل به‌طور غیرقانونی از بخشی از نرم‌افزارش، خصوصاً ۳۷ عدد Java API، در گوشی‌های اندروئیدش استفاده کرده است. اوراکل اعلام کرد که قصد شکایت دارد.

اما API چیست؟

API (مخفف «واسطه برنامه کاربردی») روش استانداردی برای کار با کدهای نوشته‌ی دیگران است. شاید مثل این می‌ماند که بگوییم صندوق‌پست راه استاندارد فرستادن نامه­‌ها است. برای استفاده از صندوق‌پست پاکتی را با آدرس و تمبر بر آن در صندوق می‌اندازید و توقع دارید که اداره پست بقیه کار ارسال را انجام دهد.

آدرس‌­ها و تمبرها استاندارد هستند. برای شما اهمیت ندارد که نامه‌ها چطور از صندوق‌پست به مقصد می­ رسند، فقط رسیدن به مقصد کفایت می‌کند، سامانه پست، خود زحمت رساندن نامه را به عهده می­گیرد. عملکرد API نیز مشابه است؛ به برنامه­‌نویس‌ها امکان اجرای وظایف متداول را می‌­دهد. معمولاً  API گروهی از وظایف مرتبط را انجام می­‌دهد، مثلِ “java.ioL”. یکی از مواردی که در پرونده اوراکل و گوگل مطرح شد، قطعه­‌های کدِ خواندن و نوشتن فایل‌­ها و اجرای سایر وظایف مربوط به فایل­‌ها است.

API بسیار مهم است زیرا بدون آن­ توسعه­‌دهندگان باید خودشان کدهای روتین را بنویسند. بدون API برنامه‌نویسان جاوا باید هرکدام جداگانه برای نوشتن یا خواندن فایل­‌ها کد می‌نوشتند یا کد پیدا می‌کردند؛ نه‌تنها زمان­بر بود بلکه شاید برخی کدِ اشتباه می‌نوشتند و موجب خطاهای بعدی می‌شدند. درنتیجه توسعه‌دهندگان برای خیلی از وظایف متکی به API هستند.

به‌طور مثال محتوای این مقاله در یک دادگان (پایگاه‌داده‌ها) ذخیره می‌شود. اگر یک نظر اضافه کنید، وب­سایت از API-ی مشترکی برای ثبت آن استفاده می­‌کند. تقریباً به همین شیوه،  API-ها همکاری وبسایت‌ها با یکدیگر ممکن می‌سازند؛ در غیر این صورت کار، ناممکن یا بسیار دشوار می‌­شد. اگر بر نشان پسنیدن (لایک) در انتهای مقاله کلیک کنید، این API-ی فیس‌بوک است که امکان نمایان شدن آن را در فیلد شما فراهم می‌کند. API-ها تمام انواع خدمات وب را با یکدیگر قلاب می‌کنند، از توئیتر تا دراپ‌باکس، از گوگل تا پی‎پال. این API-ها به کارکرد درونی خود خدمات بستگی ندارند؛ گوگل می‌تواند نحوه جستجو را تغییر دهد، اما مادامی‌که API یکسان است، SIRI می­‌تواند به نتایج گوگل دسترسی داشته باشد.

اصل پرونده اوراکل و گوگل این بود که آیا کپی‌کردن API-های جاوا درست بود؟ گوگل (به‌جز چند استثنا) کدهای اوراکل را کپی نکرده بود، اما کپی این کدها واقعاً مثل کپی‌کردن توسعه­‌دهندگان از توابع بود. اگر مثال صندوق‌پست را بسط دهیم، مثل این است که فدرال اکسپرس (شرکت پست آمریکا) صندوق‌پست‌­های خود را بسازد اما نامه­‌هایی را دریافت کند اگر در یک صندوق‌پست معمولی انداخته می‌شد، همان آدرس و تمبر را داشت، فقط نامه­‌ها  با سامانه تحویل FedEx به‌جای سیستم تحویل اداره پست دیگری به مقصدشان می‌رسیدند.

اوراکل در دادگاه عنوان کرد که برای JAVA API حق نشر (کپی‌رایت) داشتند اما گوگل اظهار کرد که کپی‌­های آن­ها، «استفاده منصفانه [1]» است چرا که آن­ها خودشان یک کار دگرگونه [2]، متفاوت و جدید ایجاد کرده‌­اند و هیئت‌منصفه پذیرفت.

برخی معتقدند در صورت رأی به گناهکاربودن گوگل، تأثیر مأیوس­‌کننده‌­ای بر توسعه­‌دهندگان داشت و آن­ها را از ساخت API-ها در نرم­‌افزارهای خود دلسرد می‌کرد. اما تصمیم به استفاده منصفانه، بسته به موقعیت است. اگر چه بی‌گناهی گوگل در این پرونده اثبات شد، شاید توسعه­‌دهندگانی باشند که بی‌گناه نباشند. بااین‌حال، امروزه با ده‌هزار API در انواع نرم‌­افزارها برنامه‌نویسان نفس راحتی می‌کشند.

[1] Fair use

[2] transformative یکی از چهار معیار استفاده منصفانه

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا