DAVID J. MALAN: Así que estamos de vuelta. Por lo que el alto nivel tema en el momento ahora es pilas de tecnología, que no es un término técnico en especial, que es más de un cajón de sastre para cualquier número de combinaciones de tecnologías que se pudiera utilizar para resolver problemas. Y quizás el más forma adecuada de empezar sería mirar idiomas desde No dejo de recitar un montón y casi todo el mundo en la sala tiene probablemente oído hablar de al menos uno. Y ¿por qué no intentamos distinguir qué-- distinguir idiomas y hablar brevemente acerca de cuándo lo haría elegir uno sobre el otro, la forma en que están clase de, fundamentalmente, diferentes y especialmente cuando se está conversando con los ingenieros, o tratando de decidir a quién contratar, o lo que la implementación propuesta de Greenlight, cómo se haga realidad ese tipo de decisiones. Así que vamos a golpetee algunas cosas fuera. De las lenguas que tienen las personas oído hablar, lo que viene a la mente? C. OK. OK, C ++. ¿Que es eso? AUDIENCIA: Python. DAVID J. MALAN: Python. Excelente. ¿Qué más? Visual Basic. Oí Java. Visual alias Basic-- VB. Java. NET, que es más de un cajón de sastre por lo general es C # como lenguaje en cuestión. Y permítanme mencionar eso. Así que vamos a volver a eso. ¿Lo siento? ¿Lo siento? AUDIENCIA: SQL. DAVID J. MALAN: El rasguño? AUDIENCIA: SQL. DAVID J. MALAN: Oh, SQL. DE ACUERDO. SQL. Así que vamos a volver a que- realidad, es good-- tras el descanso también. ¿Qué más? AUDIENCIA: Oracle. DAVID J. MALAN: Así Oracle, no un idioma. En realidad usarían SQL también. Así que vamos a poner que después de el descanso también. Y lo siento, algo por aquí? AUDIENCIA: Mathematica. DAVID J. MALAN: Mathematica? Claro. Y MATLAB es una especie de allí a veces. AUDIENCIA: R. DAVID J. MALAN: R. Vamos a ir por aquí. Fortran. Por supuesto. vieja escuela. Fortran. COBOL. Voy a tirar BASIC. BASIC. Alguna-- AUDIENCIA: MATLAB? DAVID J. MALAN: MATLAB. Oh, adelantó. ¿Cualquier cosa? No puedo pensar en un par de los demás. No puedo pensar en algunos otros. Y lo que fue la última? AUDIENCIA: ASP. DAVID J. MALAN: ASP? Sí. Active Server Pages. Que por lo general estaría incluida en otros idiomas, a veces, C # así que vamos a dejar que se fuera. Pero vamos a volver a ese para marcos y tal. ¿Algo más? PHP es muy popular. Ruby es otra. JavaScript, que no debe confundirse con Java, es otra. Eso es un poco mucho. Así que puede ser abrumadora, sin duda, como si la lista no está ya, sólo para comenzar a saber por dónde empezar. Y así, afortunadamente, vamos abordar esto desde unos pocos ángulos. En primer lugar, vamos a tratar de categorizar al menos algunas de estas lenguas en dos grandes cubos, que recuerda la conversación que tuvimos antes de las vacaciones, donde hablamos sobre la compilación, y el código fuente y el código máquina, porque eso no es cómo todos los idiomas de trabajo. Así que vamos a arrancamos algunos ejemplos de-- o contra-examples-- a ese modelo. Y entonces, ¿por qué no hablar de las aplicaciones que idiomas se utilizan generalmente para. Y, francamente, a pesar de que esta es una lista bastante larga, es sólo un subconjunto de esta lista que lo más habitual es extraer de estos días resolver problemas. Algunas lenguas son más recientes que otros. Ciertas lenguas son más populares que otros. Así no es como usted tiene tal una tarea abrumadora antes la hora de decidir entre estos diversos idiomas. Así que vamos a hacer esto. Teníamos antes, código fuente, y luego tuvimos código de máquina. Los chillidos. Escribiendo la palabra equivocada. Codigo de maquina. Y hemos tenido algún proceso en el medio called-- sí, el compilador. Por lo que el compilador. Y lo que el código de la máquina en realidad se ejecuta en el extremo va a ser la CPU real. En otras palabras, al código de máquina, I significa las instrucciones del nivel más bajo que una CPU en realidad entiende. Suma, resta, mover, guardar y operaciones por el estilo. Y por lo que este es el modelo de lo que es generalmente conocido como lenguajes compilados. Quizás no sea sorprendente. Así que este es el modelo para lenguajes compilados. Pero resulta que hay Otra clase de idiomas Las Lenguas llamada interpretado Las Lenguas interpretado que son ligeramente diferentes. Se escribe en el código fuente, ejecutar a través de un intérprete, y que es intérprete lo que se ejecuta en la CPU. En otras palabras, lo que no lo hace emiten es lo que, al parecer? Codigo de maquina. Los ceros y unos que la CPU en última instancia, en sí entiende. Así, en esta primera versión y lenguajes como C, como vimos, se escribe en el código fuente eso es un poco arcano, pero al menos es algo similar al Inglés y es al menos legibles Una vez que se acostumbre a ella. Que se ejecuta a través de un compilador y fuera que se obtiene, en última instancia, ceros y unos. Que una simplificación excesiva. Hay algunos otros pasos de allí. De hecho, si alguna vez has oído el término "lenguaje ensamblador," eso es un paso antes los ceros y unos. Que un poco más legible, pero sigue siendo bastante arcano. Así que hay pasos intermedios que son, de hecho, pasando aquí. Pero la salida, en última instancia, es estos ceros y unos. Pero en el interpretarse mundo, donde se tiene idiomas que se interpretan lenguas, en realidad se salte ese paso. En otras palabras, cuando se escribe una programa, que acaba de ejecutarla de inmediato. No compila y luego ejecutarlo, como lo hacía antes. Que acaba de escribir y ejecutarlo. Y si quieres hacer un cambio rápido, se realiza un cambio rápido y volver a ejecutarlo. Así que no hay paso intermedio aquí. Ahora, para el programa que he escrito anteriormente, el cual fue este programa "Hello World", usted puede ser razonablemente wonder-- o razonablemente podría Estado-- que no era ese momento consumir para compilar mi programa. Parece que lo han hecho así. Y hay gráfica versiones de compiladores. Estoy usando una versión muy arcano, pero usted podría golpear un botón de reproducción y eso sería hacer realidad la compilación para usted. He compilado el programa y luego de nuevo, para ejecutarlo, acabo de hacer esto. Y da salida a la izquierda allí, "Hola!" Eso no parece todo lo oneroso. Pero cuando sus programas son más de una, dos, tres, cuatro, cinco líneas de largo, que puede llevaría mucho más segundos para compilar. A veces incluso minutos o un poco de tiempo para compilar. Después de todo, algunas de las mayores productos del mundo son cosas como sistemas operativos, Microsoft Word, Microsoft Excel, que puede ser de cientos de miles o incluso millones de líneas de código largas, y los que no lo hacen solo inmediatamente ejecutar. Por otra parte, en la web, es puesto de moda utilizar lenguajes interpretados, simplemente en parte debido a que puede hacer un cambio como el desarrollador y luego simplemente cargar inmediatamente la página del navegador y ver inmediatamente el resultado. Y así HTML, aunque no un lenguaje de programación, es un lenguaje que se interpreta. Y vimos que ayer mismo efecto. Que acaba de cargar la página después de hacer un cambio en Cloud9 y- voila-- se ve un nuevo resultado. Entonces, ¿cuál es la diferencia aquí? En HTML, el recuerdo, tuvimos HTML abierto, cabeza abierta, título abrir, cerrar título, cerca de la cabeza, cuerpo abierto, y así sucesivamente. Tuvimos todas estas etiquetas que nos prácticamente mucho Dicho esto, decirle al navegador qué hacer. Hey navegador, aquí viene una página HTML. Hey navegador, aquí viene el título. Hey navegador, aquí viene un poco texto que debe ser audaz. Y luego le dice lo contrario. Hey navegador, eso es todo para el texto de negrita. Hey navegador, eso es todo por el cuerpo. Etcétera. Y así, lo que es un navegador? Un navegador es simplemente un intérprete. Es un programa que alguien como Microsoft o Google ha escrito, cuyo propósito en la vida es leer un idioma, conocido como HTML, e interpretarla. De arriba a abajo, de izquierda a derecha. Y cada vez que el navegador ve abierto soporte, el título, el corchete de cierre, se debe interpretar que en el sentido de, oh, que significa que debo poner estas palabras camino aquí en la parte superior del navegador. Por lo que sólo hace lo que dice el código HTML. Pero no hay ceros y unos. No hay compilación. Usted no lo hizo. El navegador no lo hizo. Simplemente no está involucrado. Así, en el espíritu de éstos en curso temas, de hoy y de ayer, que parece ser una característica maravillosa. Se guarda el código y luego sólo ejecutarlo o interpretarlo. No hay pasos intermedios. Sin duda, hay un costo? No todos pueden ser aspectos positivos. Entonces, ¿qué podría ser ese costo? AUDIENCIA: Espacio. DAVID J. MALAN: Espacio. Tan seguro. En el mundo compilado, usted tiene no sólo el código fuente original, También está creando y es de suponer el ahorro la máquina code-- la ceros y ones-- y eso es llegó a tomar hasta una cierta cantidad de espacio. Absolutamente. Así que le cuesta más espacio. ¿Sí? Público: Los navegadores podría interpretar de manera diferente. DAVID J. Malan: Navegadores might interpretarlo de otro modo. Eso es verdad. Pero no estoy seguro de que soy reclamando cómoda eso es porque se interpreta. Eso es más justo porque es una implementación de un lenguaje que en sí tiene ambigüedades. Así que no es confirman que uno, pero un buen presentimiento. ¿Qué otra cosa podría ser el precio pagado? ¿Andrés? AUDIENCIA: Usted está combinando dos pasos, por lo que, por tanto, tienen cada vez mayor complejidad también. DAVID J. MALAN: El complex-- el aumento de la complejidad en donde? ¿Para quien? AUDIENCIA: Por lo tanto, en el intérprete etapa, que está combinando el intérprete y el compilador por sólo conduce a-- DAVID J. MALAN: Ah, OK. Irónicamente, es probable que sea un poco más sencillo de implementar el intérprete, a pesar de que parecería Upsides rendimiento de esta comodidad. Así que posiblemente cierto. Pero depende del tipo, me diría que, en el lenguaje y en la forma en que fueron sobre la implementación de la misma. No puede haber una complejidad mucho mayor, en realidad, en el compilador, sólo porque usted tiene que ir de algo tan alto nivel a algo de modo de bajo nivel. Sin embargo, un buen pensamiento. Así dicho de otra manera, un programa compilado, cuando se convierten en estos ceros y unos, termina en el idioma que la CPU habla, mientras que en este lado de la mundo, el programa que he escrito, el código que has escrito, en realidad nunca consigue convertido en el idioma real el equipo habla. Los ceros y unos. Se queda en el original, más humana , El lenguaje más legible de usar. Entonces, ¿cuál podría ser la implicación allí, si no lo hace realidad molestar a la conversión de su programa para el mismo lenguaje que el equipo subyacente habla? AUDIENCIA: ¿No podría entender algo? DAVID J. MALAN: Might No entender algo. Y eso puede claim-- si no entendía algo, que es un error o falta de figurar en el intérprete. Por lo que habría más de un error que un costo. AUDIENCIA: Usted tiene acceso El código fuente? DAVID J. MALAN: Hay una buena. Por lo que una desventaja aquí es que parecería tener acceso. Usted, el usuario final, que podría parecer tener acceso al código fuente. Y eso no siempre es cierto. Pero es cierto en el caso de JavaScript, lo que vamos a ver después de el descanso hoy, que es un lenguaje de programación interpretado que se escribe en el código fuente. Pero que el código fuente se transfiere desde el servidor al navegador y se ejecuta en el navegador del ser humano. Así que aquí sólo pudiera abrir la ventana, como lo he estado haciendo en Chrome, y mirarlo, como nosotros mismos mirado ayer con Google. Podría parecer un poco incomprensible pero está ahí. Así que eso es absolutamente uno precio pagado. AUDIENCIA: impacto en el rendimiento? DAVID J. MALAN: Sí. Y esa es la otra es problema. Hay un impacto en el rendimiento. Debido a que tiene este hombre medio, que a su vez es un programa, entre usted y la CPU, a diferencia que acaba de alimentar a estos mimbres ceros y unos en la CPU, hay un impacto en el rendimiento que se llevar con un lenguaje interpretado. De tal manera que, arbitrariamente, un programa de que podría suponemos un Segundo para ejecutarse en un ordenador o una minuto para ejecutar en un equipo aquí, podría tomar 10 segundos o 10 minutos para correr en un equipo aquí. Por lo general, no va a ser tan mucho de un factor de difference-- 10-- porque hay optimizaciones que se pueden hacer. Pero es casi siempre más lento. Ahora, la otra cara de esa preocupación es que, además ordenadores, cada 12 a 18 meses-- según La ley de Moore, por lo que speak-- se acaba de conseguir más y más rápido. Tengo cada vez más espacio en disco. Tengo más y más memoria RAM. ¿A quien le importa? Y eso es una especie de argumento razonable. De hecho, una de las razones Por eso podemos tolerar más lenta lenguajes interpretados, porque se que los seres humanos no te das cuenta. Los equipos tienen conseguido tan rematadamente rápido. Mientras que en su día, en especial cuando el hardware fue mucho más limitado, que tenía menos de todo, que era mucho más caro así que todo cuesta más, bueno, entonces realmente quería exprimir tanto el rendimiento como pudiera. Pero la requerida por escrito en un nivel más bajo, si se quiere, con un lenguaje compilado. Así lo hace tomar este impacto en el rendimiento. Pero, en general, los aspectos positivos parecen valer la pena en estos días. Bueno, excepto por la tema de la propiedad intelectual. Ese tipo de legibilidad del código, vamos a volver a cuando nos fijamos en JavaScript. Así que vamos a tratar de categorizar al menos algunas de ellas. Así, entre los lenguajes compilados, nos tendría C, C ++, un poco, sorta, Java, aunque es un poco de una excepción, por razones por las que se va a aparecer en un momento. C # sería en esta lista. Vamos a ver más en solo los lenguajes más modernos. Todo bien. Y eso parece como un montón allí. Mientras que en este lado de la valla, podríamos tener Javascript y Python, y PHP y Ruby. Y es que basta los más recientes? Que se siente como un montón por ahora. DE ACUERDO. Y luego dot dot dot, ya que la lista es interminable. Y de hecho, si queremos simplemente tener una idea de esto- Wikipedia, lenguajes compilados. Supongo que podemos conseguir una lista mucho más exhaustiva. Así que, aquí vamos. Así que aquí está una lista mucho más exhaustiva. Y yo estaba esperando que alguien podría adivinar D como un lenguaje, porque eso también existe, pero se detuvieron en D parecería. A pesar de que podría ser en realidad una E. Oh, en realidad, esto debería estar en la lista en estos días. Swift es en realidad una idioma que Apple inventó que se utiliza ahora, cada vez Por lo tanto, en el desarrollo del iPhone. Pero vamos a volver a que con nuestra discusión de la telefonía móvil en tan sólo un poco también. Así Swift también. Y entonces si vamos a interpretado language-- language-- interpretado entonces aquí está una lista aún más larga también. Así que si usted acaba de Google y buscar en la Wikipedia para éstos, verá todo tipo de idiomas. Pero el objetivo es, para hoy en realidad, sólo se reduce a tal vez esto tema de la propiedad intelectual y la legibilidad por el usuario final y para rendimiento, es otro problema ya bien. Así, entre estos idiomas, vamos a ver si podemos darle sólo algunas muestras de las lenguas. No queremos pasar por todos los idiomas sin fin. ¿Se ha preguntado qué determinado idioma se parece? Sí que vimos hace un momento. ¿Por qué no tomamos un par de la función de las solicitudes. A quién le gustaría ver lo otro idioma se parece? Sí. AUDIENCIA: Java. DAVID J. MALAN: Java. Todo bien. Así que vamos a Java. Y sólo para darle una muestra-- podríamos escribir todo esto a cabo, pero sería más rápido sólo para mira código de ejemplo de otra persona. Todo bien. Entonces esto es un buen ejemplo? Los chillidos. DE ACUERDO. Así que aquí es la versión Java de la programa que he escrito antes, "Hello World". Así Java, con frecuencia se le ver la "clase." palabra clave A continuación, aparecerá un nombre después de eso. Verás llaves como vimos antes, ya veces se van de la misma línea, a veces otras líneas, es una especie de una decisión personal. Verás como palabras clave "Público", "estática", "vacío". Pero vimos "principal". "Principal" es generalmente el nombre de la función por defecto o el trozo de código que por defecto se ejecute en un programa. "Cuerda." ¿Qué nos referimos con cuerdas antes? Lo utilicé especie de indiferencia. Una cadena es lo que? Una palabra. Es como una secuencia de caracteres. Los caracteres individuales, de nuevo a espalda con espalda, por lo general en una matriz, como hemos discutido. Y de hecho, ver esta sintaxis Aquí, los dos corchetes? Eso significa, eh equipo, aquí viene una matriz de cadenas. La notación de corchetes es comúnmente usado para denotar que. Y, entonces probablemente puede tomar un guess-- lo tiene esto pone de relieve trozo de código, probablemente hacer? AUDIENCIA: La salida? DAVID J. MALAN: Sí. Se imprime algo a la pantalla. Por lo tanto "sistema" es una especie de referencia a su ordenador. "Hacia fuera" significa que su computadora de o salida de la pantalla. Así "En System.out.print" probablemente significa? "Ln". línea de impresión que como programadores al parecer deletrear algunas palabras a cabo en su totalidad y tomar accesos directos con otras palabras. Pero "ln" es la línea, por lo que la línea de impresión. Por lo tanto, imprime "Hola Mundial! ", Seguido de una nueva línea. Eso es todo. Pero Java es lo que van a llamada orientado a objetos. Y, de hecho, sólo para dar una par de otras definiciones hay que podría véase, en general, hay muchos tipos diferentes de idiomas, pero los más comunes son lenguas de procedimiento o imperativas. Hay funcional idiomas, lo cual NO significa que otros no son funcionales. Y luego está lenguajes orientados a objetos. Y esto es quizás el mejor categorización de la mayoría de los idiomas que alguna vez elegir por especie de un proyecto comercial típico. Esto sería demasiado, Creo que, por el agujero de una rata a bajar, para tratar de explicar las diversas diferencias. Pero los idiomas que hemos visto de este modo far-- C es un procedimiento o una lenguaje imperativo. Más recientemente inventado lenguas tienden a ser, lo siento, orientado a objetos, lo que significa que tienen otras características a ellos. ¿Puedo explicarlo de esta manera? Vamos ni siquiera ir allí. medios orientados a objetos puede implement-- puede modelar el mundo real un poco más eficaz. La humanidad, con el tiempo, se ha dado cuenta, guau, sería bueno si mi lengua tenido esta función o esa característica. Y es por eso que tenemos hasta muchos idiomas que existen. La gente razonable, inteligente las personas, de acuerdo o no e invariablemente especie de venir juntos en el desarrollo de nuevos lenguajes todos juntos. Caso en punto. De Apple inventó Swift en la esperanza de bajar presumiblemente la barra para el desarrollo del iPhone, porque el language-- anterior llamado Objective-C, lo que podría También estará en nuestra lista aquí- era mucho más arcano y mucho más difícil para envolver alrededor de la mente de uno. Y a medida que la programación se está convirtiendo sin duda más accesible y más ampliamente adoptada por la gente incluso menos técnico, el goal-- que es un objetivo muy valiente para tratar de bajar la barrera de entrada al hacer los propios idiomas más fácil para empezar con, pero no menos poderosa necesariamente. Y otro idioma. ¿Por qué no echamos un vistazo en algo así como Python, lo cual es muy de moda en estos días. Pitón. Ejemplo de programa. Veamos. lenguas "Hello World". Hagámoslo. "Hola Mundo." Vamos a ver si esto da somos un buen ejemplo. DE ACUERDO. Así que esto es en realidad una especie de diversión. Así que si alguna vez google "Hola mundo", que pasa a ser uno de los primeros programas que se ha escrito en un lenguaje moderno, al igual que una prueba de concepto, se puede ver todo tipo de implementaciones de esta. Algunos de estos lenguajes Ni siquiera he oído hablar. Pero se puede ver-- vamos a Básica, la que yo aprendí hace años, en parte. Este era un lenguaje divertido porque se tenido que, como el programador, número de todas sus líneas. No muy diferente de lo que era haciendo cuando estaba escribiendo pseudocódigo en el documento amarillo anteriormente para la búsqueda binaria, para buscar en una guía telefónica. Y así, si querían para ir a otra línea, Literalmente, el tipo, ir a 10, o vaya a 20. Y si estás líneas, la escritura convención fue a hacer, esta es la línea 10, esta es la línea 20, se trata de la línea 30, 40, sin nada entre ellas, por lo tanto dando un poco de habitación si se decide, espera un minuto, Debería haber añadido algo más código en alguna parte. Que todavía tenía una especie de nueve posibilidades de apriete que en medio de su programa de antes de tener que manualmente renumerar todo. Así que esto es una especie de lo que quiero decir cuando digo que el mundo ha llegado con unas nuevas características. En algún momento alguien se dio cuenta, muchacho esto es una estupidez. Esto es sólo la creación de trabajar para el programador. Así que él o ella sólo tipo de construcción una nueva capa en la parte superior de esa de modo que usted no tiene que preocuparse acerca de lo que los números de línea de su código es en realidad en. Así que cuando usted puede elegir una u otra lengua? Así, cuál de estos ¿Tiende idiomas oír hablar de la mayor cantidad en su propio mundo en estos días? Vamos desplegable de Objective-C también. AUDIENCIA: C #. DAVID J. MALAN: C #. Así que me deje de color. ¿Tenemos nuestro otro color en alguna parte? Así C #. Y qué sabe usted de C #? primavera nada a la mente? PÚBLICO: Es un lenguaje de programación. DAVID J. MALAN: Es una lenguaje de programación. DE ACUERDO. Eso es verdad. Así que estamos hablando de C #. C # tiende a ser utilizado en entornos Windows, así que si usted está escribiendo software de Microsoft para Windows, C # se utiliza con mucha frecuencia, ya sea por el software de escritorio, o incluso el software del teléfono en los teléfonos de Windows, si usted ha tenido los, o en la web, incluso demasiado. Y de hecho, tal vez Kareem ASP mencionado antes? Así que hay también estos cosas que se llaman marcos, el cual podemos introducir por extensión. Marcos, como ASP. Soportes para las páginas de servidor activo. Y esto es de código y un modo de programación que por lo general hace que sea más fácil para escribir aplicaciones basadas en web. En otras palabras, sería estupendo, súper molesto en escribir una página web en el lenguaje C que que hemos visto antes, porque tendría que usar de impresión + F, usted tendría que usar esa palabra clave "Principal" y las llaves. Una gran cantidad de sintaxis arcano y el enfoque para implementar algo que es bastante complejo. Una página web. Y así otras lenguas han evolucionado para hacer ese tipo de cosas más fácil. Y a su vez, la gente ha subido con marcos de trabajo, tipo de herramientas que puede utilizar que hacerlo aún más fácil de escribir páginas web. Así, por ejemplo, para hacer esto mucho más concreto, me deja abrir sólo una archivo de texto por un momento. Y se puede recordar ayer que nos dijo algo como, esto es una página web. HTML. Cerrar HTML. Déjame saltar la cabeza y acaba de hacer el cuerpo aquí. Supongamos que yo quería escribir no "Hello World" pero "Hola David," donde David es el nombre del usuario actualmente conectado. Algo así como lo ASP va a hacer, o JSP-- el cual es el servidor de Java o pages-- cualquier número de otros marcos es que no son lenguas, per se. Son como software adicional que se e instalarla en su entorno eso solo hace que sea más fácil de programar. Así, por ejemplo, en lugar de tener que hacer algo así como "hola, printf (" David ")" o algo que es tipo de co-mingling-- el tipo de código que hemos visto antes-- que haría algo mucho más simple, como "% name." Y por lo que estos marcos, como ASP-- y yo No recuerdo si me estoy haciendo la sintaxis correcta para ASP. JSP es un poco-- es esto correcto? Así que con ASP, esto es una especie de sintaxis especial que algunos desarrolladores han decidido esto podría ayudar a la gente. Y puedo expresar de forma más sucinta marcadores de posición, por ejemplo. Al igual que poner un valor aquí, donde este nombre valor no es N-A-H-E, que es algún valor almacenado en ese país. Así que "nombre", en este contexto, que llamaríamos una variable. Álgebra tiene variables al igual que x e y, y z. Los programadores usan variables que son más descriptivo que x, y, z, típicamente. Así que "nombre", literalmente, sería una especie del contenedor de la memoria para algo así como D-A-V-me-D, por mi nombre, o quien lo demás se registra en el sitio web. Y por lo que este es el tipo de conveniencia que se obtiene con ciertos ambientes. Así C # y ASP algo así como lo haría muy comúnmente ser utilizado en un mundo de Windows, ya sea para su escritorio software o servidor web, especialmente si los servidores son a su vez que ejecuta Microsoft Windows y Microsoft IIS-- o Internet Information Servidor, si consigo el acrónimo derecha- que es el servidor web de Microsoft. Entonces, ¿qué otros idiomas son personas familiarizadas con, o ha oído hablar de ¿más a menudo que no? AUDIENCIA: Sé que Python tipo de un popular [inaudible]. DAVID J. MALAN: Muy popular. Así Python aquí se utiliza muy a menudo en aplicaciones científicas o datos la ciencia, donde se tiene una gran cantidad de los datos que desea analizar y desea utilizar una lenguaje de programación para ello. R comúnmente podría ser utilizado para que así, en un contexto estadístico. Pero Python tiene tantos características incorporadas. Tantos adicional bibliotecas, como dicen las personas. Las bibliotecas son simplemente colecciones de código que otras personas escribió que se puede utilizar para que no tienen que reinventar esas ruedas. Y lo que Python es muy comúnmente utilizado en aplicaciones de las ciencias de datos. Pero también es muy frecuente utilizado en aplicaciones web. Puede implementar una dinámica sitio web utilizando Python. Y por el sitio web dinámico, me significa no sólo el contenido estático como hemos creado ayer, por simplemente es difícil de codificación en el texto latino y otras cosas, sino más bien la capacidad que entrar, la capacidad de comprar algo, la capacidad para ver con sus carritos de la compra, o similares. Todo eso requiere dinamismo y se necesitará algún lenguaje como uno de ellos. AUDIENCIA: Entonces, ¿Python tiene su propio extensión, de forma similar a como [inaudible] DAVID J. MALAN: Lo hace. Por lo que en el mundo de Python, Django es un marco muy popular para Python. WSGI es otro mecanismo que es tipo de diferente de esta pero similar en espíritu. Es un add-on que permite para ejecutar código Python en el servidor. Hay otro-- sí. Así que estos llamaremos marcos. Y es un poco de un abuso. Esto es más de una tecnología de servidor web. Pero hay que guardar el simple y ponemos en esta columna, no obstante. DE ACUERDO. WSGI. WSGI. Otra cosa-- y, de hecho, mucho Me muevo que a su propia columna, porque me gustaría gritar a mí mismo por poniéndolos en el mismo cubo. Vamos a poner esto en el servidor características, digamos. Eso no es un término técnico. Así que aquí podríamos ser WSGI. Hay CGI, que es una más antigua técnica para que sirve idiomas como Perl o PHP, o algunos otros. Una vez más, he mencionado estos términos no tanto para arraigar tipo de ellos, pero por lo que si ves ellos se trata de algo simplemente Google para leer más. No hay verdadero jugo a algunas de estas cosas. Pero volvamos a los idiomas. Hablamos de C #, Python. ¿Qué otra cosa podría utilizar para programación de estos días web? Vamos a centrarnos en que todavía. AUDIENCIA: PHP. DAVID J. MALAN: PHP. Y volvamos a esa pregunta. Así que PHP es muy usada. PHP tiende a tener una mala reputación. Empezó como un lenguaje implementado por personas que tal vez no eran necesariamente los mejores diseñadores del lenguaje. Y para que pueda leer todo tipo de artículos en línea de lo mal que PHP es. Y, por desgracia, esto es una manifestación, en parte, de sólo los debates religiosos que estallan entre los programadores. Y esto es algo vale la pena tener en cuenta, desde un punto de vista comercial, que que es muy fácil para los técnicos para obtener todos sus estados, con su opiniones sobre ciertas cosas. Y no significa necesariamente que el que grita más fuerte o con el más fuerte, opinión más enojado que es correcto. Muchas veces, lo que realmente simplemente no importa. Y así la gente está discutiendo lo sus propios prejuicios o zonas de confort son. Y por lo que debe mantener esto en mente al hacer una decisión, que se acaba porque alguien dice este es el lenguaje adecuado para el trabajo, que podría ser cierto, pero también sólo sea así es el idioma correcto dentro de su propia habilidad establecer o zona de confort. Lo cual no es malo, pero usted debe darse cuenta que podría haber algún contexto allí. Hay algunos objetivamente declaraciones equivocadas, como C es el lenguaje incorrecto utilizar en estos días para la implementación de sitios web casi siempre. Pero no es razonable decir que cualquiera de estos están equivocados que hemos guiaron hasta el momento. PHP ha pasado por muchas versiones. Así lenguas tienden a tener versión números asociados con ellos. PHP es hasta, creo, ahora la versión 7, así que ha sido de alrededor durante bastante tiempo. Y como lenguas consiguen más reciente, A menudo se ven nuevas características. Pero hay que ser conscientes de esta porque si su sitio web ha sido implementado en la versión 7 de PHP, pero usted está tratando de ejecutar su sitio web, o tal vez usted ha externalizado el desarrollo de su código a otra persona y que le envíen a usted o enviarlo a usted y dicen, aquí, puso esto en su servidor web, si su servidor web es de unos pocos outdated-- años si se trata de su propio servidor web o una host-- que en realidad no podría funcionar. Así que estos son los tipos de las cosas que alguien hay que tener en cuenta cuando se actualiza un sitio o su aplicación por primera vez. Oí JavaScript anterior. Así JavaScript es una interesante uno en que, en general lado del cliente, como veremos Tras el descanso, el cual significa que se ejecuta en el navegador del usuario. Pero también se puede ejecutar JavaScript estos días usando algo llamado Node.js Node.js, en su es un mecanismo para ejecutar código JavaScript del lado del servidor, en lugar de utilizar Python, o PHP, u otros idiomas. JavaScript está particularmente bien adaptado para aplicaciones de chat y en tiempo real aplicaciones, mientras que PHP no es un gran idioma para la aplicación de algo como un servidor de chat, donde los usuarios Permanezca conectado a él constantemente. PHP es más de una visita me una vez, volver consecuencia, y haga clic en otro enlace alguna segundos o minutos a partir de ahora. Mientras que Node.js y JavaScript puede haber utilizado más para las conexiones persistentes. Otros idiomas que sospecha se utilizan comúnmente para la materia de la web? AUDIENCIA: ¿Quieres ser un marco jQuery? DAVID J. MALAN: Buena pregunta. Ninguno. Yo llamaría jQuery una biblioteca, donde de nuevo una biblioteca es sólo un montón de código que alguien más tiene escrito que generalmente soluciona algunos problemas que lo hace, es de esperar, más fácil para que usted pueda hacer su trabajo. Y déjame hacer un ejemplo de esto en el contexto de la web. En el contexto de la web hay este lenguaje, JavaScript, que veremos más adelante, mediante el cual se podría decir algo como esto- "Document.getElementById." Y ¿qué me llamo ayer? En primer lugar, creo, fue el único de identificación que di a un elemento que se veía así. "P id =" primera ">" y luego tuvimos así como "lorem ipsum", etcétera. Así que si estuviera escribiendo un programa en JavaScript para manipular de alguna manera, cambiar las páginas web que nos estaban jugando con el ayer, Me gustaría utilizar esta la línea resaltada de código para conseguir ese fragmento particular de HTML de mi página, que nodo en particular, como lo llamaremos. Sin embargo, en jQuery, en lugar de escribir esto, que es code-- JavaScript prima justo fuera de la caja, así es como se escribir it-- debe en su lugar simplemente decir, "#primero." Eso es equivalente. Y así, basándose sólo en este preciso ejemplo arcano, lo que quizá es el argumento para el uso de jQuery? ¿Por qué un desarrollador utilizar una biblioteca como jQuery, en base a este ejemplo aislado, ¿quizás? AUDIENCIA: Menos código. DAVID J. MALAN: Sí. Es menos código. Es sólo más rápido que escribir. El contrapunto es que se parece más aterrador. Realmente no se puede leer de izquierda a derecha. De hecho, debido a que es sobre todo de puntuación ahora en lugar de palabras reales, Puedo inferir que tipo de "Document.getElementById" recibe un elemento del documento por su ID. Realmente puedo utilizar tal mnemotécnicos de esta cosa aquí. Así que es una solución de compromiso. Hay una sofisticación que viene a menudo con el uso de bibliotecas, especialmente como jQuery. Pero la realidad es jQuery tiene una especie de convertirse en un estándar de facto, por lo que casi cualquier persona éstas días que escribe código JavaScript utiliza jQuery o algo gusta, y ya no escribe a expresiones tales como prolijas esto, porque una vez más, la humanidad ha aprendido, wow, eso fue una especie de oportunidad perdida para hacer nuestra vida más fácil. Así que los seres humanos hacen su vida más fácil. Buena pregunta. Otros idiomas a tener en cuenta. Yo diría que en medio de esta Lista de Ruby es bastante popular. Y así, en el mundo de la Ruby, hay un marco llamados carriles, que es muy popular. Así Ruby on Rails es una comúnmente utilizado expresión. También en este mundo, me dejó círculo de Java para la materia de la web, donde en el mundo de Java es posible que tenga JSP, o Java Servlets, que es una tecnología común. Y esto es sólo una vez más formas de utilizar que el lenguaje en un entorno de servidor. Entonces, ¿qué significa esto? Si usted tiene un físico servidor, que, literalmente, lo haría descargar el software de servidor web e instalarlo de forma tal que tiene el apoyo de uno de estos marcos, con el que se podría, a su vez, utilizar una o más de estos idiomas. Y en realidad, si se suscribe a como un proveedor de alojamiento web o parte de la nube los servicios que hablamos de ayer, a menudo la materia apenas viene con el la configuración de la máquina para usted. No es necesario instalar esto manualmente. Pero si lo hiciera, aquí es donde el papel del administrador del sistema, por así decirlo, entra en juego. Él o ella realmente haría este tipo de cosas para usted, o el llamado webmaster a menudo había de hacer esto para usted. Todo bien. ¿Tiene preguntas sobre algunos de estos aquí? O posibilidades de todos a preguntar acerca de idiomas? Marcos? A continuación voy a presentar sólo una otra biblioteca eso es también muy común en estos días. Esta lista podría seguir infinitamente. Y esta biblioteca es una especie de empezando a caer en desgracia. Que ha estado presente. Fue popularizado por Twitter desde hace algún tiempo. Y ahora un montón de sitios web, muchos desarrolladores utilizan. Pero las cosas están llegando nuevos y llegando a lo largo. Pero permítanme darles un sentido de lo que significa usar una biblioteca. Así que de nuevo, JavaScript es un lenguaje muy popular. CSS o Cascading Style Sheets, hablamos de ayer. Eso, también, es omnipresente. Nadie hace una página web hoy en día sin el uso de HTML y CSS mínimamente. Pero no siempre es fácil para hacer ciertas cosas. Y así me dejó ir a getbootstrap.com. Los chillidos. Eso no es cómo escribimos. Getbootstrap.com, que me va a llevar a la página de destino para esta biblioteca. Por lo que generosamente llaman a sí mismos un marco, que es una especie de especie de feria, pero me gustaría volver a llamarlo más de una biblioteca de un marco. Pero estos son simplemente semántica discutibles. Déjame ir a su ficha y CSS quiero ir a algo como esto. Así que recuerdan lo que veían nuestros formularios como ayer en Cloud9? Fue bastante feo. botones de la vieja escuela. Creo que el botón era gris por defecto. Y todo estaba muy formato muy desordenadamente. Así que si usted quiere que sus formularios web para buscar un poco nicer-- me dejó el zoom aquí. Y por más agradable que en realidad sólo significa una estética muy quisquillosa. Así notar cómo la casilla de correo electrónico no tiene unas esquinas redondeadas rectangulares a ella. Así que es un poco más limpio allí. Nótese que la palabra de correo electrónico es allí hasta que comience a escribir y luego se va. Así que esa es una característica poco agradable. Observe cómo la cosa es una especie de brillando muy bien, que algo de esto se obtener de forma gratuita desde su navegador, pero algo de esto es también bibliotecas, código que otras personas tienen escrito que le da esto. Algo como esto me da mi contraseña. Este botón es un poco más atractivo que el defecto. Muy en boga en este momento. Desde iOS 7 o menos, la mundo se ha vuelto muy plana, mientras que el mundo tenía antes un montón de sombras, un montón de reflexiones sobre los iconos. Al igual que en el mundo de la ropa, hay tendencias de la moda que van y vienen. Ahora todo es plano en su teléfono. De hecho, botones de su iPhone son ahora sólo enlaces azules. No hay a menudo incluso botones circulares. Así que estos son sólo cosas que entrar y salir de vestir de moda, por lo que esta es la forma en que podría hacer que un formulario web más moderno. Botones. Así Bootstrap tiene un montón de botones bonitos. Así que si quieres botones de color azul, botones de color verde, azul, naranja, rojo. Bootstrap hace que sea más fácil para hacer estas cosas. Estos son el tipo de cosas que a pesar de todo pudo han hecho ayer con CSS y con HTML, pero es sólo un dolor en el cuello. Y así, en cambio, lo que haría Bootstrap tienes que haces es algo como esto. Si quieres un button-- Resulta que este es una etiqueta HTML que no usamos yesterday-- y usted quiere que se vea como este botón verde, que, literalmente, sólo le dan una clase, lo cual nos hizo hablar ayer, de "btn btn-éxito". ¿Por qué esas palabras? Twitter, los autores de Bootstrap, llegó con esas palabras. Podrían haber llamado ellas lo que quieran. Pero lo que está recibiendo ahora es otra persona en Twitter, en este caso, ha descubierto cómo se hace un botón de un aspecto agradable y limpio y verde. Se envasan hasta que la funcionalidad en una clase CSS, llamado "Bot" y "btn-éxito", por lo que cualquiera de nosotros puede ahora la usan sin pensar eso. Por lo que han abstraído la noción de un botón verde así que no tenemos que preocuparse la aplicación de nosotros mismos. De hecho, podemos centrarse en la aplicación cosas de interés para nosotros. Si nos desplazamos hasta aquí. Mensajes de error en la pantalla. A veces quieres un pequeño mensaje a aparecer en la parte superior del navegador. Cualquiera de nosotros podría hacer esto con un poco de esfuerzo, después de la lección de ayer, pero ¿por qué molestarse? Eso es un poco interesante tales detalle estético. Pongámonos de pie en el hombros de Bootstrap y dejar que ellos nos dan cosas como esta, en el que, literalmente, para obtener un cuadro rojo, sólo hay que hacer un párrafo etiqueta con una clase de-- lo siento. "Bg-peligro" nos daría esta caja rojizo en su lugar. Ahora vamos a ir a la cosas más interesantes. Si vuelvo a ir a la parte superior de esta página y vaya a Componentes, Ahora el mundo se vuelve más interesante. Por ejemplo, es muy común menús desplegables como este. Esto sería un absoluto dolor de implementar. Y no fue tan largo hace que nosotros los programadores tendría que poner en práctica estos tipos de menús a partir de cero. Pero es un paradigma común que las bibliotecas como Bootstrap sólo le dará la posibilidad de hacer una del menú desplegable mucho, mucho más fácilmente. No hay una manera de hacerlo, pero si leo la documentación Me gustaría ver que, bien, yo debería utilizar este código HTML si quiero un menú desplegable que se comporta de esa manera. Del mismo modo, vamos a ir al botón desplegable. Así que esto es aún más elegante. Si yo quiero que esto parezca un botón pero significa que pequeño triángulo Debería hacer clic en él y obtener este menú, es el uso de un lenguaje llamado JavaScript. Y todo lo que podíamos poner en práctica esto en JavaScript. Pero, de nuevo, esto es una rueda usted no quiere que reinventar. Lo único que quiere quitárselo la biblioteca estante para esto. Vayamos a algo como barras de progreso. Así que algo como esto es una especie de fresco. Si alguna vez has visto un progreso moviéndose por la pantalla de barras, la aplicación de esa frecuencia es sólo un icono que gira. De hecho, al igual que un aparte, y mucho Me voy a la Ajax-- ¿qué es? Datos de Ajax? Los chillidos. Ajaxinfo. Que recuerde la dirección. Aquí vamos. Así que si alguna vez has visto algo de animación mientras que la página se carga, o pensando, o el ahorro, o la creación de algo, podría ver animaciones como éstas. Así que vamos a ver algo como éste aquí, y vamos a elegir un color de primer plano verde, que se siente tipo de ambiente. ¿Puedo hacer clic esto? Viene uno. DE ACUERDO. Sólo tendremos que ir con rojo porque eso es lo que estamos consiguiendo. Así que aquí lo tenemos. Así que si alguna vez has visto esto en una pantalla, por lo que de repente aparece y luego de repente desaparece, lo que es lo que es la aplicación de esa? Bueno, esto es sólo un GIF. G-I-F. Y esta es una animada presentar, que sólo significa es como un libro de historietas de la vieja escuela. Hay sólo un montón de diferentes tramas que se van [] El tartamudeo y repitiendo. Y está creando la ilusión de movimiento. Así que tan pronto como una página se realiza cargar o hacer algo, ¿Qué hace un programador? Bueno, él o ella simplemente esconde esta imagen. Así que todo es una barra de progreso es una especie de como una película que está viendo. Eres una especie de ajeno al hecho que no es realmente hacer nada, es sólo movimiento. Y luego, cuando se hace avanzar, simplemente ocultan o apagarlo. Y eso es toda la magia lo que está pasando allí. Bootstrap le da algo un poco más lujoso, por lo que en realidad se puede ver un porcentaje que va, pero también es sólo una especie de una animación simple. Veamos algunos definitiva ejemplos más complejos aquí. Algo así como un referente. ¿Alguien sabe lo que es un modal es? Una ventana modal es generalmente uno que se supone para tomar el control del primer plano y le impide hacer cualquier otra cosa. De alguna manera obliga al usuario de atención a la mitad de la pantalla, privándoles, por lo general, de todo lo demás. Así que si pongo en marcha esta demostración, la la pantalla en general convertido en gris. Pues bien, ¿cómo podemos hacer que Gray? Bueno, es probable que simplemente cambiado el color de fondo como lo hicimos ayer o algo así. Tal vez sea una superposición que semi-transparente. Y ahora nota que puede hacer cosas de lujo como este. Así que si alguna vez se hace clic en un botón y quiere un poco de pop a cabo a aparecer, usted puede hacer eso. Y por lo que se preocupa por todo-- sí? AUDIENCIA: Así, con Bootstrap, para conseguir que incorpora, es tan simple como que fue ayer hicimos la página de estilos CSS? DAVID J. MALAN: En efecto. Muy buena pregunta. Déjame ir a Comienzo. Y si. Todo lo que tiene que ver con el fin de el uso de rutina de carga es esencialmente copia y pegar estos tres largas filas de código en la parte superior de su propia web page-- la cabecera de su page-- y ya está en marcha y funcionando. Y hay diferentes maneras de hacer , pero esto sería la más sencilla. Así que lo que es muy útil sobre todo esto? Bueno, si usted no es mucho el ejecutor de un sitio web sino que está tratando de diseñarlo, o si desea dar a alguien con los diagramas de estructura de alambre, por así decirlo, o simplemente entregas del artista de lo que quiere hacer, yo, a este día, a menudo va a ir a un sitio como Bootstrap, donde si desee implementar algo-- como recientemente en el campus queríamos poner en práctica una herramienta basada en la web para navegar catálogo de cursos de la Universidad de Harvard, por lo que es fácil para los estudiantes para navegar a través de cursos y añadir a cursos lista de la compra, por así decirlo, al tipo de decidir qué querían tomar. Yo estaba tratando de imaginar para a mí mismo, lo que haría ingredientes queremos utilizar para construir esto? ¿Cómo sería la interfaz de usuario será? Y con sólo mirar a través de un sitio como éste u otros sitios de bibliotecas, se puede obtener inspiración, porque wow, Puedo utilizar este widget, y este widget, y este widget. Y entonces realmente lo el programador comienza hacer, especialmente en estos días en esta más moderno mundo de la programación web, es la programación es cada vez sobre el cableado de las cosas juntas. Una especie de tomar este fuera de la plataforma, esta fuera de la plataforma, esta fuera de la plataforma, y siendo el inteligente para conectar todos esos puntos, pero en última instancia por construir algo nuevo de pie sobre los hombros de los demás, de modo que usted no gasta un mes la implementación de una caída estúpida menú desplegable, que en realidad es difícil de hacer si usted quiere que funcione en Chrome, y el IE y Firefox, y cualquier número de otros navegadores. Esto es por qué existe esta rica software de código abierto y comercial la industria también. AUDIENCIA: Entonces, ¿Bootstrap se actualiza y entonces usted tiene que actualizar sus enlaces? DAVID J. MALAN: Lo hace. Bueno, sí, lo hace. Bootstrap es actualmente en la versión 3.3.6. Y por lo general lo que se puede hacer-- esto es en realidad vale la pena mencionar. No es lo que es por lo general conocido como control de versiones semántica sistema en el mundo. No todo el mundo hace esto. Pero si usted ha visto los números de versión que son de la forma x.y.z-- Así, por ejemplo, la primera versión de un programa podría ser 1.0.0. O si es muy, muy beta, o incluso el estado alfa, lo que significa el uso a su propio riesgo, no es realmente listo para el prime time, que incluso podría empezar 0.0.1 o alguna otra designación. Pero si el software se inicia en la versión 1,0, o equivalentemente 1.0.0, por lo general, lo que es común en estos days-- aunque no es omnipresent-- si una empresa o un correcciones programador individual algún error en alguna pieza de software que realmente fue un error, cuya corrección no debería que impacto a todo-- no cambia el comportamiento del programa, sólo corrige algo que no estaba funcionando properly-- lo haría normalmente actualizar el valor de z allí. Lo que significa que alguien como Kareem simplemente podría entrar en su página web, ciegamente cambiar el número de versión a partir de 1.0.0 a 1.0.1, lo guarda, lo enviamos, y, en teoría, no tiene que preocuparse de que acaba de romper su página web debido cierta falta de funcionalidad, porque algo más se rompió. Mientras tanto, si la programador o un poco de compañía iban a hacer algo significativo cambio que aumenta la funcionalidad, Yo podría actualizar a nosotros 1.1.0 porque estoy realmente cambiar el comportamiento de la biblioteca. Te voy a dar tal vez más funcionalidad. Por último, si tuviera que realmente fundamentalmente cambiar el software para tanto que se romperá muchos usuarios en sitios web o aplicaciones, entonces yo estoy obligado, en este modelo, a actualizar el número de versión principal también, que es un cambio de última hora. En otras palabras, podría tener dejó de ofrecer soporte para aquellos gota en el menú desplegable. Así que si se actualiza a 2.0, la mitad su sitio web puede dejar de funcionar. Y esto es una especie de señal a la comunidad en cuanto a lo que es para presentar una actualización. Una buena oportunidad para recaudar. ¿Otras preguntas? Todo bien. Así que vamos a echar un vistazo a una última tema en este segmento de la programación de pilas de tecnología, es decir, en relación con el móvil. Por lo que en el mundo de los teléfonos celulares de hoy que tener-- y iPads, y las superficies, y todos esos tipos de devices-- usted tiene una gran cantidad de opciones a la hora se trata de implementar una aplicación o un sitio web para dispositivos móviles de sus clientes. Así que para indicar el obvias, tal vez en estos días, ¿cuáles son las plataformas a desarrollar en el espacio móvil? ¿Qué dispositivos puede que desee apoyar con su aplicación o sitio web? AUDIENCIA: Apple. DAVID J. MALAN: OK. Por lo que los dispositivos de Apple. Por lo que significa iPhone, y que significa iPad, y tal vez incluso el iPod. ¿Qué más? Olivier? AUDIENCIA: Android. DAVID J. MALAN: Android. DE ACUERDO. Así que los teléfonos Android, Android comprimidos, el mercado Android es aún más desordenado y porque-- Incluso Apple se está convirtiendo desordenado. Mientras que en otro tiempo iPhone era un cierto tamaño, y el iPad era un cierto tamaño, y iPod era un cierto tamaño, ahora tenemos Minis iPad, y la delgada queridos, y el iPhone 6 y 6 Plus. Se está convirtiendo en un lío. Se está convirtiendo en el mundo Android. Y digo esto con una especie de balanceo mis ojos porque a partir de un desarrollador punto de vista, se trata de una dolor en el cuello cuando usted no tiene Steve Jobs visión de un control absoluto sobre la totalidad de estas especificaciones. Apple todavía lo hace porque son los que construyen el hardware. Pero es una cosa buena, si Soy un desarrollador de software, que acaba de saber que mi iPhone siempre va de ser así de grande, porque eso significa que siempre sé la cantidad de espacio en pantalla que tengo. Así que si quiero poner un icono en la esquina superior izquierda, que va a estar en la misma exacta colocar en el dispositivo de cada cliente. Pero en el mundo del iPhone 6s y iPhone 6 Ventajas y en el mundo de Android Los teléfonos, que está por todo el mapa. Y por lo que hace que sea más difícil de programa cosas, especialmente las interfaces de usuario, porque ahora hay que empezar a distribuir sus interfaces de usuario relativamente, no absolutamente. Y lo mismo ha sido cierto en los navegadores, y equipos de sobremesa y portátiles de años porque, por supuesto, tienen diferentes tamaños de pantalla. ¿Qué más? Es posible que tenga superficies, como el de Microsoft. Es posible que usted tenga-- AUDIENCIA: teléfono con Windows. DAVID J. MALAN: ¿Qué es eso? AUDIENCIA: teléfono con Windows. DAVID J. MALAN: Sí. Por lo que los teléfonos Windows todavía se pueden encontrar. Tipo de especie de BlackBerrys, pero ellos siguen tratando. Y luego racimos de otros dispositivos. Así que en su mayor parte, vamos a dicen estos son los que se preocupan por el momento. Ciertamente las cosas de Apple, sin duda la materia Android, y entre los de Windows, como tabletas de superficie parece estar calando bastante bien. Y así entre esos dispositivos, si desea desplegar, digamos, una presencia móvil para su compañía, que tipo de decisiones de diseño Qué tienes que hacer? Bueno, ya dijimos en el mundo Apple, hay al menos dos lenguas que se utilizan normalmente. Uno se llamaba qué? AUDIENCIA: Objective-C. DAVID J. MALAN: Sí. Así Objective-C, que es la mayor. Es también la lengua que muchos Mac aplicaciones aún están escritos en. Luego fue el otro más reciente? AUDIENCIA: Swift. DAVID J. MALAN: Swift. Y ese es el tipo de dos para saber para impresionar a la gente. Luego, en el mundo Android, ¿Qué idioma usan Android? AUDIENCIA: C #? AUDIENCIA: Java. DAVID J. MALAN: Java es el lenguaje de "du jour". En el mundo de Windows, seguro, diremos C # en ese caso. Así que ya esto es una especie de molesto, porque lo que es la comida para llevar para que una empresa propietario o alguien que acaba quiere desplegar una presencia móvil? Al igual que, maldita sea? Al igual que, si quiero apoyar una bastante amplia base de usuarios, Tengo que escribir, al parecer, tres aplicaciones separadas. Uno de cada una de estas lenguas, uno en Java, uno en C #. E incluso si quiero que la funcionalidad ser idéntico, no importa. Todavía tengo que utilizar diferentes idiomas, ya que Apple y Microsoft, Google y todo el apoyo diferentes ambientes. Y esto ha sido un reto durante años. De vuelta en el día, cuando la gente utiliza para comprar el software en una tienda de informática en reducir cajas envueltas, usted tendrá que o bien para llegar a la plataforma Mac, o tal vez esto para-- muy pequeño Mac shelf-- o de la plataforma de Windows más grande y comprar algún software. Y muy a menudo, no había ni siquiera nada para usted en la plataforma Mac. ¿Por qué? Pues bien, las empresas deciden si el 90% del mundo, 95% del mundo tiene PC, ¿por qué molestarse siquiera la implementación de las cosas en Mac OS? A modo de un total aside-- ¿por qué es digression-- que Mac parece tan impermeable a virus, y gusanos y amenazas a la seguridad? Apple es mejor en esto? Mejores para mantener los equipos seguros? AUDIENCIA: audiencia más pequeña? DAVID J. MALAN: Eso es probablemente el poco más grande a la misma. Así que los numerosos usuarios de Mac tienen siempre afirmó, oh, usar un Mac, podrás inmune a los virus, y gusanos, y todas estas cosas que han azotado a los PC. Esto podría ser debido a que Apple tiene mejores programadores y escriben mejor software, o la sistema operativo fue diseñado mejor. Tal vez, pero probablemente no. Es probable que cuando estás un niño de 12 años de edad, o un 30 algo especie de que se sienta en casa escribiendo software malicioso para hacerse cargo el mundo, vas a ir tras el público objetivo mucho más grande. El 95% del mundo que podía ejecutar Windows o algún variantes de la misma. Así que hay un poco de ambas partes. Pero a su crédito, Apple, que yo sepa, en realidad no ha promocionado a sí mismos como más seguro, ya que sólo está invitando el drama si hacer esa afirmación, yo creo. Todo bien. Sin entrar demasiado lejos que, ¿cómo resolvemos esto? ¿Tiene que comprar o hacer lo que tiene que pagar tres personas diferentes para desarrollar sus aplicaciones? Se pueden escoger uno sobre el otro? Lo que debería guiar a su Estas reflexiones se cree usted? Kareem? Nop. Alguien más. AUDIENCIA: Solo tiene que venir con el hardware. DAVID J. MALAN: Ven con el hardware? ¿Qué quieres decir? PÚBLICO: Para el ambiente. [INAUDIBLE] DAVID J. MALAN: Así que es cierto. Pero sus clientes, por su parte, podría tener iPhones, que podrían tener los teléfonos Android, que podría tener tabletas hechas por Microsoft. Entonces, ¿usted tiene una estrategia móvil para todos estos diferentes usuarios? Parecería que si cuesta, digamos $ 1.000 a hacer un iPhone aplicación, que va a costar $ 2.000 a hacer una aplicación para iPhone y un aplicación de Android, o $ 3,000 para apoyar también los dispositivos Windows también. Eso es probablemente toda una eufemismo, y no podría incluso haber una relación lineal así. AUDIENCIA: Si usted quiere tener una aplicación o No, puede hacer que el sitio web de respuesta. DAVID J. MALAN: Bueno. AUDIENCIA: O bien, puede tener una aplicación nativa. DAVID J. MALAN: Sí. Así que en todo este contexto aquí, hemos estado hablando acerca de lo la gente llamaría aplicaciones nativas. Es decir que aplicaciones escritas en el idioma nativo de ese dispositivo. Así nativa de Objective-C o Swift código, o en Java o en C #. Lo que significa que cuando se descarga, vamos a Snapchat decir, una popular aplicación, o cuando se descarga Facebook como un teléfono, que está descargando o bien el versión escrita para su iPhone, o escrita para el teléfono Android, o escrita para su superficie. Sin embargo, hay una alternativa. Como Olivier estaba aludiendo, en realidad se puede usar HTML 5 en cambio, el uso de lo que se llama una web aplicación, por lo que simplemente implementar su presencia móvil y ninguna funcionalidad. ¿Qué quiero decir con presencia móvil? Al igual que su sitio web que tiene su información de contacto, una lista de todos sus productos, tal vez tiene un carrito carro, tal vez usted vende cosas a través de él. Sea cual sea su aplicación es, usted ponerlo en práctica, no en Objective-C, o Swift, o Java o C #, pero en HTML 5, que era la lengua que nos aguarda en el día de ayer, con JavaScript y CSS. Y lo que es bueno de los tres es que para ejecutar ellos, que necesita sólo lo pieza de software? PÚBLICO: Un navegador web. DAVID J. MALAN: Un navegador web. Y lo mejor que saben, todos estos dispositivos vienen con los navegadores web, por lo que el usuario no ha de tener instalar algo especial. Por lo que sólo puede decirle a su audiencia, sus clientes, ir a acme.com en su navegador y usted acaba tener una experiencia basada en la web que todavía ocupa toda la pantalla, pero usted no tiene que preocuparse de todos estos costos y toda esta complejidad. Pero seguramente no va para ser un retén aquí, ¿verdad? Especialmente si señalo que hace un par de años, la primera versión de la aplicación móvil de Facebook era principalmente una aplicación HTML 5. Y tienen, más Recientemente, se reimplementado en sus otras aplicaciones. Así que ¿por qué no te inmediatamente quiero decir, así, obviamente, vamos a hacer esto? ¿Cuáles podrían ser los costos ocultos? AUDIENCIA: Rendimiento. DAVID J. MALAN: Rendimiento? ¿A qué te refieres? AUDIENCIA: La aplicación nativa tiene un mayor rendimiento. DAVID J. MALAN: Así que es cierto, por un par de razones. Podemos simplificar la respuesta. Y recordar nuestra discusión de interpretado en comparación con los lenguajes compilados. Este es el HTML 5 y, con ella, sólo para estar claro, JavaScript-- comúnmente escrito JS-- y CSS son todos lenguajes interpretados, aunque sólo el JavaScript es un lenguaje de programación. Y así frente a estos, que algunos de estos se compilan, al menos éstos tres-- Objective-C, Java y C # - éstos, en teoría, debería ser sólo más rápido. Pero hay otra realidad para-- AUDIENCIA: Funcionalidades? DAVID J. MALAN: ¿Qué es eso? Público: funcionalidades. DAVID J. MALAN: Funcionalidad? ¿Cómo es eso? AUDIENCIA: Utilice la cámara fuera de su teléfono o algo así. Puede usar los que tienen el navegador. DAVID J. MALAN: Exactamente. Están sec-- AUDIENCIA: [inaudible] DAVID J. MALAN: Esa es otra buena. Hay características que vienen con los teléfonos móviles de hoy que no son, por diseño, para la seguridad razones, accesibles a los navegadores web. Debido a que sería una especie de una cosa espeluznante si justo cuando usted visita google.com, o cnn.com, o cualquier website.com, que ese sitio tiene el poder de convertir en su cámara, tomar una foto de usted, y luego usarlo. Pero usted no quiere un sitio web al azar que visita por primera vez tener esa capacidad. Y así lo que el teléfono fabricantes suelen hacer se les deniega el acceso a a ese tipo de información a un navegador, lo que significa que no se puede aplicar la cámara. No se puede poner en práctica las notificaciones push, los pitidos que se obtiene en la pantalla con mensajes cortos. Y de hecho, incluso GPS es única clase del tipo de disposición de los navegadores web. Si alguna vez, en un ordenador portátil o en un dispositivo móvil, levantado algo así como tal vez CNN.com, sino también a las estaciones de noticias locales tienden a hacer esto, se le pedirá a menudo con un mensaje-foxnews.com quiere saber su ubicación. Aprobar o denegar. Pues bien, el navegador intenta acceder su información GPS desde su teléfono. Pero, por suerte Microsoft, y Apple, y Google han decidido que se siente como que es una situación útil, queremos Google Maps y otras herramientas para trabajar, pero no queremos que la gente a arrastrarse hacia fuera con sólo permita a cualquier sitio web para hacer esto. Así que vamos especie de meet a mitad de camino y pedir al usuario. Pero eso no es necesariamente el caso con todo el hardware, como la cámara y con push notificaciones y similares, por lo que puede que tenga que sacrificar ciertas características. Pero el rendimiento también. Se está convirtiendo en menos notable hoy en día, tal vez como se llama la LTE y más rápido en las velocidades de Internet en los teléfonos, pero se puede tipo de sentir la diferencia. Como una aplicación basada en web sólo se siente más lenta, por lo general, que una aplicación nativa, en parte debido a que una aplicación basada en web por definición está en el Internet. Se está hablando con los servidores de la web. Y si su conexión a la red es lento, incluso desplazamiento podría ser lento. Sin embargo, una aplicación nativa, que tiene ya pre-downloaded-- probablemente cuando estaba en casa desde la tienda de aplicaciones, o al menos pre-descargado en su totalidad anterior, sea cual sea su velocidad de conexión-- y por lo que ahora tiene toda la bits que por lo general necesita. Excepto tal vez algunos datos que proviene de un servidor. Así que estas son las compensaciones aquí. Hay una especie de media compromiso, de hecho. Y creo que usted-- AUDIENCIA: Utilice la conexión de datos. En las aplicaciones nativas, que pueda [inaudible] DAVID J. MALAN: Por supuesto. Así está el tema fuera de línea, que es realmente molesto si no se puede jugar algún juego o el uso algunos programas simplemente porque eres en un sótano en algún lugar o en un ascensor. Una aplicación nativa es resiliente con mayor probabilidad en contra de que, suponiendo que tiene toda la datos que necesita a nivel local. Así que hay una tercera opción aquí. Y vamos a dibujar el espectro aplicación nativa aquí y aplicación web aquí. Y lo que es en el medio es algo called-- y creo que es posible que tenga se utiliza la palabra antes, tal vez? aplicación híbrida. Y como la palabra lo indica, es algo en el medio. Es una especie de una aplicación web y es una especie de una aplicación nativa. Y ¿qué significa esto? Resulta que no son frameworks-- para usar un término por el software antes les hablé que otras personas han escrito para cada una de estas plataformas. Estos y aún otros dispositivos. De hecho, me dejó ir a PhoneGap, que es uno de esos marcos que Adobe cree que posee ahora. Déjame ir a Comienzo. Veamos. A ver si puedo ver una lista de herramientas. Hardware. Empezando. PhoneGap hardware. Veamos. PhoneGap acceso al hardware. A ver si podemos encontrar un poco gráfico que solían tener. Esto es en otro sitio. ¿Es esto útil? No. Eso va a perder el tiempo allí. PhoneGap hardware. Dispositivos. API dispositivo. No, se han movido. PhoneGap. Vayamos un último vistazo a este y ver si te puedo mostrar. Empezando. Instalar PhoneGap. Instalar aplicación móvil. Venga. Han reorganizado todo. Todo bien. Oh, todo bien. Pues bien, aquí vamos. Esto no es todo lo que esclarecedor, pero esto es lo que yo estaba un poco buscando. Así PhoneGap es un marco que se se puede descargar de forma gratuita que le brinda un código de arranque, esencialmente. Así que algo de código que han escrito eso no hace mucho de nada. Pero lo que le da esencialmente es el equivalente de una aplicación que sólo pone una gran rectángulo en la pantalla del usuario. No pone una barra de URL, como una navegador, no pone una dirección. Sólo pone un gran rectángulo. Y configura así de grande rectángulo, debajo de la campana, para ir realmente a acme.com, o tal vez m.acme.com, por mobile.acme.com, pero el usuario no sabe que están en esa dirección. Todo lo que ven es la contenido de la página web. Pero lo bueno de este ser una aplicación híbrida es que lo que PhoneGap y otras empresas están dando usted es que te están dando un poco de código en Objective-C o Swift, o un poco de código en Java, o un poco de código en C #, y esencialmente, todo lo que tiene que ofrecer es mínimamente la dirección de su aplicación basada en web. Y luego lo combinas esto todos juntos y se tenerlo o bien acceder a su sitio a través de Internet, o incluso almacenar en caché local copiar dentro de la aplicación, a continuación, guardar su solicitud en formato iPhone, teléfono Android formato, el formato de la superficie, o cualquier número de otros dispositivos. Subes cada una de esas versiones a la tienda de Google Play, a la App Store, a la Windows Store, y así sucesivamente. Y ahora, usted puede tener la totalidad de su audiencias descarga realmente una aplicación nativa, aunque la mayor parte del código fue escrito por otra persona, pero el contenido de esa aplicación nativa de todo provenir de, por lo general, su propio sitio web. Así continúa escribiendo su sitio web en HTML, JavaScript y CSS. Entonces, ¿por difuminar estas líneas? ¿Por qué tener una aplicación híbrida que es una especie de natural, sino también tipo de tela basa? ¿Qué es todo el punto de la adición de esta complejidad? Es decir, aún así, sólo de mirando a través de esta página, la Guía de introducción se siente como que tiene un montón de pasos para mí hacer antes de can-- AUDIENCIA: Reutilización? DAVID J. MALAN: Reutilización? ¿Qué quieres decir? AUDIENCIA: del código fuente. Así el mismo código se ejecutaría en todas las diferentes plataformas. DAVID J. MALAN: Sí. AUDIENCIA: [inaudible] DAVID J. MALAN: perfecto. Si el tiempo es escaso y si no tienen esa cantidad de developers-- tal vez usted tiene un desarrollador y él o ella sin duda no conoce todos estos environments-- luego, no así, y ciertamente no puede programar en las tres simultáneamente y enviar los productos en tres El tiempo permitido para uno, usted puede tener él o ella construir todo en HTML y JavaScript y CSS, y luego aprender un poco pequeña poco acerca de las aplicaciones nativas, sólo lo suficiente para descargar un marco de este tipo, a continuación, cargar el producto a todas las diversas tiendas de aplicaciones por lo que ahora tiene una aplicación nativa. De manera que parece como un ganar-ganar, pero una vez más, para ser claros, ¿cuáles son las posibilidades costos o las trampas? AUDIENCIA: Rendimiento? DAVID J. MALAN: Sí. Actuación. Es difícil de describir verbalmente. Así que si sólo se toman en la fe de una aplicación móvil, una aplicación web suelen llevar a cabo más lentamente. Puede que no parece del todo bien, porque en el iPhone, y en los teléfonos Android, y los dispositivos de Windows, hay siempre una especie de aspecto predeterminado y sentir a todo el los botones y los menús. Y empresas en la web, se pueden tratar para aproximarse a esas estéticas con las bibliotecas como Manos a la Obra, pero el user-- un user-- astuto se va a saber que algo que no está del todo bien aquí. Y eso está bien, tal vez eso no es un gran problema. Pero el problema de rendimiento absolutamente es un gran problema. Las aplicaciones nativas tenderán a poco ser mucho más sensible y, por tanto, mejor. Y así, lo que entonces podría ser ¿lo mejor de ambos mundos? Si usted es especialmente una pequeña empresa o un pequeño grupo, usted no tiene los recursos para desarrollar una aplicación en paralelo en las tres plataformas, y francamente, se siente como que es una mala idea de todos modos porque si sale hacia fuera y en se dan cuenta de los tres al mismo tiempo, deberíamos haber añadido algunas características o hecho algo diferente, ahora usted tiene que fijar en tres lugares, no uno. Lo que es tal vez el óptimo estrategia aquí en general, si los recursos y el tiempo son muy ajustados? PÚBLICO: Sólo hazlo en IOS. DAVID J. MALAN: Eso no es irrazonable. iPhones, al menos en el Estados Unidos, son muy populares. Android todavía parece tener dominante cuota de mercado, a nivel mundial, en general. Lo que no está necesariamente representativos de la totalidad del globo esta semana. Pero eso es absolutamente una decisión. Es decir, en el campus aquí pensar en algún número atroz o el porcentaje de estudiantes universitarios tienen iPhones y teléfonos Android no. Sino en el extranjero, es una especie de lo contrario. Así que decidir en base a su audiencia. ¿Cómo sabe lo que tiene su público? Bueno, hemos aprendido un truco de ayer. Se les puede preguntar. Si usted tiene un público cautivo usted puede enviar un formulario de encuesta. O usted podría hacer qué? AUDIENCIA: Google Analytics? DAVID J. MALAN: ¿Qué es eso? AUDIENCIA: Google Analytics. DAVID J. MALAN: Google Analytics. Sí. O incluso más clase de vista técnico, simplemente mirar sus propios servidores web logs. Porque lo que ocurre cada vez que un navegador, ya sea portátil, de escritorio o teléfono visitar su sitio web? Envían esa cabecera HTTP que espectáculos lo navegador y sistema operativo que esté utilizando. Así que usted puede inferir, con alta probabilidad, lo que su demográfica está usando de esa manera y luego ajustar. Así que supongo que eso es inaceptable. En cierto modo es malo para el negocio si Los usuarios de Android no pueden comprar nuestros widgets. AUDIENCIA: Ya sea que esté va a cargar o no? DAVID J. MALAN: Si vas a cobrar? Así que bien, se obtiene lo que se paga. AUDIENCIA: Ya sea que su aplicación va ser libre o si se trata de gonna-- DAVID J. MALAN: OK. Así que tal vez usted podría recuperar los costos de esa manera, o-? AUDIENCIA: leí un estudio, una vez dicho esto más usuarios de Apple a pagar por aplicaciones versus-- DAVID J. MALAN: Eso es cierto debido a que ya están pagar más por sus dispositivos. Por lo tanto, no es descabellado una suposición. AUDIENCIA: [inaudible] DAVID J. MALAN: OK. Así que si están más dispuestos a pagar, a continuación, al diablo con los usuarios de Android. Ellos no van a pagarnos nada de todos modos. También podríamos enfocar nuestras prioridades, al menos durante los primeros meses o un año, en IOS. Totalmente razonable. ¿Qué es una más inclusiva estrategia que eso? Maybe-- ¿qué es eso? AUDIENCIA: [inaudible] DAVID J. MALAN: Una más expensive-- así que tal vez invertir más en-- seguir adelante. AUDIENCIA: Sí. Sólo un sitio web para móviles. DAVID J. MALAN: Así que hacer una sitio web para móviles y no incluso preocuparse de esta complejidad. O tal vez una estrategia razonable, Facebook, que incluso llevó, es empezar con un híbrido aplicación, ya que no es mucho más difícil de hacer esto que esto. Sólo hay que leer algunos documentación y averiguar cómo para subir cosas a la App Store. Así que tal vez se empieza con esto, de modo que el primer día, usted puede apoyar a todos sus usuarios. Y entonces, al igual que Facebook y otras empresas han hecho, cuando se tiene los recursos, usted tiene la gente, ¿por qué no volver a implementar sólo la aplicación de iOS. Usted todavía tiene algo para todos, a pesar de que es una experiencia inferior tal vez, con la aplicación híbrido. Pero se puede paulatina implantación de las y reemplazar el corto plazo medidas de las aplicaciones híbridas con sus aplicaciones más nativos. AUDIENCIA: Pero con una aplicación híbrida que tendrá acceso a las funciones móviles? DAVID J. MALAN: No necesariamente. Así que tal vez usted hace una consciente de decisiones desde el principio, sólo se pueden cargar fotos en el aplicación nativa para el iPhone para Facebook, pero no en la aplicación para Android, inicialmente, por ejemplo. Y eso es un poco de una mentira blanca, porque aplicaciones web tienen más restricciones de aplicaciones híbridas resulta a cabo, y si leemos la documentación para PhoneGap y cosas como que, las personas han llegado con formas para dar aplicaciones basadas en Web el acceso a la cámara, siempre y cuando se está utilizando una aplicación de híbrido. ¿Cómo funciona? Debido a que el híbrido aplicación, por definición, tiene un poco de código en Objective-C, y Swift, y Java o en C #, se puede acceder al hardware. No necesariamente todo, pero podría muy bien darse el caso de que usted tiene suficiente para conseguir el acceso a la cámara, incluso para las plataformas Android, por ejemplo, en ese ejemplo artificial. ¿Alguna otra pregunta? Todo bien. ¿Por qué no tomamos nuestra 15 minutos de descanso aquí. Reanudaremos a las tres con una final mirar a la programación web, bases de datos, y Javascript.