Cuộc chiến pháp lý giữa Google và Oracle xoay quanh việc hãng tìm kiếm khổng lồ bị cáo buộc rằng đã sử dụng bất hợp pháp một đoạn mã nguồn Java API của Oracle trên hệ điều hành di động Android đang trở nên tồi tệ hơn bao giờ hết.
Cụ thể, Oracle đang đòi gần 9 triệu USD cho những tổn thất trong phiên toà mới đây trong khi Google vẫn kháng cáo rằng việc sử dụng các đoạn mã nguồn là hoàn toàn hợp pháp và việc đưa chúng vào Android không dính dáng đến luật bảo vệ bản quyền. Thật ra, nếu là người trong giới lập trình, chắc chắn ai cũng rỉ tai nhau rằng: Oracle bị điên, và tôi sẽ lý giải cho bạn tại sao lại như vậy.
Giới thiệu một chút, Java được phát minh bởi James Gosling - một trong những ngôn ngữ thông dụng nhất trên thế giới bởi khả năng hiện thực trên mọi thiết bị cũng như tính ổn định của nó. Một điều cũng cần lưu ý rằng tuy Java bị nhiều người gọi là ngôn ngữ lỗi thời nhưng họ đều phải chấp nhận rằng nó thích hợp với việc biên tập những chương trình lớn với yêu cầu tính toán khổng lồ. Nhờ những điểm mạnh đó, có một lượng lập trình viên khổng lồ nhuần nhuyễn với Java.
Hiểu được yếu tố này, năm 2005, Google mua lại Android sử dụng nhân Linux với trình biên dịch máy ảo JVM hiện đang trở thành hệ điều hành dành cho di động phổ biến nhất ở thời điểm hiện nay. Như vậy, nhất tiễn quy song điểu, vừa có nguồn lực phát triển Java lại còn không mất nhiều thời gian để bắt đầu. Tuy nhiên, đời không như là mơ, Google không lấy được giấy phép thương mại Java từ tay Sun Microsystem với mức giá tại thời điểm đó là 40 triệu USD. Do đó, hãng tìm kiếm này hầu như phải viết lại mã nguồn mở từ đầu và mô phỏng tất cả các dòng lệnh không được cấp phép từ Sun.
Lúc đó, Sun Microsystem không có phản ứng gì với động thái Google, cho đến khi bị Oracle mua lại và cho rằng mọi cố gắng với Android đều bất hợp pháp với bằng chứng là gói Java API số 37. Một phương thức (có thể hiểu đơn giản là khối lệnh để thực hiện một chức năng trong chương trình) mang tên rangeCheck để kiểm tra độ rộng của một mảng mà bất cứ lập trình viên nào cũng có thể viết được và sẽ cảm thấy cực kì khó khăn nếu nó khác với 9 dòng code đã nói trong tiêu đề, ngay cả với những người mới bắt đầu cũng có thể viết như vậy.
Theo như Google, họ đã cố gắng để không có bất cứ một dòng lệnh nào trong Android sao chép từ Java của Oracle, nhưng lại có một lập trình viên mang tên Joshua Bloch, sử dụng 9 dòng code này làm phương án tạm thời. Điều buồn cười lại nằm ở chỗ, Joshua đã làm việc tại Sun trước khi vào dự án Android của Google năm 2008. Trong khoảng thời gian đó, anh này vẫn cung cấp mã nguồn mở cho OpenJDK và thật éo le hơn nữa, Joshua lại đóng góp code cho OpenJDK thuộc quyền quản lý của Sun. Và nếu ai thắc mắc về lý do code của Joshua được chọn, thuật toán của anh này cho phép sắp xếp mảng nhanh hơn với rangeCheck, dựa trên TimSort trong Python.
Trả lời về vấn đề này, Bloch nói rằng anh không nhớ đã truy cập vào bất kì code bản quyền nào khi làm việc với Android, nhưng lại thừa nhận rằng code này là trùng hợp và xin lỗi về sai lầm này. Và như vậy, mặc dù là tác giả, thật là vô duyên khi Blosh lại không có quyền quyết định sáng tác của mình. Những dòng code này cũng được Google xoá sạch từ phiên bản Android 4.0 trở đi.

Cụ thể, Oracle đang đòi gần 9 triệu USD cho những tổn thất trong phiên toà mới đây trong khi Google vẫn kháng cáo rằng việc sử dụng các đoạn mã nguồn là hoàn toàn hợp pháp và việc đưa chúng vào Android không dính dáng đến luật bảo vệ bản quyền. Thật ra, nếu là người trong giới lập trình, chắc chắn ai cũng rỉ tai nhau rằng: Oracle bị điên, và tôi sẽ lý giải cho bạn tại sao lại như vậy.
Giới thiệu một chút, Java được phát minh bởi James Gosling - một trong những ngôn ngữ thông dụng nhất trên thế giới bởi khả năng hiện thực trên mọi thiết bị cũng như tính ổn định của nó. Một điều cũng cần lưu ý rằng tuy Java bị nhiều người gọi là ngôn ngữ lỗi thời nhưng họ đều phải chấp nhận rằng nó thích hợp với việc biên tập những chương trình lớn với yêu cầu tính toán khổng lồ. Nhờ những điểm mạnh đó, có một lượng lập trình viên khổng lồ nhuần nhuyễn với Java.
Hiểu được yếu tố này, năm 2005, Google mua lại Android sử dụng nhân Linux với trình biên dịch máy ảo JVM hiện đang trở thành hệ điều hành dành cho di động phổ biến nhất ở thời điểm hiện nay. Như vậy, nhất tiễn quy song điểu, vừa có nguồn lực phát triển Java lại còn không mất nhiều thời gian để bắt đầu. Tuy nhiên, đời không như là mơ, Google không lấy được giấy phép thương mại Java từ tay Sun Microsystem với mức giá tại thời điểm đó là 40 triệu USD. Do đó, hãng tìm kiếm này hầu như phải viết lại mã nguồn mở từ đầu và mô phỏng tất cả các dòng lệnh không được cấp phép từ Sun.
Lúc đó, Sun Microsystem không có phản ứng gì với động thái Google, cho đến khi bị Oracle mua lại và cho rằng mọi cố gắng với Android đều bất hợp pháp với bằng chứng là gói Java API số 37. Một phương thức (có thể hiểu đơn giản là khối lệnh để thực hiện một chức năng trong chương trình) mang tên rangeCheck để kiểm tra độ rộng của một mảng mà bất cứ lập trình viên nào cũng có thể viết được và sẽ cảm thấy cực kì khó khăn nếu nó khác với 9 dòng code đã nói trong tiêu đề, ngay cả với những người mới bắt đầu cũng có thể viết như vậy.

Theo như Google, họ đã cố gắng để không có bất cứ một dòng lệnh nào trong Android sao chép từ Java của Oracle, nhưng lại có một lập trình viên mang tên Joshua Bloch, sử dụng 9 dòng code này làm phương án tạm thời. Điều buồn cười lại nằm ở chỗ, Joshua đã làm việc tại Sun trước khi vào dự án Android của Google năm 2008. Trong khoảng thời gian đó, anh này vẫn cung cấp mã nguồn mở cho OpenJDK và thật éo le hơn nữa, Joshua lại đóng góp code cho OpenJDK thuộc quyền quản lý của Sun. Và nếu ai thắc mắc về lý do code của Joshua được chọn, thuật toán của anh này cho phép sắp xếp mảng nhanh hơn với rangeCheck, dựa trên TimSort trong Python.
Trả lời về vấn đề này, Bloch nói rằng anh không nhớ đã truy cập vào bất kì code bản quyền nào khi làm việc với Android, nhưng lại thừa nhận rằng code này là trùng hợp và xin lỗi về sai lầm này. Và như vậy, mặc dù là tác giả, thật là vô duyên khi Blosh lại không có quyền quyết định sáng tác của mình. Những dòng code này cũng được Google xoá sạch từ phiên bản Android 4.0 trở đi.
Nguồn: fossbyte