edición general
478 meneos
5309 clics

El lenguaje C desbanca a Java del primer puesto [ENG]

El índice Tiobe, que mide la popularidad de los lenguajes de programación entre los desarrolladores, muestra como C ha logrado alzarse con el primer puesto que ocupaba Java. En castellano www.theinquirer.es/2012/04/09/el-lenguaje-c-desbanca-a-java-del-primer

| etiquetas: programación , c , informatica
209 269 1 K 662 mnm
209 269 1 K 662 mnm
Comentarios destacados:                                  
#10 #2 Sun simplemente ofertó algo bueno. Un lenguaje que aumenta la legibilidad de los programas, evita problemas de punteros, evita problemas de no borrar zonas de memoria, funciona en todos lados sin cambiar una línea de código, tiene librerías para todo sin necesidad de cosas de terceros y las puedes consultar a través de Internet. Súmale que cualquiera puede proponer mejoras al lenguaje a través del proceso JCP y que esas mejoras son votadas por grandes empresas del sector de la informática como IBM, Oracle, Google, etc. Súmale que hay proyectos de terceros impresionantes como todo lo que hace Apache (todo libre). Súmale que hay frameworks para todo como Struts, Spring, Java Server Faces, Hibernate... Súmale dos grandes IDEs como Eclipse y Netbeans. Quien no lo quiera ver allá él. Que sí, que todo eso es a costa de ser más lento, pero me parece una contrapartida aceptable.

Hoy en día haces un tutorial de J2EE y ves que absolutamente todo se puede hacer de forma relativamente…...
«123
  1. ¡Los clásicos nunca mueren!
  2. SUN demostró con Java que si eres capaz de publicitar bien la mierda, vendes mierda a porrillo.
  3. ¡A por ellos Fortran 67!
  4. #3

    Fortran no, pero COBOL hay un huevo.
  5. #4 Perdona, pero todos y cada uno de los profesores de la facultad de ciencias de la UGR programa en Fortran. Y es que no saben ningún otro lenguaje. Fortran 67, siquiera 90.

    Así que sí, Fortran hay un huevo, por lo menos en sectores científicos.
  6. #5

    Y los bancos, administracion y Telefónica, en COBOL ....
  7. -TOC, TOC
    -¿Quien es?
    (20 segundos más tarde)
    -Java
  8. #7 Java, mala organización, falta de talento, inercia... el Mal no surge solo, pero cuando se dan los ingredientes se recrea el infierno en la Tierra. Es la única forma de describirlo.
  9. #1 el problema es que hay unos nubarrones rojos sobre Java llamada Oracle y ya no brilla cuando estaba Sun Microsystem, hay montones de programadores Java que estamos aprendiendo otros lenguaje por que no sabemos que pasara con JAVA :-(
  10. #2 Sun simplemente ofertó algo bueno. Un lenguaje que aumenta la legibilidad de los programas, evita problemas de punteros, evita problemas de no borrar zonas de memoria, funciona en todos lados sin cambiar una línea de código, tiene librerías para todo sin necesidad de cosas de terceros y las puedes consultar a través de Internet. Súmale que cualquiera puede proponer mejoras al lenguaje a través del proceso JCP y que esas mejoras son votadas por grandes empresas del sector de la informática como IBM, Oracle, Google, etc. Súmale que hay proyectos de terceros impresionantes como todo lo que hace Apache (todo libre). Súmale que hay frameworks para todo como Struts, Spring, Java Server Faces, Hibernate... Súmale dos grandes IDEs como Eclipse y Netbeans. Quien no lo quiera ver allá él. Que sí, que todo eso es a costa de ser más lento, pero me parece una contrapartida aceptable.

    Hoy en día haces un tutorial de J2EE y ves que absolutamente todo se puede hacer de forma relativamente sencilla y legible.

    #9 Oracle se equivocará en la gestión de muchas cosas, pero con respecto a Java casi todo lo que ha hecho es bueno. Salvo quizás negarle a Apache Harmony la posibilidad de ser una implementación oficial de Java SE (lo cual no tiene porque ser malo porque lo cierto es que veo innecesario que haya varias implementaciones, más cuando la oficial es libre). Desde que llegó Oracle Java pasa a tener en su desarrollo no sólo a Oracle sino también a IBM y Apple, con lo cual conseguirán por primera vez unificar el desarrollo para todas las plataformas. Java 8 sale este año y va a salir con todo lo que estaba previsto. Java FX ha pasado a tener una API al más puro estilo Java. OpenJDK se ha convertido en la implementación de referencia de Java. Es decir, no veo nada malo y en cuanto algo se ponga malo ten por seguro que IBM o cualquier otra interesada del sector en Java le pondrá los puntos sobre las íes a Oracle.
  11. Me cuesta creer que Java pierda popularidad en pleno apogeo de Android
  12. En realidad nunca ha estado por debajo. En qué está escrito Java? Pues eso.
  13. #11 Bueno el kernel de Linux( el que usa Android ) esta escrito en C y solo hace falta ver a Torvalds alabándolo( o cagándose en el resto de lenguajes) . También puede tener a ver con que se este buscando reciclar el hardware y exprimir mas su potencia y en esto C gana a Java
  14. Joder, el cuarto Objetive-c , como tiran los iphones
  15. reconquistando el trono
  16. #10 Cuando has dicho Struts, Hibernate, Netbeans... me ha dado un escalofrío.
  17. ¿Todavía nadie ha criticado a esa mierda inmunda llamada Objective-C?
  18. #17 A mi también, pero por Hibernate que no es un framework si no un ORM, pero Netbeans lo ha catalogado bien como IDE #10
  19. A ver cuando google pone fácil lo de programar android en C. Sé que se puede pero es una odisea preparar eclipse para hacerlo.
  20. #5 Lo dudo enormemente.
  21. #18, a mí Objective-C siempre me ha parecido C con implantes Borg. Es algo muy turbio.

    "C ya no se usa, C es muy viejo, C ha sido desbancado por C++ y Java"

    Pues mira.
  22. Más bien java pierde popularidad, C siempre está y estará ahí, es necesario en muchos escenarios donde no hay otra opción
  23. #3 Más bien será fortran 77, o si acaso, que lo dudo, fortran 66. Y sí, se usa, hay muchas librerías de métodos numéricos muy eficientes. Se utiliza en software de calculo térmico en industria aerospacial.(Esatan).
  24. Me gustaría saber la experiencia profesional con Java que tienen aquí algunos que critican a Java con tanta vehemencia.

    Aunque ya me lo imagino yo: ninguna.
  25. /* Me sorprende que nadie lo haya hecho todavía... */
    <include blabla.h>
    void main(int argc, const char* argv[]) // perdon si me cuelo en algo, hace mucho que no ceceo :-P
    {
    while(1)
    {
    printf("%s wins!",dameLenguajeFavorito());
    sleep(500); //esta me imagino que será de c++ y no de c, pero me dejáis usarla, no??
    }
    }
  26. Y por supuesto, los mismos que ponen a parir a Java aquí hablarán maravillas de Android y dirán que iPhone es una mierda.
  27. Pues me alegro, Java estará bien para algunas cosillas, pero para aplicaciones de uso diario es una mala idea, no cuesta tanto hacerlas en C y van más rápido consumiendo menos memoria. Además las aplicaciones Java que tengo cada día en marcha van tragando más y más memoria... Aunque la última vez que debatí esto en Menéame me llevé unos cuantos insultos y negativos, y lo mismo en otros sitios :-S Me sorprende no ver algún programador Java de esos por aquí :-)

    Aunque para lenguaje lento Phyton, lo estoy aprendiendo ahora y es muy sencillo y cómodo, pero lento es como él solo.

    #10 "Que sí, que todo eso es a costa de ser más lento, pero me parece una contrapartida aceptable."

    ¿Contrapartida aceptable para quien? Para el programador quizás, para el usuario en general no, sobre todo si el hardware es un teléfono de cama baja. Especialmente en Symbian, lo que cuesta encontrar algo que funcione bien y no de mucho por culo entre toda la morralla que hay (casi toda en java)...
  28. Los lenguajes de programación son como la brocha de un pintor, solo es la herramienta. La única diferencia es que en este caso los pintores son unos frikis.
  29. Como nota a tener en cuenta os sugiero a todos que os leáis como se hace este indice TIOBE, ya que es un poco "raro" ... se basa en las búsquedas del termino en los buscadores y otras lindezas del estilo.
    No es para nada objetivo para determinar si un lenguaje es más popular que otro, simplemente que en ESTE índice está más arriba.
  30. #4 ¡Cómo que no hay un nuevo Fortran!

    ftp://ftp.nag.co.uk/sc22wg5/N1701-N1750/N1729.pdf

    Existen compiladores GCC, de Intel, de NAG, etc. Y ya se está trabajando en el Fortran 2013.
  31. Java no es lento de por si, eso si, gasta cantidades ingentes de RAM lo que puede penalizar la velocidad sobre todo en la carga del programa o si el sistema operativo pagina su memoria...

    Es un buen lenguaje que ha evolucionado bastante y tiene muchas posibilidades que hacen todo mucho más sencillo.

    C también es un muy buen lenguaje aunque da muchos más quebraderos de cabeza a la hora de programar y portar código.

    De todas formas eso de medir un lenguaje según las referencias tampoco lo veo muy infalible. Probablemente cuando salga Java 8 habrá un boom en este indicador que no se corresponderá con su incremento real de uso.

    Salu2!!
  32. #7 #10 Lo de Java lento es un mito a día de hoy. Que consuma más memoria por lo general vale, pero lento... tenéis variedad de benchmarks para comparar el rendimiento de C vs Java. Pensad que las optimizaciones en C son estáticas y las de Java son dinámicas, hay tareas que realiza más rápido Java que C. Además, comparar C con Java es algo poco coherente, habría que compararlo con .NET.
  33. #26, sleep es POSIX, es histórica de C:


    CONFORME A
    POSIX.1

    FALLOS
    sleep() puede estar implementada con SIGALRM; mezclar llamadas a alarm() y a sleep() es una mala idea.

    Utilizar longjmp() desde un manejador de señales o modificar el manejo de SIGALRM mientras se está dur‐
    miento, producirá resultados no definidos.

    VÉASE TAMBIÉN
    signal(2), alarm(2)
  34. #18 Llamarmierda inmunda es una falta ded respeto, si prefieres otros lenguajes mejor para ti, pero habrá personas a las que les guste Obj-C. Además es un lenguaje diferente.
  35. #25 Solo hace falta haberlo usado. Java está bien, hasta que el cliente de Data Protector (en Java) tarda eones en actualizar el estado de un filesystem, o al intentar evolucionar un ticket Remedy se queda colgado al acceder al public log (en el cliente Java), o cuando refrescas la cesta de download de parches SAP (java...), o al intentar refrescar las alertas en el cliente Openview se queda idiota (Java)...

    Nunca te fíes de un sistema ideado para lavadoras.
  36. #10 Amén. La gente parece que sigue empeñada en creer que Java es una mierda. Java ha cambiado mucho en los últimos años, y quien no quiera verlo es que está ciego. El chiste del TOC, TOC ya está un poco manido.

    Lo que muchos denominan un lenguaje lento y malo, ha servido de base para Android (aunque con Dalvik en vez de la típica JVM), se han creado lenguajes basados en él como Groovy o Scala, que a su vez han servido de base para frameworks como Grails o Play! que mueven sitios con millones de visitas como sky.com.

    La mayoría de los que tanto se quejan sin argumentos de Java tiene cero o menos experiencia programando en él.
  37. #35 Cassandra es la base de datos que usa Facebook, entre otros, y está hecha en Java :-P
  38. #40 Es cieto que Cassandra esta hecho con Java, pero Facebook ya no utiliza Cassandra. Utiliza HBase que curiosamente tambien esta hecho en Java.

    Saludos.
  39. #40 Interesante, tienes alguna referencia más a la arquitectura de Facebook? está detallado en algún sitio? alguna vez he buscado sin mucho resultado...
  40. #38 Estas hablando de historias que no tienen que ver con el jre por defecto. Que haya inutiles que hacen cosas lentas y cutres no implica que los que nos desenvolvemos bien con java hagamos las cosas dpm.
  41. #36 Yo soy más de Java, pero en ese caso no está mezclando peligrosamente comandos propios del lenguaje de programación con llamadas al sistema?
  42. #42 Joer, estos cambian de base de datos todos los años, es imposible seguirles la pista xD

    #43 Aquí te cuentan algo ( en.wikipedia.org/wiki/Cassandra_(database) ), pero es que cambian más de arquitectura que de bragas.
  43. #2 Estoy muy de acuerdo contigo.

    Hace muchos anos que no programo, pero lo de Java es demencial. La moto que vendieron con que era independiente de la plataforma y eso sería la panacea.

    Si al final hay que meter el maquina de Java, de panacea nada, por no hablar de que incrementa los tiempos de ejecución.

    En mi opinion un buen programadador de C es alguien que entiende como funciona un ordenador, procesador, memoria, etc. Un buen programador de Java es alguien que sabe utilizar clases y objetos.

    Por mi C, forever, si el desarrollo de procesadores y recursos no hubiera sido el actual, Java no se hubiera comido un colin, pero como se ha incrementado brutalmente el procesamiento ylos recursos, esta compitiendo como el que mas.

    Y es mi opinion de no experto, que nadie se moleste, solo es una opinion.
  44. No se si la cuestión es tanto que si Java es bueno o es malo. La impresión que tengo hasta el momento es que de los 10 programas hechos en Java que me he encontrado y con los que he tenido que trabajar, solo uno o dos funcionaban bien. El resto todos daban algún tipo de problema (daba igual probarlo en windows, ubuntu, etc.), y lo de ser realmente multiplataforma muy pocos (eclipse, netbeans y alguno mas). No digo que no se pueda hacer bien las cosas con Java, pero parece que la gente no acaba de manejarlo bien (al menos desde la perspectiva que he conocido), o sea, que algo malo de tener. Personalmente, no me gusta Java, porque en ocasiones para hacer algo muy sencillo te complica mucho las cosas, y porque sobre todo programo en entorno web (e donde, de momento, creo que Java lleva las de perder para proyectos de tamaño pequeño-medio).
  45. No me extraña que esté arriba en el ranking, la mayoría de los lenguajes de programación que han sacado después de C son un derivado de este que lo mejoran en algún o varios aspectos.
    Nunca será una pérdida de tiempo aprender a programar en este lenguaje y la mayoría de programas que hagáis con este lenguaje, sobre todo los sencillos, luego los podreis aprovechar para otros lenguajes.
  46. #45, hombre, los comandos las funciones propias del lenguaje suelen llevar llamadas al sistema por debajo. En Unix, fopen se implementa mediante open, printf mediante write, scanf mediante read, etc...

    El fallo es que sleep históricamente se implementaba por encima de alarm, y la idea de que las esperas se utilizasen si no se están usando temporizadores parecía razonable (no). Y lo pone en los estándares: "Interactions between alarm() and any of setitimer(), ualarm(), or usleep() are unspecified".

    En Linux, por ejemplo, no hay problema ya que sleep se implementa sobre nanosleep y esa no hace el idiota con los temporizadores. Pero vaya, es un "no debes", como "no debes usar gets" o algunas funciones no portables.
  47. No se puede comparar a JAVA y a C en cuanto a si uno es mejor que otro, cada uno tiene su mercado y su porqué. C es más rápido y JAVA más portable.
  48. #11 Es posible que venga a raiz del Objective-C de Iphone. Aunque este lenguaje aparece separado en la estadística (en el 4o lugar) es posible que parte de los puntos de C vengan de ahí.
  49. Por contrastar con esta estadística, estas son las de Github a día de hoy:

    1. Javascript (20%)
    2. Ruby (15%)
    3. Python (9%)
    4. Shell (8%)
    5. Java (8%)
    6. PHP (7%)
    7. C (7%)
    8. Perl (5%)
    9. C++ (4%)
    10. Objective-C (2%)
    Resto: 15%

    github.com/languages
  50. A mi lo que mas me gusta de Java es Processing. Os recomiendo a todos los artitas, diseñadores o gente con inquietudes tecnologicas con pocos conocimientos tecnicos que lo pruebe.

    #49 Yo conocí a alguien una vez que decía "C es como follar, hay que saber".
  51. 32 Bash 0.367%

    Porcentualmente será poco, pero anda que no hay sistemas funcionando y en buena forma gracias a shell scripts :-)
  52. Axioma generalista:
    El mejor lenguaje es el que yo conozca y use y los demás son peores 'per se'.
  53. #21 Que sí, que sí, en el mundo del cálculo numérico se usa, mayoritariamente, o c++ o fortran.
  54. #39 Más razón que un santo. Hay una enorme cantidad de gente que critica Java por cosas que no son Java, como quien dice que Spring es pesado y lento o que Hibernate hace cosas muy raras. Qué tendrá que ver... Es como criticar C++ porque Windows Vista es una mierda, un sinsentido.

    Luego están los que directamente no tienen ni puñetera idea de programar, y cuelgan el muerto al lenguaje:

    File f = new File("c:\temp.txt") // Esto no funciona en Linux, y eso que dicen que Java es multiplataforma, menuda mierda.
  55. Hoy precisamente le tengo un resquemor a java... gracias a el se me coló un virus bien gordo anoche y me tuve que tirar hasta las tantas desinfectando.

    Viva C!
  56. #58 mundo del cálculo numérico =/= Facultad de ciencias :-) Decir que todos y cada uno de los profesores de allí lo usan, me parece una barbaridad. Por ejemplo, dudo que lo usen mucho en biología (que podría equivocarme, pero me extrañaría bastante) y en el departamento de Estadística e I.O. no me sé de nadie que lo use a día de hoy, teniendo cosas chachis como R. Ahora, en el departamento de Análisis matemático por ejemplo, pues no me sorprendería nada.
  57. #10 No tengo ni la más remota idea de lo que estás diciendo, pero tienes pinta de saber un huevo, así que te voto positivo.
  58. #47 Es obvio que necesitas una capa de abstracción para que un lenguaje sea independiente de la máquina, no engañaron a nadie. Obviamente necesitas una VM para cada arquitectura y S.O., pero gracias a eso puedes cambiar una máquina por otra y que tu programa siga funcionando, sin recompilar!!. Quién no vea una ventaja en eso es que no entiende la importancia que supone dicha abstracción.

    Por otra parte, un buen programador en C puede ser un mal programador en Java y viceversa. Si es cierto que C te exige conocer el funcionamiento a más bajo nivel, lo cual está bien para fines didácticos, pero para un proyecto grande de verdad, con capacidad de procesamiento muy grande, crees que hacer una gestión manual de la memoria es bueno? Trabaja con un proyecto mínimamente grande en C y verás las risas de memory leaks.
  59. #60 C en las manos de un programador sin conocimientos en seguridad puede ser peor que Java,la maquina virtual ayuda a que no se cuelen tantos virus
  60. Que java sea lento es un mito, lo de la memoria es totalmente real. Pero lo la memoria difícilmente se va a poder solucionar por cómo está pensado java. ¿ Quieres una gestión de memoria eficaz ? Pues no piense en Java. ¿ Quieres compatibilidad ? No pienses en C.
    Es así de sencillo el lenguaje debe ser decidido según tu objetivo.
  61. #63 a veces no se trata de si la gestion manual de menoría es buena o mala. A veces, simplemente es necesaria.

    Cada lenguaje tiene sus cosas, sin mas. Si piensas que es una mierda, quizá no estes usando el lenguaje adecuado para lo que estás desarrollando.
  62. #47 Cada lenguaje para lo suyo, o dicho de otra forma para cada tipo de software, plataforma, requerimientos.... hay que saber escoger la herramienta adecuada. Una aplicación grande hecha en C sin clases/objetos, patrones de diseño, framework... puede ser lo mas eficiente del mundo pero completamente inmantenible. Por otro lado no te vas a poner a programar en Java o Python un sistema embebido, en tiempo real o el kernel de Linux...
  63. Python es la respuesta hermanos, y cuando estas haciendo algo tan bestia que necesitas potencia extra lo extiendes con modulos en C y a tirar.

    Todo lo demás, cuentos de la lechera.
  64. #60 Pues explícame como se te coló un virus gracias a Java, porque no veo relación.
  65. Lo que queráis, pero cuando una empresa quiere hacer algo bien, lo único que se le pasa por la cabeza es Java, ni PHP, ni C ni ninguna copia de éstos que incluye .net
    A cada cual lo suyo, y Java en cuanto a robustez, seguimiento de estándares, sencillez y uso profesional, no tiene a nadie de cerca.
    ¿Que es más lento? Vale.
    Pero ¿qué es más caro, un procesador un poco más rápido o unos cuantos programadores haciendo las cosas mal, por libre y un TCO desorbitado?

    Cuando las grandes compañías apuestan por Java, no creo que sea por una moda.

    Oracle sucks y todo eso, pero es un ad-hominem como la manga un abrigo decir que Java pierde popularidad.
  66. #57 Si me permites un corolario: Las críticas hacia un lenguaje siempre serán directamente proporcionales al desconocimiento del mismo.
  67. Java es un lenguaje. Como lenguaje le da mil vueltas a C, lo cual es lógico ya que es un lenguaje más moderno, basado en el propio C.

    Otro tema es la máquina virtual de Java. Siempre hablo de hoy en día. Aquellos que se quejan del Java de hace 10 años, pues hablan sin ningún tipo de conocimiento. Como todo, la Máquina virtual tiene sus pros y sus contras. El contra, hoy en día no tanto la velocidad (ver benchmarks), sino que necesitas arrancar toda la máquina virtual para ejecutar un "holamundo". Pero están trabajando ya en eso (por fin).

    Si necesitas un programa para unas necesiadades muy específicas con poquísimo consumo de memoria y afinar al 100% en rendimiento en un sistema empotrado, C es tu amigo, java no es una opción. Pero como véis, son necesidades muy concretas. Para un proceso de servidor, Java es perfectamente viable (cassandra, kproxy). Para una aplicación de escritorio, Java es perfectamente viable (eclipse).

    Los que dicen que es lento o que gasta cantidades ingentes de memoria habría que decirles lo siguiente: No es tanto problema de la máquina virtual, sino de los inútiles que programan esos programas (estarán incluidos aquellos que se tanto se quejan?). Me parto la caja con el amigo que se quejaba de SAP. Java al ser mucho más sencillo que C invita a cualquiera a hacer programas, eso es bueno porque al ser sencillo mejora la productividad del buen profesional, pero también atrae a chapuzas, inútiles y ameteurs que hacen mierda y luego achacan al lenguaje (al lenguaje! nótese la estupidez) que es lento, que tiene mal rendimiento, etc.

    Que Java está perdiendo protagonismo? Lógico, están pegando fuerte otros lenguajes que se comen el nicho de java, aunque no el de C. Y algún día vendrá un lenguaje mejor que desbancará a Java y C se quedará para sus cositas, como Cobol, fortran, y el mismo Java, para mantener y mejorar software antiguo.
  68. #70 Dependerá del tipo de producto que quiera la empresa, digo yo, no? Me aprece un axioma atrevido eso de que si lo quiere "bien" pide Java.
  69. #24 Tienes razón, es Fortran 77. Me ha bailado una decena en la cabeza.

    #21 Sinceramente, me da igual que lo dudes enormemente. No es algo que me estoy inventando, puede comprobarlo cualquier persona. En la carrera, en la asignatura optativa de programación nos enseña C++ un profesor de informática. En segundo de carrera, en métodos numéricos, nos piden que olvidemos C++ porque trabajaremos única y exclusivamente con Fortran 77, que es lo que ellos saben manejar.

    Los programas que salen escritos de la facultad de ciencias de Granada son 70% Fortran 77, 25% Fortran 90, 5% Mathematica.
  70. ¿Aquí es donde se comparan dos lenguajes de programación que se crearon con muchísimos años de diferencia y que encima se dirigen a áreas de la informática totalmente diferentes?

    Ok, C apesta, y Java también. Lo que mola es IA32.
  71. #70, pues yo si creo que es por una moda. O dicho de otro modo, das una patada a una piedra y descubres a tropecientos programadores de Java, a los que puedes contratar por unas migajas.
  72. #29 Llevo hace tiempo diciéndolo y todo el mundo pasa de mí: los nuevos lenguajes de programación parecen orientados desde hace tiempo hacia el programador y no hacia el usuario, y eso es muy malo, porque se priorizan los medios sobre el fin. En los lenguajes habitualmente considerados "buenos" por la mayoría de autoproclamados gurús, especialmente los que se apuntan a cada carro que ven ignorando cualquier lenguaje con más de 4 años de antigüedad, el código se termina antes, pero suele ser de peor calidad (y hablo de velocidad, requisitios mínimos innecesariamente altos, etc.).

    Y ahora, dos ejemplos reales (nada de benchmarks). Ejemplo número 1: aplicación científica para un sistema de control en tiempo real, donde no sólo hay un límite estricto de tiempo, sino que además cuanto más rápido sea el sistema más numéricamente estable es el algoritmo: cierto lenguaje dinámico tardaba 6 horas en ejecutar N iteraciones del algoritmo. Portado a C++, usando las mismas N iteraciones, el resultado se redujo a un minuto. 360 veces más rápido. Ejemplo número 2 (más de andar por casa): aplicación pequeña de consumo propio y de uso diario, que tarda 6 segundos simplemente en cargar la interfaz, más otros tantos si quiero abrir un cuadro de diálogo de abrir archivo. Cuando me harté y la porté a C++, se abría en un segundo, y todo en general era mucho más rápido. Después de añadirle unas 4 veces más funcionalidades, seguía igual de rápido.

    Aunque en los dos casos hable de C++, no quiero decir que éste sea la panacea (C probablemente es más rápido, por ejemplo), pero a la eficiencia (velocidad, al fin y al cabo) se le da mucha menos importancia que la que tiene, y esto es porque pensamos más como programadores que como usuarios. Por cierto, la portabilidad tampoco es siempre prioritaria: pensad en todo el software "de consumo interno" (que es la gran mayoría, hasta donde sé. Y sí, también cuenta la rapidez, lo sé de primera mano). Por no hablar de que C también permite portabilidad con un pelín de maña.

    #47 Lo de no pensar en el ordenador como un todo es casi un dogma en muchos libros de programación. Lo típico de la ocultación, no pensar en "detalles de implementación", etc. Desde el momento en que se considera que la "abstraction penalty" es razonable (cuestión de gustos), es lo normal, pero yo tampoco estoy de acuerdo.

    P.D.: ni Eclipse ni Netbeans me gustan un pelo, prefiero el Visual Studio. En cuanto a editores sí que diría que es pura cuestión de gustos y cada programador hace lo mejor para él.

    (Perdón por el tochaco)
  73. #76 En Málaga usábamos Matlab para todos los temas matemáticos. Es lento como él sólo, pero tiene un millón de utilidades de todo tipo (cálculo simbólico, procesamiento de imágenes y sonido, redes neuronales...). Por Fortran tengo mucha curiosidad, pero de momento poco tiempo para probarlo a fondo.
  74. #79 Genial. Has descubierto que los lenguajes compilados como C++ son más rápidos que los dinámicos. Vas para premio nobel de informática o algo así. </irony here, ofc>
  75. #80 Es como C++ pero mucho más orientado hacia el cálculo numérico. Tienes muchos programas útiles y librerías. Yo quería aprender Mathlab, pero me pasa igual que a ti, y no tengo tiempo. El cálculo simbólico me parece de órdago.
  76. #81 No era eso lo que quería recalcar, sino que la velocidad puede ser muy importante. Y me he encontrado a bastante gente que niega que los lenguajes dinámicos sean más lentos que los compilados.
  77. #71 Cierto, pero sabia que aqui en meneame hay expertos de todo como tu que saltarían con miles de argumentos, ah no perdona, que no has dado ninguno.

    Me quedo con #67 que es lo que yo quería explicar, y sumo que en mi opinion un programador de C tiene más merito individual a nivel creativo que uno de Java, que a pesar de ser bueno, se basa (por necesidad del lenguage) en otros desarrollos.
  78. #79 Todos los lenguajes de programación son orientados a los programadores, no a los usuarios. La idea es facilitar (y muchas veces posibilitar) la prorgamación, cosa que al usuario se la trae al pairo.

    Los lenguajes dinámicos son una gran avance, y la velocidad no es lo fundamental, la mayoría de las tareas no exigen mucha "velocidad", y ya suelen estar implementadas en lenguajes compilados, como manipular los dibujos en la pantalla, tratar estructuras de datos complejas (como hashes y listas), etc.


    Por otro lado, el C++ es uno de los peores lenguajes inventados, comenzó bien, pero hoy en día es un horror (peor que el Java). A menos que desarrolles sistemas operativos, o librarías de manipulación de datos o cálculo, no tiene demasiado sentido desarrollar en un lenguaje compilado. El beneficio no justifica el coste.
  79. Ya estamos con la misma historia de siempre.

    Para empezar, la noticia es más bien poco relevante, ya que da a entender que C ha quitado mercado a Java, cuando no es así. Ambos lenguajes tienen mercados totalmente diferentes, la fortaleza y el dominio de Java está en el lado del servidor en aplicaciones web (cuántas usaréis a diario sin tener ni idea de que están hechas en Java...), donde C no pinta nada, y algo parecido pasa a la inversa con Java en el escritorio, donde salvo contadas excepciones no hay muchos casos de éxito. Si a Java le han quitado cuota de mercado, que lo dudo muy mucho, sería en favor de C#, PHP, Ruby... no C. Si vas a participar en una carrera de coches, cogerás un deportivo, si tienes que arar el campo, un tractor, porque hacerlo al revés sería estúpido, lo mismo que intentar compararlos.

    Y después están las críticas y chistes "de barra de bar", claro, ésas no fallan en el antiJavismo de Menéame.

    Java admite críticas legítimas, como, qué sé yo, ausencia de funciones lambda y de primer orden, carencias en la implementación de tipos genéricos, por ejemplo. Pero curiosamente cuando preguntas al 90% de los críticos de Java no van más allá de "es que es lento y consume memoria", porque han oído campanas y no saben dónde. Java fue "lento" en las primeras versiones, de algo que hace ya mucho más de una década. Como cualquier lenguaje que corre sobre una máquina virtual, cuando se ejecuta una aplicación Java hay que iniciar la máquina virtual, algo que consumirá su tiempo y memoria. Pero, ¿sabéis cúal es la trascendencia de consumir unos segundos y unos pocos MB de memoria al inicio en una aplicación empresarial que idealmente estará funcionando ininterrumpidamente durante semanas o meses, con gigas y gigas de memoria a su disposición? Ninguna. Por no hablar de que en las máquinas virtuales modernas (y no tan modernas), existe algo que se llama compilación just-in-time, que de forma dinámica compila a código NATIVO, y a veces con mayor eficiencia que muchos compiladores de C.

    Pero nada, supongo que las críticas vienen de estudiantes que han dado un par de asignaturas de programación y C (aunque repito que no son comparables) les parece más de "pros" (por cierto, el manejo manual de memoria debe de ser la mayor causa de bugs de la historia, o buscad "segmentation fault" o "buffer ocerflow") y las empresas que invierten cada año millones y millones de euros en proyectos con Java son gilipollas.

    Como digo, Java admite críticas legítimas, pero debo de tener mala suerte porque las que me topo siempre no lo son. Y ante todo soy pragmático y "defiendo" a Java no porque sea ningún devoto, sino porque es lo que hago para ganarme la vida desde hace cerca de 10 años, y me la gano bastante bien, sobre todo desde que salí de España.
  80. #83 No son lentos una vez cargadas sus librerías.
  81. ME ALEGRO. Y también por C++ que va tercero.
  82. #38 ¿Crees que por decir más palabras en inglés tu argumento -tus quejas no tienen NADA que ver con el lenguaje, sino con la (supuesta) mierda de implementación- va a resultar más válido?

    Te remito a mi mensaje en #86.

    PHP viene de "Personal Home Page", y mira por dónde, el ¿70%, 80%? de las aplicaciones que usas a diario en la web están hechas en un lenguaje para hacer una página personal o para controlar lavadoras (y otro porcentaje grande, en C#, que fue un clon de Java). Qué cosas, ¿eh?
  83. #85 D'oh! Iba a responder y sin querer te he votado positivo. Bueno, la respuesta: al usuario no se la trae al pairo precisamente porque el lenguaje influye en el resultado final. ¿De verdad nunca has acabado hasta los huevos de programas como JDownloader o algunos clientes de torrent, que aunque ofrezcan una funcionalidad muy buena son insufriblemente lentos? Yo sí, muchas veces. Y es por eso por lo que luego puse el ejemplo del programa que inicialmente hice en Java, pero traduje a C++ cuando me harté de lo lento que iba.

    No estoy nada de acuerdo con que C++ sea malo. Estuve unos cuantos años buscando un lenguaje que se ajustara a mi modo de pensar y hasta que no conocí C++ a fondo no me di por satisfecho. Cuestión de gustos.

    Otra cosa es que en el mundo de la empresa ya entre en juego el tiempo de desarrollo, pero ésa es otra cuestión. Yo hablo del resultado final del código, y sigo manteniendo que la velocidad es un factor, en tanto que el usuario puede notar la diferencia.
  84. #15 Yo esta semana santa he programado en Android y VirtualBox con www.android-x86.org/ me ha salvado de una muerte horrible por desesperación esperando al emulador del SDK de Android.
  85. #79 como puedes ver, #81 y #85 son dos ejemplos de lo que dices. El programador se cree el ombligo del mundo, hasta cuando esta programando.

    Si la aplicacion que utilizas la van a usar 500 personas, durante 4 anos, que importa que tu como programador pierdas tu tiempo compilando una release final por poner un ejemplo si se cambia de plataforma, y así la adaptas a la nueva, si asi cada usuario gana 5 segundo pongamos por día, en tiempo es bastante.

    La percepcion del usuario se la suda a la gente que programa y asi de bien nos va, tenemos la fama que tenemos.

    Quien diga que la velocidad no es fundamental es que es muy joven y no ha vivido otros tiempos. Como los procesadores dejen de incrementer sus prestaciones por limitaciones del material, veremos si es o no fundamental. De hecho la velocidad, la limpieza, calidad y experiencia de usuario, es lo que diferencia un buen programa de uno malo.
  86. #86 Por buffer ocerflow no me sale nada. Los de C lo deben haber arreglado :troll:
  87. #33 de Obj-C... gcc.gnu.org/ Si no quieres programar en el lenguaje que te da la gana es por que no quieres.
  88. #93 Es verdad, ese tal Gallir lo conozco y es un maldito novato
  89. #35 ¿Por qué es más coherente comparar C con .NET que con Java?
  90. #97 Entiendo que será porque los dos se ejecutan sobre maquinas virtuales.
  91. #96 Yo no he llamado a Gallir novato en ningun momento. He dicho que los programadores se creen el ombligo del mundo, cuando no programan con vista al usuario final, no digas lo que no he dicho. #85 tiene todo mi respeto y seguro que me da mil vueltas.
«123
comentarios cerrados

menéame