¿Qué lenguaje alternativo para la JVM te llama más la atención?

Comentarios

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.

Buena encuesta, voté por

Buena encuesta, voté por JRuby :D. Es que tienes la sintáctica Ruby + el puñado de software Java a tu disposición. Creo que hubiese estado bien poner a JYthon (digo si se puso JRuby).

Interesante encuesta, interesante.

Imagen de benek

Scala

Voté por Scala. Groovy también me llama mucho la atención pero las características de Scala me agradan bastante.

Otro: Ryz

Pero bueno, estoy predispuesto :)

Imagen de luxspes

Otro: Rel

Rel

Imagen de ezamudio

Rel?

Rel es un lenguaje de JVM? Se compila a bytecode? Creo que entonces no entendí nada de la plática que diste en OpenTalks... pensé que era un lenguaje verdaderamente relacional y que solamente habíamos mostrado un intérprete/implementación rudimentaria hecha en Java, pero nunca capté que fuera un lenguaje de JVM.

Falta de experiencia

Pues de llamarle la atención le voy a Scala, no lo he probado pero lo he visto en acción y parece estar bien rompejefas

En tanto lo pruebe veré si es cierta la impresión que tengo de el... En tanto a lo que si he probado pues Groovy es la ley, aunque no lo puedo usar en la chamba a veces necesito hacer una que otra herramienta para uso personal y bueno al principio me sacaba de onda como se ve (no me gustaba mucho ver un código si ; jojojo) pero es solo cuestión de estética, antes le ponía los ; solo por costumbre

Clojure

Yo estaria entre Clojure y Scala , pero Scala me recuerda a el desastre en para desarrollar software de C++.
Y Clojure tanto cosas de lisp,Haskell y algo de erlang ,pero no siendo tan estricto como haskell y con acceso a todo las bibliotecas de java.
La ventaja de Clojure es que esta desarrollado por alguien con gran experiencia en desarrollo mas un gran conocimiento de ciencias computacionales ,al contrario de Scala que es muy academico.
Pero creo que al final Scala podría empezar a reemplazar a java ,pero necesitaran decir que direccion necesitan programacion imperativa ,funcional o orientada a objetos.

Imagen de Jose_Gastelum

uno hecho por mi haaa

pa que se luzcan con mi lexico jajaja jxD

Imagen de fcodiaz

Groovy

Ps voy x Groovy..xP es el único sabor que he probado, aunque se me hacen aberraciones a muchas cosas q el lenguaje Java se enfatizo en cuidar, pero bueno java4dummies es como entiendo por lo menos groovy es como hacer Java a la VB...

Imagen de ezamudio

aberraciones?

Qué cosas de groovy te parecieron aberraciones?

Imagen de MachinesAreUs

¿La pregunta es la correcta?

Ojo, si la pregunta es correcta, lo que se está obteniendo (en el mejor de los casos) es el interés de los desarrolladores en saber sobre un lenguaje, pero esto es distinto de cual es el lenguaje más popular, en términos de quienes lo usan.

A mí algo que no me termina

A mí algo que no me termina de gustar de Groovy es la sintaxis de los closures. Pero definitivamente no lo llamaría aberrante:

list.each { e ->
   print( e )
 }

Me hubiera gustado más parecido a JavaScript/Go

list.each( (e){
   print ( e )
})
// como en
list.each( /*func(tion)*/(e){
   print ( e )
})

Como que le dice: Llama al método each y toma este argumento, que es un closure que recibe una "e" y su cuerpo es tal..

En cambio dice: Llama al método each pero pegandole esta cosa al lado que es un closure.

Además que lo puedes escribir de varias formas y no siempre de forma consistente.

Ejemplo:

Pasar un closure como argumento.

// Valido
​list = ["a","b","c"]
c = { e -> print e}
list.each(c)​​

Pasar el mismo closure como argumento "en linea"

//Valido
list = ["a","b","c"]
list.each({ e -> print e })

Pasarle el closure con la sintaxis más conocida De mediolao

// valido
list = ["a","b","c"]
list.each(){ e -> print e } //notese el each() con parentesis que abren y cierran

Pero esto ya no es válido aunque por los ejemplos anteriores tambien debería ser válido

​list = ["a","b","c"]
c = { e -> print e }
list.each()c
​​

Además como que esa flechita me saca de onda:

​list = [-10,0,10]
list.collect{ o ->o<-1 }

:) :)

p.d. Encontré otro REPL en linea de Groovy: http://groovyconsole.appspot.com/

Imagen de ezamudio

forma vs. fondo

Oscar, entonces tus broncas son de forma, no de fondo. No tienes bronca con closures, sólo con la manera en que se escriben en Groovy. Es como decir que no te gusta trabajar con alguien porque es pelirrojo, sin importar si es inteligente o no.

Y creo que la sintaxis más conocida es la primera que pusiste, no la de paréntesis que abren y cierran seguidos del closure...

A mi me sacan más de onda los pipes para argumentos de closures en Ruby que la flechita en Groovy.

Imagen de benek

Re: ¿La pregunta es la correcta?

@MachinesAreUs: Ésa era la intención, conocer cuál es el lenguaje que más le llama la atención a los H. H. usuarios de esta H. H. comunidad. :-P

Preguntar cuál es el más popular estaría sujeto a percepciones y creo que eso no lo podríamos definir con los votos emitidos aquí, es por eso que decidí acotarlo.

Imagen de ezamudio

popular

No tiene caso preguntar cuál es el más popular. Lo que se puede hacer es preguntar cuál te gusta más, y el que más votos reciba es el más popular.

No es lo mismo que preguntar cuál es el que más te llama la atención, porque en este caso significa que puede haber uno que te cause mucha curiosidad pero por alguna razón no has podido utilizarlo.

A mi me llama la atención

A mi me llama la atención Scala, pero no me gusta :-/

A mi me gusta Groovy , pero no me llama la atención :P

Pero el que más más me llama la atención ( no sé aún si me vaya a gustar ) es el mío :) :) :)

Imagen de AlexSnake

Y la salida de Rys pa cuando?

Y cuando veremos en acción Rys, has conseguido negociar unas platicas de ese lenguaje para las proximas openTalks??? Quiza en un futuro seria uno mas en las opciones de esta encuesta.

ehem, ehem...

ehem, ehem...

Imagen de luxspes

Rel: para o no para la JVM

Es cierto no se compila en jvm, quiza interprete mal el "para".... Aunque deteniendonos a pensarlo... Rel es mas que solo consultas, es también un lenguaje imperativo de propósito general.... Aunque corre en modo interpretado... Así que no genera .class files... Pero definitivamente corre sobre la JVM.... Y la encuesta no especifica que debe ser compilable... Así que supongo que se vale mencionarlo... O no?

Imagen de bferro

Es como jugar a la loteria

Mi opinión al respecto:
No existe en este momento un lenguaje para la JVM que desplace a Java de los lenguajes mainstream en el corto plazo. Como tampoco ningún lenguaje que desplace a C y a C++ en el mundo de la programación de sistemas. Como tampoco ningún lenguaje que desplace al Lisp moderno y sus descendientes para aplicaciones de inteligencia artificial,

Me llaman la atención varios lenguajes para la JVM y creo que Scala va a tener futuro, por la manera que ha pavimentado el camino para transitar del paradigma orientado a objetos al paradigma funcional y hacerse experto en un entorno híbrido.

Para egresados de varias universidades en el mundo, lo anterior no es muy relevante porque sus cursos básicos de Computer Science abundan más en la programación funcional que en otros estilos de programación. Sin embargo para egresados de la mayoría de las universidades, se hace relevante ese pavimento, debido a que se han formado mayormente con lenguajes imperativos.
Me llama la atención que alguien por ahí en este foro piensa que Scala no, porque lo creó un académico. Suena chistoso ese argumento por no decir otra cosa.

El creador de Groovy, James Strachan, dijo hace un par de años:

"I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy."

Scala

Scala es un lenguaje que si tiene gran futuro pero en lo personal al usar tanto Clojure como Scala , noto que después de la empinada curva de aprendizaje de Clojure es un lenguaje realmente maravilloso compacto,flexible y potente.
Y con Scala la linea inicial es inexistente lo puedes usar como java pero al adentrarte se convierte en un lenguaje que no tiene una dirección hacia un paradigma y al parecer no orientado a empresas,al tener cambios abruptos 2.7 a 2.8 y baja retrocompatibilidad algo que recuerda a proyectos académicos,Aunque sin duda el apoyo de la U de Stanford para proyectos de computación paralela sera un boom.
Pero Scala es muy buena opción para rubistas o personas que java les quede chico después de usar C# o python.
Aunque sigo insistiendo en tomar un paradigma como guía ,como F# que eligió el funcional ,por cierto considero muy tentador a F#.

Imagen de bferro

Los lenguajes funcionales han surgido en la academia

Varios de los lenguajes funcionales exitosos han surgido de proyectos puramente académicos. Lisp, Scheme, Haskell98 y la lista puede seguir.

@BT A mi no me parece que sea

@BT A mi no me parece que sea inexistente la curva de Scala, para inexistentes está la de Groovy.

Mi problema ( quizá también de forma ) es que me parece que en Scala la POO está como señuelo pero en el fondo siempre quiso ser funcional. Como el primer languaje funcional que hizo Martin Odersky no pego le metió cosas OO. Y quizá Scala tampoco hubiera pegado de no ser que parte del backend de twitter fue migrado de Ruby a Scala.

Les dejo un interesante articulo de Martin sobre el origen de Scala.

http://www.artima.com/scalazine/articles/origins_of_scala.html

Imagen de echan

Primeros pasos en Scala

Ya llevo un par de proyectos en Scala y desde mi punto de vista no solo es un lenguaje muy bien pensado y diseñado si no que me ha hecho escribir aplicaciones a una velocidad y con una mejor calidad que con java, digo esto por que tiene lo mejor de muchos lenguajes que de otra manera seria muy complicado lograr solo con java., ya se ya se que Ruby y Clojure son excelentes opciones y tambien soy fan de ellos, pero con Scala tienes lo mejor de muchos mundos dado su naturaleza hibrida, por ejemplo ... la composicion por mixins que te hace escribir una aplicacion como si fuera lego con inyeccion de dependecias totalmente estaticas .. closures, funciones anonimas y por lo mismo funciones de alto orden, soporte xml directo en el lenguaje, interaccion con librerias java, la libreria estandar que es muy rica sobre todo la de colecciones .. su poderoso sistema de tipos y sobre todo que es estatico que no se imaginan cuantos bugs me ha ahorrado el compilador ... apesar de esto tiene inferencia de tipos y lo hace ver como si fuera dinamico, la consola REPL que es una maravilla para explorar el lenguaje incluso cosas del propio java, y muchaa otras cosas que seria muy dificil explicar en pocas lineas. Estas caracteristicas que vienen de paquete en el lenguaje me han echo hacer a un lado la pila de frameworks que me "ayudan" a tener una aplicacion mas o menos mantenible.

Pero ... simpre hay un frijol en el arroz .. la curva es muy grande si eres como yo de escuela imperativa, te puedes perder porqueel lenguaje es muy flaxible y siempre puedes resolver problemas ya sea de forma funcional, oo, procedimental( tambien se puede ) y eso en si es un problema. Tambien la comunidad que todavia es muy pequeña.apesar que el lenguaje no es tanto

Re: forma vs. fondo

Es creo cuestión de costumbre, la gente unixera se saca de onda por los pipes...La gente de PHP se saca de onda con la flechita en Groovy. Creo que ahí es más que nada costumbre. (*Sé que unix no es un lenguaje de programación, pero es lo que siempre veo, los unixeros ven un pipe cómo se usa en ruby y se sacan de onda*)

Re: Re:¿La pregunta es la correcta? (OFFTOPIC)

H. H. stands for ...

@wishmaster77

Honorables.

Imagen de benek

En mi caso...

En mi caso, Groovy es un lenguaje que sí me llama la atención (y mucho), sin embargo aquello del tipado dinámico es algo que no ha terminado de cuadrarme ni gustarme (en ningún lenguaje). Aunque se tienen más libertades el código resultante en algún momento puede ser susceptible a excepciones en tiempo de ejecución sin ser notorias a simple vista (como el ejemplo del Dr. Ferro del operador sobrecargado en las pasadas #OpenTalks). Fail early, fail often. Éste es uno de los pequeños detalles por los que Scala llama más mi atención (pero sólo uno).

Existe un proyecto que lleva

Existe un proyecto que lleva buen avance para hacer Groovy con tipeo estático:

Groovy++ lo que pude leer, basta con poner la anotación @Typed

Imagen de Sr. Negativo

Jython

Yo voté por Jython

Imagen de fcodiaz

empezando por el tipado dinámico

R: @ezamundio ps empezando por el tipado dinámico que no tengo que definir un tipo de dato (que en java es un pecado mortal), cosas como llamar un método sin paréntesis, el acceso a propiedades y métodos private desde otras clases(al final groovy pasa de cierta forma el ámbito private al ámbito "public").. entre muchas otras... U.u..., hay muchas reglas que obvian ciertas cosas y distintas formas de declarar o hacer la misma cosa y si uno no se documenta como lo interpreta groovy corres el riesgo de hacer algo que no querías hacer como siempre ha pasado con los lenguajes que hacen cosas por ti, digamos ya no es tan estricto como java pero eso de ser estricto se lo regresan al programador con las consecuencias que siempre hemos visto...

Re: empezando por el tipado dinámico

Pues creo que no por tener un lenguaje estricto te vuelvas mejor o pero programmer, ya dependerá también de cómo es uno. Por ejemplo Ruby es el lenguaje menos estricto que conozco y a día de hoy muchos de los rubieros somos muy felices XD. Igual cómo dice mi amá: "De todo hay en la villa del señor".

Imagen de Sr. Negativo

Visual Basic en Java

JABACO
Creo que me faltó este. Si ya sé, muchos odian a VB.

Imagen de Alevardi

Mi voto se lo lleva Jython

Mi voto se lo lleva Jython sin pensarlo. Python es uno de mis lenguajes favoritos, y me encanta poder implementarlo en proyectos que requieren el uso de ja JVM.

Imagen de ezamudio

cambio...

Acabo de cambiar mi voto... obviamente por Ceylon. Ya está tomando forma y se está poniendo muy interesante; entre las comprensiones y algunas funciones y métodos que estamos agregando a las colecciones (principalmente Iterable), se pueden hacer cosas muy chidas con colecciones. Creo que ya está el lenguaje listo para empezar a resolver los problemas de Project Euler, será un buen ejercicio para ver qué nos falta.

Ceylon

Voto por Ceylon, creo que tiene todo para llegar a ser un muy buen proyecto, a que seguro lo veremos en TIOBE index en un futuro.

Imagen de ezamudio

eso espero!

Nada me gustaría más que ver a Ceylon figurar en el TIOBE! Será un gran día cuando eso suceda.

Imagen de milenita

estoy investigando sobre el

estoy investigando sobre el tema

Imagen de abrahamstalin

Solo este...

Xtend.

Imagen de javatlacati

Jabaco

Aguante Jabaco :'(

Ese triste momento en que te sientes tan ignorado como Jaskell.... La verdad me gustaría ver más lenguajes declarativos, aunque los funcionales la verdad si apantallan.

Desafortunadamente de todos los que mencionan solamente he tenido tiempo suficiente de checar el JRuby.