Todo lo que debes saber sobre el final de Java en Android

Jose Angel Zamora el 31/12/2015 a las 18:33

Android_Java_

Hasta ahora, cuando hablábamos de Android y empezábamos a pensar en las APIs disponibles, automáticamente pensábamos en Java. Y así es, pues éstas están montadas sobre el lenguaje de programación de Oracle.

Pero resulta que Android es open source, mientras que Java no lo es, lo que condujo a una serie de problemas legales entre Google y Oracle, a pesar de que el jurado diese la razón a Google.

Android N se pasará a OpenJDK en lugar de Java

Por eso, Google empezó en el pasado febrero de 2015 a migrar todas sus APIs hacia OpenJDK en lugar de Java con la idea de poder basar todo el código en licencias abiertas para su desarrollo.

openjdk

Todo esto vendría a raíz de una actualización de código que podemos encontrar aquí. Tal como confirma Google a VentureBeat:

Como plataforma de código libre, Android es construido gracias a la colaboración de la comunidad de código abierto. En nuestra próxima actualización de Android, planeamos movernos de las librerías Java a un enfoque basado en OpenJDK, creando un código base común para los desarrolladores para construir apps y servicios. Google ha trabajado duro y contribuido con la comunidad OpenJDK y esperamos contribuir en cada vez más proyectos OpenJDK en el futuro.

Esto nos lleva a que los problemas legales (o posibles) desaparecerán totalmente, lo que permitirá que Android sea de código abierto pero además desde su propia raíz.

En qué afecta este cambio

  • Desde el punto de vista del desarrollador, esto no debería más que ayudar a simplificar las APIs, pues podrían beneficiarse de las últimas novedades de la versión de código abierto de Java, pero no debería suponer problema alguno para el desarrollador.
  • Pero si nos vamos al punto de vista del usuario final, entonces sí que podemos afirmar que esto no llevará absolutamente ningún cambio para el mismo, permitiendo que esta migración sea totalmente transparente.

Al tratarse de un cambio sustancial, este cambio es normal que venga con la siguiente gran actualización de Android, previsiblemente Android N, con lo que los desarrolladores podrían ya hacer uso de esta actualizada API.

Sin duda, grandes noticias para la comunidad Android y su futuro. Y tú, ¿qué opinas?

Te puede interesar
  • Tu mamá en tanga

    Opino que chingue a su madre necroapple

  • Galeinfo

    Primero, agradeceros el articulo, pero no puedo compartir vuestra visión del todo bonito y maravilloso, si en funcion de la viabilidad de android, para el sistema es una gran noticia. En cambio para el usuario me parece una noticia triste, conociendo las políticas de actualizaciones de los fabricantes, este cambio de librerias en la proxima version sera el final del desarrollo de muchos dispositivos

    • Gonzalo Ortiz Jaureguizar

      Conociendo como Google intenta hacer sus cambios retrocompatibles y sabiendo que las diferencias entre una version y otra son minimas y muy especificas, seguramente muy pocas aplicaciones acaben notando el cambio. Hablar de esto si que hubiera merecido un artículo, pero claro, habría que investigar un poco y no bastaria con copiar, pegar y maquillar la noticia replicada de otros blogs

  • chinansky

    Señor redactor de EAL, sabes lo que es Java? Sabes lo que es OpenJDK? O es que el resto de redactores estaban de vacaciones y le ha tocado al becario escribir este cumulo de tonterias? Java es un lenguaje de programación, y SI es open source. Otra cosa con las APIs de Sun (ahora Oracle) y las posibles JVMs.

  • Gonzalo Ortiz Jaureguizar

    Pero vaya sarta de tonterías! lamentable artículo que confunde churras con meninas. Android seguirá usando Java como lenguaje (lenguaje que por cierte es libre) pero en lugar de usal la implementación de Apache Harmony, que era la que tenía problemas legales, usará la versión OpenJDK, que es la que mantiene Oracle y la comunidad de software libre. El problema con Oracle estaba originado en que Android, a través de Harmony, estaba haciendo uso de librerias propietarias de Java, algo que ahora no hará al usar OpenJDK. Pero Android NO DEJARA DE USAR JAVA

    • gonza28

      O sea que seguiremos escribiendo en java? no será otro lenguaje?

      • Joaquin Rotharmel

        Así es, sigue siendo java

      • Simón Internacional

        Asi es. Google no es capaz de hacer un lenguaje ni un ide decentes…

        • Joaquin Rotharmel

          Android studio es el mejor ide actualmente para programar en android, por otro lado, para que hacer un lenguaje nuevo, si java va muy bien, sería tiempo y dinero desperdiciado por nada.

          • Simón Internacional

            Android studio es un mierda de ide, y java es muy bonito pero se quedo en el pasado…

          • Elzar

            Vaya tontería.

            Ni Android Studio es un mal IDE. De hecho para programar Android es el mejor con diferencia (mucho mejor que Eclipse).

            Y Java para nada es un mal lenguaje y mucho menos del pasado… Por internet se escuchan muchas tonterías y más vale no repetirlas si no sabes de lo que se habla.

          • Acabas de demostrar que no tienes ni idea de lo que hablas.

            1. Android Studio se basa en IntelliJ IDEA, el mejor IDE para JAVA que existe. Y da gracias que JetBrains lo haya cedido gratuitamente (es un SW de pago).

            2. Java no es solo bonito, es tremendamente potente. Dispone de un API enorme que te permite hacer cualquier cosa, sin perder la portabilidad y con un tremendo soporte.

            Gracias a que se use JAVA, las aplicaciones para Android pueden ejecutarse en cualquier dispositivo, tenga el procesador que tenga (ventajas de ejecutarse en una máquina virtual).

          • Simón Internacional

            No dudo que intellij sea el mejor en java pero por favor no lo compares con xcode o visual studio… Por lo demas se basaron en la community edition, asi que no cedieron nada… Ademas eso de la arquitectura es real a medias… Las apps de ios corren sobre al menos 4 arquitecturas, incluyendo x64, la diferencia es que se usa un binario pesado y la appstore solo despacha el que le correcponde a la plataforma, pero ya viene optimizado desde antes, no necesita ese transformer de la semi maquina virtual ART…

          • Logger loggerFull

            Ya está aquí el pro fan de C# y la mierda de Swift, manda narizes, en el mundo real, se utiliza Java, es más potente que C# y más limpio y claro, por no decir que está mejor optimizado el recolecor de basura, en cualquier ámbito empresarial te encuentras con Android ya que iOS es cerrado por tanto no es legal utilizarlo fuera de su Store, ¿Lo vas pillando?.

            C# sólo es rentable en entornos puramente windows, pero nadie en sus servidores utiliza windows, son basados en Linux por tanto la capa en el servidor irá con Java, la parte cliente puedes hacerla como te de la gana, pero C# sólo es óptimo en dispositivos de Microsoft, por lo que ninguna empresa seria,independiente de Microsoft, se va a pillar las manos.

            Apple creó Swift para competir contra Java ya que el lenguaje que tenían era totalmente improductivo, Java es algo verboso pero es productivo y potente, Swift no lo conoce ni su madre y en cuanto a rendimiento ya está por debajo de Java, en referente a productividad no hay mucha diferencia, pero a nadie le va a importar Swift, es así de claro, programadores de videojuegos utilizarán C++ o un framework multiplataforma con Java con RoboVM, es así, igual que cualquier programador para apps normales.

          • Simón Internacional

            No, visual studio corre sobre windows, pero c# sobre windows, linux y mac… Apple tiene el programa de desarrollo enterprise para distribuir apps fuera del appstore, de hecho las empresas prefieren las tecnologias apple porque pueden controlar los dispositivos remotamente incluso antes de abrir package, algo imposible en android. Por otro lado, swift es un lenguaje moderno, java no. Swift es un lenguaje de bajo nivel pero incluso mas sencillo que los de alto nivel. Swift compila, java se interpreta, por lo mismo es considerablemente mas rapido que la misma ART, pese a que esta ultima compila al momento de instalar (WTF!). Por otro lado sólo un estudio de desarrollo de videojuegos de oligofrenicos los programaria directamente en c++ hoy en dia… Lo que se estila es crear un motor de videojuegos que luego traduce a c++… Por cierto, ningun famoso motor utiliza java, es un lenguaje que se quedo en el 2009…

          • Logger loggerFull

            Ningún famoso motor dice, madre mía Unity es para noob los profesionales utilizan frameworks…, Libgdx funciona en Java y es bastante popular, Java no es un lenguaje que se quedo en el 2009, cualquiera empresa lo utiliza para la parte de servidor en Web, además Java es mucho más rápido que Swift de aquí a lima, por no decir que Java lleva muchísimas mas actualizaciones y versiones estables, Swift no, no puedes comparar un lenguaje en pañales con un lenguaje actual, Swift es una mierda hecha a toda prisa por Apple para competir contra la productividad de Java y bueno las empresas no usa Apple no se a quién quieres engañar, se utiliza Android los dispositivos son más baratos y Apple NO permite crear apps fuera del store, así que a engañar a otro .

          • Jaime Guzmán

            Permiteme que me ria… Jmonkey jajajaajajjaa…. Que java es mas rapido que swift, porfavor, un solo link que diga eso, swift vuela! Las empresas de las que soy proveedor prefieren ios porque tienen control sobre todo el sistema de manera remota, incluso antes de abrir el equipo se puede asignar a la empresa y enviar los perfiles en la activacion, algo imposible en android… Ademas te equivocas, apple tiene el programa enterprise que permite distribuir apps over the air, lease fuera del appstore… No me creas nada de lo que te digo, verificalo en google….

          • Compra dispositivos en Google Works y podrán venir con la cuenta preinstalada y con Google Works puedes controlar todas las politicas que te vengan en gana y controlarlos cómodamente… con mucha mas variedad de dispositivos, intranet incorporada, mas servicios, soluciones, etc :). Control total… si con IOS ni tienes control total de manera local como para tenerlo remota y legalmente XD. Vamos, como usuario particular lo puedes comprobar, puedes pedir que te precarguen tu cuenta en el dispositivo, yo lo hice allá cuando salia la primera Nexus 7.

            Así que cuidado con las quejas de la competencia :)

            Por cierto no es que sea lento, es que es dificil hacerlo rapido si usas todo a base de api y librerias XD, asi que cuanta mas librerías… menos optimizada y por tanto menos rapida… pero tambien mas facilidad para mantener, desarrollar, etc. Segun se (mas bien poco) Swift es a java lo que Objetice C a C.
            Y la verdad, solo veo link en paginas de programas que swift es mas lento… mas que java. Y cuando lo supera es a costa de duplicar su consumo de cpu. Me gustaría tener mas info pero la verdad es que no encuentro información general sobre ambos y paso de documentos técnicos con ejemplos bastantes acotados :/

            P.D.: Si en 20 años no nos hemos quitado a Java… no nos lo vamos a quitar ahora y menos en el mercado empresarial con lenguajes de juguete inestables nuevos… sino para eso tenemos cosas como python por ej el cual tiene muchisimos mas adeptos y mejor implementado a nivel empresarial.

          • Logger loggerFull

            Obviamente no me voy a creer nada de lo que dices, yo trabajo como ingeniero de software y se que en España no se toca iOS ni con un palo, pero no sólo aquí, en toda Europa o en EEUU, nadie en su sano juicio utilizaría clientes con iOS, es ridículo y absurdo por no decir que hasta te pueden tirar a sistemas embebidos por ahorra dinero por cada dispositivo y necesitar escribir código que sólo ingenieros de sistemas saben hacer con tal de reducir los costes en hardware… iOS jamás tendrá el lugar que ocupa Android ni hoy ni nunca, la naturaleza de Android es muy diferente a la de iOS os guste o no.

          • Jaime Guzmán

            Mira, te lo pongo facil con un solo ejemplo de muchos… Si un ipad te lo roban lo puedes bloquear desde el sitio de apple para siempre y se transforma en un pisapapeles… Si un android te lo roban jodiste… Es por eso que aerolineas y autobuses con servicio de tablet a bordo usan ipads…

          • Logger loggerFull

            Vamos a ver deja de decir chorradas, el bloqueo es por software en ambos dispositivos y en Android funciona igual, ahora bien Qualcomm(usado en Android) lo está implementando en hardware para hacerlo más seguro, pero de hay a decir que por eso van a usar iOS, venga ya a trolear a tu casa, un dispositivo con Android es más seguro ya que tienes a mano el código, es más barato, igual o mejor en rendimiento y el código es más escalable y mantenible, por no decir que Java es más rápido y más productivo que Swift, iOS ninguna empresa con dos dedos de frente lo va a usar, otra cosa es que lo utilizen empresas públicas, o políticos, ¿y?, las de verdad no tienen o no pueden tener la cara dura de desperdiciar el dinero.

          • Jaime Guzmán

            En android con un mensaje multimedia puedes ejecutar codigo arbitrario….. SEGURISIMO!… Fue parchado pero a tu dispositivo la actualizacion con suerte llegara en un año o dos… Del bloqueo por software podras leer en este mismo blog que se salta presionando un par de botones jajajajajajaa no jodas, amas a tu juguete…

          • Logger loggerFull

            Y ya que tan listo te crees riendote de Jmonkey acaso crees que Unity ¿es un motor profesional?, cualquier programador de videojuegos serio sabe que Unity no es rentable, pues no sigue niveles de calidad de ingeniería del software, sus bugs no se corrigen y su forma de abstraer no es portable a otros motores, por no decir que en Unity en temas avanzados tienen que pelearse con problemas de bugs.

            Podreís trolear los que os salga de la polla pero cualquier programador sabe que Java es más rentable, en España he visto varias empresas que utilizan C# y son pura mierda, ni pagan bien ni saben escribir código de calidad, muy diferente a empresas enfocadas en Java, la calidad se paga, por no decir que Apple es un puro mito, Android tiene todo el mercado en España que empresa va a querer usar un dispositivo tan caro y sin nicho, ni tu abuela.

          • Jaime Guzmán

            Que tiene que ver mi abuela aqui? Jmonkey es un motor de videojuegos para aventureros, tal como ellos mismos lo describen… Unity 5 y unreal engine 4 son motores profesionales que nada le envidian a los desarrollos internos de las productoras, incluso varias los usan. Jmonkey ni flappy birds lo usó…

          • Simón Internacional

            Eso sin mencionar lo potentes del core de swift o c#… Dejan a java en ridiculo

          • Simón Internacional

            Java funciona pero nadie sabe muy bien cómo, los ciclos de retención y el control de concurrencia estan mal solucionados. Java 8 provee herramientas para estos dos grandes peoblemas, pero pese a ser liberado a principios de 2014 aun no es soportado oficial ni completamente en android. Al menos debería darle verguenza a Google

          • Si quiere pasarse a OpenJDK, ha estado tratando con ART y actualizando el sistema en otras cosas posiblemente mas urgente me parece normal que no mire Java 8, para que las cosas sean implementadas correctamente normalmente lleva su tiempo sobre todo si son cambios importantes que podrian dar problemas de compatibilidad con versiones anteriores o temas de desarrollo.

        • Jane Tu

          Y tu no eres capaz ni de escribir una sola (una sola) frase correctamente. XDDDDD.

    • Daniel Alejandro

      Menos mal si no, habría aprendido java en vano

    • Aritz Jik

      Vale, pero la expresión es “mezclar Churras con merinas'”, dos tipos de ovejas, parecidas, pero no iguales, viene al pelo, o mejor, lana, xd.

  • Esta es la típica redacción sin fundamento con la que te arrancas los ojos en fin de año.

  • moralesnery

    “Android cambiará a Java por OpenJDK”. Si vas a escribir sobre algo que no entiendes completamente, por lo menos lee Wikipedia..

    Dicho esto, Android puede beneficiar bastante a OpenJDK, tal vez logrando la optimización que con Harmony no puede por falta de soporte y por los problemas de licencias.

  • Henry

    Creo que un tema fecilitando a los usuario y despidiendo el año sería mejor , que escribir esta sarta y burla de artículos

  • Daniel Suárez

    Se nota cuando alguien escribe un artículo sin tener ni idea de lo que está escribiendo. Cuatro cosas mal puestas a lo loco para conseguir un artículo corto a la vez que pobre. Antes de publicar, documentarse.

  • Articulo pesimo, deprisa y sin pensar mucho… esto no es mas que eso, cubrirse las espaldas, ver que no es necesario la version privativa de java PARA NADA (yo uso en linux openjdk y tan feliz para todo) y esperemos que facilite su implementacion en ChromeOS para en un futuro los productos cooperen de mejor manera.

  • Nastrand

    Lastima que Android (y google) no aprovecharan la oportunidad para de verdad dejar de usar Java e implementar Android sobre algún lenguaje mas moderno y versatil como Go o Python.

  • Carlos Felipe Araújo

    Google podría usar Swift 2 de Apple que ahora es open source jajaja

  • Adrián Madueño

    Pregunta para los expertos, soy programador pero no estoy muy al tanto de esto asi que pido opinion: El AndroidNDK permite programar en C/C++ para android (eso he leido pero no lo he probado la verdad). Significa eso que las aplicaciones desarrolladas con AndroidNDK no se cargaran sobre maquinas virtuales de java y que por tanto no tendrian los problemas de rendimiento que da el tener que levantar una maquina virtual por cada app. Lo pregunto basicamente porque no se si ejecuta nativamente el codigo maquina generado del c++ o simplemente lo “porta” a java o algo asi siendo solo un capricho para los que les gusta mas la sintaxis de c++. Si es como yo pienso el “problema” de android que tanto criticaban los users de windows phone y de iOS (no poder ejecutar un lenguaje compilado) se habria acabado no?

    • Joaquin Rotharmel

      De verdad eres programador? Java es un lenguaje compilado, y el propósito de que se ejecuta en una maquina virtual es su razón de ser, se creó con ese objetivo. Cualquier entorno de programación que te deja escribir el código en otro lenguaje lo porta al lenguaje que ejecuta el sistema destino, en este caso java.

      • Adrián Madueño

        Java no es completamente compilado. Cuando compilas un programa en Java, este se traduce a bytecode que es una especie de código intermedio entre un lenguaje de alto nivel y el código maquina y que posteriormente es interpretado por la JVM por eso se puede usar en cualquier plataforma pero eso conlleva una perdida de rendimiento. Al menos es así lo que tengo entendido. C++ se compila directamente en instrucciones binarias por lo que no necesita ningún tipo de interpretación. Lo que yo pregunto es si los códigos que escribas en el androidNDK de google se compilan a código maquina (como ocurriría en un programa para windows mismamente) o simplemente se portan a java y siguen el mismo proceso de los bytecodes que dije antes. Pregunto por si alguien ha tenido la oportunidad de usar el androidNDK y puede solventarme esta duda.

    • Gonzalo Ortiz Jaureguizar

      “levantar una maquina virtual” no supone ningún problema de rendimiento. Android usa muy inteligentemente el sistema de Copy on Write de Linux, por lo que ya está todo en memoria y se usa la misma copia para todas las apps. El problema del rendimiento viene en menor medida por interpretar el código, en mayor por la recolección de memoria pero sobretodo viene de las malas implementaciones de fabricantes. Si usas un Nexus, verás que tienen mucho mejor rendimiento que muchos otros terminales más caros o nuevos.

      • Adrián Madueño

        Bueno con los problemas de rendimiento me referia en general a la perdida de rendimiento que se produce al usar un lenguaje que no es completamente compilado. Pero no sabia lo del copy on write gracias por el dato. Pero mi pregunta es si el código que escribes y compilas usando la ndk de google (c++) es compilado a código maquina completamente como si lo escribieras para usarlo en el pc y por lo tanto ya no habria problema ni de maquinas virtuales ni de interpretaciones ni de nada en ese sentido o si solo es portado o algo similar para que sea igualmente ejecutado por ART?

        • Gonzalo Ortiz Jaureguizar

          Si usas NDK evitas completamente ART. Aun así NDK implica otros tantos problemas. NDK está pensado para aplicaciones de alto rendimiento como juegos y aplicaciones que hagan uso intensivo de memoria. Si vas a desarrollar aplicaciones normales, no te lo recomiendo.

          • Adrián Madueño

            Vale muchas gracias por la respuesta. No es que tenga ningún proyecto en mente sino solamente que no tenia muy claro lo del ndk que creo es relativamente nuevo. Gracias de nuevo

    • Marcos. D.

      No es tan fácil, el NDK existe y esta enfocado para Benchmarks y juegos, apps que necesitan explotar mejor los recursos, el problema de hacer uso del NDK es que se sacrifica otras cosas como APIs, se pierde a nivel de seguridad, en algunos casos necesitas adaptar apps o hacer recompilados, acostumbran a ser proyectos mas largos ya que tienes que programar cosas que normalmente la maquina java ya hace de forma automática, entre otras cosas… en definitiva no es recomendable hacer uso del NDK a no ser que sea muy necesario.

  • Belcheir Buckland

    Aclárenme una duda, ¿si esto significa que las aplicaciones desarrolladas bajo dicho entorno no se podrán ejecutar en Android 6.0 o anteriores, o viceversa, si las apps comunes de ahora no se podrán ejecutar en Android 7.0?

  • Wilmer E. López Rivas

    no tienen ni puta idea de lo que esciben aquí

  • Kite

    OpenJDK = Open Java Development Kit

    Pues menos mal que es el final de Java XD

  • The Sovereign

    Menos mal que el autor del artículo es el “developer Android” del Blog, llega a ser el comeflores y volvemos a los orígenes de Cobol.

  • Antonio Garcia

    Leer los articulos de el androide libre se esta convirtiendo en un ejercicio de masoquismo, entre articulos que no tienen fundamento (no es lo mismo “el final de Java en Android” que cambiar la maquina virtual java que implementa el sistema operativo), articulos que no tienen relacion con Android (como el del WhatsApp del negro tocando la zambomba), faltas de ortografia garrafales…

    A este paso, conversaciones etilicas un sabado de madrugada van a tener mas fundamento y mas interes que los articulos de el androide libre.

    Si no se emmiendan bastante pronto va a leer sus articulos su abuela.

LG Nexus 5X - Smartphone libre de 5.2" (2 GB de RAM, 16 GB de memoria interna, Android) color blanco
Precio oferta
248,96 €