5 באפריל 2021. בית המשפט העליון האמריקאי פוסק, ומסרב לענות על השאלה שכולם שאלו.
יש כאן מספר שכדאי לעצור עליו לרגע: אחד עשר אלף וחמש מאות שורות קוד. זה מה שהיה במחלוקת בפועל, אחרי כעשור של התדיינות, שני משפטים בפני חבר מושבעים, ושני סבבים בבית המשפט הפדרלי לערעורים לפני שהתיק הגיע לעליון.
עשור שלם. שני הרכבי מושבעים. שני סבבים בערכאת הערעור הפדרלית. והשאלה האחת שכולם היו בטוחים שהתיק יכריע בה, האם מבנה של API מוגן בזכויות יוצרים, נשארה, בסוף כל הדרך הזו, בלי תשובה. (סוף אנטי-קליימקטי כזה, אחרי דרך כה ארוכה, כמעט קלישאה בסכסוכי תוכנה.)
בסכסוכי תוכנה אנשים נוטים לשאול קודם את השאלה הלא נכונה. “האם הדבר הזה מוגן בזכויות יוצרים?” זו שאלה שעורך דין שואל בפתיחה. לעיתים רחוקות זו השאלה שבית המשפט באמת צריך לענות עליה כדי להכריע בתיק שמונח לפניו. Google LLC v. Oracle America, Inc. היא הדוגמה הכי ברורה שיש: בית המשפט העליון קיבל הזדמנות לפסוק, אחת ולתמיד, אם מבנה של API מוגן בזכויות יוצרים, ונמנע מכך. הוא הניח, לצורך הדיון בלבד, שהקוד מוגן, והכריע את התיק על בסיס שימוש הוגן.
יש כאן הרבה יותר מטכניקה משפטית: זה הלקח המרכזי של כל התיק.
הארטיפקט: קוד ההצהרה, לא ה-API עצמו
תורידו לרגע את כל שכבות הערעורים, וזה מה שקרה בפועל. Oracle החזיקה בזכויות על Java. גוגל בנתה את Android ורצתה שמפתחים שכבר מכירים את Java יוכלו לכתוב אפליקציות ל-Android בלי ללמוד שפה חדשה. אז גוגל העתיקה את קוד ההצהרה (declaring code) של 37 חבילות API של Java: את הכותרות של המתודות והמחלקות, את השמות, את רשימות הפרמטרים, ואת המבנה הארגוני שמפתח קורא לו כדי להפעיל פונקציה. את קוד היישום שמתחתיו היא כתבה בעצמה. כ-11,500 שורות הועתקו מילה במילה, חלק זעיר מתוך 2.86 מיליון השורות שהרכיבו את תוכנת Java SE המלאה שהייתה במחלוקת. שאר היישום של Android נכתב באופן עצמאי על ידי גוגל.
תשמרו את ההבחנה הזו בראש (קוד הצהרה מול קוד יישום), כי היא לא סתם ניסוח משפטי. היא הארטיפקט שכל התיק נשען עליו. בית משפט לא יכול לפסוק “האם גוגל העתיקה את Java” בלי שמישהו יקבע, שורה אחר שורה, מה הועתק מילה במילה, מה נכתב מחדש, ואיזה תפקיד ממלא כל חלק בתוך מערכת פעילה. זו עבודה למי שיודע לקרוא קוד, לא רק כתב תביעה.
מה הרשומה מראה בפועל
תעקבו אחרי הרצף, כי יש כאן הרבה לזכור בבת אחת. Oracle הגישה תביעה ב-2010. חבר מושבעים קבע ש-Android הפר את זכויות היוצרים של Oracle, אך לא הגיע להכרעה בשאלת השימוש ההוגן. בית המשפט המחוזי (השופט William Alsup) פסק בעקבות זאת שקוד ההצהרה כלל אינו מוגן בזכויות יוצרים, כעניין שבחוק. בית המשפט הפדרלי לערעורים הפך את הפסיקה הזו ב-2014 והחזיר את התיק למשפט בנושא שימוש הוגן. חבר מושבעים שני הכריע לטובת גוגל ב-2016. בית המשפט לערעורים הפך שוב את התוצאה ב-2018, בקובעו שאף חבר מושבעים סביר לא היה יכול לקבוע שימוש הוגן, מה שהוביל את גוגל לפנות לבית המשפט העליון. בית המשפט העליון קיבל את התיק, ובאפריל 2021 הפך את פסיקת הערעור בפעם השנייה, ברוב של שישה מול שניים, בחוות דעת שכתב השופט Breyer, בקובעו שהשימוש של גוגל בקוד ההצהרה היה שימוש הוגן כעניין שבחוק.
תקראו שוב את הרצף הזה: שני הרכבי מושבעים, שני היפוכים בבית המשפט הפדרלי לערעורים, והיפוך אחד בבית המשפט העליון, סביב המעמד המשפטי של קוד ששני הצדדים הסכימו, פחות או יותר, שהוא קיים בדיוק כפי שהועתק. (חמישה סבבים משפטיים, אפס הסכמה, בדיוק כמו קבוצת וואטסאפ משפחתית שלא מצליחה להחליט איפה אוכלים בליל הסדר.) העובדות הטכניות לא היו באמת שנויות במחלוקת עד הסוף. מה שהשתנה כל הזמן היה איך בתי המשפט מסווגים את אותן עובדות: יצירה מקורית או ממשק פונקציונלי, תחליף בשוק או מוצר משלים, העתקה מילולית או שחזור הכרחי.
למה זו שאלה של חוות דעת מומחה, לא של עורך דין
שימו לב איפה הקרב באמת התנהל. עורך דין כללי קורא “גוגל העתיקה את הקוד של Oracle” ועוצר שם. מומחה תוכנה שמונה מטעם בית המשפט חייב לענות על שאלה צרה ומורכבת הרבה יותר: מה בדיוק זה קוד הצהרה, איך הוא שונה תפקודית מהקוד שמתחתיו, והאם העתקתו משרתת מטרת אינטראופרביליות (יכולת עבודה משותפת בין מערכות) שהעתקת קוד יצירתי או אלגוריתמי לא הייתה משרתת. חוות הדעת של הרוב נשענה בדיוק על ההבחנה הפונקציונלית הזו: התייחסות לקוד ההצהרה של Java כאל שטח אסור לגמרי, קבע בית המשפט, הייתה מסתכנת בנעילת מפתחים מחוץ לכישורים שבנו סביב ה-API, מעבר להגנה על הביטוי המקורי של Oracle. זו טענה טכנית שלובשת בגדים של חוות דעת משפטית, והיא הייתה זקוקה לביסוס טכני כדי לשרוד.
וזה בדיוק החלק שכדאי לעצור עליו: חברה ישראלית שמפיצה SDK, ארכיטקטורת plugin, או מימוש תואם-API, נמצאת במרחק סכסוך אחד מהצורך בדיוק באותו הדבר: מישהו שיודע להגדיר את השאלה הטכנית הצרה (מה הועתק, באיזו שכבה, מאיזו סיבה פונקציונלית), לרשום את החומרים (מאגרי קוד מקור, מפרטי API, היסטוריית גרסאות, לוגים של commits), להפעיל שיטה ניתנת לשחזור להפרדה בין קוד הצהרה לקוד יישום, ולומר בפירוש מה הניתוח יכול ומה הוא לא יכול להראות. אחרי זה, חוות הדעת צריכה לשרוד חקירה נגדית של עורך דין שקרא את הסיכומים בתיק Google v. Oracle ויודע בדיוק איפה ללחוץ.
הצד שמביא חוות דעת מומחה פורנזיקה מוקדם, ולא אחרי שהראיה כבר הוגשה, הוא הצד שמחזיק מעמד.
השורה התחתונה
Google v. Oracle לא הכריע אם ממשקי API מוגנים בזכויות יוצרים. הוא הכריע במשהו שקט יותר, ולמי שבונה תוכנה, הרבה יותר שימושי: שאפשר לעקוף את שאלת ההגנה כליל, אם מישהו קובע בדיוק טכני מה בדיוק הועתק ולמה. זו התבנית החוזרת בכל סכסוך על מבנה תוכנה. במקום פילוסופיה של קוד, בית המשפט זקוק לתיאור בדוק של הארטיפקט.
האמור לעיל הוא מידע כללי בלבד ואינו מהווה ייעוץ משפטי. עובדות התיק מבוססות על המקורות המצוינים.