[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:01.27,0:00:04.57,Default,,0000,0000,0000,,Ya has visto pequeños trosos de código javascript Dialogue: 0,0:00:04.57,0:00:08.12,Default,,0000,0000,0000,,En esta sección, quiero hablar sobre lo que conecta ese mundo Dialogue: 0,0:00:08.12,0:00:11.43,Default,,0000,0000,0000,,con el código de máquina en el CPU Dialogue: 0,0:00:11.43,0:00:13.60,Default,,0000,0000,0000,,Así que esto será generalmente sobre el tema de los lenguajes informáticos. Dialogue: 0,0:00:13.60,0:00:18.68,Default,,0000,0000,0000,,Por lo tanto un programador trabaja en algunos lenguajes de programación. Dialogue: 0,0:00:18.68,0:00:23.08,Default,,0000,0000,0000,,Y se dice que los lenguajes de programación tienen funciones de alto nivel. Dialogue: 0,0:00:23.08,0:00:27.02,Default,,0000,0000,0000,,Y eso quiere decir, cosas como, bucles (loops), y si las sentencias "if" Dialogue: 0,0:00:27.02,0:00:30.03,Default,,0000,0000,0000,,y cadenas (strings) y aquellas facilidades que son más complicadas Dialogue: 0,0:00:30.03,0:00:32.51,Default,,0000,0000,0000,,y que están en un simple código de máquina en el CPU. Dialogue: 0,0:00:32.51,0:00:36.30,Default,,0000,0000,0000,,Por lo que el programador escribe lo que se denomina código fuente Dialogue: 0,0:00:36.30,0:00:39.52,Default,,0000,0000,0000,,en cualquier lenguaje de programación, que estén escribiendo Dialogue: 0,0:00:39.78,0:00:42.50,Default,,0000,0000,0000,,Aquí hay un ejemplo de algún código fuente de C++. Dialogue: 0,0:00:42.50,0:00:45.77,Default,,0000,0000,0000,,Esto asigna una cadena (string), a una variable y a continuación pone un Dialogue: 0,0:00:45.77,0:00:48.76,Default,,0000,0000,0000,,signo de exclamación (!) al final de la cadena. Dialogue: 0,0:00:48.76,0:00:50.22,Default,,0000,0000,0000,,Esto es un poco similar al código javascript que hemos visto. Dialogue: 0,0:00:50.22,0:00:52.46,Default,,0000,0000,0000,,Todos estos lenguajes a nivel de sintaxis Dialogue: 0,0:00:52.46,0:00:54.17,Default,,0000,0000,0000,,son un poco similares. Dialogue: 0,0:00:54.17,0:01:02.80,Default,,0000,0000,0000,,Así, um, ¿cómo se consigue que el código fuente de C++, digamos, se ejecute en la CPU? Dialogue: 0,0:01:02.80,0:01:06.74,Default,,0000,0000,0000,,una estrategia utiliza lo que se llama un compilador. Dialogue: 0,0:01:06.74,0:01:09.97,Default,,0000,0000,0000,,el compilador es un programa separado y lo que el Dialogue: 0,0:01:09.97,0:01:13.60,Default,,0000,0000,0000,,compilador hace es que mirar todo el código fuente Dialogue: 0,0:01:13.60,0:01:18.58,Default,,0000,0000,0000,,y hace una traducción mayor para crear un gran cuerpo de código máquina. Dialogue: 0,0:01:18.58,0:01:23.16,Default,,0000,0000,0000,,Así, por ejemplo, puede ser que haya una parte del código fuente, Dialogue: 0,0:01:23.16,0:01:26.97,Default,,0000,0000,0000,,donde hay una instrucción "if" y no hay una Dialogue: 0,0:01:26.97,0:01:28.92,Default,,0000,0000,0000,,instrucción específica de código máquina para una instruccion "if" Dialogue: 0,0:01:28.92,0:01:31.00,Default,,0000,0000,0000,,pero puede haber una secuencia de 5 instrucciones de código máquina Dialogue: 0,0:01:31.00,0:01:33.73,Default,,0000,0000,0000,,que de hecho constituyen una sentencia "if" Dialogue: 0,0:01:33.73,0:01:36.52,Default,,0000,0000,0000,,Por lo que el compilador hace ese tipo de expansión. Dialogue: 0,0:01:36.52,0:01:40.92,Default,,0000,0000,0000,,Así que, sólo como ejemplo, Firefox está escrito en C++. Dialogue: 0,0:01:40.92,0:01:47.10,Default,,0000,0000,0000,,Por lo tanto, para hacer una nueva versión de Firefox, alguien corre Dialogue: 0,0:01:47.10,0:01:51.91,Default,,0000,0000,0000,,el compilador de C++ y este lee en los muchos archivos fuentes, Dialogue: 0,0:01:51.91,0:01:54.59,Default,,0000,0000,0000,,el "gran cuerpo" de código fuente que conforma a firefox, Dialogue: 0,0:01:54.59,0:01:57.16,Default,,0000,0000,0000,,y básicamente produce firefox.exe Dialogue: 0,0:01:57.16,0:02:00.16,Default,,0000,0000,0000,,Firefox.exe es la salida del compilador al Dialogue: 0,0:02:00.16,0:02:03.62,Default,,0000,0000,0000,,traducir todo ese código fuente. Dialogue: 0,0:02:03.62,0:02:06.86,Default,,0000,0000,0000,,Un par de cosas a señalar es que, Dialogue: 0,0:02:06.86,0:02:09.88,Default,,0000,0000,0000,,la compilación sólo tiene que pasar una vez. Dialogue: 0,0:02:09.88,0:02:12.18,Default,,0000,0000,0000,,Así, algunos cuerpo de código fuente, alguien hace firefox.exe Dialogue: 0,0:02:12.18,0:02:15.89,Default,,0000,0000,0000,,y, a continuación, sólo puede enviarse firefox.exe Dialogue: 0,0:02:15.89,0:02:18.45,Default,,0000,0000,0000,,Los usuarios finales no necesita el código fuente y Dialogue: 0,0:02:18.45,0:02:20.61,Default,,0000,0000,0000,,no necesitan el compilador. Por lo que realmente se realiza la compilación Dialogue: 0,0:02:20.61,0:02:26.12,Default,,0000,0000,0000,,en la fábrica, de hecho. Otra característica es Dialogue: 0,0:02:26.12,0:02:30.38,Default,,0000,0000,0000,,no funciona al revés. Por lo que yo puedo distribuir firefox.exe Dialogue: 0,0:02:30.38,0:02:34.30,Default,,0000,0000,0000,,todas esta máquina código, pero no algo que Dialogue: 0,0:02:34.30,0:02:36.90,Default,,0000,0000,0000,,puede leer en e ir hacia atrás para darme un gran cuerpo de código fuente. Dialogue: 0,0:02:36.90,0:02:38.88,Default,,0000,0000,0000,,Al menos no perfectamente, puede hacerlo de modo imperfecto. Dialogue: 0,0:02:38.88,0:02:41.98,Default,,0000,0000,0000,,Lo ideal, para producir una inversión realmente desea Dialogue: 0,0:02:41.98,0:02:44.76,Default,,0000,0000,0000,,el código fuente. Por lo tanto, hablemos sobre el código fuente. Dialogue: 0,0:02:44.76,0:02:51.95,Default,,0000,0000,0000,,Por lo tanto, si desea agregar una funcionalidad o corregir un error en firefox, realmente Dialogue: 0,0:02:51.95,0:02:53.96,Default,,0000,0000,0000,,la forma de hacerlo es volver al código fuente, Dialogue: 0,0:02:53.96,0:02:56.59,Default,,0000,0000,0000,,y repasarlo, sólo una que he hecho en java script. Dialogue: 0,0:02:56.59,0:02:58.27,Default,,0000,0000,0000,,Así que añadir unas líneas o un si instrucción para cambiar algunos Dialogue: 0,0:02:58.27,0:03:01.66,Default,,0000,0000,0000,,comportamiento de alguna manera, en el código fuente y, a continuación, ejecutar Dialogue: 0,0:03:01.66,0:03:03.65,Default,,0000,0000,0000,,el compilador una vez más, de hecho para hacer una nueva versión de Dialogue: 0,0:03:03.65,0:03:07.14,Default,,0000,0000,0000,,Firefox que tiene este pequeño cambio que ha puesto Dialogue: 0,0:03:07.14,0:03:10.97,Default,,0000,0000,0000,,en el código fuente. Como estamos tomando sobre código fuente, Dialogue: 0,0:03:10.97,0:03:14.42,Default,,0000,0000,0000,,Esto también le da un buen sentido de qué abierto Dialogue: 0,0:03:14.42,0:03:18.87,Default,,0000,0000,0000,,software de origen significa. Un software de código abierto es una Dialogue: 0,0:03:18.87,0:03:21.86,Default,,0000,0000,0000,,formato donde se distribuye el programa, sino también Dialogue: 0,0:03:21.86,0:03:25.74,Default,,0000,0000,0000,,no hay acceso al código fuente original, a la Dialogue: 0,0:03:25.74,0:03:27.74,Default,,0000,0000,0000,,programa. Y esto viene normalmente con una licencia, Dialogue: 0,0:03:27.74,0:03:29.71,Default,,0000,0000,0000,,diciendo: ' Hey, aquí está el código fuente. Si desea Dialogue: 0,0:03:29.71,0:03:32.88,Default,,0000,0000,0000,,hacer su propia versión o corregir un error o lo que sea, este programa, Dialogue: 0,0:03:32.88,0:03:36.76,Default,,0000,0000,0000,,Siéntase libre. " Eso de las 2 principales características del software de código abierto Dialogue: 0,0:03:36.76,0:03:42.56,Default,,0000,0000,0000,,uno, normalmente se distribuye gratuitamente, por lo que saben, su barata. Pero el Dialogue: 0,0:03:42.56,0:03:45.98,Default,,0000,0000,0000,,otra característica es que viene con una especie de libertad. Dialogue: 0,0:03:45.98,0:03:50.94,Default,,0000,0000,0000,,Porque si el software es un código cerrado y Dialogue: 0,0:03:50.94,0:03:52.94,Default,,0000,0000,0000,,desea alguna característica diferente, hay que algunos fallos Dialogue: 0,0:03:52.94,0:03:55.67,Default,,0000,0000,0000,,necesario se aplique, usted realmente depende del proveedor, quien tiene la Dialogue: 0,0:03:55.67,0:03:58.31,Default,,0000,0000,0000,,código fuente, como bien-do se sienten como aplicación Dialogue: 0,0:03:58.31,0:04:01.10,Default,,0000,0000,0000,,¿esa característica? En contraste con el software de código abierto, Dialogue: 0,0:04:01.10,0:04:04.18,Default,,0000,0000,0000,,es como que no hay esposas. El código fuente está disponible, Dialogue: 0,0:04:04.18,0:04:06.86,Default,,0000,0000,0000,,y si hay algo que realmente quieres hacer, Dialogue: 0,0:04:06.86,0:04:10.06,Default,,0000,0000,0000,,o decir que el proveedor original va fuera del negocio, entonces Dialogue: 0,0:04:10.06,0:04:15.03,Default,,0000,0000,0000,,porque tienes el código fuente, usted sabe, usted puede puede ser Dialogue: 0,0:04:15.03,0:04:17.32,Default,,0000,0000,0000,,pagar a alguien para hacer un cambio y producir sus propios Dialogue: 0,0:04:17.32,0:04:19.58,Default,,0000,0000,0000,,versión personalizada. Por lo que viene con este tipo de profundidad, uh- Dialogue: 0,0:04:19.58,0:04:21.65,Default,,0000,0000,0000,,puede considerar como una póliza de seguro. Dialogue: 0,0:04:21.65,0:04:26.14,Default,,0000,0000,0000,,A menudo hay muchos tipos diferentes de los términos de licencia Dialogue: 0,0:04:26.14,0:04:28.80,Default,,0000,0000,0000,,para un software de código abierto, pero, más a menudo Dialogue: 0,0:04:28.80,0:04:31.02,Default,,0000,0000,0000,,requieren en algunos casos, que si usted tomar sus Dialogue: 0,0:04:31.02,0:04:34.94,Default,,0000,0000,0000,,código fuente y agregar alguna característica, entonces debe ofrecer Dialogue: 0,0:04:34.94,0:04:37.56,Default,,0000,0000,0000,,esos cambios a la comunidad. Así, en el mismo Dialogue: 0,0:04:37.56,0:04:39.77,Default,,0000,0000,0000,,manera han beneficiado del otro trabajo, puede beneficiarse de su trabajo. Dialogue: 0,0:04:39.77,0:04:43.64,Default,,0000,0000,0000,,Los detalles de cómo se puede hacer es complicado. Dialogue: 0,0:04:43.64,0:04:45.84,Default,,0000,0000,0000,,Hay muchas formas diferentes de la misma. Dialogue: 0,0:04:45.84,0:04:47.53,Default,,0000,0000,0000,,Me vas a hablar del software de código abierto un Dialogue: 0,0:04:47.53,0:04:48.86,Default,,0000,0000,0000,,poco más tarde, sólo menciono esto ahora, Dialogue: 0,0:04:48.86,0:04:51.19,Default,,0000,0000,0000,,porque nos da la idea de lo que es el código fuente Dialogue: 0,0:04:51.19,0:04:54.60,Default,,0000,0000,0000,,del programa vs sólo tener el archivo .exe de algo. Dialogue: 0,0:04:54.60,0:05:01.68,Default,,0000,0000,0000,,Así que hasta el momento hablé acerca de C++, por lo que es esto Dialogue: 0,0:05:01.68,0:05:04.77,Default,,0000,0000,0000,,toda otra gran categoría de lenguas, que Dialogue: 0,0:05:04.77,0:05:07.22,Default,,0000,0000,0000,,Me va a llamar, lenguajes dinámicos o a veces Dialogue: 0,0:05:07.22,0:05:11.39,Default,,0000,0000,0000,,Idiomas de intérprete. Y esto es una especie de una gran prueba Dialogue: 0,0:05:11.39,0:05:12.44,Default,,0000,0000,0000,,estrategia y hay muchos idiomas diferentes con Dialogue: 0,0:05:12.44,0:05:15.23,Default,,0000,0000,0000,,muchas cualidades diferentes y yo apenas estoy va a ordenar de bulto, Dialogue: 0,0:05:15.23,0:05:17.16,Default,,0000,0000,0000,,tumor les en esta gran categoría. Dialogue: 0,0:05:17.16,0:05:19.45,Default,,0000,0000,0000,,Ejemplos de lenguajes dinámicos son actualmente Java, Dialogue: 0,0:05:19.45,0:05:24.39,Default,,0000,0000,0000,,Secuencia de comandos de Java y Python. Por lo tanto, va a una manera de que estos son Dialogue: 0,0:05:24.39,0:05:26.51,Default,,0000,0000,0000,,el trabajo es que se apliquen por lo que se llama Dialogue: 0,0:05:26.51,0:05:30.29,Default,,0000,0000,0000,,un intérprete. Supongo que el caso de compilador estaba tomando antes. Dialogue: 0,0:05:30.29,0:05:36.16,Default,,0000,0000,0000,,Un intérprete es un programa que toma en código escrito en algún lenguaje Dialogue: 0,0:05:36.16,0:05:42.73,Default,,0000,0000,0000,,y tipo de [inaudible] lo ejecuta. El mejor ejemplo es Dialogue: 0,0:05:42.73,0:05:45.70,Default,,0000,0000,0000,,hay este lenguaje informático llamado java script, Dialogue: 0,0:05:45.70,0:05:49.27,Default,,0000,0000,0000,,que realmente han estado utilizando y navegadores que son web Dialogue: 0,0:05:49.27,0:05:52.02,Default,,0000,0000,0000,,incluye programas como una parte de ellos, un java Dialogue: 0,0:05:52.02,0:05:55.15,Default,,0000,0000,0000,,intérprete de comandos. Y cuando viene el navegador web Dialogue: 0,0:05:55.15,0:05:57.47,Default,,0000,0000,0000,,a través de una página con código java script Dialogue: 0,0:05:57.47,0:06:00.60,Default,,0000,0000,0000,,puede utilizar el intérprete para ejecutar ese código para que sea Dialogue: 0,0:06:00.60,0:06:06.02,Default,,0000,0000,0000,,hacer todo lo que se va a hacer. Así que la forma del intérprete Dialogue: 0,0:06:06.02,0:06:10.81,Default,,0000,0000,0000,,obras son que trata con el programa 1 línea a la vez. Dialogue: 0,0:06:10.81,0:06:13.89,Default,,0000,0000,0000,,Así que aquí es un poco de código de secuencia de comandos de java, Dialogue: 0,0:06:13.89,0:06:16.14,Default,,0000,0000,0000,,Si el intérprete quería ejecutar este, bien Dialogue: 0,0:06:16.14,0:06:17.73,Default,,0000,0000,0000,,se verá en la primera línea y a mirar Dialogue: 0,0:06:17.73,0:06:19.67,Default,,0000,0000,0000,,lo que dice esa línea y, a continuación, el intérprete Dialogue: 0,0:06:19.67,0:06:22.26,Default,,0000,0000,0000,,lo haría. Así que en este caso, el intérprete dirá, Dialogue: 0,0:06:22.26,0:06:24.18,Default,,0000,0000,0000,,UH-así que supongo que necesito una variable denominada A, y Dialogue: 0,0:06:24.18,0:06:25.99,Default,,0000,0000,0000,,Necesito poner un 1 en ella. Así que una vez se realiza con esa línea Dialogue: 0,0:06:25.99,0:06:28.53,Default,,0000,0000,0000,,luego va hacia adelante, y lo hace la siguiente línea. Dialogue: 0,0:06:28.53,0:06:32.65,Default,,0000,0000,0000,,Y así sucesivamente. Lo mismo ocurre con el compilador de este gran grueso Dialogue: 0,0:06:32.65,0:06:36.72,Default,,0000,0000,0000,,traducción del código fuente en el código de máquina Dialogue: 0,0:06:36.72,0:06:38.08,Default,,0000,0000,0000,,Pero no realmente está ejecutando el código, su justo Dialogue: 0,0:06:38.08,0:06:39.66,Default,,0000,0000,0000,,haciendo la traducción para ejecutarse en el futuro. Dialogue: 0,0:06:39.66,0:06:42.85,Default,,0000,0000,0000,,Por el contrario intérprete vive realmente en el momento. Dialogue: 0,0:06:42.85,0:06:45.14,Default,,0000,0000,0000,,Sólo pasando por el código línea por línea y sólo Dialogue: 0,0:06:45.14,0:06:49.39,Default,,0000,0000,0000,,hacerlo. Así que permítanme hablar un poco sobre las diferencias Dialogue: 0,0:06:49.39,0:06:53.28,Default,,0000,0000,0000,,entre estos dos. Debo decir como una renuncia, Dialogue: 0,0:06:53.28,0:06:55.77,Default,,0000,0000,0000,,Hay muchos lenguajes de programación, no hay ninguna mejor Dialogue: 0,0:06:55.77,0:06:59.42,Default,,0000,0000,0000,,el viejo chiste de lenguaje, es que realmente saben, Dialogue: 0,0:06:59.42,0:07:00.77,Default,,0000,0000,0000,,cuando estás en el seminario y cuando estás Dialogue: 0,0:07:00.77,0:07:01.92,Default,,0000,0000,0000,,argumentando sobre los pros y los contras de algo, Dialogue: 0,0:07:01.92,0:07:04.87,Default,,0000,0000,0000,,en última instancia, la respuesta es simplemente, depende. Dialogue: 0,0:07:04.87,0:07:08.11,Default,,0000,0000,0000,,Como no hay ninguna mejores idiomas, pero bien lo que es Dialogue: 0,0:07:08.11,0:07:09.48,Default,,0000,0000,0000,,los idiomas mejores esta situación, con todos los Dialogue: 0,0:07:09.48,0:07:13.34,Default,,0000,0000,0000,,características. Tan ampliamente hablando, código de compilador justo Dialogue: 0,0:07:13.34,0:07:16.72,Default,,0000,0000,0000,,tiende a correr más rápido. Cuando se compila un código de C++ Dialogue: 0,0:07:16.72,0:07:19.43,Default,,0000,0000,0000,,y producir ese .exe, es una especie de en un sentido magro, Dialogue: 0,0:07:19.43,0:07:23.75,Default,,0000,0000,0000,,gran cantidad de detalles y decisiones ha sido despojado Dialogue: 0,0:07:23.75,0:07:26.89,Default,,0000,0000,0000,,tanto como sea posible. Por otro lado dinámico o Dialogue: 0,0:07:26.89,0:07:30.72,Default,,0000,0000,0000,,idiomas de intérprete, tienden a tener más funciones. Dialogue: 0,0:07:30.72,0:07:32.96,Default,,0000,0000,0000,,Más funciones que hace el trabajo del programador un Dialogue: 0,0:07:32.96,0:07:35.84,Default,,0000,0000,0000,,poco más fácil. O puesto de otra manera, ampliamente Dialogue: 0,0:07:35.84,0:07:39.20,Default,,0000,0000,0000,,hablando, el programador puede tienden a hacer más trabajo Dialogue: 0,0:07:39.20,0:07:41.91,Default,,0000,0000,0000,,por hora, en lenguajes dinámicos, que lo hacen en la compilación Dialogue: 0,0:07:41.91,0:07:46.81,Default,,0000,0000,0000,,Idiomas. Sin embargo hay no hay almuerzo gratis, es Dialogue: 0,0:07:46.81,0:07:49.78,Default,,0000,0000,0000,,también el caso de que el código de lenguaje dinámico tiende a Dialogue: 0,0:07:49.78,0:07:52.66,Default,,0000,0000,0000,,ejecutar más lento de la CPU en términos de sólo obtener sólo Dialogue: 0,0:07:52.66,0:07:57.23,Default,,0000,0000,0000,,el trabajo realizado, en comparación con las lenguas de compilador. Dialogue: 0,0:07:57.23,0:07:59.34,Default,,0000,0000,0000,,Código de fuente del compilador se va a hacer lo mismo. Dialogue: 0,0:07:59.34,0:08:04.85,Default,,0000,0000,0000,,Así que un ejemplo de esto, es un gran ejemplo de esto, Dialogue: 0,0:08:04.85,0:08:06.88,Default,,0000,0000,0000,,Administración de memoria. Por lo que la administración de memoria se refiere a la Dialogue: 0,0:08:06.88,0:08:09.87,Default,,0000,0000,0000,,problema en el código de saber cuántos bytes son Dialogue: 0,0:08:09.87,0:08:12.29,Default,,0000,0000,0000,,¿necesarios para almacenar algo y, en particular por cuánto tiempo? Dialogue: 0,0:08:12.29,0:08:16.17,Default,,0000,0000,0000,,Bueno necesito esos bytes para la línea 6, sabes, pero Dialogue: 0,0:08:16.17,0:08:18.28,Default,,0000,0000,0000,,quizás en la línea 20, y no necesitan ya Dialogue: 0,0:08:18.28,0:08:20.59,Default,,0000,0000,0000,,y realmente puedo reutilizarlos para algo más. Dialogue: 0,0:08:20.59,0:08:23.14,Default,,0000,0000,0000,,Y en realidad es un problema de tipo de complicted. Dialogue: 0,0:08:23.14,0:08:27.01,Default,,0000,0000,0000,,En c y C++, administración de memoria es un grado Dialogue: 0,0:08:27.01,0:08:29.77,Default,,0000,0000,0000,,Manual. y eso sólo significa que el programador Dialogue: 0,0:08:29.77,0:08:31.32,Default,,0000,0000,0000,,se están produciendo todas estas líneas de códigos para cosas Dialogue: 0,0:08:31.32,0:08:33.33,Default,,0000,0000,0000,,y va a ser a veces, cuando puede tener a Dialogue: 0,0:08:33.33,0:08:35.56,Default,,0000,0000,0000,,agregar algunas líneas para hacer algún pensamiento, para ayudar a la Guía Dialogue: 0,0:08:35.56,0:08:38.17,Default,,0000,0000,0000,,la administración de la memoria. Así que hay algunos Dialogue: 0,0:08:38.17,0:08:41.44,Default,,0000,0000,0000,,esfuerzo de programador requerido. En contraste, la mayoría Dialogue: 0,0:08:41.44,0:08:43.93,Default,,0000,0000,0000,,lenguajes dinámicos tienen lo que se llama, automático Dialogue: 0,0:08:43.93,0:08:46.87,Default,,0000,0000,0000,,Administración de memoria. Y esto significa que, no Dialogue: 0,0:08:46.87,0:08:53.01,Default,,0000,0000,0000,,entrada de programador es necesario. El lenguaje se va Dialogue: 0,0:08:53.01,0:08:56.94,Default,,0000,0000,0000,,a notar automáticamente, cuando se necesita memoria, Dialogue: 0,0:08:56.94,0:08:58.06,Default,,0000,0000,0000,,Cuando memoria no es necesaria ya, Dialogue: 0,0:08:58.06,0:09:03.49,Default,,0000,0000,0000,,puede ser reciclado y eche en ese conjunto Dialogue: 0,0:09:03.49,0:09:04.81,Default,,0000,0000,0000,,problema. Por lo tanto, esto encaja dentro de la tendencia de Dialogue: 0,0:09:04.81,0:09:06.98,Default,,0000,0000,0000,,lenguajes dinámicos que estaba mencionando anteriormente, Dialogue: 0,0:09:06.98,0:09:09.41,Default,,0000,0000,0000,,Por eso, este un ejemplo de cómo, bueno, ya sabes, porque Dialogue: 0,0:09:09.41,0:09:11.74,Default,,0000,0000,0000,,el programador tiene menos que ver, son capaces de justo Dialogue: 0,0:09:11.74,0:09:13.53,Default,,0000,0000,0000,,obtener cosas hecho un poco más rápido. Administración de memoria tan Dialogue: 0,0:09:13.53,0:09:15.74,Default,,0000,0000,0000,,es un gran ejemplo de ello. Sin embargo también se puede imaginar Dialogue: 0,0:09:15.74,0:09:17.19,Default,,0000,0000,0000,,Esta es una de las cosas que hace dinámico Dialogue: 0,0:09:17.19,0:09:19.06,Default,,0000,0000,0000,,código de idioma ejecutar un poco más lento. Porque, Dialogue: 0,0:09:19.06,0:09:22.91,Default,,0000,0000,0000,,la CPU tiene ahora suggestional libro manteniendo el problema, Dialogue: 0,0:09:22.91,0:09:25.29,Default,,0000,0000,0000,,donde su mirando la memoria y tratando de Dialogue: 0,0:09:25.29,0:09:27.84,Default,,0000,0000,0000,,figura fuera, cuando puede ser reutilizado. Por lo tanto, muy amplia Dialogue: 0,0:09:27.84,0:09:32.32,Default,,0000,0000,0000,,hablando, la tendencia para el equipo de programación hoy Dialogue: 0,0:09:32.32,0:09:37.05,Default,,0000,0000,0000,,es hacia los lenguajes dinámicos. El rasgo que la Dialogue: 0,0:09:37.05,0:09:40.78,Default,,0000,0000,0000,,programador obtendrá un liitle rápido, cosas Dialogue: 0,0:09:40.78,0:09:43.24,Default,,0000,0000,0000,,a expensas de utilizar un poco más CPU o más Dialogue: 0,0:09:43.24,0:09:45.93,Default,,0000,0000,0000,,memoria, es un equilibrio bastante atractivo para Dialogue: 0,0:09:45.93,0:09:49.16,Default,,0000,0000,0000,,muchos de los problemas. Esto puede ser un poco intuitiva, Dialogue: 0,0:09:49.16,0:09:51.88,Default,,0000,0000,0000,,pero se puede pensar lo que es la escasa calidad, Dialogue: 0,0:09:51.88,0:09:54.88,Default,,0000,0000,0000,,para un programa de ordenador y muchas veces es el Dialogue: 0,0:09:54.88,0:09:59.39,Default,,0000,0000,0000,,programador, que tenga programador experto trabajando Dialogue: 0,0:09:59.39,0:10:01.20,Default,,0000,0000,0000,,en que, sabes, trabajando en este dominio, mucho Dialogue: 0,0:10:01.20,0:10:06.29,Default,,0000,0000,0000,,de los tiempos son difíciles de encontrar. Y así Dialogue: 0,0:10:06.29,0:10:09.10,Default,,0000,0000,0000,,sus horas, es decir, utilizando algunas de sus horas, Dialogue: 0,0:10:09.10,0:10:12.64,Default,,0000,0000,0000,,luce atractivo, en contraste, la CPU siempre Dialogue: 0,0:10:12.64,0:10:13.93,Default,,0000,0000,0000,,quiero trabajar tan rápido como sea posible, pero Dialogue: 0,0:10:13.93,0:10:17.42,Default,,0000,0000,0000,,CPUs son bastante barato y bastante eficaz Dialogue: 0,0:10:17.42,0:10:19.07,Default,,0000,0000,0000,,y hay incluso este efecto curioso donde esta Moore Dialogue: 0,0:10:19.07,0:10:24.26,Default,,0000,0000,0000,,Derecho, sigue haciendo más cierto, donde la CPU cada año obtiene más barata Dialogue: 0,0:10:24.26,0:10:27.23,Default,,0000,0000,0000,,y si pensamos en el equilibrio entre el programador Dialogue: 0,0:10:27.23,0:10:29.18,Default,,0000,0000,0000,,costo y el costo de CPU de conseguir algo, Dialogue: 0,0:10:29.18,0:10:31.78,Default,,0000,0000,0000,,Esto significa en términos de la parte del pastel, Dialogue: 0,0:10:31.78,0:10:33.48,Default,,0000,0000,0000,,el programador de hecho cada vez más caro Dialogue: 0,0:10:33.48,0:10:36.17,Default,,0000,0000,0000,,cada año, un poco más escaso. Por lo que estos se ajusta Dialogue: 0,0:10:36.17,0:10:41.36,Default,,0000,0000,0000,,en el patrón. En el conjunto de los lenguajes dinámicos Dialogue: 0,0:10:41.36,0:10:43.83,Default,,0000,0000,0000,,se están volviendo populares. La última cosa que será Dialogue: 0,0:10:43.83,0:10:46.56,Default,,0000,0000,0000,,mención es que existe una cosa llamada "JIT", Dialogue: 0,0:10:46.56,0:10:50.14,Default,,0000,0000,0000,,un compilador Just In Time. Y este tipo de Dialogue: 0,0:10:50.14,0:10:52.65,Default,,0000,0000,0000,,la síntesis natural del compilador e intérprete Dialogue: 0,0:10:52.65,0:10:54.77,Default,,0000,0000,0000,,estrategias, de tratar de obtener lo mejor de ambos mundos. Dialogue: 0,0:10:54.77,0:10:56.80,Default,,0000,0000,0000,,Tan su parecido, bueno, nos gustaría tener un lenguaje dinámico, Dialogue: 0,0:10:56.80,0:10:58.69,Default,,0000,0000,0000,,con todas estas funciones, todas estas favorables de programador Dialogue: 0,0:10:58.69,0:11:02.02,Default,,0000,0000,0000,,características, pero nos quieren correr rápido. Y así Dialogue: 0,0:11:02.02,0:11:04.54,Default,,0000,0000,0000,,Este JIT tomar partes del código y probar Dialogue: 0,0:11:04.54,0:11:07.09,Default,,0000,0000,0000,,y compilar sobre la marcha. Por lo que trata de una especie de Dialogue: 0,0:11:07.09,0:11:11.83,Default,,0000,0000,0000,,para casarse con dos de ellos. Resulta funciona Dialogue: 0,0:11:11.83,0:11:14.63,Default,,0000,0000,0000,,bastante bien. Así que todos los navegadores tienen ahora Dialogue: 0,0:11:14.63,0:11:18.70,Default,,0000,0000,0000,,JITs para código de secuencia de comandos de Java. Así que realmente cuando usted Dialogue: 0,0:11:18.70,0:11:22.32,Default,,0000,0000,0000,,está ejecutando código Java Script en esta clase, Dialogue: 0,0:11:22.32,0:11:24.62,Default,,0000,0000,0000,,dentro del explorador había un JIT que estaba en el Dialogue: 0,0:11:24.62,0:11:28.41,Default,,0000,0000,0000,,mosca, teniendo esos trozos de código Java Script y Dialogue: 0,0:11:28.41,0:11:31.62,Default,,0000,0000,0000,,compilarlos sobre la marcha, en el código de máquina. Dialogue: 0,0:11:31.62,0:11:35.36,Default,,0000,0000,0000,,De todos modos, no obtendrá exactamente los formatos del compilador Dialogue: 0,0:11:35.36,0:11:39.04,Default,,0000,0000,0000,,código, pero se obtiene bastante estrecha. SO. Esto es realmente Dialogue: 0,0:11:39.04,0:11:41.98,Default,,0000,0000,0000,,Cómo funciona la mayoría de los lenguajes dinámicos. Es un activo Dialogue: 0,0:11:41.98,0:11:44.39,Default,,0000,0000,0000,,área de investigación. Pero parece que funciona bastante bien.