Programación para Newbies V: Lenguajes, Java y palabras finales

Y continuamos con la tercera y última parte sobre lenguajes de programación.

Java

Duke ThinkingEste lenguaje también de alto nivel desarrollado por James Gosling en Sun Microsystems, apareció paralelamente con Python, a principios de los años 90. Basado en gran parte en la sintaxis de C/C++. Este lenguaje tiene una particularidad que considero interesante. Este debe ser compilado en bytecode (aunque también puede compilarse a código máquina), ¿qué ventaja tiene esto?. Si bien, en teoría, un programa escrito en C podría compilarse (traducirse) con un compilador ya sea de GNU/Linux o Windows, en la práctica vemos que ésto no es así, lamentablemente el código debe ser modificado de manera importante (me gustaría explicarles por qué, pero está fuera de mi conocimiento). La gracia de Java es que el lenguaje es completamente estándar. Bueno, hasta ahora tenemos el mismo problema que con C, lo que pasa es que el bytecode, vendría siendo algo así como una “traducción a medias”, es decir, que no es código máquina, pero está mucho más cerca de serlo. Pero como este es el único lenguaje que el equipo entiende, de alguna forma igual tenemos que arreglarnos de alguna forma para que la traducción/interpretación lo haga. Para logra este fin, el código debe ser interpretado en su ejecución y se utiliza una aplicación especial conocida como Máquina Virtual Java (JVM). Duke PlugDe esta forma, para ejecutar el mismo código de Java, sólo necesito la máquina virtual del sistema operativo correspondiente y voilà. Claramente esto presenta un inconveniente (lo suficientemente grande para que rechace siempre que pueda utilizar Java), el rendimiento, para ejecutar una aplicación necesitamos estar ejecutando la JVM cosa que no consume pocos recursos (aunque diría que con la tecnología actual no debería ser tan importante la diferencia). Por otro lado, presenta una ventaja sumamente importante, la portabilidad, es decir, la posibilidad de desarrollar el programa para distintos sistemas operativos/plataformas.

Sigue leyendo para leer sobre unas últimas palabras sobre los lenguajes…

Anuncios

Programación para Newbies IV: Más sobre los Lenguajes

Seguimos entonces con los lenguajes…

Bajo v/s Alto Nivel

Ahora, lo curioso (o por lo menos interesante) es que realmente el computador no entiende mejor Ensamblador que Fortran o C (bueno, realmente los computadores son conocidos precisamente porque no entienden nada, de ahí que la programación tiene que ser tan precisa), recuerda: sólo código máquina. Para poder traducir los comandos de un lenguaje de medioalto nivel es necesario otro programa especial conocido como compilador. Su trabajo se puede analogar al de traducir un texto de español a inglés.

stock.xchng | arte ram
stock.xchng | arte ram

Tan cierto como en la traducción entre lenguajes humanos, traducir un libro para niños al inglés es muchísimo más fácil y rápido que traducir un paper, dado que éste último tiene vocabulario más técnico y estructuras más complejas. Por lo tanto, es esperable que la traducción de ensamblador a código máquina es más fácil que la de C, y ésta a su vez, que la de FORTRAN a binario.
Como te puedes dar cuenta, vemos que cada uno tiene sus pros y sus contras. En la esquina oeste de shorts azules, tenemos al de alto nivel que es más fácil de aprender, de modificar y de entender, pero también requiere ser compilado, su traducción a lenguaje máquina puede no ser la más adecuado y su control sobre el hardware de la máquina no es demasiado. Por otra parte, en la esquina este de calzoncillos verdes, tenemos al campeón de peso pesado, lenguaje de bajo nivel, que por un lado permite un control importante sobre la máquina y si bien, requiere ser traducido (en general) por un ensamblador, es más rápido, en contraparte es difícil de aprender, utilizar y lo más importante difícil de modificar.

Más y más lenguajes… sigue leyendo la cuarta parte!