La zece ani după ce Oracle a dat în judecată pentru prima dată Google din cauza codului din platforma Android, cei doi giganți tehnologici se confruntă în sfârșit la Curtea Supremă. De atunci, au avut loc trei procese și două apeluri. Miliarde de dolari sunt în joc; multe milioane de dolari au fost probabil cheltuite pe o paradă de avocați de litigiu experimentați, martori experți și probe de proces bizare menite să explice programarea juraților fără cunoștințe tehnice. Este posibil ca toate acestea să se încheie în mod anticlimactic miercuri dimineață, cu o pledoarie orală la Curtea Supremă prin teleconferință, în mijlocul unei pandemii.
Când Google a dezvoltat pentru prima dată Android, a decis să facă platforma mobilă compatibilă cu Java. La acea vreme, aplicațiile pentru mediul iOS erau scrise în Objective-C, un limbaj asemănător cu omniprezentul C, dar care, în rest, era destul de mult folosit doar în contextul dezvoltării de aplicații pentru iOS. Apple avea un avans semnificativ în domeniul mobil.
Google urmărea să facă Android competitiv, făcând platforma interoperabilă cu Java, un limbaj de programare popular, cu o comunitate solidă de dezvoltatori. Pentru a face acest lucru, compania a reimplementat mai multe API-uri Java, inclusiv cele 37 care sunt în discuție în proces. Pentru Oracle și Google, procesul se referă la faptul dacă Oracle – care deține Java Standard Edition – are acum dreptul la o parte din Android, în valoare de miliarde de dolari. Pentru toți ceilalți, procesul se referă la faptul dacă compatibilitatea lingvistică este echivalentă cu încălcarea drepturilor de autor.
Pentru a spune cel puțin, era o lume diferită atunci când a fost intentat cazul. Ambele companii și-au schimbat mâinile – procesul a început pe când Larry Ellison se afla încă la cârma Oracle, iar Eric Schmidt era directorul general al Google. Google este acum o filială a Alphabet. Android se află la versiunea 11. Singurul lucru care pare să fi rămas neschimbat este popularitatea Java ca limbaj de programare.
Dar, departe de Silicon Valley, a avut loc o schimbare radicală care cuprinde mult mai mult decât un simplu miliard de dolari și viitorul legii drepturilor de autor. Trei locuri la Curtea Supremă au fost vacante de la ultima dată când Google a cerut instanței supreme să îi revizuiască cazul. În 2014, SCOTUS a refuzat certiorari, trimițând cazul înapoi la tribunalul districtual din San Francisco pentru un nou proces. De atunci, un judecător a ieșit la pensie și doi au decedat – cel mai recent, judecătoarea Ruth Bader Ginsburg.
Cel mai puțin important aspect absolut al moștenirii lui Ginsburg este faptul că a fost cel mai de încredere vot în cazurile de drept de autor, având tendința de a vota în favoarea titularilor de drepturi. Pierderea ei înseamnă, de asemenea, că procesul Google vs. Oracle este audiat de opt judecători și, prin urmare, este predispus la o instanță divizată. (În cazul Lotus v. Borland din 1996 privind drepturile de autor asupra software-ului, o instanță de opt judecători s-a împărțit în mod egal și nu a reușit să stabilească un precedent național).
Când a început procesul Google v. Oracle în 2010, acesta a implicat șapte brevete, precum și o cerere de drepturi de autor; până în 2012, cazul a fost redus la doar 37 de API-uri Java, alcătuite din aproximativ 11 500 de linii de cod. (Estimările plasează Android în jurul a 12 milioane de linii de cod.) Cele 11.500 de linii de cod în cauză au fost scrise într-o „cameră curată”, un proiect izolat de codul existent pe care se făcea inginerie inversă. Această ispravă de inginerie a devenit necesară atunci când negocierile dintre Google și Sun Microsystems – care deținea platforma Java – au eșuat. Oracle a achiziționat Sun la începutul anului 2010; până în august, aceasta a intentat un proces împotriva Google.
În acest context, o interfață de programare a aplicațiilor (API) este o colecție de interacțiuni bine definite în programarea software. Este o prescurtare pentru a accesa rapid servicii, biblioteci și alte funcții. O API poate condensa codul utilizat în mod obișnuit sau verbos, permițând programatorilor să construiască fără a fi nevoiți să reinventeze roata.
O API nu este chiar un dicționar, dar se apropie suficient de mult de unul pentru ca Oracle vs. Google să reprezinte o problemă uriașă. Din punct de vedere tehnic, puteți programa în Java fără să folosiți cele 37 de pachete API Java în cauză. Dar probabil că nu ați scrie nimic util, deoarece aceste API-uri includ java.lang și java.util, pachete de bază care oferă funcții precum efectuarea de calcule matematice sau reprezentarea datelor și orelor. De asemenea, din punct de vedere tehnic, pot să scriu acest articol fără metafore sau asemănări, dar nu este ceva ce aș vrea să fac sau pe care cineva ar vrea să îl citească.
Pentru a fi clar, cele 37 de API-uri Java au fost reimplementate într-o cameră curată. Oracle nu afirmă că sunt textual aceleași, ci mai degrabă că „structura, secvența și organizarea” API-urilor sunt atât de asemănătoare încât încalcă legea drepturilor de autor. Prin aceasta, se înțelege că pachetele, clasele și metodele din aceste API-uri sunt denumite la fel. O linie de cod scrisă pentru a rula în Java Standard Edition nu va rula neapărat pe Android, dar se va apropia mult mai mult decât ar fi făcut-o altfel.
Primul proces a avut ca rezultat un proces bifurcat în 2012 – un proces pentru revendicările privind brevetul și un al doilea proces doar pentru revendicările privind drepturile de autor. În procesul privind brevetele, juriul a decis că Google nu a încălcat niciun brevet. În procesul privind drepturile de autor, au fost puse în discuție două aspecte juridice distincte: în primul rând, dacă codul de declarare și „structura, secvența și organizarea” API-urilor pot fi protejate prin drepturi de autor și, în al doilea rând, dacă utilizarea de către Google a fost o utilizare corectă. Judecătorul s-a pronunțat cu privire la chestiunea privind dreptul de autor și a trimis chestiunea privind utilizarea echitabilă pentru a fi evaluată de juriu.
Juriul a decis cu privire la utilizarea echitabilă. Dar judecătorul – care, din întâmplare, a scris cod ca hobby – a decis că, până la urmă, codul de declarare și SSO-ul API-urilor nu erau acoperite de drepturi de autor. Legea privind drepturile de autor nu se aplică la nicio „idee, procedură, proces, sistem, metodă de operare”, iar modul în care pachetele, clasele și metodele erau denumite și sortate era prea funcțional pentru a fi considerat demn de drepturi de autor.
Această hotărâre specifică a fost anulată de Circuitul Federal în 2014. Deoarece primul juriu a fost suspendat în ceea ce privește utilizarea echitabilă, un juriu complet nou a trebuit să fie convocat pentru încă un proces privind utilizarea echitabilă în 2016. Juriul a fost de partea Google.
Dar, în 2018, Federal Circuit – aceeași curte de apel care, în 2014, a trimis cazul înapoi la juriu – a decis că verdictul juriului trebuia să fie anulat în favoarea Oracle, deoarece dovezile prezentate la proces indicau în mod clar că nu se putea ajunge la o determinare a utilizării echitabile și, prin urmare, nu ar fi trebuit să se ajungă la un juriu în primul rând.
Înlăturarea unui verdict al juriului este Big Judge Energy într-un mod care va fi cu siguranță controversat pentru Curtea Supremă și este probabil că pledoaria orală de miercuri va cuprinde o bună parte din discuțiile despre rolul judecătorului față de juriu într-un caz de drepturi de autor. Întrebarea despre cine și când trebuie să decidă cu privire la utilizarea echitabilă este ceva ce poate fi extrapolat la o mulțime de cazuri juridice diferite (pe care SCOTUS le adoră) și, de asemenea, nu are nimic de-a face cu matematica (pe care SCOTUS nu o iubește).
Din păcate, adevărata inimă a cazului se află în partea cu toată matematica și altele asemenea. Decizia Curții Supreme de Justiție în cazul Google vs. Oracle ar putea avea ramificații uriașe pentru industria software, cel mai important fiind faptul că Curtea Supremă ar putea să revină asupra chestiunii privind dreptul de autor – întrebarea dacă codul de declarare și structura, secvența și organizarea API-urilor Java sunt acoperite de legea drepturilor de autor – care nu a mai fost în joc din 2014.
Acest meci de răzbunare de zece ani dintre Google și Oracle nu este unul complet rațional. Reimplementarea de către Google a API-urilor Java face parte dintr-o lungă tradiție de iterație care a fost în mare parte considerată de la sine înțeleasă până acum. Produse precum MySQL de la Oracle au fost create ca iterații ale SQL de la IBM.
Aceasta nu înseamnă că copy-paste-ul este inima Silicon Valley. Dar există un punct în care vrei să încurajezi lucrurile să arate la fel, mai degrabă decât să fie diferite de dragul diferenței. Ca să spunem lucrurilor pe nume: codificarea este procesul de a vorbi cu mașina. Dar foarte puțini oameni care dezvoltă software în ziua de azi vorbesc de fapt direct cu mașina. Software-ul există în straturi peste straturi iterative, un joc de șoapte care, în cele din urmă, ajunge la metalul gol al computerului. Noi limbaje sunt derivate din cele vechi; noi biblioteci sunt construite pe baza celor existente; dependențele sunt stivuite unele peste altele ca într-un joc de Jenga care se va termina în orice moment. Iar Google vs. Oracle este un caz care se întâmplă la unul dintre cele mai joase niveluri ale unui joc Jenga în desfășurare.
Suntem pe cale să aflăm dacă Curtea Supremă știe acest lucru.
Corecție: O versiune anterioară a articolului a afirmat în mod eronat că baza de cod a Android era de miliarde de linii de cod. Aceasta este de ordinul milioanelor. Regretăm eroarea.
.