Historias
Slashboxes
Comentarios

Login Barrapunto

Login

[ Crear nueva cuenta ]

Java fue un amor adolescente, Scala será el lenguaje de tu madurez

editada por McPolu el 30 de Enero 2008, 10:51h   Printer-friendly   Email story
desde el dept. amores-perdidos
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.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Entonces...

    (Puntos:3, Inspirado)
    por pobrecito hablador el Miércoles, 30 Enero de 2008, 11:00h (#1009342)
    ¿Ruby ya no está de moda? ¿cuánto tiempo le dáis a Scala hasta que salga la "nueva revolución"?
  • ¿Lo veis preparado para producción?

    (Puntos:3, Informativo)
    por k05h (32748) el Miércoles, 30 Enero de 2008, 11:03h (#1009347)
    ( http://www.jabberes.org/ | Última bitácora: Martes, 17 Junio de 2008, 11:28h )
    Leí hace bastante tiempo en reddit que aunque Scala era un lenguaje muy interesante no estaba preparado para producción. [locut.us] Las razones que dan son que las librerías estándar no son lo suficientemente estables y no hay herramientas a la altura para los que estén acostumbrados a trabajar con entornos como Eclipse.
  • ¿Java?

    (Puntos:3, Inspirado)
    por pobrecito hablador el Miércoles, 30 Enero de 2008, 11:05h (#1009349)
    Venga ya, si Java es un lenguaje cuadriculado y funcionario al 100%, es el COBOL de nuestra era(*). Si te has enamorado de joven de eso es que no tienes sangre en las venas XD

    (*) 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)
    por Boriel (20804) el Miércoles, 30 Enero de 2008, 11:15h (#1009354)
    ( http://www.boriel.com/ )
    Se parece a Python, muchísimo (salvo que esto además usa llaves). Es cierto que java es demasiado "Verborreico" para mi gusto, y todo se pone de forma explícita.

    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 .NET, Ruby, Scala o cualquier otro).

    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)
    por pedro_fortuny (29526) el Miércoles, 30 Enero de 2008, 11:24h (#1009365)
    No he podido contenerme, lo siento :)

    Pedro.
  • por Credito (29795) el Miércoles, 30 Enero de 2008, 11:30h (#1009369)
    Mi primer amor fue el Basic en un Spectrum y luego en un Amstrad ¿soy demasiado viejo, verdad? Carlos Menéndez http://www.creditomagazine.es/ [creditomagazine.es]
  • No aprendemos...

    (Puntos:1, Informativo)
    por pobrecito hablador el Miércoles, 30 Enero de 2008, 11:54h (#1009384)
    Me basta para saber que no cuajará que se compila a bytecode. Mientras se aferren a ello, no habrá manera de que el lenguaje esté bien diseñado, porque por mucho que se empeñen en modificarlo ahora, bytecode era, es, y seguirá siendo un lenguaje intermedio orientado a Java. Está muy bien la interoperabilidad, pero si te atas a un diseño previo que NO está pensando para ti ni para tu paradigma, es imposible tener un lenguaje eficiente y extensible. Que se dejen de historias y hagan un buen diseño del lenguaje desde abajo hasta arriba sin preocuparse de otra cosa, que les den unas buenas bibliotecas, y verás como a la gente le gusta.
  • La mía es más larga

    (Puntos:5, Inspirado)
    por Mu (11278) el Miércoles, 30 Enero de 2008, 12:05h (#1009389)
    ( http://www-etsi2.ugr.es/alumnos/mu01/guerraSoftware.html | Última bitácora: Viernes, 11 Julio de 2008, 11:58h )
    ¿Por qué cuando se habla de lenguajes de programación no se puede tratar el tema de esta manera:

    "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)
    por Xtaoth (23909) el Miércoles, 30 Enero de 2008, 12:09h (#1009391)
    ( http://barrapunto.com/ )
    No entiendo para nada la publicación de la noticia. Parece más un recuadro de publicidad que otra cosa. Es decir, ni nos dice por qué es mejor, ni por qué Java es obsoleto.

    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)
    por pobrecito hablador el Miércoles, 30 Enero de 2008, 12:10h (#1009392)
    No me parece que Scala (por lo que he leido en el tutorial que se indica en la noticia) sea algo tan novedoso.

    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)
    por Tom Bomba (3108) el Miércoles, 30 Enero de 2008, 12:31h (#1009404)
    ( http://barrapunto.com/ )
    Su sintaxis no es más clara ni más homogénea, ni más concisa que la de otros lenguajes.

    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)
    por Mu (11278) el Miércoles, 30 Enero de 2008, 12:54h (#1009418)
    ( http://www-etsi2.ugr.es/alumnos/mu01/guerraSoftware.html | Última bitácora: Viernes, 11 Julio de 2008, 11:58h )
    Se presentan como innovaciones cuestiones que no son limitaciones tecnológicas de Java, sino decisiones de diseño, y que muchas veces suponen, incluso una vuelta atrás (no en el sentido de hacerlo peor, sino de hacerlo como se hacía antes).

    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]
  • por husezno (37220) el Miércoles, 30 Enero de 2008, 13:07h (#1009430)
    ( Última bitácora: Domingo, 17 Febrero de 2008, 11:36h )
    Espero que, simplemente, nadie se haya leído el tutorial. Por que si no, es para llorar.

    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)
    por Mancontr (27005) el Miércoles, 30 Enero de 2008, 15:05h (#1009498)
    ( http://mancontr.googlepages.com/about )
    La verdad es que ya hace bastante que no jugueteo con lenguajes funcionales, pero en su dia tube bastante soltura con Ocaml..

    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?
    • Re:Mi opinión de sammael (Puntos:2) Miércoles, 30 Enero de 2008, 15:39h
      • Re:Mi opinión de Julio_sao (Puntos:2) Miércoles, 30 Enero de 2008, 16:53h
        • Re:Mi opinión de pezezin (Puntos:1) Miércoles, 30 Enero de 2008, 17:32h
        • Re:Mi opinión de radarlibre (Puntos:1) Jueves, 31 Enero de 2008, 07:26h
          • Re:Mi opinión de Julio_sao (Puntos:2) Jueves, 31 Enero de 2008, 16:28h
        • 1 respuesta por debajo de tu umbral de lectura actual.
      • 1 respuesta por debajo de tu umbral de lectura actual.
  • No me gusta

    (Puntos:2)
    por Julio_sao (29798) el Miércoles, 30 Enero de 2008, 15:50h (#1009533)
    ( http://es.geocities.com/julio_sao | Última bitácora: Domingo, 06 Julio de 2008, 15:51h )
    No me gusta Scada, me parece feo como lenguaje no quisiera tener que trabajar inspecionando miles de lineas en ese lenguaje, es una primera impresion despues de ver el turorial y no he mirado mucho por encima nada, pero la primera impresion suele ser la que queda.
  • Cada cierto tiempo...

    (Puntos:2, Interesante)
    por Logi (28016) el Miércoles, 30 Enero de 2008, 17:53h (#1009583)
    Cada cierto tiempo, sale un articulo augurando la jubilación de Java. O un nuevo lenguaje que desbancara a Java.

    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)
    por marleysoft (38137) el Miércoles, 30 Enero de 2008, 23:56h (#1009716)
    Creo que hay que diferenciar claramente "Java como leguaje de programación" vs "Java como arquitectura". Todavia no he mirado nada de este leguaje, Scala, pero creo que hay que darle una oportunidad teniendo en cuenta que también es multiplataforma e interpretado (por supuesto), correra sobre entornos virtualizados (JVM y CLR). Precisamente esto ha sido lo que ha hecho que Java haya triunfado, no por sus facilidades como lenguaje, sino como arquitectura. Bytes
  • por McPolu (19560) <McPolu@gmail.com> el Miércoles, 30 Enero de 2008, 15:32h (#1009515)
    ( http://mcpolu.blogspot.com/ | Última bitácora: Viernes, 01 Agosto de 2008, 12:00h )
    Un 'maduro' no hace horas extras a lo loco sin cobrar.

    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.

    [ Padre ]
  • De hecho, hasta C puede "segurizarse" en cierto modo [embedded.com]. Y se hacen enclavamientos de trenes en C.
    --
    ___
    "Tamparantán que te han visto Pepe, tamparantán que te han visto Juan"
    [ Padre ]
  • 6 respuestas por debajo de tu umbral de lectura actual.