1.2 Tipos de lenguajes de programación - Curso Introducción a la programación - OpenBootcamp
Introducción a los lenguajes de programación
Resumen de la sección: En esta sección, se introduce el concepto de lenguajes de programación y se mencionan los diferentes tipos que existen.
Tipos de lenguajes de programación
- Los lenguajes de programación se dividen en dos tipos principales: compilados e interpretados.
- Los lenguajes compilados generan un programa ejecutable directamente a partir del código fuente, que puede ser ejecutado por el procesador a través del sistema operativo.
- Los lenguajes interpretados no generan un programa ejecutable directamente, sino que requieren un intérprete que lee y ejecuta el código paso a paso.
Lenguajes compilados
- Los lenguajes compilados generan programas ejecutables en forma de secuencia de ceros y unos.
- Estos programas pueden ser ejecutados directamente por el procesador sin necesidad de ayuda intermedia.
- Ejemplos de lenguajes compilados son C y Go.
Lenguajes interpretados
- Los lenguajes interpretados no generan programas ejecutables directamente, sino que utilizan un intérprete para ejecutar el código.
- El intérprete lee y ejecuta el código paso a paso sobre sí mismo, lo cual hace que sean más lentos en comparación con los compilados.
- Ejemplos comunes de lenguajes interpretados son Java, Python y PHP.
Ventajas y desventajas
Compilado
- Ventajas:
- Mayor velocidad de ejecución.
- Específico para una arquitectura particular del procesador.
Interpretado
- Ventajas:
- Mayor portabilidad, ya que un intérprete puede ejecutar el código en diferentes procesadores.
- Mayor facilidad de desarrollo, al escribir el código una vez y utilizar un intérprete compatible.
Lenguajes compilados y lenguajes interpretados
Resumen de la sección: En esta sección se profundiza en los conceptos de lenguajes compilados y lenguajes interpretados, mencionando ejemplos específicos.
Lenguajes compilados
- Ejemplos de lenguajes compilados son C y Go.
- Estos lenguajes generan programas ejecutables directamente a partir del código fuente.
Lenguajes interpretados
- Java es un ejemplo de lenguaje interpretado. Se ejecuta en una máquina virtual llamada JVM (Java Virtual Machine).
- Otros ejemplos comunes de lenguajes interpretados son Python y PHP.
- Los lenguajes interpretados requieren un intérprete para ejecutar el código paso a paso.
Ventajas y desventajas
Compilado
- Ventajas:
- Mayor velocidad de ejecución.
- Específico para una arquitectura particular del procesador.
Interpretado
- Ventajas:
- Mayor portabilidad, ya que un intérprete puede ejecutar el código en diferentes procesadores.
- Mayor facilidad de desarrollo, al escribir el código una vez y utilizar un intérprete compatible.
Compilador Just in Time (JIT)
Resumen de la sección: En esta sección se habla sobre el compilador Just in Time (JIT), que combina las ventajas del intérprete y del compilador. El JIT interpreta el código en cualquier plataforma y es capaz de compilarlo para un procesador específico. Esto permite que, si una parte del código se ejecuta repetidamente, el intérprete lo compile para mejorar su rendimiento.
Características del compilador JIT
- El compilador JIT tiene las ventajas tanto del intérprete como del compilador.
- Interpreta el código en cualquier plataforma.
- Es capaz de compilar el código para un procesador específico.
- Mejora el rendimiento al compilar partes del código que se ejecutan repetidamente.
Lenguajes tipados y no tipados
Resumen de la sección: En esta sección se explica la diferencia entre los lenguajes tipados y no tipados. Los lenguajes tipados requieren especificar el tipo de dato al almacenar información, como números o cadenas de texto. Por otro lado, los lenguajes no tipados permiten al compilador o intérprete deducir automáticamente el tipo de dato. Ambos tipos tienen sus ventajas e inconvenientes.
Lenguajes tipados y no tipados
- Los lenguajes tipados requieren especificar el tipo de dato al almacenar información.
- Los lenguajes no tipados permiten al compilador o intérprete deducir automáticamente el tipo de dato.
- Ambos tipos tienen sus ventajas e inconvenientes.
Elección del tipo de lenguaje
Resumen de la sección: En esta sección se menciona que la elección entre un lenguaje tipado o no tipado depende del desarrollador del compilador. Por ejemplo, PHP es un lenguaje no tipado, pero también es posible hacerlo tipado en versiones más recientes. No se pueden mezclar ambos tipos en un mismo lenguaje, aunque existen algunas excepciones.
Elección del tipo de lenguaje
- La elección entre un lenguaje tipado o no tipado depende del desarrollador del compilador.
- Ejemplos de lenguajes no tipados son PHP y C.
- Ejemplos de lenguajes tipados son Go y Java.
- No se pueden mezclar ambos tipos en un mismo lenguaje, aunque hay excepciones.
Tipos de aplicaciones
Resumen de la sección: En esta sección se habla sobre los diferentes tipos de aplicaciones que pueden ser desarrolladas utilizando los distintos lenguajes de programación. Se mencionan las aplicaciones web, las aplicaciones de escritorio y las aplicaciones móviles como ejemplos comunes. Estas aplicaciones requieren ser programadas en algún lenguaje y han evolucionado a lo largo del tiempo.
Tipos de aplicaciones
- Los tres tipos principales de aplicaciones son:
- Aplicaciones web
- Aplicaciones de escritorio
- Aplicaciones móviles
- Estas aplicaciones requieren ser programadas en algún lenguaje.
- Han evolucionado a lo largo del tiempo desde las primeras aplicaciones gráficas en los años 80.
Arquitectura de las aplicaciones web
Resumen de la sección: En esta sección se explica la arquitectura de las aplicaciones web, centrándose en la capa de "chapa y pintura" o frontend. Esta capa incluye el código HTML, CSS y JavaScript que define la estructura, apariencia y funcionalidad de una aplicación web. Estos tres elementos trabajan juntos para crear una experiencia interactiva para el usuario.
Arquitectura de las aplicaciones web
- Las aplicaciones web tienen una arquitectura dividida en capas.
- La capa de "chapa y pintura" o frontend es lo que el usuario ve.
- Incluye código HTML, CSS y JavaScript.
- El HTML define la estructura, el CSS proporciona estilos y el JavaScript permite la interacción dinámica con la aplicación.
Interacción en las aplicaciones web
Resumen de la sección: En esta sección se explica cómo funciona la interacción en las aplicaciones web. Se menciona que HTML define la estructura, CSS proporciona los estilos visuales y JavaScript permite interactuar dinámicamente con los elementos de la página. Se destaca que al interactuar con una aplicación web, ocurren peticiones al servidor o backend.
Interacción en las aplicaciones web
- HTML define la estructura de una página.
- CSS proporciona los estilos visuales.
- JavaScript permite interactuar dinámicamente con los elementos de la página.
- Al interactuar con una aplicación web, ocurren peticiones al servidor o backend.
Arquitectura de una aplicación web
Resumen de la sección: En esta sección se explica la arquitectura de una aplicación web, que consta de dos partes principales: el frontend y el backend. El frontend es lo que vemos en la interfaz de usuario y está compuesto por HTML, CSS y JavaScript. El backend es el sistema que contiene la información remota y puede estar escrito en varios lenguajes de programación como Java, Go o Python.
Frontend y Backend
- El frontend es lo que vemos en una aplicación web y está compuesto por HTML, CSS y JavaScript.
- El backend es el sistema que contiene la información remota que luego vemos en el frontend.
- El frontend puede estar programado en cualquier lenguaje de programación a nivel visual.
- En un bootcamp se pueden aprender varios lenguajes para desarrollar un backend completo, como PHP, Java o Python.
Tipos de aplicaciones: escritorio, web y móviles
Resumen de la sección: Se explican los diferentes tipos de aplicaciones: aplicaciones de escritorio, aplicaciones web y aplicaciones móviles. Aunque tienen diferencias visuales, todas siguen una arquitectura similar con un frontend (lo que vemos) y un backend (lo que no vemos).
Aplicaciones de escritorio
- Las aplicaciones de escritorio tienen una interfaz con menús y ventanas donde se muestra mucha información.
- Están desarrolladas en diferentes lenguajes según el sistema operativo utilizado (Swift para macOS, .NET o C++ para Windows).
- La cantidad de información mostrada depende del tamaño del dispositivo.
Aplicaciones web
- Las aplicaciones web también tienen menús y ventanas, pero se centran en mostrar solo la información necesaria en cada vista.
- Siguen la misma arquitectura con frontend (HTML, CSS y JavaScript) y backend (escrito en diferentes lenguajes).
- Pueden trabajar con una gran cantidad de información, similar a las aplicaciones de escritorio.
Aplicaciones móviles
- Las aplicaciones móviles se centran en vistas específicas donde se realizan acciones.
- Al interactuar con una acción, se muestra otra vista con nuevas acciones.
- También siguen la arquitectura de frontend y backend, al igual que las aplicaciones web.
Ejemplos de aplicaciones móviles
Resumen de la sección: Se muestran ejemplos de aplicaciones móviles para ilustrar cómo funcionan. En este caso, se muestra la aplicación del Burger King como ejemplo.
Aplicación del Burger King
- La aplicación tiene una interfaz donde el usuario puede interactuar.
- Al realizar acciones como hacer clic en un elemento, se muestra otra pantalla con nuevas opciones.
- Aunque visualmente es diferente a las aplicaciones de escritorio o web, sigue la misma arquitectura con frontend y backend.
Diferencias entre tipos de aplicaciones
Resumen de la sección: Se explican las diferencias entre los tipos de aplicaciones mencionados anteriormente.
Aplicación de escritorio vs. Aplicación web vs. Aplicación móvil
- Las aplicaciones de escritorio muestran mucha información debido al tamaño del dispositivo utilizado.
- Las aplicaciones web y móviles se centran en mostrar solo la información necesaria en cada vista.
- Aunque visualmente son diferentes, todas siguen la misma arquitectura con frontend y backend.
Aplicaciones móviles
- Las aplicaciones móviles trabajan con vistas específicas donde se realizan acciones.
- Al interactuar con una acción, se muestra otra vista con nuevas acciones.
- Siguen la misma arquitectura de frontend y backend que las aplicaciones web y de escritorio.