Tecnología, Internet y juegos
401 meneos
5279 clics
Las universidades de EEUU al fin lo han reconocido: empezar a programar por Java es una mala idea

Las universidades de EEUU al fin lo han reconocido: empezar a programar por Java es una mala idea

Java ha sido y es desde hace mucho tiempo uno de los pilares básicos de la programación. Un lenguaje óptimo para según qué tareas. Sin embargo, su reinado como punto de partida para el estudiantado parece estar llegando a su fin. "Hay que aprender la lógica de la programación. El lenguaje es lo de menos. Por eso es un error enseñar con Java porque los programadores no tienen idea de lo que están haciendo", decía hace un par de años para Economía Digital Ricardo Galli, profesor universitario y socio-fundador de Menéame.

| etiquetas: programación , universidad , java , python , javascript
149 252 4 K 357
149 252 4 K 357
Comentarios destacados:                                  
#171 #97 Ya me dirás tu como explicas a alguien que un programa no funciona porque una linea tiene un tabulador y la otra 4 espacios en blanco. Si estas con un IDE todavia lo ves, pero en un editor de textos normalito ni te enteras que esta pasando. Y no prentenderás enseñar a programar con un IDE, eso si que no tiene sentido.

Uso Python a diario y cada día me gusta menos.
  1. @blacar @nemeame @angelitoMagno He tenido que autodescartar la anterior noticia www.meneame.net/story/universidades-eeuu-fin-han-reconocido-empezar-pr porque el enlace no se abría bien desde PC, y esperar 30 minutos para volver a publicarla con el enlace corregido porque según menéame:
    "Ya has enviado un enlace al mismo sitio hace poco tiempo - Debes esperar 30 minutos entre envíos al mismo sitio."
    CC @ur_quan_master @apple3
  2. Eso se ha sabido siempre. Lo malo es que ahora "la gente" va a pedir que se enseñe a programar usando algo que este de moda como la mierda de funcional o algun lenguaje de script "libre" en vez de volvernos a Pascal, que se diseño especificamente para aprender a programar. O a C, y que a fuerza de borrar cores los estudiantes se acostumbren a liberar memoria...
  3. Se lo dije hace uans semanas a una profesora mia del master y se puso en modo egocentrica sabelotodo.
  4. #2 El problema es que antes la memoria en los equipos era muy cara, ahora no hay casi límite, entonces es más fácil duplicar código que pensar en la forma de ahorrar
  5. ¿Los pobrecitos hijos de papá se quejan porque es muy complicadito para ellos aprender a programar en Java?

    Vaya mierda de universidades, sinceramente. Que les pongan como me pusieron a mí, en Pascal o en C++ con objetos a cascoporro, ampersands y asteriscos. Al menos así aprenderían algo sobre gestión de memoria.

    O con tarjetas.

    Otra cosa es que un padre enseñe a sus hijos a programar usando Java. Son niños y hay que darles facilidades. ¿A una persona de 18 años? ¿no pasan la selectividad allí? ¿de verdad hay que enseñar usando lenguajes de programación que no son tipados ni compilan y que les van a petar por activa y por pasiva en sus primeros proyectos y no van a saber por qué?

    Nada hombre, que se compren Basic para niños y que Arturo les prepare los exámenes del primer trimestre.


    El 69% de los centros más prestigiosos empiezan por aquí, mientras que otros apuestan por JavaScript, MATLAB, Scheme y Scratch.
    Di clases a niños entre 8 y 12 años sobre programación de videojuegos. Durante dos semanas dimos Scratch (comenzando por Code.org) y a muchos se les quedó cortísimo. Se me caería la cara de vergüenza si a mis 18 años viniera un profesor a enseñarle programación con Scratch... seguramente no volvería a esa clase en todo el año.
  6. #2 ¿Qué es eso de "borrar cores"? Por lo que recuerdo, para asignar memoria se usala "malloc" y para liberarla "free".

    En la facultad nos enseñaban pseudocodigo (Usando tipos abstracto de datos, no recuerdo si se veía la gestión de la memoria) y C. Pero en la noticia no hablan de pseudocodigo. Por otro lado, el ejemplo que ponen no me parece muy bueno.
  7. #6 madreee... ¿Tan bueno eres programando que nunca tuviste un "core dumped" en ejecución? Qué cosas.
  8. #6 si, pero si programas en C y haces el tonto con la memoria, tarde o temprano el programa casca y te escribe un fichero "core", al menos en *nix. En los lenguajes con GC te puedes olvidar de que la memoria existe y una mierda de programa teermina de ejecutarse igual que un programa optimizado porque de la memoria se encarga otro.
  9. Lo de Standford además de antiguo es mentira, no va a sustituir su curso, simplemente ahora da la posibilidad de hacer el curso de introducción en Javascript o Python además de en Java. Lo que al final sigue siendo irrelevante porque el resto de cursos se dan en C++. Siendo una noticia de inicios de Año en Xataka ya se podrían haber informado un poco más.
  10. #3 yo hace lustros que lo digo. El día que me enteré que habían cambiado de Pascal a Java lo flipé. Si es aprender el objetivo, como si es pseudocódigo, aunque tiene que después traducirse a algo compilable.
  11. De los lenguajes que conozco, Python me parece el más adecuado para aprender.
  12. #10 Hay gente que se ha quedado anclada en Java y de ahi no los sacas. De programacion no tengo mucha idea pero algo con lo que se hizo el Minecraft no puede ser bueno :troll:
  13. #12 xD

    Hombre, java es potente y tal, pero no es lo mejor para aprender. Para hacer el código más sencillo tienes que usar elementos que no se dan el primer día de clase precisamente, así que te quedas con la idea de "esto es así por narices" hasta que te lo explican cuando toca.

    Para aprender, Pascal. O el que me "enamoró a primera instrucción", Python, que luego te sirve para hacer POO también.
  14. Que aprendan programación funcional. Haskell, por ejemplo. Luego no lo van a usar, pero los conceptos los pueden usar en casi cualquier lenguaje y seguro que les cunde.
  15. #2 que funcional sea una mierda, es tu opinión, que no comparto. Que esté de "moda", llamarlo así lo dudo mucho.
  16. Esto ya lo decía Niklaus Wirth hace 40 años... por eso diseñó Pascal y luego Modula-2 para enseñar a programar a sus estudiantes.
  17. es cierto, lo mejor es hacer como yo, que empecé programando en html y css 8-D 8-D
  18. " Por eso es un error enseñar con Java porque los programadores no tienen idea de lo que están haciendo" WTF. Si el profesor sabe explicar bien los conceptos de programación, porque los programadores no van a tener ni idea de lo que están haciendo? Por no tener punteros? Venga va, a otro con la monserga del abuelo cebolleta.
  19. #2 pues para mí no se ha sabido siempre, hoy en día tener que estar gestionando memoria (cuando hay básicamente de sobra) en vez de centrarte en la solución de lo que quieres arreglar es una perdida de tiempo y de recursos. Llámame loco.
  20. #19 #17 En el currículum luce mucho lo de programación en html. Excepto si es para un trabajo de programador, claro.
  21. #8 bueno, una cosa es que un programa esté o no optimizado, y otro que tenga fugas de memoria.

    Lo que sí que me parece cierto es que abusar de Java en la carrera hasta el punto de dar a entender que cualquier lenguaje que se precie debe tener un recolector de basura es mala idea. En particular, cuando empiezas a programar sin ruedines vienen los cores, las visitas del oom_killer o iluminados como este señor: matt.sh/howto-c (al que, menos mal, hay gente dispuesta a rebatirle: github.com/Keith-S-Thompson/how-to-c-response/blob/master/README.md).
  22. #17 Yo empecé programando un despertador 8-D 8-D
  23. #10 Yo empecé con Pseudocódigo -> Pascal -> C++ -> Java
  24. #18 La única piedra es que en el Hola Mundo ya tocas las clases, los atributos, los modificadores de acceso, los métodos, sus argumentos y retornos y los métodos estáticos. Si salvas eso o pasas de puntillas, no sé dónde está el problema. Se les supone un nivel a los universitarios.
  25. Tonterias.

    El miedo a Java es infundado e incomprensible. Incluso es posible programar en Java con un estilo tirando a Pascal dejando mucho de lado la programación orientada a objetos al principio. La programación orientada a objetos no es tan complicada de entender (si no te metes de lleno con temas de estructuras de datos avanzadas) y permite que incluso gente que no entiende bien como funciona internamente un ordenador escriba programas de forma ordenada y efectiva que resuelven problemas del mundo real.
  26. #5 Es lo malo de vivir en una época en la que el esfuerzo personal está mal visto, y hacer estudiar a de verdad es casi maltrato infantil.
    Por lo que parece el nivel de los nuevos estudiantes es en general penoso, a nivel de redacción (no son capaces de escribir más de 10 líneas seguidas), gramática, comprensión lectora, matemáticas...

    www.elconfidencial.com/alma-corazon-vida/2013-10-08/solo-uno-de-cada-t
  27. ¿No es es php la foto de portada del artículo?
  28. #24. C++ es bastante más complicado que Java, incluso en sintaxis. Java se parece más a Pascal y casi nadie le tiene miedo al lenguage Pascal que parece una evolución natural del Basic de los 80 y 90.

    El problema con Java es que libros y profesores pretendan empezar a enseñarlo por el tejado, cuando como en todo lo ideal es empezar por la base. Para empezar con Java lo mejor es seguir ejemplos y olvidarse al principio de los conceptos repetidos una y mil veces sobre programación orientada a objetos.
  29. #23 Yo un vídeo VHS :troll:
  30. "Las universidades de EEUU al fin lo han reconocido: empezar en matemáticas por las derivadas es una mala idea."
  31. Ada FTW!
  32. #4 yo en el curro se lo digo a mis compañeros, si tardas más en optimizar eso que un mes más de gasto en RAM, no lo hagas, ahora es más barato el hierro que la hora de desarrollo, pensando siempre en el precio final, no en lo que tú cobras.
  33. #31 Lo del "hello world" aquí es pertinente porque no se trata del uso empresarial de la programación, sino de cómo empezar a aprender a programar.
  34. Lo que mola es empezar con Div2 8-D .

    Sí, soy un abuelo cebolleta, lo admito.
  35. #25 claro, eso se explica diciendo: esto lo volveremos a ver más adelante. Y luego, cuando se enseña cada uno de esos conceptos, se vuelve al Hola Mundo, que encima será un sitio ya conocido. En mi opinión, si empiezas con un lenguaje que tiene punteros, vas a marear más que otra cosa.
  36. Para #2. Si buscas programadores que resuelvan problemas en empresas en general, Java es la opción natural en muchos casos.

    Si buscas programadores que resuelvan problemas cientítico-técnicos relacionados con computación y computadoras 'C' es la opción natural para sistemas operativos y pequeñas utilidades mientras que 'C++' es la opción natural para proyectos grandes que sigan requiriendo cercanía al hardware y una optima velocidad de proceso.
    Goto #26 #29.
  37. #24 yo con BASIC, como un campeón y a pesar de lo que dijese el impresentable de Dijsktra >:-(
  38. Mis primeros lenguajes fueron C# y Python y no podría recomendarlos mas.

    La sintaxis de python es muy cercana a un lenguaje de scripting, con lo que es extremadamente facil iniciarse. Mientras que C# es un lenguaje de 3º generacion un poco mas moderno que java. Si combinas las convenciones de ambos lenguajes, terminas un estilo de código realmente limpio.
  39. #4 como en este mundo sólo existen las aplicaciones de escritorio...
  40. #6 speaker en meneame hay mucho self learned con nivel de inglés medio-bajo que usa expresiones como o. a c, borrar cores y Core dumped... El problema es que filtran de Menéame a la realidad y luego los tienes que aguantar en el mercado laboral.

    Es un mercado laboral de mierda el informático en parte por todos esos que tiran de acrónimos sin venir a cuento y postulan desde su falta de estudios base.
  41. #33 Ufff, nunca comprendi el amor por ADA. Tuve asignaturas de Sistemas Operativos en la Universidad con ADA y esas enormes cadenas para pasar entre Bounded y Unbounded String me parecia de todo menos una forma optima de programar.

    En cuanto al articulo, yo en su dia empece con Pascal y al principio pensaba que para que daba un lenguaje que nunca iba a usar, cuando descubri C, sus punteros y su manejo de memoria agradeci enormemente haber aprendido a utilizar punteros de forma mucho mas simple en Pascal.
  42. #20 claro para que optimizar... más madera!
  43. #2 Pascal es una mierda pinchada en un palo, no lo usa nadie ni nadie ha programado nada jamás con eso
    puestos a aprender a programar podemos volver al lenguaje ensambador o quizá al cobol
  44. Java tiene una API gigante que para cualquier cosa que quieras hacer, ya existe una función y si encima lo usas con IDEs modernos que te autocompletan todo... ya ni te hace falta saber como funciona una lista.

    Pero bueno, creo que cada punto de vista tiene su lógica.
  45. #2 Pascal se diseñó para aprender a programar, pero en los 70, y se nota mucho. Creo que no tiene sentido usarlo hoy en día.

    Yo enseño programación en Pascal, y me río cada vez que alguien dice que es un lenguaje muy didáctico porque es muy estricto. Sí, es estricto en las chorradas que no importan: no te deja definir una variable en mitad de una función, por ejemplo. Pero luego resulta que te deja poner variables globales (y las puedes poner hasta sin querer, mis alumnos lo hacen a menudo: tienes una variable local al bloque principal del programa, metes una función en medio, y zas, ya es global). Y también resulta que el sistema de módulos es un coladero: en teoría tiene una parte pública y una parte privada, pero en la práctica tiene la genial restricción de que la definición interna de los tipos de datos que usas en la parte pública tiene que ser también pública (porque ya se sabe, vamos a ordenarlo todo para que sea didáctico, entonces lo público viene antes de lo privado, y como no puedes usar un tipo que aún no has definido... zasca). Con lo cual, defines un módulo para una lista enlazada, que en teoría debería ser abstracto y no darte acceso a la implementación, y en la práctica te puedes meter hasta la cocina. Luego súmale una sintaxis desconcertante (la gente de forma natural intenta poner puntos y coma al final de cada sentencia, aunque no haya visto C en su vida) y un compilador que tampoco ayuda, porque salirse del límite de un array es como en C, no como en Java: ojalá tengas la suerte de que el programa pete, pero como tengas mala suerte, estarás modificando quién sabe qué variable, y buena suerte para debuggear siendo novato.

    Pues mira, me parece mucho, pero mucho más didáctico un lenguaje menos estricto a la hora de ordenar las declaraciones de variables o poner puntos y coma, pero más estricto a la hora de no permitir cosas como variables globales, romper la abstracción o salirse del límite de un array. Por ello creo que Java es bastante mejor que Pascal para enseñar a programar hoy por hoy.

    Estoy de acuerdo con el artículo en que Java es un demasiado verboso para aprender, eso sí. Python es mejor en ese sentido. La verdad es que no conozco ningún lenguaje que realmente me parezca bueno para aprender (lo mejor a mi juicio sería algo con el tipado estático y los chequeos en tiempo de ejecución de Java, pero con una sintaxis más simple tipo Python). Sólo sé que Pascal no, por favor. Lagarto, lagarto.
  46. #15 Venía a decir lo mismo. Los lenguajes funcionales son tan viejos como los imperativos, y si ahora están "de moda" es porque se está viendo que la programación funcional es útil. Si hasta C++11 tiene lambdas...
  47. #16 hace 40 años existía Java? Jaja
  48. Que prueben con javascript, que el ecosistema ahora es facilito jajajajaja
  49. Yo aprendí Java, luego C y luego C++. Creo que es un buen orden, pero no habría estado mal empezar con algún lenguaje de script más sencillo antes de Java.

    Recuerdo mi primera clase de programación:

    PROFESOR: La programación orientada a objetos es muy sencilla, tan sólo tenemos que representar las clases, por ejemplo un Camión. ¿Qué tiene un camión? Cuatro ruedas, pues eso son los atributos. ¿Qué hace? Avanza, pues eso es un método.

    ALUMNOS: ¿Pero qué cojones nos estás contando?

    PROFESOR: Venga, ahora vamos a hacer el Holamundo, copiad este código y ya está.

    ALUMNOS: WTF?

    Y luego más de una semana para conseguir hacerlo funcionar, hasta que el profesor me dijo que tenía que poder en la variable del sistema CLASSPATH un punto que no tenía ni idea de lo que significaba.
  50. Mi primer lenguaje fue Visual Basic. Me lo enseñó mi padre a los 11-12 años. A los 14 o así me compré un libro de C++ (mi padre no le daba a eso) y ese fue mi segundo lenguaje.
  51. #42. Conozco autodidactas que superan en conocimientos y capacidades a muchos con carrera, aunque también conozco a gente con carrera con un nivel de conocimientos similares a esos autodidactas. Creo que tanto unos como otros tienen ese mismo espíritu autodidacta, unos con la ventaja añadida de poder haber estudiado en auténticos entornos universitarios de calidad y haber recibido una formación reglada impartida por expertos. Buscando bien y contrastando hay muy buenas universidades públicas en España y Europa en ciencias de computación.
  52. #2 > ...mierda de funcional...

    No sé muy bien que decirte con esa burrada que has soltado. En fin, no merece la pena que me ponga a explicarte por qué la programación funcional es tan importante ni por qué la tendencia es programación funcional y no de otros tipos. Tu a lo tuyo. A borrar cores para liberar memoria.
  53. Lo que se ve en los comentarios es que hay mucha gente programando que no debería estar currando en ello, madre mía que cantidad de despropósitos.
  54. #18 Python no tiene punteros, no es verbose, los conceptos de estructuras son más rápidos y sencillos de implementar, se puede crear aplicaciones interesantes con más facilidad y menos líneas de código,etc.

    En definitiva, la curva de aprendizaje es más corta y la barrera de acceso al mundo de la programación es más fácil de saltar.
  55. #11 Python tiene de malo el forzar la tabulación para darle sentido al código, en una línea metes espacios y en la otra tabuladores y te has cargado el programa. Yo iría más por lenguajes como swift o kotlin, mucho más modernos y con muchas más posibilidades. Y son lenguajes tipados, que es algo que me parece importante para programar cosas serias.
  56. #2 cada lenguaje responde a una necesidad, y del mismo modo que Pascal tenia como objetivo la educación en programación imperativa, los lenguajes funcionales responden otras necesidades académicas y prácticas.

    En mi opinión no está de más enseñar programación funcional en la universidad, como parte de la aplicación matemática de la computación.

    La gran ventaja es la capacidad de escribir código ad hoc para modificar un set de datos, y poder aplicar técnicas programáticas a información, lo que ahora se conoce como data modeling.

    Particularmente creo que Python + Haskel + mathlab sería una combinación perfecta para iniciar a los futuros profesionales.
  57. #45 Pues con el lenguaje ensamblador se aprende bastante bien cómo funciona un ordenador.
  58. #22 Normalmente en una carrera de ingeniería informática, por lo menos habrá una asignatura de sistemas operativos donde se programe en C, y alguna optativa de sistemas embebidos o cosas así, que al final es donde hoy por hoy se usan mallocs y frees.

    En todo lo demás, los recolectores de basura cada vez son más prevalentes, así que tampoco veo mal que se enfoquen como "lo normal", siendo la gestión manual algo especializado. La verdad es que hoy por hoy, no creo ni que el 20% de los alumnos vayan a salir de entornos con recolector de basura en su vida profesional.

    Si eso te indigna, piensa que hace 40 años estarían diciendo lo mismo del ensamblador. Hoy, si un ingeniero informático sólo vio ensamblador en una asignatura o dos y no hizo nada serio con él, la verdad es que da igual. Los pocos que acaban en un empleo donde se usa ya lo aprenden. A medida que el nivel de abstracción va subiendo, el destino de los malloc será el mismo.
  59. #53 Si no critico a los autodidactas en concreto sino en general los antipatrones de los desarrolladores de uno y otro tipo. Y eso de empezar a soltar palabras que no son las correctas es tan de autodidacta. Los ingenieros obviamente tienen tambien lo suyo, de hecho lo de ametrallar a acronimos estupidos es muy de ingeniero (bueno, más de jefe con estudios no técnicos).
  60. #41 en las de servidor pasa exactamente lo mismo, le dices al cliente te lo optimizo en 50h (50h x 50€) o le pones otros 16gb al server... Se echa rápido la cuenta.
    Hay otros entornos en los que efectivamente los recursos están más limitados y no queda otra que optimizar.
  61. #57 Python no es antiguo y tiene tipado fuerte.
  62. Yo creo que el problema de fondo es que ha terminado "ganando" la teoría de que la Universidad debe preparar para el mundo laboral y no debería ser así.
    La universidad debería dar una base sólida de conocimientos teóricos lo más absolutos e inmutables que permita el estado de la ciencia y el conocimiento, y sobre eso que el alumno practique con "el mundo real" en las asignaturas "laboratorio" (que al menos había cuando yo estudié, ahora lo mismo se las han follado).

    Resultado de preparar para el mundo laboral... que ahora te llegan becarios que sí, (y algunos, pq otros.... pura mierda) saben picar en Python mal, en Java Mal y alguna otra cosa Mal... ni puta idea de corrección de código ni de hacer las cosas bien, imagino que dentro del "preparar para el mundo laboral" les han enseñado a hacer software de mierda que es lo que piden las charcuteras y de paso tendrán créditos en tirado de caña que es lo que pide Ejpaña.

    Mira que hasta el año pasado me costaba creer lo que oía, pero metieron unos becarios... y en fin.... vi la triste realidad.
  63. A mí lo que me parece una mala idea es empezar por JavaScript o cualquier otro lenguaje interpretado y debilmente tipado donde el intérprete hace lo que le sale de las bolas y tú no tienes ningún control, ni responsabilidad, ni mucho idea sobre lo que está ocurriendo a bajo nivel.

    Lo de mayor abstracción y tal está muy bien...y que el programador se concentre en la lógica pero cuando ya tienes claros los conceptos y fundamentos. En otro caso es como ir a la autoescuela y hacer prácticas en un fórmula uno.

    (En mi modesta opinión de desarrollador cutre y salchichero)
  64. #14 Yo creo que alguien que se tome la informática en serio tiene que aprender programación funcional en algún momento, pero no al principio. Simplemente porque el modelo imperativo ("yo le voy dando instrucciones a la máquina, le digo haz esto, y ahora lo otro...") es mucho más sencillo conceptualmente que definir funciones matemáticas que te devuelvan lo que quieres.
  65. #5 A mi personalmente me parece que Java es una buena opción, sobretodo para darse cuenta si te gusta la programación o no. Yo empecé con C y todo bien, cuando pasé a Java vi que no me iba ese rollo, demasiado léxico, así que me pasé a robótica con Siemens y todo guay. ^_^
  66. #2 la mierda del funcional. ¿Cuánto rencor no? Precisamente muchísimos de los problemas existentes en la programación hoy en día son debidos a la no utilización de conceptos funcionales: poca reutilización y composición, baja escalabilidad, y bugs por todos sitios debido a la dificultad de razonar en software concurrente por la mutabilidad, así como la falta de un sistema de tipos medianamente cuerdo.

    "En este caso, que los alumnos se apasionen por la materia y aprendan fundamentos que luego sirvan en la empresa." Lógico, no enseñes Java en la universidad, porque luego el 70%> de las empresas en España lo van a usar :shit:
  67. #38 Ya sé que no tiene nada que ver con el tema pero siempre he tenido curiosidad, ¿Se dice c más más, c plus plus...?
  68. #11 Si vas a enseñar a progranar, que aprendan a programar con un lenguaje de programación, que luego ves en las empresas barbaridades infumables hechas con Python.
  69. #70. Se dice 'C Plus Plus'. Ante la duda usa siempre la palabra en inglés. Es lo que tiene que los desarrollos de esos lenguajes sean en esa lengua.

    '... En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C...'
    es.wikipedia.org/wiki/C++
  70. #71 Como el buscador de Google!
  71. #48 #15 la ventaja de los lenguajes funcionales se ha hecho evidente con la llegada del big data, el modelado de datos y la programación basada en redes neuronales. Y tiene visos de explotar definitivamente en los próximos años gracias a la programación no lineal y la IA
  72. #64 Pues la teoría de que la Universidad debe preparar para el mundo laboral parece que aún no ha ganado si las universidades de EEUU dicen que java no es adecuado para aprender a programar.
  73. #66 Javascript FTW  media
  74. #5 Scheme es del MIT. Intenta acabarte el SICP. Qué narices, ni en un finde haces dos lecciones.
    Ojo, el SICP es DURO.
  75. #63 Python no tiene tipado. Tidas las variables son iguales, los campos de las estructuras se crean dinámicamente, no se compila para detectar errores de código, la tabulación es una pesadilla y el rendimiento es ridículo.

    Sinceramente, no entiendo ese fan por Python. Es un lenguaje script para ubas pocas lineas de código al estilo MATLAB. Ya está. Pero sí he visto como hubo que tirar un millón de euros a la basura de un proyecto que hubo que reprogramar entero en C, porque al manager le comieron la oreja con el Python.
  76. #60
    Normalmente en una carrera de ingeniería informática, por lo menos habrá una asignatura de sistemas operativos donde se programe en C, y alguna optativa de sistemas embebidos o cosas así, que al final es donde hoy por hoy se usan mallocs y frees.

    En C, y en C++ también (que los new hay que emparejarlos con su delete). C y C++ siguen siendo usados en aplicaciones de escritorio de forma masiva, no olvidemos.

    En todo lo demás, los recolectores de basura cada vez son más prevalentes, así que tampoco veo mal que se enfoquen como "lo normal", siendo la gestión manual algo especializado. La verdad es que hoy por hoy, no creo ni que el 20% de los alumnos vayan a salir de entornos con recolector de basura en su vida profesional.

    Hombre, si lo único que quieres es una máquina para picar alto nivel (Java y demás), probablemente ni siquiera necesites hacer una carrera. Aunque por otro lado no creo que una empresa te desarrollo te vaya a contratar sin un título que certifique que has pasado 5 años de tu vida encerrado en una facultad.

    Si eso te indigna, piensa que hace 40 años estarían diciendo lo mismo del ensamblador. Hoy, si un ingeniero informático sólo vio ensamblador en una asignatura o dos y no hizo nada serio con él, la verdad es que da igual. Los pocos que acaban en un empleo donde se usa ya lo aprenden. A medida que el nivel de abstracción va subiendo, el destino de los malloc será el mismo.

    La verdad es que tienes razón. El mercado está siendo cada vez más dominado por lenguajes a prueba de idiotas, lo cual es bueno ya que acerca la programación a un mayor sector de la población. Sería muy preocupante que el acto creativo en un mundo tan profundamente informatizado estuviese dominado por unos pocos gurús.

    También te digo una cosa, y es que es posible que yo tenga una visión demasiado romántica de lo que debe ser un ingeniero informático. Para mí un ingeniero debería tener un conocimiento profundo de cómo funcionan las cosas por debajo, y a mayor abstracción, más fácil es perder la perspectiva (lo cual luego tiene también sus implicaciones desde el punto de vista de la seguridad de los sistemas, y eso es un fregado en el que ya no me quiero meter).
  77. #68 Java es una buena opción para odiar la programación.
  78. #62 ¿Optimizar algo en un servidor 50€?
    ¿Qué eres la puta sin dientes?
  79. #28 Sí, el artículo trata sobre Java, así que lo mejor es poner una foto de código PHP para ilustrarlo.
  80. #62 Y así a lo tonto llega un día en que no puedes meter más RAM y en vez de 50 horas son 2300
  81. #83. Android dispone de un SDK de Java y de un NDK de C y C++ para aplicaciones nativas :

    '...The Android NDK (Native Development Kit) is a toolset that lets you implement parts of your app in native code, using languages such as C and C++. For certain types of apps, this can help you reuse code libraries written in those languages...'

    public class MyActivity extends Activity {
    /**
    * Native method implemented in C/C++
    */
    public native void computeFoo();
    }

    NDK : developer.android.com/ndk/index.html
    SDK : en.wikipedia.org/wiki/Software_development_kit
  82. #79 es.wikipedia.org/wiki/Python : Sistema de tipos  Fuertemente tipado, dinámico
    La tabulación es una chorrada, los IDEs ya la ajustan automáticamente, te obliga a hacer legible el código, no tienes que usar llaves o BEGIN/END...

    Lo que pierdes en rendimiento lo ganas en facilidad de desarrollo, todo depende del tipo de proyecto.
  83. #60 Pues yo no acabo de ver bien que se aprenda que la memoria es limitada en un asignatura de sistemas operativos en lugar de "troncales" de programación.

    Como ingenieros, los ingenieros informáticos debería aprender a diseñar soluciones informáticas usando el mínimo de recursos posibles. Si se aprende a programar con un lenguaje que te da a entender que la memoria es barra libre, difícilmente harás un programa mínimamente eficiente.
    Tampoco estoy hablando de afinar las cosas a nivel de poder correr los programas en una Nespresso, pero por lo menos que no necesites un chorrocientos mil cores y gigas de RAM para correr un todo.

    Y ojo, que yo llevo toda mi vida profesional con lenguajes que me hacen olvidarme de la memoria. Pero el haber trasteado con C/C++ me hizo ser un poquito más cuidadoso con esas cosas.
  84. #70 "C plas plas" y los de rrhh de la entrevista te hacen la ola...
  85. #66 Sí, pasar de Java a JavaScript como lenguaje introductorio es lo que se dice saltar de la sartén para caer en las brasas. El libro más recomendado para JavaScript es uno que se llama "JavaScript: The Good Parts", y el paradigma del lenguaje es una variante rebuscada de orientación a objetos.

    Estoy de acuerdo con lo que decía Gallir: creo que, si de verdad se quiere que el alumno entienda lo que está haciendo, lo mejor es empezar por C. Es cierto que no es muy glamuroso, y que sería más difícil motivar al alumno, pero imagino que es cuestión de plantearlo de la forma correcta, que no sea todo, como dice el artículo, programas de operaciones con matrices en línea de comando. Lenguajes como JavaScript tienen la ventaja de que desde el primer momento puedes hacer cosas "chulas", ya que tienes acceso directamente al interfaz del navegador, pero probablemente a costa de crear vicios y no entender en profundidad cómo funciona lo que estás haciendo.
  86. Se introduce a la idea de que es mala práctica enseñar Java con el argumento de que con pocas instrucciones haces mucho. Pero luego promueven Python como lenguaje alternativo. WTF?
  87. A mi no me parece algo tan simple, por ejemplo en python te encuentras de repente con que hay mucha magia de fondo por otra parte javascript es de lo más cerdo por todas las barbaridades que te permite hacer, y si empiezas por C también tienes que dar cierto salto de fe a la hora de escribir tu código.

    Tampoco pienso que sea lo ideal empezar por java, pero tampoco pienso que sea algo que por sí mismo convierta a buenos alumnos en un desastre, el problema de la motivación me parece más grave. Los profesores tienen que motivar a los alumnos, pero no todo puede ser que el profesor motive, la principal motivación la tienen que encontrar ellos mismos. Si no les motiva estudiar una carrera pues igual deberían irse a otra...
  88. #40 El C# uno piensa que es un buen lenguaje, porque en principio te permite crear codigos más robustos, hasta que te das de narices con el problema de los stuttering.
    Una de las soluciones es pasar a utilizar structs en vez de clases y gestionar la memoria con el stack. Entonces te das de narices con otro problema, de que no existen default constructors, y que al no existir referencias tienes que hacer cosas raras para modificar los datos en una List, por ejemplo.

    A parte de que la gente se vuelve loca con la programación orientada a objetos y cosas que puedes hacer con dos funciones, se inventan un espaqueti de clases, con constructores que ejecutan código...

    En fin. C# no es mi lenguaje favorito, tampoco es que me desagrade mucho, pero fue creado para hacer ventanitas,! botones, menus y poco mas. En aplicaciones en tiempo real da muchos problemas.
  89. #11 Para nada:

    C.

    Aprendes que estas haciendo. Aprendes que esta haciendo la maquina con lo que tu ordenas.

    A partir de ahi C++, Java, python, kotlin... lo que quieras, pero para aprender: lo basico.
  90. #34 optimizar en qué? cualquier algoritmo que hagas que tenga una complejidad igual o mayor de O(n^2) se convierte en algo inútil cuando crece n por mucho hierro que compres.
  91. #57 Python tiene de malo el forzar la tabulación para darle sentido al código, en una línea metes espacios y en la otra tabuladores y te has cargado el programa.

    Eso es BUENO. Es lo mejor de python.
  92. #91 Sí, creo que lo que escribe es klingon.
  93. Pdp11 y así fijo que sabes lo que estar haciendo xD
comentarios cerrados

menéame