DAVID J. Malan: Entón, estamos de volta. Así, o alto nivel tema no momento agora é pilas de tecnoloxía, o que non é un termo técnico especialmente, é máis de unha captura todo para calquera número de combinacións de tecnoloxías que pode usar para resolver problemas. E quizais o máis forma axeitada de comezar sería a ollar linguas desde Eu sigo despexado unha morea e máis todos na sala ten Probablemente xa escoitou falar de polo menos un. E así por que non tentar distinguir what-- distinguir linguas e falar brevemente sobre cando faría escoller un sobre o outro, como son tipo de fundamentalmente diferentes, e sobre todo cando está conversando cos enxeñeiros, ou tentando decidir quen contratar, ou o que a posta en marcha proposta de luz verde, como é que realmente facer estes tipos de decisións. Entón imos chacoalhar algunhas cousas fóra. Das linguas que as persoas teñen escoitou falar sobre o que vén á mente? C. Aceptar. OK, C ++. ¿Que é iso? Audiencia: Python. DAVID J. Malan: Python. Excelente. Que máis? Visual Basic. Oín Java. Visual a.k.a. Basic-- VB. Java. Net, que é máis de unha captura todo para o que adoita C # como a linguaxe en cuestión. E déixeme falar diso. Entón, imos volver a iso. Síntoo? Sentímolo? Audiencia: SQL. DAVID J. Malan: Scratch? Audiencia: SQL. DAVID J. Malan: Oh, SQL. OK. SQL. Entón, imos volver isso-- en realidade, é boa-- tras o descanso tamén. Que máis? Audiencia: Oracle. DAVID J. Malan: Entón, Oracle, non unha lingua. En realidade, eles usarían SQL tamén. Entón, imos poñer que, tras a ruptura ben. E desculpe, algo aquí? Audiencia: Mathematica. DAVID J. Malan: Mathematica? OK, con certeza. E MATLAB é unha especie de alí ás veces. Audiencia: R. DAVID J. Malan: R. Imos pasar por riba aquí. Fortran. Claro. escola máis vella. Fortran. COBOL. Vou tirar BASIC. BASIC. Any-- Audiencia: MATLAB? DAVID J. Malan: MATLAB. Oh, vencelo a el. Algo? Non podo pensar en un par de outros. Podo pensar dalgúns outros. E cal foi a última? Audiencia: ASP. DAVID J. Malan: ASP? Si. Active Server Pages. Que, xeralmente, caería baixo outras linguas, por veces, C #, entón imos deixar isto fora. Pero imos voltar a iso para as estruturas e tal. Algo máis? PHP é popular. Ruby é outra. JavaScript, non debe ser confundida con Java, é outra. Este é un tipo de un lote. Así se pode certamente esmagadora, como se a lista non é xa, só para comezar a saber onde comezar. E así, por sorte, imos abordar isto dalgúns ángulos. En primeiro lugar, imos tratar categorizar polo menos algunhas das linguas en dúas grandes baldes, que relembram a conversa que tivemos antes das vacacións, onde falamos sobre a compilación, e código fonte e código de máquina, porque iso non como está todas as linguas traballar. Entón, imos arrincar algúns exemplos de-- ou anti-examples-- a este modelo. E entón, por que non nós falar sobre as aplicacións que linguas son xeralmente usados ​​para. E, francamente, aínda que Esta é unha lista moi longa, é só un subconxunto desta lista normalmente sacar estes días para resolver problemas. Certas linguas son máis novos do que outros. Certas linguas son máis popular do que outros. Non é como se ten esa unha tarefa exhaustiva antes de ao decidir entre estes varios idiomas. Entón, imos facelo. Tivemos anteriormente, o código fonte, e despois tivemos código de máquina. Whoops. Escribir a palabra incorrecta. código de máquina. E tivemos algún proceso en medio called-- si, o compilador. Así, o compilador. E o que o código de máquina en realidade é executado ao final será o seu CPU real. Noutras palabras, por código de máquina, eu significa o menor nivel instrucións que realmente entende unha CPU. Suma, resta, movemento, gardar, e as operacións deste tipo. E por iso este é o modelo para o que é xeralmente coñecidas como linguaxes compiladas. Quizais non sexa sorprendente. Polo tanto, este é o modelo para linguaxes compiladas. Pero resulta que hai outra clase de linguas chamado interpretado languages-- interpretados languages-- que son lixeiramente diferentes. Escribe o código fonte, executa Los través dun intérprete, e que intérprete é o que se executa na CPU. Noutras palabras, o que non Emit é o que, ao parecer? código de máquina. Os ceros e uns que a CPU -Se, en definitiva comprende. Polo tanto, nesta primeira versión e linguaxes como C, como vimos, escribe o código fonte que é un pouco escuro, pero polo menos é unha especie de inglés-like e é, polo menos lexible xa que se acostumar con iso. Executa-lo a través dun compilador e por fóra comeza, en última instancia, ceros e uns. Que unha simplificación esaxerada. Hai algúns outros pasos alí. En realidade, se xa escoitou falar o termo "linguaxe assembly" isto é un paso antes os ceros e uns. Que un pouco máis lexible, pero aínda moi misterioso. E non hai etapas intermedias que son, de feito, a ocorrer aquí. Pero a saída, en definitiva, Son eses ceros e uns. Pero en interpretada mundo, onde ten linguas que son interpretadas linguas, en realidade saltar este paso. Noutras palabras, cando escribe unha programa, basta executa-lo inmediatamente. Non recompila-lo e logo executalo, como eu fixen antes. Acaba de gravala-lo e executalo. E se queres facer un cambio rápido, facer un cambio rápido e executa-lo de novo. Polo tanto, non hai medio paso aquí. Agora, para o programa que escribín anteriormente, que foi este programa "Ola Mundo", podes razoablemente wonder-- ou poidan razoablemente state-- que non era que o tempo lento para compilar meu programa. Parece ter feito isto só como aquel. E non hai vídeo versións de compiladores. Eu estou usando unha versión moi misterioso, pero pode usar un botón xogo e que ía realmente facer a compilación para ti. Eu compilar o programa e, a continuación, unha vez máis, para executa-lo, só facelo. E xera na esquerda alí, "Ola!" Isto non parece tan oneroso. Pero cando os seus programas son máis que un, dous, tres, catro, cinco liñas de tempo, pode levar moito máis segundos para compilar. Ás veces incluso minutos ou un pouco de tempo para compilar. A pesar de todo, algúns dos maiores produtos do mundo son cousas como sistemas operativos, Microsoft Word, Microsoft Excel, que pode ser centos de miles ou mesmo millóns de liñas de código de lonxitude, e os que non facer só executar inmediatamente. Ademais, na web, é -Se moda para usar linguas interpretado simplemente, en parte porque pode facer un cambio como o creador e despois é só recargar inmediatamente a páxina do navegador e ver inmediatamente o resultado. E así HTML, aínda que non unha linguaxe de programación, é unha linguaxe que é interpretada. E vimos que mesmo efecto onte. Só actualizar a páxina despois de facer un cambio na Cloud9 e- voila-- ve un novo resultado. Entón, cal é a diferenza aquí? HTML, recall, tivemos HTML aberta, cabeza aberta, título aberta, preto do título, preto cabeza, corpo aberto, e así por diante. Tivemos todas esas marcas que moi moi dixo, dicir ao navegador que facer. Hey navegador, aquí vén unha páxina HTML. Hey navegador, aquí vén o título. Hey navegador, vén aquí algúns texto que debe ser ousado. E entón diga o contrario. Hey navegador, é iso ao texto negra. Hey navegador, é tanto para o corpo. E así por diante. E entón o que é un navegador? Un navegador é só un intérprete. É un programa que alguén como Microsoft ou Google escribiu, cuxo propósito na vida é ler unha linguaxe, coñecido como HTML, e interpretalo. De arriba abaixo, de esquerda a dereita. E cada vez que o navegador ve aberta soporte, título, fin do soporte, debe interpretar isto no sentido de, oh, que significa que eu debería poñer esas palabras xeito -se aquí na parte superior do seu navegador. Por iso, só fai o que o código HTML di. Pero non hai ceros e uns. Non hai ningunha compilación. Non facelo. O seu navegador non facelo. El só non está implicado. Así, no espírito destes en curso temas, hoxe e onte que parece ser unha característica marabillosa. Gardar o código e, a continuación, basta executa-lo ou interpretalo. Non hai etapas intermedias. Certamente hai un custo? Non todos poden ser Upside. Entón, o que pode ese custo ser? Audiencia: Space. DAVID J. Malan: Space. Entón, con certeza. No mundo compilado, ten non só o código fonte orixinal, tamén está creando e entón presuntamente aforro a máquina a code-- ceros e ones-- e iso é ten que tomar-se unha certa cantidade de espazo. Absolutamente. Entón, está custando-lle máis espazo. Si? Audiencia: navegadores poden interpretar de forma diferente. DAVID J. Malan: navegadores poden interpretala lo de forma diferente. Iso é verdade. Pero eu non estou seguro de que estou cómodo reivindicando iso é porque é interpretado. Isto é máis só porque é unha aplicación dunha lingua que se ten ambigüidades. Entón non imos moi confirmar aquel, pero bo palpite. O que máis pode ser o prezo pagado? Andrew? Audiencia: Está quedando dúas etapas, para que, polo tanto, ten crecente complexidade tamén. David J. Malan: A complex-- o aumento da complexidade, onde? Para quen? Audiencia: Entón, o intérprete etapa, está combinando o intérprete e compilador para só de maneira que se a-- DAVID J. Malan: Ah, OK. Ironicamente, é probablemente un pouco máis simple de implementar do intérprete, aínda que parece Upside rendemento desta comodidade. Avatares verdadeira. Pero que tipo de depende, I diría que, na linguaxe e sobre a forma na que eles foron sobre a súa aplicación. Non pode ser moito máis complexidade, en realidade, o compilador, só porque ten que ir de algo tan de alto nivel para algo tan baixo nivel. Pero un bo pensamento. Entón, dito doutro xeito, un programa compilado, cando se converteu estes ceros e uns, remata-se na linguaxe que a CPU fala, Tendo en conta que, neste lado do mundo, o programa que escribiu, o código que escribiu, nunca realmente se converter ao idioma real o ordenador fala. Os ceros e uns. Permanece no orixinal máis humano, agradable linguaxe, máis lexible. Entón, o que pode ser a implicación alí, se realmente non molesta converter o seu programa para a propia linguaxe que o ordenador subxacente fala? Audiencia: Non podería entender algo? DAVID J. Malan: Poder non entender algo. E iso pode claim-- se non entendía algo, iso é un erro ou falta de recurso no intérprete. De xeito que sería máis un erro que un custo. Audiencia: Ten acceso ao código fonte? DAVID J. Malan: Hai unha boa. Así, unha desvantaxe é que parecería ter acceso. Vostede, o usuario final, pode parecer ter acceso ao código fonte. E iso non é certo. Pero iso é verdade na caso de JavaScript, que veremos despois a pausa hoxe, que é unha linguaxe de programación interpretada que escribir en código fonte. Pero que o código fonte é trasladado dende o servidor para o navegador e corre no navegador do humano. Entón, aquí só podería abrir o fiestra, como se eu estivese facendo en Chrome, e mirar para el, como nós mesmos mirou onte con Google. Pode parecer un pouco incomprensible, pero está aí. Entón, iso é absolutamente un prezo pagado. Audiencia: axuste de rendemento? DAVID J. Malan: Yeah. E esa é a outra persoa importante. Hai un axuste de rendemento. Porque ten ese home medio, que por si só é un programa, entre vostede ea CPU, en oposición só para alimentar destas materias ceros e uns na CPU, hai un axuste de rendemento que levar cunha linguaxe interpretada. De tal xeito que, arbitrariamente, un programa que pode levar un segundo para ser executado en un ordenador ou un minutos para ser executado en un ordenador aquí, pode levar 10 segundos ou 10 minutos para ser executado en un ordenador aquí. El xeralmente non vai ser que moi de un factor difference-- de 10-- porque non hai optimizacións que podes facer. Pero é case sempre máis lento. Agora, o outro lado para que a preocupación é que, así ordenadores, cada 12 a 18 segundo months-- A lei de Moore, por así speak-- están só quedando máis rápido e máis rápido. Eu teño máis e máis espazo no disco. Eu teño máis e máis memoria RAM. Quen realmente importa? E iso é unha especie de argumento razoable. Efectivamente, unha das razóns por iso que podemos tolerar máis lento linguaxes interpretadas é porque nós, humanos, non se dá conta. Os ordenadores teñen chegado tan danado rápido. Considerando volta ao día, especialmente cando o hardware foi moito máis limitado, tiña menos de todo, foi moito máis caro por iso todo custa máis, así, entón realmente quería espremer tanto rendemento como podería. Pero iso é necesario escribir en un nivel máis baixo, se quixeren, cunha linguaxe compilada. Entón tomar este impacto no rendemento. Pero, xeralmente, os Upside parece valer a pena estes días. Ben, excepto para o cuestión da propiedade intelectual. Este tipo de lexibilidade do código, imos volver cando miramos para JavaScript. Entón, imos tratar categorizar polo menos algúns destes. Así, entre as linguaxes compiladas, nós tería C, C ++, tipo de, sorta, Java, aínda que sexa un pouco de unha excepción, por razóns que eu vou lle amosar en só un momento. C # sería nesta lista. Nós imos ollar para máis en só as linguaxes modernas. Todo ben. E parece ser moi alá. Considerando este lado da cerca, poderiamos Javascript e Python, e PHP e Ruby. E é que o suficiente para os últimos? Que se sente como unha abundancia de agora. OK. E entón dot dot dot, xa que a lista é interminable. E, de feito, se queremos só ter unha noción de isto-- Wikipedia, linguaxes compiladas. Estou supoñendo que podemos obter un lista máis exhaustiva. Entón, imos alí. Entón, aquí está a lista máis exhaustiva. E eu estaba esperando que alguén podería imaxinar D como lingua porque tamén existe, pero deixaron en D parecer. Aínda que non pode realmente ser unha E. Oh, en realidade, iso debe estar na lista estes días. Swift é, en realidade, unha linguaxe que Apple inventou que se usa agora, cada vez máis así, no desenvolvemento do iPhone. Pero imos voltar a que, coa nosa discusión de mobles en só un pouco tamén. Entón Swift tamén. E entón, se imos a interpretados language-- interpretados language-- entón é aquí unha lista aínda máis tamén. Entón, se só google e mirar na Wikipedia para estes, verás todo tipo de linguas. Pero o obxectivo é, para hoxe realmente, só resume-se cadra esta cuestión da propiedade intelectual e lexibilidade polo usuario final e rendemento, é outra persoa importante tamén. Así, entre linguas, déixeme ver se podemos darlle só algunhas mostras de idiomas. Non quero pasar por todas as linguas indefinidamente. Xa se preguntas o que é un determinada lingua parece? Fixemos ver un momento atrás. Por que non podemos ter un par das solicitudes de recursos. Quen quere ver o que outra lingua parece? Si. Audiencia: Java. DAVID J. Malan: Java. Todo ben. Entón imos para Java. E só para lle dar unha sample-- poderiamos escribir todo isto para fóra, pero sería máis rápido só para mirar o código de exemplo doutra persoa. Todo ben. Polo tanto, este é un bo exemplo? Whoops. OK. Entón aquí está a versión Java do programa que escribín anteriormente, "Ola mundo". Entón, Java, moitas veces vai ver o seu contrasinal "class". Entón verás un nome despois diso. Verá claves como vimos antes, e ás veces van en mesma liña, por veces, outras liñas, é unha especie de unha decisión persoal. Verá palabras clave como "Público", "estático", "baleiro". Pero fixemos ver "principal". "Principal" adoita o nome da función predefinida ou o bloque estándar de código que é executado en un programa. "Cadea". O que queremos dicir con cadea máis cedo? Usei-o tipo de casualmente. Unha corda é o que? Unha palabra. É como unha secuencia de caracteres. caracteres individuais, de volta á de volta para atrás, xeralmente nunha matriz, como xa discutir. E, de feito, ver esta sintaxe aquí, os dous corchetes? Isto significa que, hey ordenador, aquí vén unha matriz de cadeas. A notación corchete é utilizada para indicar que. E entón pode ser tomar unha adiviñar o que fai este destaque pedazo de código, probablemente, facer? Audiencia: A saída? DAVID J. Malan: Yeah. Ela imprime algo para a pantalla. Así, "sistema" é unha especie de referencia ao seu ordenador. "Out" significa que o ordenador de de saída ou da pantalla. Así, "ln System.out.print" probablemente significa? "LN". liña de impresión que programadores como deletrear algunhas palabras aparentemente fóra na súa totalidade e tomar atallos con outras palabras. Pero "ln" é a liña, polo tanto, liña de impresión. Entón, el imprime "Ola Mundo! ", Seguido por unha nova liña. Entón é iso. Pero Java é o que van chamada orientada a obxectos. E, de feito, só para dar un par de outras definicións alí que pode ver, en xeral, hai moitos tipos diferentes de linguas, pero o máis común son linguas de procedemento ou imperativas. existen funcional linguas, o cal non significa que os outros non son funcionais. E despois hai linguaxes orientadas a obxecto. E esta é quizais a mellor categorización da maioría das linguas que podería escoller para especie dun proxecto comercial típico. Iso sería máis, Coido que, de burato de rato para ir para abaixo, para tratar de explicar as varias diferenzas. Pero as linguas vimos así far-- C é un procedemento ou linguaxe imperativa. Máis recentemente inventado linguaxes tenden a ser, desculpe, orientada a obxectos, o que significa eles teñen outros recursos para eles. Podo explicar isto deste xeito? Non imos nin ir ata alí. medios orientados a obxectos podes implement-- podes modelar o mundo real algo máis eficaz. A humanidade, ao longo do tempo, descubriu, uau, sería bo se a miña lingua tiña este recurso ou este recurso. E é por iso que temos ata moitas linguas do mundo. As persoas razoables, intelixente persoas, de acordo ou desacordo e, invariablemente, especie de vir xuntos desenvolvemento de novas linguaxes todos xuntos. Caso en cuestión. Apple inventou Swift en esperanzas de redución presuntamente a barra para o desenvolvemento do iPhone, porque a anterior language-- Obxectivo chamado-C, que podería estar na nosa lista aqui-- era moito máis misterioso e moi máis difícil para embrulhar a mente ao redor. E como a programación está facendo indiscutibelmente máis accesibles e máis amplamente adoptada por persoas mesmo menos técnica, o goal-- É un fito moi valente para tratar diminuír a barreira de entrada, facendo as linguas propias máis doado para comezar, pero non menos poderosa necesariamente. E outra lingua. Por que non imos dar un ollo en algo así como Python, que é moi en voga nos días de hoxe. Python. Exemplo de programa. Vexamos. "Ola Mundo" linguas. Imos facelo. "Ola mundo". Imos ver se iso dá -Nos un bo exemplo. OK. Polo tanto, esta é realmente divertido. Entón, se Google "Ola Mundo", que pasa a ser un dos primeiros programas xa escrito nunha linguaxe moderna, así como unha proba de concepto, verás todo tipo de implementacións deste. Algunhas destas linguas Non teño sequera oído falar. Pero pode see-- imos ao básico, o que eu aprendín anos, en parte. Esta era unha lingua divertido porque tiña que, como o programador, número todas as súas liñas. Non ao contrario do que eu estaba facendo cando estaba escribindo pseudocódigo no documento amarelo anteriormente para busca binaria, para buscar un libro de teléfono. E así, se quería para ir a outra liña, vostede literalmente escribir, ir a 10, ou ir a 20. E se está escribindo liñas, os convención era para facer, esta é a liña 10, Esta é a liña 20, esta é a liña 30, 40, con nada entre eles, dándose así un espazo se decide, agarde un minuto, Eu debería ter engadido algúns máis código nalgún sitio. Aínda tivo sorte de nove oportunidades de espremer isto entre o seu programa antes tiña que manualmente renumerar todo. Polo tanto, este é o tipo do que quero dicir cando digo que o mundo xurdiu con novas características. Nalgún lugar ao longo do camiño alguén entender, neno é dicir estúpido. Esta é só a creación de traballar para o programador. Así, el ou ela só tipo de construción unha nova capa enriba do que de xeito que non se preocupe sobre o que liña de números de código é, en realidade. Entón, cando se pode escoller unha lingua ou outra? Ben, cal destes linguas tende oír falar máis en o seu propio mundo hoxe en día? Imos caer Objective-C tamén. Audiencia: C #. DAVID J. Malan: C #. Entón deixe-me cor. Nós temos a nosa outra cor en algún lugar? Entón C #. E o que vostede sabe sobre C #? Algo veñen á mente? Audiencia: É unha linguaxe de programación. DAVID J. Malan: É un linguaxe de programación. OK. Iso é verdade. Entón, estamos a falar de C #. C # tende a ser usado na ambientes Windows, por iso, se está escribindo software Microsoft para Windows, C # é moi comunmente usado, se é para o software de escritorio, ou mesmo software do teléfono en Windows Phone, Se xa tivo aqueles, ou na web, mesmo tamén. E, de feito, é posible Kareem ASP mencionado anteriormente? Entón hai tamén estes cousas chamadas estruturas, que podemos introducir, por extensión. Frameworks, como ASP. Soportes para Active Server Pages. E este é código e un modo de programación que, xeralmente, fai que sexa máis fácil para escribir aplicacións baseadas na web. Noutras palabras, sería super, Super chat para escribir un sitio en que a linguaxe C que xa vimos antes, porque tería que usar de impresión + F, que tería que usar esa contrasinal "Principal" e as claves. Unha morea de sintaxe arcano e visión para aplicar algo que é moi complexo. Unha páxina web. E así noutros idiomas evolucionaron para facer este tipo de cousas máis fácil. E, á súa vez, as persoas veñen-se cos cadros, unha especie de ferramentas que pode usar que o fan aínda máis doado para escribir páxinas web. Así, por exemplo, para facer isto moito máis concreto, déixeme abrir un arquivo de texto por un momento. E pode lembrar de onte que dixo algo como, isto é unha páxina web. HTML. Pechar HTML. Déixeme ir a cabeza e Só ten que facer o corpo aquí. Supoña que quería escribir non "Ola Mundo" pero "Ola David", onde David é o nome de usuario conectado neste momento. Que algo así como ASP vai facer, ou JSP-- que é servidor Java pages-- ou calquera número de outras estruturas é que non son linguas, per se. Son como software adicional que ía instalar no seu ambiente que facelo máis fácil de programar. Así, por exemplo, en vez de ter que facer algo así como "Ola, printf (" David ")" ou algo que se tipo de co-mingling-- o tipo de código que vimos antes-- faría algo moito máis simple, como "name%." E así por estas estruturas, como ASP-- e eu Non me lembro se eu estou quedando a sintaxe só á dereita para o ASP. JSP é un little-- é ese dereito? Así, con ASP, este é unha especie de sintaxe especial que algúns desenvolvedores decidiron isto pode axudar a xente. E podo expresar de forma máis sucinta espazos reservados, por exemplo. Como poñer un valor aquí, onde este nome valor non é N-A-M-E, é algún valor almacenado alí. Así, "nome", neste contexto, que chamariamos dunha variable. Álxebra ten variables como x e y, e z. Os programadores usan variables que son máis descritivo que x, y, e z, normalmente. Así, "nome" sería literalmente algún tipo de recipiente de memoria para algo así como D-A-V-I-D, para o meu nome, ou quen outra cousa é rexistrado na páxina web. E por iso este é o tipo de barrio comeza con certos ambientes. Entón, C # e algo ASP sería moi xeralmente pode usar nun mundo Windows independente da súa área de traballo software ou servidor web, especialmente se os seus servidores están á súa vez, Microsoft Windows e Microsoft IIS-- ou Internet Information Server, se eu comezar a sigla direita-- que é servidor web de Microsoft. Entón, o que outras linguas son persoas familiarizado con, ou xa escoitou falar máis veces que non? Audiencia: Eu sei que Python de tipo de un popular [inaudível]. DAVID J. Malan: Moi popular. Entón Python aquí emprégase a miúdo en aplicacións científicas ou datos ciencia, onde ten unha morea de datos que quere analizar e quere usar un linguaxe de programación para el. R pode xeralmente ser usada para ese así, nun contexto estatístico. Pero Python ten tantos características construído en. tantos adicional bibliotecas, como a xente di. As bibliotecas son só coleccións de código que outros escribiu que pode usar para que Non ten que reinventar as rodas. E así Python é moi comunmente usado en aplicacións de ciencia de datos. Pero tamén é moi comunmente usado en aplicacións web. Pode aplicar unha dinámica sitio usando Python. E polo sitio dinámico, I contido medio non só estática como se creou onte por só difícil de codificación no texto latino e outras cousas que tales, senón a capacidade facer o login, a capacidade de mercar algo, a capacidade de comprobar cos seus carrinhos da compra, ou similares. Todo iso esixe dinamismo e precisa de linguaxe como un deles. Audiencia: Entón non Python ten o seu propio extensión, similar a gustar [inaudível] DAVID J. Malan: fai. Así, no mundo de Python, Django é un cadro moi popular para Python. WSGI é outro mecanismo que é tipo de diferente desta pero semellante en espírito. É un add-on que permite que para executar código Python nun servidor. Hai outro-- si. Entón, eses que chamaremos de frameworks. E é un pouco de un abuso. Esta é unha tecnoloxía de servidor web. Pero nós imos mantelo simple e poñer que nesta columna, con todo. OK. WSGI. WSGI. Outra coisa-- e, en realidade, deixe mover-me que a súa propia columna, porque gritaba para min mesma por poñer-los no mesmo balde. Imos poñer isto en servidor características, digamos. Isto non é un termo técnico. Entón, aquí podemos estar WSGI. Hai CGI, que é un máis vello técnica para que serve idiomas como Perl ou PHP, ou algúns outros. Unha vez máis, eu mencionen estes termos non tanto a sorte de incutir-lles, pero para que se vexa Los algo simplemente google para ler máis. Non hai real zume para algunhas destas cousas. Pero imos voltar para as linguas. Falamos C #, Python. Que máis se pode usar para Programación web nos días de hoxe? Imos concentrar no que aínda. Audiencia: PHP. DAVID J. Malan: PHP. E imos voltar a este. Entón PHP é moi comunmente usado. PHP tende a obter un mal rap. Comezou como unha linguaxe aplicada por persoas que quizais non eran necesariamente os mellores deseñadores de linguaxe. E así pode ler todo tipo de artigos en liña sobre o quão malo PHP é. E, por desgraza, este é unha manifestación, en parte, de só os debates relixiosos que irrompen entre os programadores. E iso é algo paga a pena ter en conta, desde unha perspectiva de negocio, que é moi doado para as persoas técnicas para estar excitado coa súa opinións sobre certas cousas. E iso non significa necesariamente que o único gritando o máis alto ou cos máis fortes, opinión angriest é correcto. Moitas veces, realmente só non importa. E así a xente está só discutindo o que quere seus propios prexuízos ou zonas de confort son. E por iso ten que manter isto presente ao facer unha decisión, que só porque alguén di Esta é a linguaxe correcta para o traballo, isto pode ser verdade, pero tamén só podería ser é a Idioma da dereita dentro da súa propia capacidade definir ou zona de confort. Que non é malo, pero ten que entender que pode haber algún contexto alí. Hai algúns obxectivamente declaracións erróneas, como C é o idioma incorrecto usar estes días para aplicar sitios case sempre. Pero non é razoable quere dicir que calquera destes están errados que temos circulou ata agora. PHP pasou por moitas versións. Entón linguas tenden a ter versión números que lles están asociados. PHP é ata, penso eu, a versión 7 agora, entón ten sido en torno de moito tempo. E como linguas máis recente, eles moitas veces obter novas características. Pero tes que estar atento a iso porque se o seu sitio foi aplicados na versión 7 de PHP, pero estás a realizar o seu sitio web, ou que teña terceirizado o desenvolvemento do seu código a outra persoa e enviá Lo para ti ou enviá-lo para ti e din, aquí, poñer esta no seu servidor web, se o seu servidor web é un pouco anos outdated-- se é seu propio servidor ou un host-- web pode non funcionar. Entón, eses son os tipos de cousas que alguén que estar atento a ao actualizar un sitio ou implementar lo por primeira vez. Oín JavaScript anteriormente. Entón JavaScript é un interesante unha na que adoita do lado do cliente, como veremos tras o descanso, que significa que se executa no navegador do usuario. Pero tamén pode realizar JavaScript nos días de hoxe usando algo chamado Node.js cando Node.js é un mecanismo para execución código JavaScript no lado do servidor, en vez de usar Python, ou PHP, ou outras linguas. JavaScript é particularmente ben axeitado para aplicacións de chat e en tempo real aplicacións, mentres PHP non é un gran Idioma para aplicar algo como un servidor de chat, onde os usuarios estar conectado a el constantemente. PHP é máis dunha visita me Unha vez máis, volver resultado, e prema en outro enlace algúns segundos ou minutos a partir de agora. Considerando Node.js e JavaScript pode ser usado máis para conexións persistentes. Outros idiomas que sospeita son comunmente usados ​​para cousas web? Audiencia: Será que jQuery ser un cadro? DAVID J. Malan: Boa pregunta. Ningún dos dous. Eu chamaría jQuery biblioteca, onde novo unha biblioteca é só unha morea de código que alguén ten escrito que xeralmente resolve algúns problemas que fai, esperanza, máis fácil para que poida facer o seu traballo. E deixe-me facer un exemplo de isto no contexto da tea. No contexto da web non hai esta linguaxe, JavaScript, que veremos máis adiante, no que podería dicir algo así como isto-- "Document.getElementById." E o que eu chamalo onte? En primeiro lugar, penso eu, foi a identificación única que eu dei a un elemento que mirou como este. "P id =" primeira ">" e despois tivemos como "Lorem Ipsum", etcétera. Entón, se eu estivese escribindo un programa en JavaScript para manipular dalgunha forma, cambiar as páxinas web que nos estaban a xogar con onte Desexa usar este liña resaltada de código para este tramo particular HTML da miña páxina, ese nó particular, como imos chamalo. Con todo, en jQuery, en vez de escribir tanto, que é materia code-- JavaScript só fóra da caixa, que é como escribir ele-- vostede, en vez, só dicir, "#Primeiro." Isto é equivalente. E así con base só nesta mesma exemplo arcano, o que quizais é o argumento para usar jQuery? Por que un creador usar unha biblioteca como jQuery, con base neste exemplo illado, quizais? Audiencia: Menos código. DAVID J. Malan: Yeah. É menos código. É só máis rápido escribir. O contrapunto é que se parece máis asustado. Realmente non pode le-lo esquerda a dereita. De feito, xa que é na maior parte puntuación agora en vez de reais palabras, Podo tipo de inferir que "Document.getElementById" queda un elemento do documento polo seu ID. Realmente pode usar tal mnemônicos desta cousa aquí. Polo tanto, é un trade off. Hai unha sofisticación que vén frecuentemente co uso de bibliotecas, especialmente como jQuery. Pero a realidade é jQuery ten unha especie de ser un estándar de feito, de xeito que case calquera destes días que escribe código JavaScript usa jQuery ou algo como el, e non escribe máis a expresións como verboso isto porque unha vez máis, a humanidade aprendeu, uau, que foi tipo de unha oportunidade perdida para facer a nosa vida máis fácil. Así, os seres humanos facilitar as súas vidas. Boa pregunta. Outras linguas a considerar. Eu diría que entre esta lista Ruby é moi popular. E así no mundo da Ruby, hai un cadro chamados Rails, que é moi popular. Entón Ruby on Rails é un utilizada a expresión. Tamén neste mundo, déixeme círculo Java para o material web, onde no mundo de Java pode que JSP, ou Java Servlets, que é unha tecnoloxía común. E esta é só unha vez formas de utilización que a linguaxe nun ambiente de servidor. Entón o que significa isto? Se vostede ten un físico servidor, literalmente facer a descarga do software de servidor web e instala-lo de tal forma que ten soporte para unha das estas estruturas, co que podería, á súa vez, utilizar unha ou máis destas linguas. E, en realidade, se se rexistrar para como un servidor ou algunha da nube servizos falamos sobre onte, moitas veces as cousas só ven co configuración da máquina para ti. Non precisa configurar-lo manualmente. Pero se fixo, que é o lugar onde o papel do administrador do sistema, por así dicir, entra en xogo. El ou ela ía realmente facer este tipo de cousas para ti, ou o chamado webmaster veces quixo facelo por vostede. Todo ben. Calquera preguntas sobre algúns destes aquí? Ou calquera oportunidades no todo para preguntar sobre linguas? Frameworks? Entón deixe-me presentar só outra biblioteca que tamén é moi común nos días de hoxe. A lista podería continuar infinitamente. E esta biblioteca é unha especie de empezando a caer en desuso. Foi en torno. Foi popularizada por Twitter por algún tempo. E agora moitos sitios, moitos desenvolvedores usalo. Pero as cousas novas están chegando fóra e ben benvida. Pero déixeme darlle un sentido que significa usar unha biblioteca. Entón, de novo, JavaScript unha linguaxe moi popular. CSS, ou CSS, falamos de onte. Isto, tamén, é omnipresente. Ninguén fai unha páxina web hoxe sen o uso de HTML e CSS minimamente. Pero non sempre é doado de facer certas cousas. E entón déixeme ir getbootstrap.com. Whoops. Isto non é así que deletrear. Getbootstrap.com, que me vai levar á páxina de destino para esta biblioteca. Entón, eles xenerosamente chamo -Se un cadro, que é unha especie de especie de feira, pero eu chamaría tanto máis dunha biblioteca dun cadro. Pero estes son só semántica discutibles. Deixe-me ir ao seu guía CSS e déixeme ir algo así. Entón recordar o que as nosas formas mirou como onte en Cloud9? Foi moi feo. botóns da vella escola. Eu creo que o botón foi gris por estándar. E todo foi realmente formato moi messily. Entón, se quere que os seus formularios web para ollar algo nicer-- déixeme facer zoom aquí. E por máis agradable que realmente só significa estética moi detallista. Entón, teña en conta como a caixa de correo non A redondeado cantos rectangulares para el. Polo tanto, é un pouco máis limpo alí. Teña en conta que a palabra e-mail é alí ata que eu comece a escribir e, a continuación, el vai. Entón, iso é un pouco de bo recurso. Observe como a cousa é unha especie de brillo moi ben, que algunhas destas vostede obter gratuitamente desde o seu navegador, pero algúns iso é tamén bibliotecas, código que outras persoas teñen escrito que lle dar iso. Algo coma isto dáme o meu contrasinal. Este botón é un pouco máis sexy do que a estándar. Moi en voga no momento. Desde iOS 7 ou así, o mundo quedou moi plana, Tendo en conta que o mundo antes tiña moitas sombras, lotes de reflexións sobre as iconas. Moi parecido no mundo do vestiario, hai tendencias da moda que veñen e van. Agora todo é liso no seu teléfono. De feito, botóns no seu iPhone agora só enlaces azuis. Non hai, moitas veces incluso botóns circulares. Polo tanto, estas son só cousas que entran e saen de moda, e por iso esta é a forma como pode facer un formulario web ollar máis moderno. Botóns. Entón Bootstrap ten moitos belos botóns. Entón se queres azuis botóns, botóns verde, azul, laranxa, vermello. Bootstrap fai máis doado para facer isto. Estes son os tipos de cousas que podería absolutamente ter feito onte con CSS e con HTML, pero é só unha dor no pescozo. E así en vez diso, o que faría Bootstrap ten que facer é algo así. Se queres unha button-- Acontece que este é unha etiqueta HTML, non utilizar yesterday-- e queres que busque como este botón verde, vostede literalmente só darlle unha clase, que fixemos falar onte de "BTN BTN-éxito". Por esas palabras? Twitter, os autores do Bootstrap, veu con esas palabras. Poderían chamado -lhes calquera cousa que eles queren. Pero o que está a recibir é agora alguén en Twitter, neste caso, descubriu como é que faga unha botón fermoso e limpo e verde. Eles embalados en que a función nunha clase CSS, chamado "BTN" e "BTN-éxito", de xeito que calquera de nós pode agora usalo sen sequera pensar Lo. Entón, eles teñen abstraída a noción dun botón verde polo que non se preocupe con implementar lo nós mesmos. Podemos realmente concentrarse na implantación cousas de interese para nós. Se rolar para abaixo aquí. Mensaxes de erro na pantalla. Ás veces quere unha pequena mensaxe aparecendo na parte superior do seu navegador. Calquera de nós podería facelo con algún esforzo, tras a lección de onte, pero por que ía se preocupar? Aquel é tal desinteressante detalle estético. Imos estar na ombreiros de Bootstrap e deixalos darnos cousas como esta, onde nós literalmente, para obter unha caixa vermella, Só ten que facer un parágrafo tag cunha clase de-- pena. "Bg-perigo" nos daría esta caixa vermella no seu lugar. Agora imos ao as cousas máis interesantes. Se eu volver a arriba esta páxina e ir Compoñentes, agora o mundo está máis interesante. Por exemplo, moi común é menús suspendidos como este. Este sería un absoluto dor de aplicar. E non foi por moito tempo atrás que programadores tería que aplicar estes tipos de menús a partir de cero. Pero é un paradigma tan común que as bibliotecas como Bootstrap só darlle a posibilidade de facer unha no menú desplegable lonxe, moito máis facilmente. Non hai unha forma de facelo, pero se eu ler a documentación Gustaríame ver iso, OK, eu teño que usar este HTML, se eu queira un menú suspendido que se comporta así. Do mesmo xeito, imos ao botón desplegable. Entón, iso é aínda máis extravagante. Se quero iso para parecerse a un botón pero ese pequeno triángulo significa I debe premer nel e obter este menú, este é usar unha linguaxe chamada JavaScript. E todos nós poderíamos aplicar isto JavaScript. Pero, de novo, iso é unha roda non quere reinventar. Só quere tiralo a biblioteca de andel para este. Imos a algo como barras de progreso. Entón, algo como isto é legal. Se xa viu un progreso bar movendo na pantalla, implantación que moitas veces é só unha icona de spinning. De feito, só como un aparte, deixe me ir Ajax-- o que é? Información Ajax? Whoops. Ajaxinfo. Déixeme lembrar a dirección. Alí imos nós. Entón, se xa viu algunha animación mentres que a páxina está cargando, ou pensar, ou aproveitamento, ou a creación de algo, Pode ver estas animacións como estes. Entón, imos ollar para algo como este aquí, e imos escoller unha cor de primeiro plano verde, que se sente tipo de agradable. Podo facer clic isto? Ven un. OK. Nós imos só ir con vermello porque iso é o que está a recibir. Entón, aquí temos. Entón, se xa viu iso nunha pantalla, en que de súpeto aparece e, a continuación, desaparece de súpeto, o que é que está aplicando iso? Ben, este é só un GIF. G-I-F. E esta é unha animación arquivo, o que significa só é como un cómic da vella escola. Hai só unha morea de diferentes cadros que van [gagueira] e só repetindo. E iso está creando o ilusión de movemento. Así, logo que unha páxina é feito cargar ou facer algo, o que un programador faría? Ben, el ou ela simplemente esconde esta imaxe. Entón todo unha barra de progreso é é tipo de gustar dunha película que está a asistir. Es tipo de alleo ao feito que non está realmente facendo algo, é só moverse. E entón, cando se fai progresando, eles só esconde-lo ou desactiva-lo. E iso é toda a maxia que está a suceder alí. Bootstrap dálle algo un pouco máis sofisticado, a través do cal pode realmente ver unha porcentaxe en que, pero iso tamén é só unha especie dunha animación simple. Vexamos algúns finais máis exemplos complexos aquí. Algo así como un modal. Alguén sabe o que é un modal é? Unha fiestra modalidade adoita un que se quere para asumir o control dos novos coñecementos e impedilo de facer calquera outra cousa. É unha especie de forza o usuario do a atención sobre o centro da pantalla, prendelo los para fóra, normalmente, de todo o resto. Entón, se eu publicar esta demo, o pantalla xeralmente fan a cinza. Ben, como podemos facelo gris? Ben, nós probablemente só cambiou a cor de fondo como fixemos onte ou algo así. Quizais sexa unha superposición que semitransparente. E agora entende que podes facer cousas extravagantes como este. Entón, se fai clic no botón e quere un pouco de pop fóra a aparecer, pode facelo. E así que se preocupa tudo-- si? Audiencia: Así, con Bootstrap, para obtelo incorporado, é tan sinxelo que como onte fixemos a páxina de estilos CSS? DAVID J. Malan: Realmente. Pregunta moi boa. Déixeme ir á Introdución. E si. Todo o que tes que facer, a fin de uso Bootstrap é esencialmente copiar e pegar estes tres longas colas de código na parte superior do seu propio página-- web a cabeza do seu página-- e está instalado e funcionando. E hai diferentes formas de facer el, pero iso sería máis sinxelo. Entón, o que é útil sobre todo isto? Ben, se non é moi o implementador dun sitio web pero estás proxecto-lo, ou quere achegar alguén con diagramas de arame, por así dicir, ou interpretacións só do artista do que quere facer, eu, a este día, moitas veces vai a un sitio web como Bootstrap, onde se eu quere aplicar algo-- como recentemente no campus queriamos aplicar unha ferramenta baseada na web para navegar catálogo de cursos da Universidade de Harvard, facendo máis doado para os estudantes para navegar a través de cursos e engade cursos para lista da compra, por así dicir, a especie de decidir que querían tomar. Eu estaba tentando imaxinar para min, o que faría ingredientes queremos usar para construír este? Que a interface de usuario pode como? E só mirando a través dun sitio web como o este ou outros sitios de biblioteca, pode gañar inspiración porque wow, Podo usar este widget, e este widget, e este widget. E entón realmente o que o programador empeza para facer, especialmente nestes días neste máis moderno mundo da programación web, é a programación está cada vez máis sobre a fiação cousas xuntos. Especie de tomar este fóra da andel, esta fóra da andel, este fora da andel, e ser o intelixente para conectar todos eses puntos, pero, finalmente, construír algo novo de pé sobre os ombreiros doutros, para que non pasar un mes implantación dunha caída estúpida de menú para abaixo, que é realmente difícil de facer se queres que para traballar en Chrome, e IE e Firefox, e calquera número de outros navegadores. É por iso que hai esa rica software de fonte comercial e aberta industria tamén. Audiencia: Entón non Bootstrap estar actualizado e ten que, a continuación, actualizar os seus enlaces? DAVID J. Malan: fai. Ben, si, fai. Bootstrap está actualmente na versión 3.3.6. E normalmente o que fazer-- este é realmente paga a pena mencionar. Non é o que adoita coñecido como un control de versións semántica sistema en todo o mundo. Non todo o mundo fai iso. Pero se xa viu os números de versión que son de forma x.y.z-- Así, por exemplo, a primeira versión dun programa pode ser 1.0.0. Ou se é moi, moi beta, ou mesmo estado de alfa, o que significa que o uso pola súa conta e risco, non é realmente preparado para o horario nobre, pode ata comezar 0.0.1 ou algún tal designación. Pero se o software comeza en versión 1.0, 1.0.0 ou equivalentemente, Normalmente, o que é común estes dias-- aínda non é omnipresent-- se unha empresa é un correccións programador individuais algún erro nalgunha peza de software que realmente Foi un erro, cuxa corrección non debe impacto que a todos-- non cambia o comportamento do programa, el só corrixe algo que non estaba funcionando properly-- faría normalmente actualizar o valor z alí. O que significa que alguén como Kareem podería simplemente entrar no seu sitio web, cegamente cambiar o número de versión partir da versión 1.0.0 para 1.0.1, salvalo, envialo, e, en teoría, non teñen que preocúpanse que el está só roto seu sitio por mor certa falta de funcionalidade, porque algo rompe. Mentres tanto, si o programador ou algunha empresa estaban a facer un significativo cambio que engade funcionalidades, Eu podería actualizar 1.1.0 porque son realmente cambiar o comportamento da biblioteca. Estou dándolle quizais máis funcionalidade. Finalmente, se eu fose, en realidade, cambiar fundamentalmente o software para tanto que vai romper moitos sitios de usuarios ou aplicacións, entón eu son grazas, neste modelo, a actualizar o número de versión principal tamén, que é un cambio de rotura. Noutras palabras, eu podería ter deixou de prestar apoio a aqueles caída down menu. Entón, se actualizar a 2.0, a metade seu sitio pode deixar de funcionar. E esta é unha especie de sinal para a comunidade, como o que é envolto facer unha actualización. Unha boa oportunidade para levantar. Outras preguntas? Todo ben. Ben, imos dar un ollo a unha final, tema neste segmento da programación de pilas de tecnoloxía, nomeadamente relacionadas co móbil. Así, no mundo de teléfonos móbiles hoxe vostede have-- e iPads, e superficies, e todo tipo de devices-- ten unha morea de opcións cando trátase de aplicar unha aplicación ou un sitio para dispositivos móbiles do seu cliente. Entón, só para indicar o evidente, quizais nos días de hoxe, cales son as plataformas para desenvolver no espazo móbil? Que dispositivos podes querer apoiar coa súa aplicación ou sitio web? Audiencia: Apple. DAVID J. Malan: OK. Así, os dispositivos de Apple. Entón isto significa que o iPhone, e que significa iPad, e quizais mesmo iPod. Que máis? Olivier? Audiencia: Android. DAVID J. Malan: Android. OK. teléfonos para Android, Android comprimidos, o mercado Android é aínda máis confuso porque-- e incluso Apple está facendo confuso. Considerando Once Upon a Time iPhone era un determinado tamaño, e iPad era un determinado tamaño, e iPod foi un certo tamaño, agora temos Minis do iPad, eo fina queridos, e iPhone 6 Plus e 6. Está facendo unha desorde. Está facendo o mundo Android. E digo isto con tipo de rolamento os ollos, porque a partir dun creador perspectiva, é un dor no pescozo cando Non ten Steve Jobs ' visión de control absoluto sobre todas estas especificacións. Apple aínda fai porque son os construíndo o hardware. Pero é bo, se Eu son un programador de software, só sei que o meu iPhone é sempre vai para ser tan grande, porque isto significa que sempre saber como espazo na pantalla que eu teño. Entón, se eu queira poñer unha icona na esquina superior esquerda, vai estar na mesma exacta poñer no dispositivo de cada cliente. Pero no mundo do iPhone 6s e iPhone 6 Pluses e no mundo de Android teléfonos, é todo sobre o mapa. E así pasa a ser máis difícil de programa cousas, especialmente interfaces de usuario, porque agora ten que comezar a organizar súas interfaces de usuario relativamente, non absolutamente. E o mesmo foi feito en navegadores, e escritorios e portátiles para os anos porque, claro, teñen diferentes tamaños de pantalla. Que máis? Pode ter superficies, como de Microsoft. Pode have-- Audiencia: Windows Phone. DAVID J. Malan: ¿Que é iso? Audiencia: Windows Phone. DAVID J. Malan: Si. Así, os teléfonos con Windows aínda se pode atopar. Tipo de tipo de BlackBerrys, pero eles seguen intentando. E entón acios de outros dispositivos. Así, para a maior parte, imos dicir que estes son os únicos preocuparse no momento. Certamente as cousas de Apple, certamente o material Android, e entre Windows, como comprimidos de superficie parecen estar en recuperación moi ben. E así entre os dispositivos, se quere rolar para fóra, digamos, unha presenza móbil para a súa empresa, que tipo de decisións de deseño ten que facer? Ben, xa dixen no mundo de Apple, hai polo menos dúas linguas que adoitan ser utilizados. Un deles foi chamado de que? Audiencia: Objective-C. DAVID J. Malan: Yeah. Entón, Objective-C, que é a máis antiga. É tamén a lingua que moitos Mac aplicacións aínda están escritos en. A continuación, o outro máis novo era? Audiencia: Swift. DAVID J. Malan: Swift. E estes son o tipo de dous para saber para impresionar a xente. A continuación, no mundo Android, que lingua Android usar? Audiencia: C #? Audiencia: Java. DAVID J. Malan: Java é a linguaxe do "du jour". No mundo Windows, con certeza, diremos C # nese caso. Así, xa que é o tipo de irritante, porque o que é o take-away para unha empresa propietario ou alguén que tanto para a implantación dunha presenza móbil? Como, caramba? Como, se eu queira apoiar un moi ampla base de usuarios, Teño que escribir, ao parecer, tres aplicacións separadas. Un en cada unha destas linguas, un en Java, un en C #. E aínda que eu quero a función ser idénticos, non importa. Eu aínda teño que empregar diferentes linguas porque Apple e Microsoft, e Google todo o apoio diferentes ambientes. E iso foi todo un reto para os anos. De volta ao día, cando a xente usadas para mercar software nunha tenda de ordenador en encoller caixas trapalladas que tería que alcanzar a andel Mac, ou for-- quizais este moi pequeno Mac shelf-- ou andel maior Windows e mercar algúns programas. E moitas veces, non había nin algo para ti no andel Mac. Por que? Así, as empresas decidiron o 90% do mundo, o 95% da poboación mundial ten PCs, por que se preocupar mesmo aplicar cousas en Mac OS? Como un total aside-- digression-- por que é Mac que parece tan impermeable aos virus, e gusanos e ameazas de seguridade? Apple é mellor con iso? Mellor en manter os ordenadores seguros? Audiencia: audiencia menor? DAVID J. Malan: Isto é Probablemente o máis grande de bits a el. Así, os moitos usuarios de Mac teñen reivindicado por moito tempo, oh, usar un Mac, estará inmune a virus, e gusanos e todas esas cousas que hai moito atormentado PCs. Isto pódese deber a que Apple ten mellores programadores e escribir mellor software, ou o sistema operativo foi mellor deseñado. Quizais, pero probablemente non. Probablemente é que cando está un 12-year-old, ou 30 algo tipo de sentado na casa escribindo software malicioso para asumir o mundo, está indo a ir atrás o público-obxectivo moito máis grande. O 95% do mundo que pode estar executando Windows ou algún as súas variantes. Polo tanto, hai un pouco de ambos os dous lados. Pero, para o seu crédito, Apple, que eu saiba, Non ten realmente elogiado a como máis seguro, sempre que está só invitando o drama se facer esa reivindicación, eu creo. Todo ben. Sen estar moi lonxe abaixo que, como é que imos solucionar isto? Ten que comprar ou ten que pagar tres persoas diferentes para desenvolver súas aplicacións? Escolle un sobre o outro? O que debe orientar a súa aquí a pensar que pensas? Kareem? Non. Alguén máis. Audiencia: Basta chegar co hardware. DAVID J. Malan: Benvida co hardware? Que queres dicir? Audiencia: Para o ambiente. [Inaudível] DAVID J. Malan: Entón, iso é verdade. Pero os seus clientes, Mentres tanto, pode ter iPhones, poderían teléfonos Android, eles Pode ter comprimidos feitos por Microsoft. Entón como é que ten unha estratexia móbil Por todas estas diferentes usuarios? Parece que se conta, digamos $ 1.000 para facer un iPhone aplicación, que vai a custa US $ 2.000 para facer unha aplicación para iPhone e un aplicación Android, ou US $ 3.000 Tamén permite dispositivos de Windows tamén. Isto pode ser un gran eufemismo, e pode ata non ser unha relación lineal así. Audiencia: Se queres ter unha aplicación ou non, pode que o sitio responsabilidade. DAVID J. Malan: Good. Audiencia: Ou pode ter unha aplicación nativa. DAVID J. Malan: Yeah. Así, en todo este contexto aquí, temos falado sobre o que persoas chamaría de aplicacións nativos. Isto é aplicacións que están escritas na lingua nativa deste dispositivo. Entón nativa Objective-C é Swift código, ou en Java, ou C #. O que significa que cando baixar, imos din Snapchat, unha aplicación popular, ou cando baixar Facebook para un teléfono, está baixo ou o versión escrita para o seu iPhone, ou por escrito para o seu teléfono Android, ou por escrito para a súa superficie. Pero hai unha alternativa. Como Olivier estaba se referindo, realmente pode usar HTML 5 no seu lugar, utilizando o que se chama web aplicación, en que simplemente aplicar a súa presenza móbil e calquera función. O que quero dicir con presenza móbil? Como o seu sitio web que ten o seu información de contacto, unha lista de todos seus produtos, quizais teña un centro cesta, quizais venda a través del. Sexa cal sexa a súa aplicación é, implementar lo, non en Objective-C, ou Swift, ou Java ou C #, pero HTML 5, que era a lingua miramos na onte con JavaScript e CSS. E o que é agradable sobre os tres é que para executa-los, ten que só o anaco de software? Audiencia: Un navegador web. DAVID J. Malan: Un navegador web. E o mellor que sei, todos estes dispositivos veñen con navegadores web, para que o usuario non ten que instalar algo especial. Entón podes só o teu público, os seus clientes, ir ACME.COM na súa navegador e só ter unha experiencia baseada na web que aínda enche a pantalla, pero non se preocupe todos estes custos e toda esa complexidade. Pero certamente non vai ser un problema aquí, non? Especialmente se eu apunto que hai uns anos, a primeira versión do aplicación móbil de Facebook foi principalmente unha aplicación HTML 5. E eles teñen, máis recentemente, reimplemented lo nas súas outras aplicacións. Entón, por que non inmediatamente quere dicir, Ben, obviamente imos facelo? O que pode os custos ocultos ser? Audiencia: Performance. DAVID J. Malan: Performance? Que queres dicir? Audiencia: A aplicación nativa ten máis rendemento. DAVID J. Malan: Para que se realidade, a un par de razóns. Podemos simplificar a resposta. E lembrar nosa discusión sobre interpretados en relación linguaxes compiladas. Este é o HTML 5 e, con ela, só para ser claro, JavaScript-- comunmente escrito JS-- e CSS son todos linguaxes interpretadas, a pesar de só JavaScript é unha linguaxe de programación. E así contra estes, que algúns destes son compilados polo menos estes three-- Objective-C, Java e C # - estes, en teoría, debe só ser máis rápido. Pero hai outra realidade for-- Audiencia: Funcionalidades? DAVID J. Malan: ¿Que é iso? Audiencia: características. DAVID J. Malan: Funcionalidade? E logo? Audiencia: Use a cámara o teléfono ou algo así. Pode usalos co navegador. DAVID J. Malan: Exactamente. Están sec-- Audiencia: [inaudível] DAVID J. Malan: Esta é outra boa. Hai recursos que veñen con teléfonos móbiles hoxe que non son, por deseño, para a seguridade razóns, accesibles a navegadores web. Porque sería tipo de algo asustado só cando visitar google.com, ou cnn.com ou calquera website.com, que ese sitio ten o poder de transformar na súa cámara, sacar unha foto de ti, e logo, usalo. Pero non vai querer un sitio ao chou que visita por primeira vez ter esa capacidade. E entón o que teléfono os fabricantes adoitan facer é que simplemente negar o acceso para este tipo de información para un navegador, o que significa que Non podes aplicar a cámara. Non pode aplicar as notificacións push, os sinais sonoros que recibe na súa pantalla con mensaxes curtas. E, de feito, mesmo GPS único tipo do tipo de dispoñible para navegadores web. Se xa, nun portátil ou nun dispositivo móbil, tirou algo quizais CNN.com, pero tamén estacións de noticias locais tenden a facelo, será solicitada moitas veces con un message-- foxnews.com Quere saber a súa situación. Aprobar ou denegar. Ben, o navegador está intentando acceder súa información GPS do teléfono. Pero, por sorte, Microsoft, e Apple e Google decidiron que se sente como é unha situación útil, queremos que Google Maps e outras ferramentas para o traballo, pero nós non queremos a rastexaren a xente para fóra por só permite a calquera sitio web para facelo. Entón, imos especie de encontro medio e solicitar ao usuario. Pero iso non é necesariamente o caso con todo o hardware, como a cámara e con push notificacións e similares, así pode ter que sacrificar determinadas características. Pero o rendemento tamén. Cada vez menos perceptible nos días de hoxe, se cadra como LTE sobre as capturas e máis rápido velocidades de internet en teléfonos, pero pode tipo de sentir a diferenza. Como unha aplicación baseado na web só se sente máis lento, normalmente, que unha aplicación nativa, en parte porque unha aplicación baseado na web por definición, está en internet. Está falando cos servidores web. E se a súa conexión de rede é lento, aínda a desprazamento pode ser lento. Pero unha aplicación nativa, ten xa pre-downloaded-- probablemente cando está na casa a partir da App Store, ou polo menos pre- descargado Lo na súa totalidade antes, calquera que sexa a súa speed-- conexión e agora ten todo o bits que xeralmente necesita. Excepto quizais algúns datos que vén a partir dun servidor. Entón, eses son os trade-offs aquí. Hai unha especie de medio compromiso, en realidade. E eu creo que você-- Audiencia: Use os datos fóra de liña. Nos programas nativos, pode [inaudível] DAVID J. Malan: Absolutamente. Polo tanto, está a cuestión offline, que é realmente irritante Se non pode xogar algún partido ou utilización algúns programas só porque está nun soto nalgún lugar ou nun ascensor. Unha aplicación nativa é resilientes con maior probabilidade de encontro que, supoñendo que ten todo o datos que precisa local. Polo tanto, hai unha terceira opción aquí. E imos deseñar o espectro como aplicación nativa aquí e web app aquí. E o que é o medio é algo called-- e eu creo que pode ter usou a palabra antes, quizais? aplicación híbrida. E como a palabra indica, é algo no medio. É unha especie de unha aplicación web e é unha especie de unha aplicación nativa. E o que significa isto? Acontece que hai frameworks-- para usar un termo de software earlier-- que outras persoas teñen escrito para cada unha destas plataformas. Estes e aínda outros dispositivos. De feito, déixeme ir PhoneGap, que é un tal marco que creo Adobe posúe agora. Déixeme ir á Introdución. Vexamos. Vexa se podo ver unha lista de ferramentas. Hardware. Comezar. hardware PhoneGap. Vexamos. PhoneGap acceso ao hardware. Déixeme ver se podemos atopar algo gráfico que adoitaban ter. Isto está noutro sitio. Isto é útil? Non. Isto vai perder o noso tempo alí. hardware PhoneGap. Dispositivos. API dispositivo. Non, eles cambiaron-lo. PhoneGap. Imos dar unha última ollada neste e ver se eu te podo amosar. Comezar. Instalar PhoneGap. Instalar aplicación móbil. Imos. Eles reorganizou todo. Todo ben. Ah, todo ben. Ben, aquí imos nós. Iso non é todo o que esclarecedor, pero este é o que eu estaba tipo de busca. Entón PhoneGap é un cadro que Pode descargar de balde que lle dá algún código de inicio, esencialmente. Entón, algún código que teñen escrito que non fai moito. Pero o que lle dá esencialmente é o equivalente dunha aplicación que pon un rectángulo grande na pantalla do usuario. Non poñer unha barra de URL, como un navegador, non pon un enderezo. El só pon un gran rectángulo. E configurar esta gran rectángulo, debaixo do capó, para realmente ir acme.com, ou que m.acme.com, por mobile.acme.com, pero o usuario non sabe están nese enderezo. Todo o que vemos é a contido da páxina web. Pero o que é agradable sobre este ser unha aplicación híbrido é que o que PhoneGap e outras empresas están dando é están dándolle un pouco de código en Objective-C é Swift, ou un pouco de código en Java, ou un pouco de código en C #, e esencialmente, todo o que ten para ofrecer é minimamente o dirección da súa aplicación baseado na web. E entón unir este todos xuntos e telo quere acceder ao seu sitio web a través de Internet, ou mesmo caché nun lugar, copiar dentro da aplicación, logo gardar a súa aplicación en formato iPhone, teléfono Android formato, formato de superficie, ou calquera número de dispositivos. Cargar cada unha destas versións ao Play Store Google á App Store, ao Windows Store, e así por diante. E agora, pode ter todos os seus público descargar verdadeiramente unha aplicación nativa, se ben a maior parte do código estaba escrito por outra persoa, pero o contido que aplicación nativa todo veñen, normalmente, o seu propio sitio web. Entón continúa a escribir a súa web HTML, JavaScript e CSS. Entón, por que confunden estas fronteiras? Por que ter unha aplicación híbrida que é unha especie de nativo, senón tamén tipo de web con base? Que é o punto enteiro de engadindo esta complexidade? É dicir, aínda así, só a partir de mirando a través desta páxina, a Guía de Introdución sente como el ten unha morea de pasos para min para facer antes de can-- Audiencia: Reutilización? DAVID J. Malan: Reutilización? Que queres dicir? Audiencia: do código fonte. Así, o mesmo código sería executado todos os diferentes plataformas. DAVID J. Malan: Yeah. Audiencia: [inaudível] DAVID J. Malan: Perfecto. Se o tempo está axustado e se non teñen que moitas developers-- quizais ten un creador e el ou ela certamente non sabe todo isto environments-- certamente non moito, e, por suposto, non é posible programar en todos os tres ao mesmo tempo e enviar tres produtos en tempo permitido para un, podes telo ou construír todo HTML e JavaScript e CSS, e, a continuación, aprender algo pequena pouco aplicacións nativos, só o suficiente para baixar un cadro como este, para, a continuación, enviar o seu produto para todas as varias tendas de aplicacións de xeito que agora ten unha aplicación nativa. Así que parece ser unha Win-Win, pero, de novo, para ser claro, Cales son os posibles custos ou as trampas? Audiencia: Performance? DAVID J. Malan: Yeah. Rendemento. É difícil de describir verbalmente. Entón, se tomar só en fe unha aplicación móbil, unha aplicación web será tipicamente realizar máis lentamente. Pode non parecer moi seguro porque no iPhone e en móbiles Android, e dispositivos Windows, hai sempre unha especie de aspecto estándar ea sensación de todo o botóns e os menús. E empresas no web, pode tentar achegar estas estética con bibliotecas como Bootstrap, pero o user-- un user-- astuto vai saber que algo non é certo aquí. E iso é bo, quizais iso non é un gran negocio. Pero o problema de rendemento absolutamente é un gran negocio. As aplicacións nativos tenden a só ser moito máis sensible e, polo tanto, mellor. E así, o que entón se pode o mellor dos dous mundos? Se é especialmente un pequeno empresa ou un pequeno grupo, Non ten os recursos para desenvolver unha aplicación en paralelo en todas as tres plataformas, e, francamente, Parece que isto é unha mala idea de ningún xeito porque se estende-lo e sobre os tres realizar simultaneamente, debemos ter engadido algunhas características ou feito algo diferente, agora ten que reparalos lo tres partes, non un. Que é quizais o mellor aquí estratexia global, se recursos e tempo están axustado? Audiencia: Basta facelo en iOS. DAVID J. Malan: Isto non é razoable. Portadas polo menos na EUA, son super popular. Android aínda parece dominante cota de mercado, a nivel mundial, en xeral. Entón non está necesariamente representativa da totalidade do globo esta semana. Pero iso é absolutamente un de decisións. É dicir, no campus aquí creo que un número atroz ou a porcentaxe de alumnos de graduación teñen iPhones e teléfonos non Android. Pero no exterior, é unha especie de todo o contrario. Entón decide en base a súa audiencia. Como vostede sabe o que o seu público? Ben, aprendemos un truco onte. Podería preguntar-lles. Se vostede ten un público cativo pode enviar-lles un formulario de procura. Ou podería só facer o que? Audiencia: Google Analytics? DAVID J. Malan: ¿Que é iso? Audiencia: Google Analytics. DAVID J. Malan: Google Analytics. Si. Ou aínda máis tipo de técnica, só ollar os seus propios web servidores rexistros. Porque o que pasa Cada vez que un navegador, se portátil, escritorio ou teléfono visitar o seu sitio? Eles enviar a cabeceira HTTP que mostra o que navegador e sistema operativo que está a usar. Así, pode inferir, con alta probabilidade, o demográfica está a usar ese camiño e logo axustar. Entón, creo que iso é inaceptable. Isto é tipo de mal para o negocio se os usuarios de Android non pode mercar os nosos trebellos. Audiencia: Se é vai cobrar ou non? DAVID J. Malan: Si vai cobrar? Entón, OK, que obtén o que paga. Audiencia: Se o seu programa vai ser libre ou se é gonna-- DAVID J. Malan: OK. Entón, talvez podería recuperar custos desta maneira, ou-? Audiencia: Lin un estudo, xa que dixo máis usuarios de Apple pagar por programas versus-- DAVID J. Malan: Isto é verdade porque xa están pagando máis para os seus dispositivos. Así, non é razoable unha suposición. Audiencia: [inaudível] DAVID J. Malan: OK. Entón, se eles están máis dispostos a pagar, a continuación, para o inferno cos usuarios de Android. Eles non van pagar connosco calquera cousa de calquera maneira. Tamén podemos centrar as nosas prioridades, polo menos para os primeiros poucos meses ou un ano, en iOS. Totalmente razoable. ¿Que é un máis inclusivo estratexia que iso? Maybe-- que é isto? Audiencia: [inaudível] DAVID J. Malan: A máis expensive-- quizais por iso investir máis em-- ir adiante. Audiencia: É. Só un sitio web móbil. DAVID J. Malan: Entón, facer un web móbil e non mesmo preocuparse esa complexidade. Ou quizais unha estratexia razoable, que incluso Facebook levou, é comezar con un híbrido aplicación porque non é moito máis difícil de facelo que iso. Vostede só ten que ler algúns documentación e descubrir como para cargar as cousas á App Store. Entón, talvez comece con este, de xeito que o primeiro día, podes apoiar os seus usuarios. E entón, só como Facebook e outras empresas teñen feito, cando ten os recursos, ten a xente, por que non reimplementar só a aplicación IOS. Aínda ten algo para todos, aínda que sexa unha experiencia inferior quizais, coa aplicación híbrido. Pero pode gradualmente rolar para fóra e substituír o seu curto prazo medidas das aplicacións híbridos con súas aplicacións máis nativas. Audiencia: Pero con unha aplicación híbrido ten Terá acceso a recursos móbiles? DAVID J. Malan: Non necesariamente. Entón, quizais facer unha decisión consciente desde o inicio, só se pode subir fotos no iPhone aplicación nativa para Facebook, pero non sobre a aplicación Android, inicialmente, por exemplo. E iso é un pouco de unha mentira, porque aplicacións web teñen máis restriccións de aplicacións híbridas que se transforma a fóra, e se ler a documentación para PhoneGap e as cousas como, as persoas veñen-se con formas para dar aplicacións baseadas na web acceso á cámara, desde que está a usar unha aplicación híbrida. Como é que isto funciona? Unha vez que o híbrido aplicación, por definición, ten un pouco de código en Objective-C, e Swift, e Java, ou C #, pode acceder ao hardware. Non necesariamente todo, pero podería moi ben ser o caso de que ten suficiente de acceso para a cámara, mesmo para plataformas Android, por exemplo, en que o exemplo artificial. Algunha pregunta? Todo ben. Por que non imos tomar a nosa 15 minutos de intervalo aquí. Imos continuar a tres con unha final ollar para a programación web, bases de datos, e Javascript.