Web Analytics
Conecta con nosotros

Noticias

El lenguaje de programación no influye en los errores del código

Publicado el

Un estudio presentado durante la Foundations of Software Engineering (FSE) de 2014 aseguraba que el lenguaje de programación utilizado influía de forma significativa en el número de errores que se podían producir en las líneas de código.

En efecto, esto quiere decir que utilizar un lenguaje de programación concreto daba como resultado líneas de código con más errores. Entre los más afectados por este estudio se encontraban C, C ++, Objective-C, JavaScript, PHP y Python, lenguajes que, casualmente, se encuentran a día de hoy entre los más populares.

Desde que se presentó el estudio varios expertos han intentado reproducir sin éxito sus resultados, lo que ha llevado a dar forma a una serie de conclusiones que según los expertos ponen en tela de juicio la validez de dicho estudio.

Establecer una relación casual como la que pretendía ese estudio presentado en 2014 es complicada por muchas razones. En primer lugar los resultados sobre los que se apoya se obtuvieron analizando el conocido repositorio GitHub. Sí, es una excelente plataforma, pero no representa de forma plena la realidad de un lenguaje de programación.

Por otro lado también debemos tener en cuenta que cada lenguaje de programación tiene un perfil de usuarios mayoritarios con una formación concreta, y que ésto obviamente influye en los errores que pueda contener el código realizado con cada uno de ellos.

Lenguaje de programación y formación

Para explicar mejor este argumento Emery Berger, profesor de Ciencias de la Información y de la Computación en la Universidad de Massachusetts Amherst, ha dicho que lenguajes de programación como Haskell, que no se encontraba entre aquellos que registraban más errores según el estudio de 2014, tienen un perfil de usuario con un alto nivel de formación (un doctorado), mientras que otros lenguajes de programación como C ++ y PHP son utilizados por profesionales menos cualificados.

Está claro que el grado de formación de un profesional y su experiencia afectará a la calidad de su trabajo. En este caso vincular el nivel de errores que produce un lenguaje de programación sin tener en cuenta esa realidad ya hace que un estudio pierda por completo su valor.

No, utilizar un lenguaje de programación concreto no te hará cometer más errores al escribir tus líneas de código. Al final serás tú, o mejor dicho serán tus conocimientos y tu pericia los elementos que determinarán la calidad del mismo.

Editor de la publicación on-line líder en audiencia dentro de la información tecnológica para profesionales. Al día de todas las tecnologías que pueden marcar tendencia en la industria.

17 comentarios
  • alxSoft

    Igual que en la actualidad, con la educación académica, pase lo que pase, interno o ajeno a la clase y así sea un desastre natural!… el profesor tiene la culpa.

  • Caronte

    Siempre es culpa del profesor, que no sabe explicar. /s

  • Gregorio Ros

    Personalmente opino que la formación es fundamental, mas no confundamos con la titulación. Yo me considero afortunado pues en su día me formaron buenos profesionales y me inculcaron una férrea doctrina de metodología. Los que para crear un programa empiezan programando las tienen todas para hacer una chapuza, eso no quita para que la mayoría sean genios y se lo permitan ;). El analisis del proceso y su correcta documentación es fundamental. La titulación no la considero fundamental, por desgracia conozco ingenieros informáticos menos cualificados que mi abuela que en paz descanse. La programación hay que currarsela, no vale con aprenderse un monton de terminos linguisticos que solo valen para presumir entre iguales y para liar al personal. En cuanto a los lenguajes de programación, son solo herramientas de programación, unos mas rápidos pero algo mas ariscos y otros mas cómodos pero mas lentos. Soltado este royo, tengo que decir que hace tantos años que no toco un compilador que incluso un «Hola mundo» me costaría mirar un manual, pero dudo que la situación actual sea muy diferente.

  • Ghoul Rul

    Mi analisis puede ser mejor, pero en general ago un diagrama chapucero en un cuaderno que me de una guia sobre el flujo del negocio, luego otro diagrama chapucero de los objetos que necesito para que funcione el diagrama anterior y despues la lista de actividades que se requiere en cada paso para que todo funcione; creo unos dibujos mas chapuzeros de como seria una interfaz de usuario para contener lo anterior y ya con eso comienzo a programar.
    Si me piden documentacion detallada entendible por otra persona normalmente lo hago hasta que termino y tengo algo de tiempo para tranformar mis diagramas chapuzeros en diagramas profecionales. No me gusta «perder» el tiempo con una documentacion detallada y consisa desde el comienzo, como dice un viejo dicho «ningún plan, por bueno que sea, resiste su primer contacto con el enemigo, con la realidad»; es bueno tener un plan pero es mejor saber adaptarse en el proceso

  • Gregorio Ros

    Cuando el código solo lo tocas tú, es normal relajarse, mas si el programa es un tanto complejo es interesante prestarle atención especial a los diagramas y a la documentación. Es frecuente que te surgen cambios o modificaciones, en un modulo sencillo es fácil de solucionar, pero en un modulo complejo tocar cualquier factor te puede acarrear problemas, que si bien no detectas en el desarrollo luego salen en ejecución y te complican la vida, en mi caso nunca me supuso una perdida de tiempo sino todo lo contrario, cuando tenía que hacer una modificación apenas me suponía un problema, incluso despues de meses de programarlo. Cuando tienes que trabajar en grupo y no quieres amargarte la vida entramos en el modo paranoico, como cada uno aporte su estilo personal desastre asegurado, es imprescindible unificar estilos de programación y, sobre todo, impera la legibilidad del código. Al respecto de la legibilidad, siempre me resulta inaudito leer manuales de tal o cual lenguaje en el que el autor alaba la «elegancia» del código, un código no tiene que ser elegante, ni tiene que ser mas corto, tiene que ser claro y concreto, al compilador le trae sin cuidado la elegancia y lo traduce a lo único que entiende, código máquina.

  • Ghoul Rul

    Eso si comento mi codigo, lo mejor y mas claro pocible, la premura en los desarrollos son por cuestiones de tiempo, el trabajo debe terminarse en dos meses o menos; lo cual deja poco tiempo para analisis, desarrollo y fase de pruebas, no se si sea la mejor opcion pero en general bajo el tiepo de analisis, he incremento la fase de pruebas que intento que sea continua. En la fase de analisis intento que el cliente me indique de la forma mas clara los objetios a cumplir y las reglas de negocio sin lo cual realmente no puedo hacer nada, en el desarrollo intento tener retroalimentacion tanto como sea pocible.
    Concuerdo contigo en que el codigo debe ser corto y concretolo cual ayuda al mantenimiento del sistema, por eso intento seguir la filosofia KISS en los desarrollos.
    *KISS Keep It Simple Stupid

  • Gregorio Ros

    Los clientes xD, la peor parte del desarrollo, hay que adivinarles lo que quieren. Reconozco que a veces añoro volver a programar, pero cuando recuerdo lo que me obsesionaba y como me aislaba del mundo se me quitan las ganas, siempre entendí mejor el lenguaje de programación que a las personas y en mi caso no era muy positivo.

  • Guru

    Para chapucera tu ortografía, cómprate un diccionario que da pena como escribes…

  • Ghoul Rul

    Tengo sueño, y dislexcia y no me importa

  • Felix A. Gonzalez L.

    Es correcto, la programacion en cualquier Lenguaje requiere de mucho conocimientos de sentencias que ayudan al programador su eficiencia y destreza al momento de escribir un codigo. En mi Epoca, escribir un codigo en Lenguaje Cobol exigia muchos laboratorios para conocer cada Verbo y a la hora de Compilar el programa el Profesor le daba a los estudiantes un numero no mayor de 5 compilaciones para escribir el codigo correcto y 3 compilaciones para que el programa ejecutara segun lo estipulado por el Proyecto. Esto te exigia honocer muy bien los comandos e insttucciones. Hoy en fia todo es ensayo y error, parches sin logica alguna. Los tiempos cambian pero las necesidades don las mismas y los algoritmos son mejorados continuamente.

  • Jose Pastrana

    MsgBox («Hola Mundo»);
    Edit1.text («Hola Mundo»);
    Printf («Hola Mundo»);
    System.out.println(«Hola Mundo»);

    O el clásico Pascal:
    writeln(«Hola Mundo»);

    Etc..

  • Gregorio Ros

    El Cobol era incomodo por tener que definirlo todo en apartados distintos, los datos por un lado, los procedimientos por otro,etc. Pero no lo recuerdo dificil, yo agradecí mucho la llegada de Dbase/Clipper por la comodidad para crear ficheros directamente sin tener que escribir un procedimiento para ello p.e., pero en comparación no me resulto ni mas ni menos dificil pasar de uno a otro, impresión particular supongo. Pero en general diferenciar entre p.e. C++ y Python, bajo y alto nivel, es que los veo igual, solo que Python mas comodo de sintaxis, facilidad de definir datos, sin tener terminar todo con ; y mas facil al escribir, pero las ordenes casi iguales. Veo mas complicado en cualquier lenguaje familiarizarse con todo el repertorio de librerias y módulos adicionales, eso si que lleva tiempo si no estas usandolo frecuentemente.

  • Gregorio Ros

    Y aquí la cuestión principal. ¿Si el resultado es igual para que 5 formas distintas?. Siempre me lo plantee, no teníamos suficientes problemas de idiomas en el mundo y al inventar la programación la contaminamos con el mismo problema.

  • Jose Pastrana

    Muy cierto, pero los diseñadores de los lenguajes supongo que tuvieron la grandiosa idea de adecuarse a las palabras que se les hiciera más fácil.

    Aunque realmente no tengo idea, pero imagina que fácil sería si todos los lenguajes usaran los mismos nombres para los objetos, variables, cadenas, etc,,

  • Felix A. Gonzalez L.

    Mi Intension de explicsr el Tema no es mas que la Programacion es un Arte de logica y razonamiento que pones en practica todos tus conocimientos adquirido en cualquier lenguaje. El asunto es que hoy en dia nos sentamos frente al computador a programar o tirar codigo para obtener una funcionalidad sin antes ponernos a realizar un test de inicio a fin de la necesidad actual del cliente y mucho menos los requisitos basicos. El joven de hoy en dia tiene todo a su favor ya que existen librerias que ayudan en un 60% en la construccion del software, antes no existia y eso nos exigia mas en conocer los comandos y sentencias. Sigo pensando que El Arte de programar es una bendicion de Dios ya que requiere de mucha concentracion y creatividad del programador. Saludos y Bendiciones.

  • Felix A. Gonzalez L.

    Cteo que estas asumiendo una posturs de excusa, El problema esta en practicar lo aprendido de manera inmediata para conocer a fondo lo explicado. Solo aprenderas hacer haciendolo de inmediato los laboratorios. Yo soy de la eooca del Cobol, RPG, Basic, Asembler y aprendi Dbase, Clipper, Pascal, Visual Basic, Ahora estoy con Java, Peython y otros usando el mismo diagrama de flujo DFD y obtengo mis resultados. Para proyectos grandes les recomiendo usar softwsre de UML y uno de ellos muy poderoso es el Rational Rose de IBM. La tarea de un Estudiante es continuar investigando y ponerlo en practica, solo asi dejaras de Culpar a tus Profesores que te estan dando la llave para que descubra el mundo que te Rodea. Saludos y Exito.

  • Caronte

    La s del final es por sarcasmo

Top 5 Cupones

Lo más leído