En el Joven Club de tu municipio quieren una aplicación para que los educandos consulten los horarios de la guagua de la ruta a la escuela. Daniela propone hacerla en Python, Ernesto en JavaScript y el profesor de Informática en C. ¿Por qué existen tantos lenguajes y cómo se decide cuál usar? Para responder, primero hay que ver qué hace un lenguaje con lo que escribes.
Del código fuente al programa ejecutable
Lo que escribe la persona programadora se llama código fuente. Pero el procesador solo entiende el lenguaje máquina (ceros y unos), así que hace falta una traducción.
Practica★☆☆Sin empezar
Explica con tus palabras qué es un programa y qué es un algoritmo, y pon un ejemplo de «algoritmo» de la vida diaria (una receta, las instrucciones para llegar a tu…
Explica con tus palabras qué es un programa y qué es un algoritmo, y pon un ejemplo de «algoritmo» de la vida diaria (una receta, las instrucciones para llegar a tu casa...) identificando sus pasos.
Un lenguaje natural (como el español) admite frases ambiguas, pero un lenguaje de programación no. Explica qué significa esto y por qué es imprescindible que las…
Un lenguaje natural (como el español) admite frases ambiguas, pero un lenguaje de programación no. Explica qué significa esto y por qué es imprescindible que las instrucciones de un programa tengan una única interpretación posible.
La figura muestra la cadena que convierte lo que escribe una persona programadora en algo que la computadora puede ejecutar, pero el elemento central está tapado con un…
La figura muestra la cadena que convierte lo que escribe una persona programadora en algo que la computadora puede ejecutar, pero el elemento central está tapado con un signo de interrogación, como se muestra en la figura.
Indica qué elemento falta en la cadena, explica qué dos tipos de herramientas pueden ocupar ese lugar (compilador e intérprete) y describe en qué se diferencia cada una.
Explica qué es la sintaxis de un lenguaje de programación y por qué un simple paréntesis de menos impide ejecutar el programa, mientras que en un texto en español una…
Explica qué es la sintaxis de un lenguaje de programación y por qué un simple paréntesis de menos impide ejecutar el programa, mientras que en un texto en español una falta de ortografía no impide entenderlo.
Ese código intermedio da portabilidad: se compila una vez y corre en cualquier sistema que tenga la máquina virtual. El costo es una capa más entre el programa y la máquina real, lo que resta algo de velocidad.
Practica★★☆Sin empezar
Explica la diferencia entre un lenguaje compilado y uno interpretado: qué ocurre con el código fuente en cada caso, cuándo se detectan los errores y qué necesita el…
Explica la diferencia entre un lenguaje compilado y uno interpretado: qué ocurre con el código fuente en cada caso, cuándo se detectan los errores y qué necesita el usuario final para ejecutar el programa. Pon un ejemplo de lenguaje de cada tipo.
Con un lenguaje compilado se genera un ejecutable; con uno interpretado hace falta el intérprete instalado. Analiza qué diferencia hay para el usuario final de cada…
Con un lenguaje compilado se genera un ejecutable; con uno interpretado hace falta el intérprete instalado. Analiza qué diferencia hay para el usuario final de cada programa (qué debe instalar, en qué sistemas funcionará) y qué diferencia hay para la persona que desarrolla (ciclo de escribir-probar).
Un lenguaje de alto nivel interpretado suele ser más cómodo de escribir pero más lento en ejecución que uno compilado de bajo nivel. Analiza este compromiso y decide qué…
Un lenguaje de alto nivel interpretado suele ser más cómodo de escribir pero más lento en ejecución que uno compilado de bajo nivel. Analiza este compromiso y decide qué tipo de lenguaje elegirías para: (a) el control de un airbag, (b) un prototipo de aplicación para probar una idea, (c) un videojuego con gráficos exigentes. Justifica cada decisión.
Por ejemplo, sumar el número 5 con el texto "hola" es una operación incompatible. Con tipado estático el error se avisa antes de correr el programa; con tipado dinámico aparece solo si se ejecuta esa línea. Detectar errores cuanto antes es mejor: cuesta menos corregirlos y no llegan a manos de quien usa el programa.
Marcado frente a programación
HTML organiza el contenido de una página (títulos, párrafos, imágenes), pero no se considera un lenguaje de programación completo: es un lenguaje de marcado, que describe cómo se estructura la información. No puede expresar decisiones («si pasa esto, haz aquello») ni repeticiones. Por eso suele acompañarse de JavaScript, que aporta la lógica.
Practica★★☆Sin empezar
HTML organiza el contenido de las páginas web, pero no se considera un lenguaje de programación completo. Explica qué diferencia hay entre un lenguaje de marcado y uno…
HTML organiza el contenido de las páginas web, pero no se considera un lenguaje de programación completo. Explica qué diferencia hay entre un lenguaje de marcado y uno de programación (¿se pueden expresar decisiones y repeticiones?) y qué lenguaje suele acompañar a HTML para aportar la lógica.
«No reinventar la rueda» es buena práctica: una biblioteca de gráficas o de conexión a bases de datos ya fue probada por muchas personas, ahorra tiempo y reduce errores.
Código abierto y software libre
El código abierto es aquel cuyo código fuente es público: se puede estudiar, modificar y compartir. Se relaciona con el software libre (sus cuatro libertades y licencias como la GPL, o permisivas como MIT). Aunque se parecen, «libre» pone el acento en las libertades de las personas usuarias y open source en las ventajas técnicas del desarrollo abierto. Python, JavaScript y MySQL son ejemplos con herramientas abiertas. Es la idea del software libre que usamos en la escuela, como Nova, LibreOffice o Scratch: aprender leyendo y adaptando código.
Una plataforma propietaria puede subir de precio, cambiar condiciones o desaparecer, y quien la usa queda atado a un solo fabricante. Con herramientas abiertas siempre queda la opción de seguir usándolas, adaptarlas o migrar con ayuda de la comunidad.
Practica★☆☆Sin empezar
¿Qué es un entorno de desarrollo (IDE)? Nombra dos ayudas que ofrece a quien programa (coloreado de sintaxis, detección de errores al escribir, ejecución integrada) y…
¿Qué es un entorno de desarrollo (IDE)? Nombra dos ayudas que ofrece a quien programa (coloreado de sintaxis, detección de errores al escribir, ejecución integrada) y explica cada una en una frase.
Scratch y otros lenguajes de bloques son ideales para empezar: no hay errores de sintaxis porque los bloques solo encajan si es válido. Pero los proyectos grandes se escriben en texto: es más rápido, permite versionar y compartir código, y admite bibliotecas y herramientas profesionales.
Un ejemplo de lenguajes y ámbitos (Scratch, que ya conoces, es de bloques y sirve para aprender): Python (análisis de datos, automatización), JavaScript (web), C y C++ (sistemas, videojuegos, microcontroladores), Java (apps y sistemas empresariales), PHP (servidores web), SQL/MySQL (bases de datos).
Una nota sobre rendimiento: el mismo algoritmo (por ejemplo, búsqueda binaria) hace las mismas comparaciones lógicas en Python y en C. Lo que cambia es el costo de ejecutar cada paso (interpretación frente a código máquina directo), no la lógica. Por eso un tiempo menor no significa un algoritmo distinto.
Practica★☆☆Sin empezar
Compara programar con bloques (como Scratch) y programar con texto: da una ventaja de cada enfoque para aprender y un motivo por el que los proyectos grandes se acaban…
Compara programar con bloques (como Scratch) y programar con texto: da una ventaja de cada enfoque para aprender y un motivo por el que los proyectos grandes se acaban escribiendo en texto.
Explica qué es el código fuente de un programa, quién lo escribe y qué tiene que ocurrir con él antes de que la computadora pueda ejecutarlo (traducirlo a lenguaje…
Explica qué es el código fuente de un programa, quién lo escribe y qué tiene que ocurrir con él antes de que la computadora pueda ejecutarlo (traducirlo a lenguaje máquina).
Nombra tres lenguajes de programación diferentes y una aplicación o ámbito típico de cada uno (páginas web, análisis de datos, videojuegos, sistemas, aplicaciones...).
Nombra tres lenguajes de programación diferentes y una aplicación o ámbito típico de cada uno (páginas web, análisis de datos, videojuegos, sistemas, aplicaciones...).
Tu clase debe elegir un lenguaje para desarrollar una pequeña aplicación de gestión del club de lectura. Nombra y explica tres características del lenguaje que…
Tu clase debe elegir un lenguaje para desarrollar una pequeña aplicación de gestión del club de lectura. Nombra y explica tres características del lenguaje que valorarías antes de decidir (facilidad de aprendizaje, bibliotecas disponibles, comunidad, rendimiento, plataforma de destino...) y justifica cuál priorizarías en este caso concreto.
Elige y justifica un lenguaje para cada proyecto: (a) analizar las notas de todo el preuniversitario y generar gráficos, (b) un videojuego 3D con grandes exigencias de…
Elige y justifica un lenguaje para cada proyecto: (a) analizar las notas de todo el preuniversitario y generar gráficos, (b) un videojuego 3D con grandes exigencias de rendimiento y (c) una página web interactiva que se ejecuta en el navegador. Indica qué criterio ha pesado más en cada elección.
Vuelve al principio: para la app de horarios del bus escolar lo que pesa es que corra en el celular de cualquiera, incluso con pocos datos del paquete de ETECSA, así que una web con JavaScript es lo más razonable. Un lenguaje traduce tus instrucciones a lo que ejecuta el procesador, y existen cientos porque ninguno ofrece a la vez máxima velocidad, facilidad para aprender y compatibilidad con todo.
Resumen
¡A practicar! 8 ejercicios de nivel fácil en este apartado