Apple marca a Java como obsoleto (deprecated) en OS X, ¿y ahora?

Como algunos se habrán enterado ya, Apple marcó como obsoleta su implementación de Java.

Leyendo un poco, se da uno cuenta que esto no quiere decir que Apple demerite la tecnología Java, sino que ya no continuará desarrollando la implementación propia de Apple. Jobs habló al respecto y mencionó que la JDK que provee Apple siempre va un paso detrás de la oficial, así que prácticamente están dejando de generar esta implementación esperando que Oracle sea quien la realice, así como hace para otras plataformas.

Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it.

El problema con Apple creo que es que no explica sus decisiones ni las toma gradualmente, simplemente las toma y ejecuta y deja que todos se enteren. La primera impresión de todos cuando comenzó a circular esta noticia en Twitter fue desaprobatoria hacia Apple por lo mismo, ya con lo que dijo Jobs después se da uno cuenta de que quizá tengan algo de razón, aunque IMHO debieron buscar una transición hacia otra implementación o al menos avisar a Oracle antes de marcarla como obsoleta, por eso todo mundo se les fue encima. Lo mismo pasó cuando intentaron sacar Flash de la jugada y terminaron arrepintiéndose.

¿Y ahora?

Es lo que me pregunto, tal vez como duda personal. Francamente yo tenía en mente adquirir una Macbook en el corto plazo, ahora no sé si sea conveniente hacerlo o si vaya a existir (o exista) un workaround que me permita ser desarrollador Java en Mac sin sufrir en el intento. Maqueros de javaMéxico, sería de mucha utilidad su opinión al respecto...

¡Saludos!

*** Actualización ***
Hay una petición en línea para solicitar a Apple que done su JDK a OpenJDK, pueden firmarla aquí:

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Peticion

Por las interwebs anda esta petición pidiendo a apple que done el código del JDK a OpenJDK. Tengo una mac y voy a ver como me va usando el OpenJDK en Mac, hay les cuento como me va.

Imagen de ezamudio

sigh...

Yo estuve viendo partes de la presentación que hicieron ese día. Cuando anunciaron las nuevas Macbook Air estaba un poco escéptico, hasta que vi el precio... entonces me gustaron mucho. Luego veo que el mismo día sacan actualización de Java, 1.6.0_22 con lo que pensé que ya se empezaban a poner al parejo (instalé 1.6.0_22 en Windows y Linux apenas una o dos semanas antes; normalmente Apple se tardaba incluso varios meses en sacar un update que nos pusiera en la misma versión que las otras dos versiones).

Y luego veo que sacan esa notita muy al margen con la actualización de Java. No me gustó nada. Sobre todo la forma. Mucho bombo y platillo para las nuevas laptops, adelantos del siguiente Mac OS X, nuevo iLife, tienda de aplicaciones para Mac, etc etc, y por otra parte muy discretamente sacan actualización de Java, diciendo "ahi les dejamos esto, es la última vez que les actualizamos Java, con esto nos lavamos las manos y que les vaya bien".

Yo soy partidario de la idea de que marcaron Java como algo deprecado para que cuando salga la tienda de aplicaciones para Mac, no pueda haber aplicaciones hechas en Java. Ya está mencionado en la licencia para los desarrolladores; no pueden meter aplicaciones a la tienda que estén hechas con tecnologías no soportadas o deprecadas, y de hecho mencionan a Java.

De haber querido, hubieran podido hacer las cosas bien. Hablar primero con Oracle, o con los de OpenJDK y ver la manera de hacer una transición, para poder anunciar algo como "esta es la última versión de Java que saca Apple, la siguiente será hecha por Oracle y ya hablamos con ellos y creemos que la pueden tener lista para $ALGUN_DIA". En vez de eso lo hicieron casi casi en secreto. Oracle por supuesto no ha dicho nada al respecto porque no acostumbran anunciar planes sino hechos, pero pues eso nos deja mientras tanto en la incertidumbre, porque no sabemos si Oracle va a tomar la batuta y nos dará un JDK/JRE para la Mac, o si tenemos que esperar al OpenJDK a ver qué dia está listo porque le falta un buen, yo lo veo en pañales...

Siguiendo con teorías conspiratorias, puede que Apple también quiera lavarse las manos porque lo único que ha logrado sacando su propia versión de Java es permitirnos usar su ambiente gráfico para correr Eclipse por ejemplo, y con eso usar el Android SDK y programar apps para Android, la competencia del iPhone. Creo que también están tomando una actitud de "si quieren seguir programando para eso aquí, háganle como puedan, ya no tengo por qué estarlos ayudando".

Espero realmente que Oracle tome las riendas, pero necesita forzosamente de la ayuda de Apple. Apple siempre quiso estar sacando su propio JDK/JRE porque su ambiente gráfico es muy distinto al de Linux y Windows, y son algo celosos de que se vea todo bien, que sea coherente, etc (aunque sus propias apps no sigan sus guías de interfaz, como iTunes). Veo difícil que Oracle (o quien sea) pueda hacer algo desde cero para que funcione en el ambiente gráfico, y es muy necesario para aplicaciones de escritorio, que son las que usamos para desarrollar aplicaciones de servidor. Y también el sistema operativo es distinto de Linux; Linux es un kernel monolítico y MacOS/Darwin maneja el microkernel mach. El manejo de threads seguramente es muy distinto también y por lo tanto la JVM necesita tener ciertas optimizaciones para algunas cosas específicas de Darwin y de Mac OS X como tal; no solamente es la parte gráfica.

Apple ciertamente iba un poco (o a veces muy) atrasado en sacar la misma versión de JVM que tenían los otros sistemas operativos, pero cuando salía el update, sabías que iba a funcionar bien porque estaba super probado y que iba a ser algo estable.

Por mientras, esta iMac seguirá siendo la compu que uso para desarrollar, durante un año más seguramente. Si salen más actualizaciones de Java no las tendremos en Mac, pero mientras no hagas deployments aquí no tienes tanta bronca, porque tu bytecode correrá mejor en donde hagas deployment y que tengan dichas actualizaciones. Falta un rato para que salga Java 7 y la neta no tengo ninguna prisa por instalarlo, porque parece que lo que va a incluir no es realmente muy novedoso; ya lo tengo usando Groovy.

Pero si esta compu se muere, o si sale Java 7 y no hay para Mac, o si sale Lion y no lo puedo instalar porque ya no voy a poder usar Java, entonces bienvenido Ubuntu. Pero no me deja de dar coraje y algo de tristeza que Apple decida ahuyentarnos así a muchos desarrolladores que hemos usado su plataforma durante ya varios años. Yo uso Mac OS X desde que se llamaba NextStep, y ahora parece que a Apple ya no le interesa que le siga comprando computadoras.

Y la gente me decía loco

Y la gente me decía loco porqué yo pienso que el JDK debe proveerlo Oracle. En fin, es por ello que yo no regreso a Apple por nada del mundo (a no ser que se vuelvan open source, lo que es imposible).

Con Apple las cosas siempre han sido así, primero: "$Producto es mucho mejor con esta característica porque $lista_de_ventajas"...Y de un día a otro: "$Producto es feo, nos pasaremos a $otracosa". Sino pregúntenle a los de Adobe el batallar que fue de Carbon a Cocoa (si Adobe, una empresa tan unida a Apple batallaba, no quiero imaginar Oracle que es la competencia directa de sus Apps para teléfonos). Igual a todos los desarrolladores que ya sabían como funcionaban los equipos de la era Gx y de repente cubetazo de agua fría pasados a Intel (Adobe también se vió afectado).

Lamentablemente creo que Oracle tiene muchas razones porqué hacer JDK, aunque también tiene varias para decir no.

Por mi parte no pienso desarrollar nada en MacOS, a menos que sea una aplicación para iP[ad, od, hone]; pero para multiplataforma me quedo con GNU/Linux.

Es una lástima. Aunque

Es una lástima. Aunque llegaba tarde la actualización llegaba al fin.

A mi me tomó un rato convencer a mi jefe de que podía prescindir de Windows y programar en Mac si lo que estaba usando finalmente era Java; esto ya no va a ser así.

Trabajar en OSX, es la neta. Más allá de que sea UNIX y tenga todas las herramientas disponibles ( en donde Linux es equivalente ), el entorno gráfico esta muy bien integrado.

Espero que la comunidad open source, logre dar una buena versión de Java ( si es que Oracle no lo hace ) de la misma forma como ahora hay Python y Ruby para OSX, aunque me parece que antes de que eso sucediera, saldría Java 7 ( osea que uuuuuuuhhh )

:(

Imagen de ezamudio

Posición Apple

wishmaster77, Oracle no es competencia directa de las apps móviles de Apple; Oracle ni siquiera tiene un teléfono móvil, ni una plataforma para móviles. Creo que te confundiste con Google (a quien Oracle demandó por usar la marca Java porque la VM de Android no cumple con varios requisitos necesarios para poder llamarse Java).

En cuanto al cambio de Carbon a Cocoa, claro que estuvo rudo, pero al menos Apple dio mucho soporte en esa época, porque pues pasar una aplicación de MacOS 9 a Mac OS X realmente era pasarla a otro sistema operativo completamente distinto. Es igual o peor que migrar una app de Windows a Linux (o viceversa). Y con el paso a Intel también hubo buen soporte, con lo de Rosetta que nos permite hasta la fecha correr en Intel apps que fueron compiladas para PPC.

Con esos antecedentes, creo que Apple muy bien hubiera podido hacer alguna transición, algún plan para entregarle a Oracle o a quien sea la batuta de la JVM en Mac OS X, en vez de simplemente abandonarlo así como lo hicieron.

Todo esto no hubiera pasado si Sun hubiera sido el proveedor de la JDK para Mac desde el principio, sí, pero ahí el que se quiso aventar la bronca fue Apple. Lo molesto es que ahora salgan con que ya no la quieren seguir haciendo ellos pero no se sientan a hablar con Oracle para ver algun plan de transición, simplemente lo dejan botado y nos dejan a todos con la incertidumbre del futuro de Java en esa plataforma. Y la bronca más allá de ser filosófica, es muy real para muchos. Escribo esto desde la tercera (y probablemente última) Mac que he tenido en ya casi 10 años de manera profesional, y he usado esta marca porque como dice Oscar es la neta para trabajar, me siento muy a gusto programando en Java en la Mac. Y seguramente hay muchos, muchos desarrolladores que están en la misma situación.

Yo no creo que haya una alternativa OpenSource de JVM en Mac pronto, al menos no algo funcional. Ya sé que OpenJDK se está medio acercando, pero eso es como para correr aplicaciones en línea de comando, nada gráfico. Si vamos a tener que correr todo lo de Java en X11, para qué carajos seguir en Mac? Está la opción de usar Parallels o Virtual Box o VMWare o algo así para poner Linux y correr ahí todo lo de Java, pero pues si es lo que principalmente usamos... no sé qué tanto caso tenga.

Re: Posición Apple

Me refiero en cuanto a Apps...Tu una vez me dijiste que en desarrollo móvil (sobretodo de android) por la puerta de desarrolladores hay un aviso diciendo: "Se habla Java". A eso me refería sólo a las Apps o al desarrollo de éstas. Aunque claro no falta algún que otro loco que haga algo interesante; pero la mayoría de aplicaciones móviles (fuera de las de iPhone) están hechas con Java (y unas pocas en Python y empiezan con Ruby).

Con el resto de tu comentario, muy de acuerdo.
Jaja yo recuerdo cuando dije algo parecido, pero conmigo era la segunda y última Mac; una G4 comprada en 2006 y que en 2007 quedó fuera de la jugada.

Imagen de ray_iceman

Indeciso

Pues yo estoy igual que Benek, quería mi Mac y ya hasta le echaba ojitos a una Air, pero luego con esto me han dejado pensando. Justo ahora que comentaba que las Mac parecían haber dejado de ser exclusivas de los diseñadores y la cantidad de programadores en Java con Mac iba en aumento.
En fin, creo que pospondré la compra en lo que veo como se desarrolla esto.

Imagen de benek

Vale la pena?

Chavos, o sea que si compro ahorita una MacBook para desarrollar Java tendrá un tiempo de vida útil de... ¿1 año? ¿Año y medio?

¿Valdrá la pena?

Saludos.

Mejor, conviene desarrollar en Java ?

Hola:

Estoy por iniciar nuevos desarrollos, estoy buscando mi nueva plataforma de desarrollo para los próximos años. Me asalta la duda, con todo esto que le está sucediendo a Java últimamente (Compra de Sun por Oracle), y esto de Apple. La pregunta es, conviene elegir Java cómo plataforma de desarrollo ? Detenganse por un momento a pensar, para mi son muy importantes sus comentarios.

Gracias

Re: Mejor, conviene desarrollar en Java ?

Pues depende que quieras hacer. Para trabajo en alto nivel en escala empresarial parece que Java funciona. Para proyectos pequeños a medianos que necesitas desarrollar en poco tiempo, no me parece (bueno, no sin usar Play! o Roo).

Java por hoy es lo más utilizado según estadísticas a nivel mundial. Sin embargo ya hay que hacer un plan de contingencia (yo ya empecé).

No, yo diría que unos 3 - 4

No, yo diría que unos 3 - 4 años. Tiempo suficiente para comprar una Mac y depreciarla.

Aunque Java 7 y 8 estàn anuncados para mediados del año que viene y para finales, no creo que suceda y la adopción será más lenta.

Así, que entrale ...

Que Oracle haya comprado

Que Oracle haya comprado Sun, debe de ser una buena noticia para la industria ( aunque no lo sea tanto para los desarrolladores ) y un mensaje claro de que Java va a seguir siendo la opción.

Que Apple ya no vaya a desarrollar Java el mismo, no significa que no vaya a haber una version para Java ( lo unico que va a pasar es que tardará mucho más tiempo en que haya algo estable ) Pero el impacto es casi nulo, es decir, perderás el 2 o 3 % del mercado que tiene Mac en el escritorio y o sea que no se va a notar la diferencia.

La máquina virtual de Java debe de ser considerada como una plataforma de desarrollo muy buena para los siguientes 10 años cuando menos.

Conviene elejir Java como plataforma de desarrollo? La respuesta es extremadamente subjetiva y depende de lo que quieras hacer. Hay quien en estos 15 años de vida, jamás lo ha usado y vive sin problemas. Sin embargo, yo no creo que esta noticia de apple sea un factor determinante para elegirla o no para el usuario final. La noticia es mala por que los desarrolladores que encontramos atisfaccion en Java en Apple, veremos mermados esta experiencia, pero que no quede duda, el mundo sigue usando Windows.

Esto es lo que quiero hacer...

Hola wishmaster77, si se puede saber en que consiste tu plan de contingencia. Estoy en plena investigación para tener los elementos que me ayuden a tomar una decisión y no equivocarme. El primer proyecto que debo realizar es un típico sistema de gestión (POS, Ventas, Inventario, CxC, etc.). Necesito que en ambiente de red local trabaje como aplicación de escritorio, pero en un ambiente de conectividad remota por internet la misma aplicación se ejecute en el navegador (la misma, sin hacerle cambios a la vista). Además necesito que esté disponible a través de dispositivos móviles, cómo telefonos, tabletas, etc.

Gracias por sus respuestas.

La mayoria desarrolla para Windows

Tal vez este equivocado (no sé lo que opinen los demás), pero la mayoría de los programadores desarrolla aplicaciones para plataformas Windows y Linux. Hace tiempo en mi escuela se pensó trabajar con plataformas Mac y Linux, pero se dieron cuenta que "para que usarlas si al final las aplicaciones que más se usan son las de Windows"

La mayoría de la gente está acostumbrada a trabajar con MS Office incluso en plataformas Mac y Linux, además las aplicaciones Web y otras aplicaciones están diseñadas para trabajar en Windows.

Imagen de ezamudio

La mayoría...

la mayoría de los programadores desarrolla aplicaciones para plataformas Windows y Linux.

La preocupación de muchos es porque usamos Mac para desarrollar aplicaciones Java. Si esas aplicaciones Java corren en Windows y Linux, bien por los que hagan eso. Yo mismo uso Mac para desarrollar, son aplicaciones de servidor, y los deployments los hago en Linux.

Las aplicaciones web no deben estar diseñadas para trabajar en Windows. Deben estar diseñadas para funcionar en un navegador. En el que sea. En Firefox, que es ya uno de los más importantes, en Safari que también ha ganado buen terreno (y se puede generalizar a cualquiera que use webkit), y el maldito Internet Explorer, que ya no es el más importante afortunadamente (especialmente la versión 6 que es incompatible con el resto del universo). Una aplicación web que sólo funciona en windows está mal hecha (sí, SAT, estoy hablando de ti!!!).

En cuanto a lo de la escuela... wow qué mentalidad... en la facultad de física han de estar diciendo "mejor ya hay que dejar de enseñar el modelo cuántico, total para el dia a dia a la mayoria de la gente le basta el modelo newtoniano" y en la facultad de literatura ya nomás leen revistas, porque es lo que todo mundo lee...

Si, la mentalidad

De hecho creo que también fue por los "costos" de las computadoras. Comprar una PC normalita les sale más barato a los Jefes. Además de que los estudiantes se quejaban de que "no sabian cómo entrar al Internet (si es en serio, ja ja ja)".

Re: Esto es lo que quiero hacer

Bueno mira, la verdad para un sistema de gestión de empresa (empresas de micro a medias, nada de bancos u otra empresa multinacional) considero que Java queda de sobra. Hay un lema por ahí que dice: "Para matar a una mosca no es necesaria una bazuca", Java es muy buen lenguaje, una plataforma excelente, el problema es que (recientemente) está pensada únicamente para aplicaciones "enterprise" en la web (aunque existen las ediciones para escritorio y móvil, no tienen tan buen soporte cómo la edición web -empresarial-), en donde no te salvas de hacer las cosas tu mismo y la automatización es una utopía; y para todo tienes que seguir las "mejores prácticas" que en ocasiones lejos están de ser "mejores" (para desarrollos no tan grandes).

Mi plan de contingencia, es sencillo, ir viendo qué tecnologías están en el mercado vigentes y que parecen que toman fuerza. Esto no quiere decir que lo más usado y ya, no; se trata de comparar el tipo de proyectos que haces contra la plataforma que usarás. En mi caso (desarrollo web y móvil) veo que Python es una alternativa a lo que yo ya usaba (vengo de Ruby, uso Java y he usado .NET); ya que es un lenguaje sencillo, en este caso de scripting (lo cual para probar aplicaciones es de mucha ayuda por el simple hecho de no tener que recompilar cada vez que hago algún cambio) y muchas ventajas más cómo madurez, soporte, documentación, etc. Así también cómo Ruby (el lenguaje más divertido para mi), que además de tener lo que python incluye una comunidad muy buena, cálida y que sabe.

Es decir, mi consta en ver qué tecnologías existen en el mercado que cobran fuerza y porqué lo hacen, por ejemplo PHP es muy usado, pero porqué cualquiera puede teclear un par de líneas sin tener idea de que es un objeto y todo lo que conlleva al paradigma (polimorfismo, encapsulación, propiedades, métodos, etc.); en cambio no cualquiera le entra a Java, porqué hay que tener muchísimas habilidades las cuales están desparramadas (es decir, no hay un framework oficial de Java para persistencia, no hay un framework oficial web, etc.); y las opciones full-stack (all inclusive o todo en uno) en Java son a veces un tanto orgullosas en tomar lo que otros hacen por lo que resulta no del todo productivo. Aunque Java también cuenta con las opciones que Oracle brinda (JSF, JPA, etc.) pero la mayoría de los desarrolladores que las usan lo hacen con algún sabor extra o alguna implementación que no es la de Oracle.

En fin, depende lo que quieras, si te gusta la flexibilidad y la libertad de elegir herramientas, pues Java es una muy buena opción, puedes armar un sitio web con [Wicket o Vaadin o Struts2] + [Hibernate o iBatis o Siena] + Spring + .... Por otro lado lenguajes cómo Ruby si tienen opciones en Web, pero podemos decir que la mayoría (por no decir el 90% de los rubieros) usan para Web Rails, para móvil Rhodes y para escritorio wxRuby; son cómo los 3 (casi) únicos reyes.

En fin te digo, si te gusta andar probando aquí y allá Java es genial...si no pues siempre hay opciones (Ruby, .NET, etc.).

Re: Si la mentalidad

Igual no creas que Dell o Lanix dan unos preciazos. En la escuela me dí cuenta que cada compu (Dell, de perfil medio) costó cerca de $10,000.00 MXN; es decir, estamos hablando que por el mismo precio podían comprar una Mac-mini y con prestaciones similares (C2D 3.0, 2GB de RAM, 120 HDD), y la Mac-mini cuenta con mejor tarjeta de vídeo. Y la escuela compró Lanix y pues si costaban $6,000.00 MXN pero tenían que renovarlas cada 10 o 12 meses.

No creo que por precios se pueda dar un veredicto, igual a la gente de otras carreras (electrónica, mantenimiento industrial, etc.) en sus laboratorios tienen máquinas de 1/2 millón de pesos y no una, 2 o 3 para que 20 gentes puedan usarlas en clase. Lo que muchos de sistemas no saben lo que es un GNU/Linux o lo que es un MacOS.

free soft

hasta ahora todavia podemos elegir con quien casarnos, " viva el free soft". porqué ser parte de un monopolio (windows claro),
nada como el código abierto, y no tener que esperar hasta que al "gates" se le ocurra, sacar una version que a veces no sirve para nada, pero que genera muchos $$.
claro que a hawking, no le importa tirar los dados solo porque einstein ya los habia tirado, o a los hermanos watson no descubrir la doble hélice solo porqe no se los reconocería, o a ruy no regenerar los hepatocitos solo porque existen los transplantes

hoy como siempre free soft-

Imagen de luxspes

Mejor una Gateway

Igual no creas que Dell o Lanix dan unos preciazos. En la escuela me dí cuenta que cada compu (Dell, de perfil medio) costó cerca de $10,000.00 MXN; es decir, estamos hablando que por el mismo precio podían comprar una Mac-mini y con prestaciones similares (C2D 3.0, 2GB de RAM, 120 HDD), y la Mac-mini cuenta con mejor tarjeta de vídeo.

Con 10,000 te compras una laptop Gateway con i3 3.0Ghz, 320Gb HDD, 4Gb de RAM y unidad quemadora de DVDs o le pones un procesador AMD y entonces por el mismo precio le puede poner una tarjeta de video Nvidia. O un equipo de escritorio con 500Gb... y monitor de 17"... si la Mac-mini solo te da C2D 3.0, 2GB de RAM, 120 HDD, definitivamente esta carisima :-(.

Imagen de ezamudio

Press Release de Apple

Pues no sé si fue la petición o presión comercial de algunas empresas o todo el escándalo en internet hecho por los programadores Java o simplemente Ellison y Jobs se fueron de farra, pero Apple ya se echó para atrás (más o menos) y ya anunciaron que van a contribuir su JVM al proyecto OpenJDK, junto con el stack de red y lo necesario para el cliente gráfico. También dijeron que Java 6 seguirá estando disponible en Snow Leopard y que incluso estará incluido en Lion, y que de Java SE 7 en adelante ya será provisto por Oracle.

Así que parece que seguirán por ahora metiéndole a la versión 6. Pregunté a Oracle qué va a pasar con los updates a la 1.6 (vamos en el 22, pero pues qué pasa cuando salga el 23, 24, 25 etc porque falta un año para Java 7) y parece que los va a seguir haciendo Apple (por eso digo que se echaron para atrás, porque originalmente dijeron que ya ese era el último update que ibamos a ver y que ya no iban a incluir Java en Snow Leopard). La noticia original tomó a Oracle completamente por sorpresa pero ahora parece que ya se sentaron a platicar y pues el resultado es bastante bueno, creo yo.

En otras noticias, lo de la JVM premium de Oracle fue anunciado desde septiembre, pero se convirtió como en refrito de noticia mezclado con rumor y paranoia durante la QCon. Oracle va a seguir contribuyendo y colaborando con la OpenJDK pero a la vez seguirán teniendo su propia JVM que será una fusión de JRockit y HotSpot. JRockit actualmente se puede bajar gratis, lo que pasa es que no van a volverla open source ni nada por el estilo. Van a ofrecer también paquetes de soporte para negocios, supongo para un mejor tiempo de respuesta en arreglar bugs que haya en su JVM premium.

Acá está lo mismo desde

Acá está lo mismo desde Oracle: