[SONIDO] Para entender mejor las aplicaciones web, me gustarÃa hablarles acerca de lo que es la programación y también acerca de las tendencias actuales en programación. Para empezar, ¿qué es la programación? Pues es simplemente la escritura de una serie de comandos en un lenguaje determinado de programación, que sirven para que el ordenador haga algo que nos interesa, que nos resulta útil. También me gustarÃa hablarles de mi filosofÃa acerca de la programación. Podemos pensar en la programación como en el proceso o el arte, si se quiere, de la asignación de un problema de un dominio de problemas, dado a una solución en un dominio de la máquina del ordenador. Asà que aquà tenemos un problema real que estamos tratando de resolver y tenemos las herramientas asociadas con el lenguaje de programación dado, a nuestra disposición, con el fin de resolver este problema. Podemos decir que la mayorÃa de los avances que ha habido con respecto a los lenguajes de programación en los últimos años son simplemente esfuerzos que se han llevado a cabo con el fin de cerrar esta brecha entre estos 2 dominios. Con el fin de concretar más esto vamos a echar un vistazo a la computadora de ENIAC. Esta es la primera computadora digital electrónica de la que hablé en la lección anterior. Aquà hay una foto de alguien programando el ordenador ENIAC. Lo hacÃan accionando interruptores y enchufando cables, como se puede ver aquÃ. En esencia se operaba sobre el hardware de la máquina para ejecutar programas y se tardaba semanas de esfuerzo para que todo saliera bien. Incluso para lo que considerarÃamos, un ejemplo, un programa muy simple. Por lo que podemos pensar en esto como la codificación de la máquina directamente, los programadores estaban cambiando bits. En este punto la brecha entre el código de la máquina y las fórmulas matemáticas que estaban tratando de poner en práctica era bastante grande, más grande que la brecha entre programas de Fortran o algún otro lenguaje de programación de alto nivel que utilizamos hoy en dÃa y la misma fórmula matemática que estaban tratando de resolver. La brecha entre un programa orientado a objetos y por ejemplo una simulación de objetos discretos es aún menor que esto. En este caso los objetos en el programa tienden a ser objetos del mundo real, de modo que la conclusión que podemos sacar es esta. Es mucho más fácil de resolver un problema cuando el lenguaje de programación se adapta mejor al dominio de este problema. Y esto es lo que ha pasado en el tiempo, con los avances en los lenguajes de programación. Vamos a hablar un poco más sobre la evolución de la programación y, más importante aún, donde encajan aquà los marcos de trabajo de software. Hemos visto que las instrucciones de nivel de máquina implican ajustar bits, un proceso muy tedioso y propenso a errores. La siguiente evolución en programación fue el lenguaje de ensamblador. La programación en lenguaje de ensambladores es uno de los primeros avances que tuvimos y consistÃa en construir una serie de instrucciones de nivel máquina juntos, bajo un mnemónico. Por ejemplo, el mnemónico mov podrÃa representar el movimiento de datos y podÃa ser utilizado para mover el contenido de una ubicación de memoria a alguna otra ubicación. Esta instrucción de lenguaje de ensamblador podÃa implicar un puñado de instructores de nivel máquina, los programadores se volvieron más productivos cuando se empezaron a utilizar los programas en lenguaje de ensamblador. Usted podÃa ser capaz de escribir un programa mucho más eficiente mediante el uso de código máquina, es decir, la programación en bits va más rápido, utiliza menos memoria, pero le llevará más tiempo, por lo que la programación en lenguaje de ensamblador hizo a los programadores más productivos. Lo mismo sucedió con el advenimiento de los lenguajes de programación de alto nivel, o LAN, como muestro aquÃ. Me refiero a cosas como Fortran, COBOL, Basic o C. En este caso unas son instrucciones. Un lenguaje de programación de alto nivel corresponde generalmente a muchas instrucciones en lenguaje de ensamblador, y una vez más se gana en productividad del programador en detrimento de la eficacia del programa en sÃ. Lo mismo se puede decir de la llegada de los lenguajes de programación orientados como C ++ o Java. Recuerda que cuando estos lenguajes orientados a objetos se introdujeron por primera vez, muchos argumentaron en contra de su uso, you que opinaban que eran ineficientes, pero una vez más, como las máquinas se vuelven más potentes cada vez, la productividad del programador normalmente prevalece sobre la eficiencia del programa. you que estamos en este tema, permÃtanme decir que no hay un lenguaje de programación mejor que el resto. En general ciertos lenguajes de programación son más adecuados para resolver ciertos tipos de problemas que otros tipos de lenguajes de programación. Además, estos están en constante cambio de evolución y mejora. Asà que acostúmbrense a ello. El mundo del software y de los lenguajes de programación están en constante evolución y como ingeniero de software, si desea mantenerse relevante debe estar al dÃa. Y una cosa más, discutir sobre el mejor lenguaje de programación de su marco de aplicación web es como discutir sobre religión o arte, no hay una respuesta correcta. Es comúnmente una cuestión del programa que debe ser resuelto y de sus preferencias individuales. No podemos tener discusiones acerca de las fortalezas y debilidades relativas a varios lenguajes de programación y los marcos cuando se utilizan en contextos diferentes. Me encantarÃa hacerlo, pero al final, simplemente no se puede decir que un lenguaje de programación es mejor que todos los demás lenguajes de programación. Finalmente, vamos a hablar de los marcos de software. Un marco de software proporciona un entorno integrado que está dirigido a un mnemónico especÃfico, por ejemplo, la mayorÃa de los sistemas operativos tienen un marco de software para aplicaciones de desarrollo que se ejecutan en su entorno. Microsoft tiene Windows Presentation Foundation, que es un marco para aplicaciones basadas en Windows; Apple tiene Cocoa para lo mismo, y Linux tiene Gnome o QDA, que permite construir sus ventanas. Asà que los marcos de software son solo una evolución natural en la trayectoria de la eficiencia en la productividad del programador. Seguidamente hablaremos más sobre marcos de aplicación. [AUDIO_EN_BLANCO] [AUDIO_EN_BLANCO]