В канун Нового года многие забугорные сайты разразились статьями, в которых сообщалось о намерении Google отказаться от Java API, который является собственностью компании Oracle. На страницах Хабра/Гиктаймса не раз обсуждались судебные тяжбы между двумя IT-гигантами.

В конце концов, Гуглу надоело это положение вещей и они решили сделать следующий «финт ушами» — следующая версия Android N (7.0) уже пишется при помощи открытой OpenJDK.

В качестве косвенного доказательства приводят ссылку на страницу одного коммита https://android.googlesource.com/platform/libcore.git/+/51b1b6997fd3f980076b8081f7f1165ccc2a4008, который датирован ноябрем 2015 года, где есть упоминание об OpenJDK.

Сама компания говорит, что подобный шаг позволит использовать новые возможности Java 8. Но независимые аналитики предполагают, что не последнюю роль в этом решении сыграло желание Google покончить с обвинениями Oracle в нарушении патентов.

OpenJDK является открытым и свободным ПО и подобный шаг кажется логичным. В тоже время при обсуждении этой новости зарубежные комментаторы указывают на определённые юридические проблемы, которые по-прежнему останутся. И юристы из Oracle без работы не останутся. Поживём — увидим. Пока официальных комментариев от двух компаний не поступало. Поэтому новость нельзя считать полностью подтверждённой.

Некоторое время назад также циркулировали слухи, что Google думает о замене Java в Android на другой язык программирования. В качестве преемника назывались Go и Dart, И где-то в секретных подвалах компании разработчики якобы пробуют портировать код. Думается, что на данный момент такой исход маловероятен. Их время ещё не пришло, а может и не придёт.

Upd: через час после выхода моей статьи на Гиктаймс появился более развёрнутый пост на эту тему — http://geektimes.ru/company/icover/blog/268644/

Комментарии (15)


  1. ScratchBoom
    04.01.2016 00:53
    +6

    Go и Dart? Я лично вангую Kotlin


    1. Borz
      04.01.2016 02:20

      а Kotlin разве уже ушёл хотя бы в стабильный предрелиз?


    1. Vladiator
      04.01.2016 02:28
      +1

      А в чём разница, если всё равно в JVM компилится? Или тяжбы лишь из-за языка?


      1. ScratchBoom
        04.01.2016 12:04
        +4

        В том то и дело, что go и dart в JVM не компилятся. Зачем их в статье упомянули — вообще непонятно. Для них ни вменяемых средств разработки нет, ни нормального комьюнити. Переучиваться на эти языки с java как-то странно. А для kotlin уже и поддержка в android studio есть и писать на нём можно одновременно с java.


        1. MercurieVV
          05.01.2016 02:13
          +2

          Ээээ. Как я понимаю, суть проблемы в том, что Андроид использует Джава АПИ без разрешения. Если поменять на Котлин, то проблема не исчезнет. Поэтому, менять на него смысла особого нет.


        1. Ghedeon
          05.01.2016 14:03

          Все правильно упомянули, и в Dart и в Go есть коммиты которые напрямую относятся к андроид. Dart вон даже отдельный фреймворк выкатил. Сам я за kotlin, но нельзя отрицать, что работа ведется по многим направлениям. В Google тоже не одни пророки, видимо распределяют риски, авось что-то одно да выстрелит.



  1. dirtyHabrBobr
    04.01.2016 10:57

    Go уже позволяет делать мобильные приложения без участия Java;
    и может быть использован на обеих ведущих платформах.


    1. ScratchBoom
      04.01.2016 12:11
      +5

      При желании можно хоть на паскале писать. Но поддержка всего этого оставляет желать лучшего


      1. burjui
        04.01.2016 20:22

        Если точнее, то именно поддержки вовсе нет — есть возможность. Что ни возьми — Go, C++ или Pascal — всё равно всё придётся делать через JNI, т.к. подавляющая часть Android API написана на Java и недоступна напрямую в native code, так что полноценное приложение нельзя написать целиком даже на C++, на котором сам Android написан. Другими словами, в Android внутри C++, а снаружи — Java. А для полноценной поддержки нужен C'шный API, для работы с которым уже сто лет в обед существуют всевозможные FFI в подавляющем большинстве языков программирования.


        1. dirtyHabrBobr
          04.01.2016 22:31

          1. dirtyHabrBobr
            04.01.2016 22:45
            +1

            Хеловордные примеры, картинка кликабельна (см. с 24-го слайда)


            1. halyavin
              05.01.2016 12:16

              Про них и речь. Без использования JNI, у NativeActivity приложений есть доступ только к тому, что предоставляет NDK. Послать интент, к примеру, вы не сможете — такого API в NDK нет.


  1. alexanderVmironenko
    05.01.2016 18:21

    Интересно:
    1. Спорят уже компании давно, что мешало то раньше перейти на OpenJDK тем более с ресурсами Гугла?
    2. Затронет ли переход на OpenJDK code base стандартизацию API Андроида? Иначе говоря, JCK будут проходить или просто стянули API + имплементацию?


  1. gotozero
    09.01.2016 20:06

    Здесь хорошо описано что из этого следует и чего ждать:
    http://gluonhq.com/android-moving-openjdk/