Login Barrapunto
Java fue un amor adolescente, Scala será el lenguaje de tu madurez
BlueVoodoo nos cuenta: «Java y la orientación a objetos fueron el primer amor de muchos programadores, y les tratamos con el mismo respeto y adoración con el que yo trataba a Bindi (mi primera novia). Pero el tiempo siempre se lleva los primeros amores, y llega un momento en el que hay que romper y seguir adelante. Los sentimientos cambian y las personas maduran. Pero lo más importante es que el mundo a nuestro alrededor también ha cambiado. Java ha envejecido. Ha llegado el momento de aprender Scala con este tutorial.»
Historias relacionadas
[+]
Pregunta a /.: Programación funcional para el resto de nosotros 54 comentarios
Capirucho nos cuenta: «Leyendo la última noticia sobre Scala salieron varios hilos hablando sobre la programación funcional. A muchos programadores acostumbrados a la programación imperativa estos conceptos nos resultan bastante complicados, así que tras informarme un poco llegué a un artículo, programación funcional para el resto de nosotros. En este artículo se afirma que los artículos y papers sobre programación funcional no tendrían por qué ser tan esotéricos, y que en realidad los conceptos no tienen nada inherentemente complicado. Además ofrece una introducción realmente clara a estos conceptos que a muchos que habíamos hecho nuestros pinitos con algún lenguaje funcional como haskell nos habían resultado tan extraños. Sería interesante conocer la opinión que tienen los barrapunteros sobre estos lenguajes que ya están triunfando en algunos campos como la programación concurrente (erlang) o la programación estadística (R).»
Este hilo ha sido archivado.
No pueden publicarse nuevos comentarios.
Java fue un amor adolescente, Scala será el lenguaje de tu madurez
|
Log in/Crear cuenta
| Top
| 117 comentarios
| Buscar hilo
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.

Entonces...
(Puntos:3, Inspirado)¿Lo veis preparado para producción?
(Puntos:3, Informativo)( http://www.jabberes.org/ | Última bitácora: Martes, 17 Junio de 2008, 11:28h )
¿Java?
(Puntos:3, Inspirado)(*) Que no digo que sea malo sino que en Java es más importante hacer programas que disfrutar programando.
Esto se parece a python
(Puntos:4, Interesante)( http://www.boriel.com/ )
Pero hacer un lenguaje funcional con tipado débil o implícito no es ninguna novedad. Otra cosa es que se quiera promocionar este lenguaje como lo más "in" o lo más "chic" y ponerlo de moda.
Personalmente detesto estas cosas, y no me interesa llenarme el cerebro de basura que caducará en un par de años (léase
Me quedo con C, Python y PHP por ahora. Si alguno de los otros lenguajes le veo que me aporte algo nuevo o que viene para durar, entonces me lo aprenderé. Pero por el momento, tengo otras ocupaciones más interesantes que aprender un nuevo lenguaje porque alguna empresa (la que sea) desea promocionarlo y sacar detrás toda la parafernalia: Libros, seminarios, certificaciones, SDK
Vamos, que para mí, los "nuevos" lenguajes que salen (y es algo que estudio, por cierto) no aportan nada a los anteriores. La época de los lenguajes procedurales ha pasado, y la de objetos tb. Scala al menos es funcional, pero aún así, con las máquinas de hoy en día, se tiende a hacer todo cada vez más visual (como la herramientas de modelos que comentan en otra entrada de Barrapunto).
Si dentro de 5 años está en la brecha, entonces le prestaré más atención. Existen otros ejemplos de lenguajes que están ahí, pero no prosperan: D (el de Digital Mars) [digitalmars.com], por ejemplo.
Es un lenguaje sexista
(Puntos:4, Divertido)Pedro.
Mi primer amor fue el Basic en un Spectrum
(Puntos:1)No aprendemos...
(Puntos:1, Informativo)La mía es más larga
(Puntos:5, Inspirado)( http://www-etsi2.ugr.es/alumnos/mu01/guerraSoftware.html | Última bitácora: Viernes, 11 Julio de 2008, 11:58h )
"He conocido el lenguaje Scala y me ha entusiasmado. Tiene ésta, ésta y la otra virtud. Creo que es más apropiado que Java por esto, esto y lo otro. Aquí tenéis el tutorial".
?
No, eso no sería suficientemente arrogante. ¿Qué tal lo siguiente?:
"Los programadores no sólo son infantiloides, sino que además la tienen corta. Los hombres (maduros) usamos Scala y la talla XXL de condón. No voy a perder el tiempo dando argumentos para respaldar lo que digo porque sois escoria inmunda que sólo sabe programar en lo que pide el mercado. Y no penséis que voy a explicaros qué es Scala, porque si no lo sabéis ya no sois dignos de leerme. ¡Cerrad los ojos!"
Por supuesto, recomendamos encarecidamente la primera redacción. ¿De verdad un tipo que ha madurado tanto necesita discutir de lenguajes de programación de esta manera?
Gdado dice roller [sourceforge.net]
Ziritione en estado puro...
(Puntos:5, Inspirado)( http://barrapunto.com/ )
A demás, por lo que veo está totalmente destinado a los programadores en Java, dando a entender (a mi juicio, que es el de una persona que acaba de oír de dicho lenguaje ahora por primera vez y que no tiene ni puñetera idea de él) de que o bien es un fork o bien una copia de Java con más características, porque si fuera un lenguaje totalmente diferente, digo yo que lo compararía con todos los lenguajes populares de hoy en día, ¿no?.
Ya se, ya se, no tengo ni idea de que va ese lenguaje y hay posibilidades de que, efectivamente, sea mejor, pero es que a la noticia sólo le falta el "pruebe, compare y si encuentra algo mejor... ¡comprelo!".
Que quereis que os diga, me da mucha rabia que me digan "¡Actualízate, carca! ¿no ves que lo que usas ya no se lleva? ¡Prueba esto que tiene Ziritione!"
--
(Aj!! Se me ha vuelto a poner el mode-ironía on!!)
No lo veo tan
(Puntos:1, Informativo)En el tutorial se centran en el uso de "closures" y algoritmos genéricos mediante el uso de métodos como first-class citizens.
Lo único que aporta esto respecto de Java convencional es un código más compacto (a costa de una sintaxis más compleja). Nada que no se pueda hacer con interfaces (como Runnable o las que definamos nosotros con los argumentos que nos interesen).
Me parece un lenguaje muy interesante, pero tampoco es la panacea. Los problemas de diseño reales (como decidir si un algoritmo debe ser genérico o no merece la pena) siguen estando ahí, como en Java o cualquier lenguaje.
No va a triunfar.
(Puntos:2)( http://barrapunto.com/ )
Sólo he visto el tutorial:
¿ def main(args: Array[String]): Unit = {} ?
joé, ¿no es mucho más eficiente: void main(String[] args) {} ?
Salud!
Adelantos tecnológicos
(Puntos:5, Inspirado)( http://www-etsi2.ugr.es/alumnos/mu01/guerraSoftware.html | Última bitácora: Viernes, 11 Julio de 2008, 11:58h )
Es obvio que Java se inspiró en sus sintaxis en C++, pero eliminó algunas cosas que veía problemáticas: como mezclar programación funcional y orientada objetos (da con frecuencia lugar a código desordenado) y la sobrecarga de operadores (en C++ si no has estudiado la clase y ves una asignación, no sabes si es una asignación real o un método sobreescrito).
Estas cosas fueron eliminadas de Java con un propósito (acertado o no), y se presentan como un logro de Scala, como si trajeran la cura del cáncer.
Igualmente se plantea como un avance el no tener que declarar el tipo de las variables, como si el compilador nos lo exigiera para putearnos. ¿Qué problema hay? Si no sabes qué va a contener una variable en el momento de declararla, creo que el problema es tuyo. Pido a San Bonifacio que no me toque nunca mantener un código en este lenguaje.
Más cosas: dice que el hecho de que una función devuelva siempre los mismos valores ante la misma entrada es por lo que los lenguajes funcionales están "siendo aclamados como los grandes salvadores de un mundo demencialmente corrupto". Imagino que se refiere a que los métodos de los objetos devuelven distinto valor según el estado del objeto. Pero desde la óptica funcional, ¿acaso un método sobre un objeto es diferente a una función que reciba el objeto como entrada? Es decir:
objeto.metodo(arg1, arg2,
podría implementarse en un lenguaje no orientado a objetos como
metodo(objeto, arg1, arg2,
(¿Alguien ha programado en GTK?)
En este caso la función devolverá el mismo valor si su entrada no cambia.
Ni que decir que las funciones ya existían antes de este lenguaje.
Por otro lado, el tener ésta característica y el no disponer de funciones void (procedimientos) no convierte a un lenguaje en funcional. Mucho menos si se mezclan con programación imperativa, orientación a objetos, etc.
Gdado dice roller [sourceforge.net]
Esperaba más de los barrapunteros, sinceramen
(Puntos:4, Informativo)( Última bitácora: Domingo, 17 Febrero de 2008, 11:36h )
Yo tampoco conocia el lenguaje este, ni de oídas. Tras leer los comentarios, esperaba un juguete de algun pardillo. Voy al tutorial, y ¡sopresa!
1. Es un artículo del IBMjournals, que habitualmente tienen mucho interés.
2. Es programación funcional -haskell, occam...-, y ¡nadie ha usado la palabra! --> ¿a qué viene compararlo con python?
3. Por si nadie ha caido, la gracia del lenguaje es que emite bytecode "java", luego puedes programar en un lenguaje funcional que correrá en cualquier plataforma que tenga una máquina virtual java hecha -o sea, todas, incluyendo muchos microcontroladores: programación funcional sobre un PIC, por ejemplo-.
4. Coño, está muy bien. Como mínimo se merecía una reseña favorable!
Mi opinión
(Puntos:1)( http://mancontr.googlepages.com/about )
Tras haber visto los ejemplos de código en el enlace, considero que tiene muchos fallos:
- Si es un lenguaje de tipado debil, por qué se nos hace especificar el tipo de parámetros y valor de retorno? En Ocaml por ejemplo, se determina automáticamente.
- Si nos quejamos de que la sintaxis de Java es extremadamente larga, ¿nadie se ha fijado que esta lo es aun mas?
- Sobre las funciones anónimas, me quedo sin duda con como las maneja JavaScript.. La sintaxis es más legible y consistente (todas las funciones se definen igual, mientras que en este lenguaje no).
- Y por último.. se dice que lo creó el padre de la genericidad en Java. No se a vosotros, pero a mí me parece un aborto sintáctico.. Tener que escribir algo como:
public <T extends Foo<T>> T Bar(List<T> list) {...
es algo que casi es tortura..
Eso es todo.. Qué opinais vosotros?
No me gusta
(Puntos:2)( http://es.geocities.com/julio_sao | Última bitácora: Domingo, 06 Julio de 2008, 15:51h )
Cada cierto tiempo...
(Puntos:2, Interesante)Yo veo que hay cierto resquemor de la gente por Java, como si escociera o algo. El caso es que fijate Java aún sigue vivito, y creo que tiene ya algo mas de 10 añitos, y va para los 15 en nada.
Sus cosas buenas tendra Java, para haber llegado a donde ha llegado. Tendra sus cosas malas evidentemente. Pero al igual que sus cosas malas tiene C/C++ y ensamblador.
Yo creo que lo mejor es predicar con el ejemplo, que ha salido aqui un tio como un profeta diciendo: Alabad al verdadero dios Scala! Este es el unico y verdadero!
Solamente ha presentado un tutorial, lo cual es algo. Pero lo veo poco. Mejor presenta un proyecto interesante, hecho en Scala.
Java vs Java
(Puntos:1)Re:Un 'maduro' ya no es productivo...
(Puntos:1)( http://mcpolu.blogspot.com/ | Última bitácora: Viernes, 01 Agosto de 2008, 12:00h )
Si mides la productividad en horas trabajadas en lugar de medir el producto de ese trabajo, te mereces trabajar sub-sub-contratado para una gran empresa española que hace unos años era estatal.
En España la mejor manera de guardar un secreto es escribir un libro.
Re:Java para entornos de producción
(Puntos:2)( http://hronia.blogalia.com/ | Última bitácora: Lunes, 02 Julio de 2007, 20:51h )
___
"Tamparantán que te han visto Pepe, tamparantán que te han visto Juan"