Mostrando entradas con la etiqueta llvm. Mostrar todas las entradas
Mostrando entradas con la etiqueta llvm. Mostrar todas las entradas

lunes, 17 de junio de 2013

Plataformas para Scala

Algunos comentarios a raíz de esta conversación en Linkedin

Si no me equivoco, hasta ahora se puede desplegar Scala sobre:
  • la JVM y todos los Sistemas Operativos (OS)  soportados por ella.  Según comentarios en la conversación de Linkedin, Oracle soportará iOS pronto con Java8,
  • dalvikVM la VM en Android,
  • la CLR de .Net, principalmente para Windows.
  • LLVM
  • Javascript
Las 3 primeras opciones son las más estables y soportadas.  Veo pocas razones de usar .Net excepto si se quiere usar una (muy rara) API que no exista en Java.

Me gustaría mucho que el soporte de LLVM sea más maduro. Si el boom de Internet of Things (IoT) se confirma, vamos a tener que programar para dispositivos como Arduino, los cuales no tienen suficientes recursos para correr una JVM.  Sin contar que Google Chrome soporta LLVM también.

Yo no compro el argumento, clásico a esta altura, que para aplicaciones con interfaces al usuario (UI), un lenguaje dinámico es más adecuado.  Incluso con jQuery, programar Javascript es un dolor de cabeza. así que bienvenido a scalaJS.  Claro que 16MB para un "hola mundo" es un requerimiento un poco exagerado.

sábado, 2 de febrero de 2013

Los enredos de Google

Contrariamente a mi pronostico, le esta yendo bien al Google Chromebook.  Samsung y Acer ya lo fabrican. y HP, Lenovo se suben al carro pronto.  Acer declara tener ventas no despreciables y hay periodistas que hablan muy bien del producto.

Como estoy buscando no llenarme de dispositivos, el Chromebook es una opción como PC+tablet.  Yo no soy gamer y solamente necesito, además del browser, un ambiente de desarrollo (IDE) y un terminal remoto. Un IDE web como Clond9 esta cerca de mis necesidades, le falta soportar a Scala y Akka.  Si este articulo esta en lo cierto, las aplicaciones Android podrían funcionar en Chrome, lo que aumentaría la posibilidad de tener un IDE basado en Android (al estilo de AIDE) que pueda usar.  Entonces, si eso ocurre me comprare un Chromebook.

Suponiendo de nuevo que el articulo es cierto, que Android y Chrome se fusionan y crean la "plataforma Google" de smartphone a PC pasando por tablets e híbridos y derivando a Google Glass .  ¿No sería entonces atractivo, ademas de ser usuario de la plataforma, usarla también como target de mis aplicaciones? La respuesta es obviamente si.

Y es allí que se enreda bastante porque las opciones de desarrollo propuestas por Google son variadas:

  • web pura (HTML, CSS, javascript), obviamente
  • Dart, "el mejor javascript" de Google que compila a javascript o a DartVM
  • native client, usando cualquier lenguaje que compila a LLVM, incluyendo C, C++.
  • Java, Dalvik y el Android SDK.
  • y queda el lenguaje Go: ni idea donde cabe en esta supuesta plataforma.
Creo que Google va a tener que simplificar este cuento.  De la misma forma que están ordenando los productos para sus usuarios, caducando los que no tienen éxito e integrando los que quedan, tienen que facilitar la vida a la comunidad de programadores que le dan valor a su plataforma.

Ahora, como lo van a hacer es especulación pura.  Creo que van a usar los siguientes principios:

  • van a dar menor énfasis a la web.  Google, ya ha declarado que su negocio principal es el "móvil".
  • se van a alejar de los temas legales, lo cual implica mayor control sobre los lenguajes y API's.
  • al mismo tiempo, van a querer molestar lo menos posible a los programadores que invirtieron tiempo en aprender su tecnología (como lo que ha hecho Microsoft tantas veces cambiando las reglas del juego).
  • finalmente, no tienen que perder su imagen de abierto y buena onda en la comunidad nerd.
O sea, están fritos, no veo como nos van a migrar a Dart y Go sin generar algún nivel de malestar.  ¿Si Android es el nuevo Windows, como Google evitara ser el nuevo Microsoft?