هیئتمنصفه فدرال، گوگل را در مبارزه طولانیمدت با رقیب خود، اوراکل، در مورد نرمافزار اندروئید گوگل به پیروزی بزرگی رساند. سالهاست که این دو غول بزرگ نرمافزار به لجبازی قانونی خود ادامه میدهند؛ اوراکل ادعا میکند گوگل بهطور غیرقانونی از بخشی از نرمافزارش، خصوصاً ۳۷ عدد 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 در انواع نرمافزارها برنامهنویسان نفس راحتی میکشند.
[2] transformative یکی از چهار معیار استفاده منصفانه