1 00:00:00,000 --> 00:00:01,291 >> DAVID J. MALAN: Então, estamos de volta. 2 00:00:01,291 --> 00:00:03,050 Assim, o alto nível tema no momento agora 3 00:00:03,050 --> 00:00:06,440 é pilhas de tecnologia, o que não é um termo técnico particularmente, 4 00:00:06,440 --> 00:00:09,960 é mais de uma captura tudo para qualquer número de combinações de tecnologias 5 00:00:09,960 --> 00:00:11,840 que você pode usar para resolver problemas. 6 00:00:11,840 --> 00:00:14,850 E talvez o mais maneira apropriada de começar 7 00:00:14,850 --> 00:00:18,110 seria a olhar para línguas desde Eu continuo despejando um monte 8 00:00:18,110 --> 00:00:21,000 e mais todos na sala tem provavelmente já ouviu falar de pelo menos um. 9 00:00:21,000 --> 00:00:25,730 >> E assim por que não tentar distinguir what-- distinguir línguas 10 00:00:25,730 --> 00:00:28,932 e falar brevemente sobre quando faria escolher um sobre o outro, como eles são 11 00:00:28,932 --> 00:00:30,890 tipo de fundamentalmente diferentes, e especialmente 12 00:00:30,890 --> 00:00:34,830 quando você está conversando com os engenheiros, ou tentando decidir quem contratar, 13 00:00:34,830 --> 00:00:37,652 ou o que a implementação proposta de luz verde, 14 00:00:37,652 --> 00:00:39,860 como é que você realmente fazer esses tipos de decisões. 15 00:00:39,860 --> 00:00:41,890 >> Então vamos chacoalhar algumas coisas fora. 16 00:00:41,890 --> 00:00:45,300 Das línguas que as pessoas têm ouviu falar sobre, o que vem à mente? 17 00:00:45,300 --> 00:00:48,030 C. OK. 18 00:00:48,030 --> 00:00:48,757 OK, C ++. 19 00:00:48,757 --> 00:00:51,400 20 00:00:51,400 --> 00:00:51,990 O que é isso? 21 00:00:51,990 --> 00:00:52,390 >> AUDIÊNCIA: Python. 22 00:00:52,390 --> 00:00:53,348 >> DAVID J. MALAN: Python. 23 00:00:53,348 --> 00:00:55,330 Excelente. 24 00:00:55,330 --> 00:00:57,000 O quê mais? 25 00:00:57,000 --> 00:00:58,810 Visual básico. 26 00:00:58,810 --> 00:01:01,100 Ouvi Java. 27 00:01:01,100 --> 00:01:02,610 Visual a.k.a. Basic-- 28 00:01:02,610 --> 00:01:03,150 VB. 29 00:01:03,150 --> 00:01:03,650 Java. 30 00:01:03,650 --> 00:01:07,294 31 00:01:07,294 --> 00:01:12,810 NET, que é mais de uma captura todos para o que é normalmente C # como a linguagem 32 00:01:12,810 --> 00:01:13,770 em questão. 33 00:01:13,770 --> 00:01:14,770 E deixe-me mencionar isso. 34 00:01:14,770 --> 00:01:15,900 Então, vamos voltar a isso. 35 00:01:15,900 --> 00:01:17,560 Eu sinto Muito? 36 00:01:17,560 --> 00:01:18,170 Desculpa? 37 00:01:18,170 --> 00:01:19,877 >> AUDIÊNCIA: SQL. 38 00:01:19,877 --> 00:01:20,876 DAVID J. MALAN: Scratch? 39 00:01:20,876 --> 00:01:21,610 AUDIÊNCIA: SQL. 40 00:01:21,610 --> 00:01:22,610 DAVID J. MALAN: Oh, SQL. 41 00:01:22,610 --> 00:01:23,110 ESTÁ BEM. 42 00:01:23,110 --> 00:01:23,750 SQL. 43 00:01:23,750 --> 00:01:29,510 Então, vamos voltar a isso-- na verdade, é boa-- após o intervalo também. 44 00:01:29,510 --> 00:01:30,572 O quê mais? 45 00:01:30,572 --> 00:01:32,530 >> AUDIÊNCIA: Oracle. 46 00:01:32,530 --> 00:01:34,670 >> DAVID J. MALAN: Então, Oracle, não uma língua. 47 00:01:34,670 --> 00:01:36,560 Na verdade, eles usariam SQL também. 48 00:01:36,560 --> 00:01:38,360 Então, vamos colocar que, após a ruptura bem. 49 00:01:38,360 --> 00:01:39,744 E desculpe, algo aqui? 50 00:01:39,744 --> 00:01:40,660 AUDIÊNCIA: Mathematica. 51 00:01:40,660 --> 00:01:41,390 DAVID J. MALAN: Mathematica? 52 00:01:41,390 --> 00:01:42,303 OK, claro. 53 00:01:42,303 --> 00:01:46,150 54 00:01:46,150 --> 00:01:49,180 E MATLAB é uma espécie de lá às vezes. 55 00:01:49,180 --> 00:01:50,060 >> AUDIÊNCIA: R. 56 00:01:50,060 --> 00:01:51,755 >> DAVID J. MALAN: R. Vamos passar por cima aqui. 57 00:01:51,755 --> 00:01:54,710 58 00:01:54,710 --> 00:01:55,210 Fortran. 59 00:01:55,210 --> 00:01:55,880 Certo. 60 00:01:55,880 --> 00:01:57,910 escola mais velha. 61 00:01:57,910 --> 00:01:59,390 Fortran. 62 00:01:59,390 --> 00:02:01,550 COBOL. 63 00:02:01,550 --> 00:02:02,410 Vou jogar fora BASIC. 64 00:02:02,410 --> 00:02:05,990 65 00:02:05,990 --> 00:02:08,539 BASIC. 66 00:02:08,539 --> 00:02:09,390 Qualquer-- 67 00:02:09,390 --> 00:02:10,352 >> AUDIÊNCIA: MATLAB? 68 00:02:10,352 --> 00:02:11,310 DAVID J. MALAN: MATLAB. 69 00:02:11,310 --> 00:02:12,248 Oh, vencê-lo a ele. 70 00:02:12,248 --> 00:02:15,370 71 00:02:15,370 --> 00:02:15,870 Qualquer coisa? 72 00:02:15,870 --> 00:02:18,700 Não consigo pensar em um par de outros. 73 00:02:18,700 --> 00:02:21,876 Eu posso pensar de alguns outros. 74 00:02:21,876 --> 00:02:22,792 E qual foi a última? 75 00:02:22,792 --> 00:02:23,970 >> AUDIÊNCIA: ASP. 76 00:02:23,970 --> 00:02:25,030 >> DAVID J. MALAN: ASP? 77 00:02:25,030 --> 00:02:26,100 Sim. 78 00:02:26,100 --> 00:02:27,100 Active Server Pages. 79 00:02:27,100 --> 00:02:30,270 Que, geralmente, cairia sob outras línguas, por vezes, C #, 80 00:02:30,270 --> 00:02:32,040 então vamos deixar isso fora. 81 00:02:32,040 --> 00:02:35,510 Mas vamos voltar a isso para as estruturas e tal. 82 00:02:35,510 --> 00:02:36,290 Algo mais? 83 00:02:36,290 --> 00:02:39,020 PHP é popular. 84 00:02:39,020 --> 00:02:41,710 Ruby é outra. 85 00:02:41,710 --> 00:02:48,230 JavaScript, não deve ser confundida com Java, é outra. 86 00:02:48,230 --> 00:02:49,570 Esse é um tipo de um lote. 87 00:02:49,570 --> 00:02:53,590 >> Assim pode ser certamente esmagadora, como se a lista não é já, 88 00:02:53,590 --> 00:02:55,650 só para começar a saber onde começar. 89 00:02:55,650 --> 00:02:58,130 E assim, felizmente, vamos abordar isso de alguns ângulos. 90 00:02:58,130 --> 00:03:03,520 Primeiro, vamos tentar categorizar pelo menos algumas das línguas 91 00:03:03,520 --> 00:03:06,790 em duas grandes baldes, que relembram a conversa que tivemos antes das férias, 92 00:03:06,790 --> 00:03:09,630 onde falamos sobre a compilação, e código-fonte e código de máquina, 93 00:03:09,630 --> 00:03:11,440 porque isso não como está todas as línguas trabalhar. 94 00:03:11,440 --> 00:03:15,640 Então, vamos arrancar alguns exemplos de-- ou anti-examples-- a esse modelo. 95 00:03:15,640 --> 00:03:18,490 >> E então, por que não nós falar sobre as aplicações 96 00:03:18,490 --> 00:03:20,390 que línguas são geralmente usados ​​para. 97 00:03:20,390 --> 00:03:22,840 E, francamente, mesmo que esta é uma lista bastante longa, 98 00:03:22,840 --> 00:03:26,320 é apenas um subconjunto desta lista que você normalmente tirar esses dias 99 00:03:26,320 --> 00:03:27,220 resolver problemas. 100 00:03:27,220 --> 00:03:29,150 Certas línguas são mais novos do que outros. 101 00:03:29,150 --> 00:03:31,170 Certas línguas são mais popular do que outros. 102 00:03:31,170 --> 00:03:34,370 Então não é como se você tem essa uma tarefa exaustiva antes de 103 00:03:34,370 --> 00:03:36,970 ao decidir entre estes vários idiomas. 104 00:03:36,970 --> 00:03:40,110 >> Então, vamos fazer isso. 105 00:03:40,110 --> 00:03:45,870 Tivemos anteriormente, o código fonte, e depois tivemos código de máquina. 106 00:03:45,870 --> 00:03:48,590 107 00:03:48,590 --> 00:03:49,400 Whoops. 108 00:03:49,400 --> 00:03:50,910 Escrever a palavra errada. 109 00:03:50,910 --> 00:03:52,740 Código da máquina. 110 00:03:52,740 --> 00:03:57,549 E nós tivemos algum processo na meio called-- sim, o compilador. 111 00:03:57,549 --> 00:03:58,215 Assim, o compilador. 112 00:03:58,215 --> 00:04:00,760 113 00:04:00,760 --> 00:04:03,910 >> E o que o código de máquina na verdade é executado em no final 114 00:04:03,910 --> 00:04:05,680 vai ser o seu CPU real. 115 00:04:05,680 --> 00:04:09,660 Em outras palavras, por código de máquina, eu significa o menor nível instruções 116 00:04:09,660 --> 00:04:11,330 que realmente compreende uma CPU. 117 00:04:11,330 --> 00:04:15,100 Adição, subtração, movimento, salvar, e as operações desse tipo. 118 00:04:15,100 --> 00:04:19,700 E por isso este é o modelo para o que é geralmente conhecidas como linguagens compiladas. 119 00:04:19,700 --> 00:04:21,000 Talvez não seja surpreendente. 120 00:04:21,000 --> 00:04:23,550 >> Portanto, este é o modelo para linguagens compiladas. 121 00:04:23,550 --> 00:04:25,970 Mas acontece que há outra classe de línguas 122 00:04:25,970 --> 00:04:32,650 chamado interpretado languages-- interpretados languages-- 123 00:04:32,650 --> 00:04:34,030 que são ligeiramente diferentes. 124 00:04:34,030 --> 00:04:41,660 Você escreve no código-fonte, execute -los através de um intérprete, 125 00:04:41,660 --> 00:04:45,440 e que intérprete é o que é executado na CPU. 126 00:04:45,440 --> 00:04:50,120 Em outras palavras, o que você não Emit é o que, aparentemente? 127 00:04:50,120 --> 00:04:50,980 Código da máquina. 128 00:04:50,980 --> 00:04:54,290 Os zeros e uns que a CPU -se, em última análise compreende. 129 00:04:54,290 --> 00:04:59,780 >> Portanto, nesta primeira versão e linguagens como C, como vimos, 130 00:04:59,780 --> 00:05:02,040 você escreve no código fonte que é um pouco misterioso, 131 00:05:02,040 --> 00:05:05,300 mas pelo menos é uma espécie de Inglês-like e é, pelo menos legível 132 00:05:05,300 --> 00:05:06,780 uma vez que você se acostumar com isso. 133 00:05:06,780 --> 00:05:10,100 Você executá-lo através de um compilador e por fora você começa, em última instância, zeros e uns. 134 00:05:10,100 --> 00:05:11,340 >> Que uma simplificação exagerada. 135 00:05:11,340 --> 00:05:12,839 Existem alguns outros passos lá. 136 00:05:12,839 --> 00:05:15,530 Na verdade, se você já ouviu falar o termo "linguagem assembly" 137 00:05:15,530 --> 00:05:17,990 isso é um passo antes os zeros e uns. 138 00:05:17,990 --> 00:05:20,949 Que um pouco mais legível, mas ainda bastante misterioso. 139 00:05:20,949 --> 00:05:23,740 E então não há etapas intermediárias que são, de fato, acontecendo aqui. 140 00:05:23,740 --> 00:05:26,360 Mas a saída, em última análise, São esses zeros e uns. 141 00:05:26,360 --> 00:05:28,990 >> Mas na interpretada mundo, onde você tem 142 00:05:28,990 --> 00:05:32,680 línguas que são interpretadas línguas, na verdade você pular essa etapa. 143 00:05:32,680 --> 00:05:36,010 Em outras palavras, quando você escreve uma programa, basta executá-lo imediatamente. 144 00:05:36,010 --> 00:05:38,960 Você não compilá-lo e em seguida, executá-lo, como eu fiz antes. 145 00:05:38,960 --> 00:05:41,132 Você acabou de escrevê-lo e executá-lo. 146 00:05:41,132 --> 00:05:44,340 E se você quiser fazer uma mudança rápida, você fazer uma mudança rápida e executá-lo novamente. 147 00:05:44,340 --> 00:05:46,640 Portanto, não há meio passo aqui. 148 00:05:46,640 --> 00:05:50,840 >> Agora, para o programa que eu escrevi anteriormente, que foi este programa "Olá Mundo", 149 00:05:50,840 --> 00:05:53,660 você pode razoavelmente wonder-- ou possam razoavelmente 150 00:05:53,660 --> 00:05:58,570 state-- que não era que o tempo demorado para compilar meu programa. 151 00:05:58,570 --> 00:06:00,337 Parece ter feito isso apenas como aquele. 152 00:06:00,337 --> 00:06:02,170 E não há gráfica versões de compiladores. 153 00:06:02,170 --> 00:06:05,270 Eu estou usando uma versão muito misterioso, mas você pode apertar um botão jogo 154 00:06:05,270 --> 00:06:07,887 e que iria realmente fazer a compilação para você. 155 00:06:07,887 --> 00:06:10,720 Eu compilei o programa e, em seguida, mais uma vez, para executá-lo, eu só fazer isso. 156 00:06:10,720 --> 00:06:13,820 E ele gera na esquerda lá, "Olá!" 157 00:06:13,820 --> 00:06:15,530 Isso não parece tão oneroso. 158 00:06:15,530 --> 00:06:19,920 Mas quando seus programas são mais do que apenas um, dois, três, 159 00:06:19,920 --> 00:06:25,470 quatro, cinco linhas de tempo, pode levar muito mais segundos para compilar. 160 00:06:25,470 --> 00:06:28,310 Às vezes até mesmo minutos ou um pouco de tempo para compilar. 161 00:06:28,310 --> 00:06:30,480 Apesar de tudo, alguns dos maiores produtos do mundo 162 00:06:30,480 --> 00:06:35,040 são coisas como sistemas operacionais, Microsoft Word, Microsoft Excel, 163 00:06:35,040 --> 00:06:39,070 que pode ser centenas de milhares ou mesmo milhões de linhas de código de comprimento, 164 00:06:39,070 --> 00:06:41,300 e os que não fazer apenas executar imediatamente. 165 00:06:41,300 --> 00:06:44,560 >> Além disso, na web, é -se moda para usar 166 00:06:44,560 --> 00:06:47,600 línguas interpretado simplesmente, em parte porque você 167 00:06:47,600 --> 00:06:50,570 pode fazer uma mudança como o desenvolvedor e depois é só recarregar imediatamente 168 00:06:50,570 --> 00:06:52,570 a página do browser e ver imediatamente o resultado. 169 00:06:52,570 --> 00:06:56,160 E assim HTML, embora não uma linguagem de programação, 170 00:06:56,160 --> 00:06:58,860 é uma linguagem que é interpretada. 171 00:06:58,860 --> 00:07:00,770 E vimos que mesmo efeito ontem. 172 00:07:00,770 --> 00:07:04,070 Você apenas recarregar a página depois de fazer uma mudança na Cloud9 e- voila-- 173 00:07:04,070 --> 00:07:05,560 você vê um novo resultado. 174 00:07:05,560 --> 00:07:07,090 >> Então, qual é a diferença aqui? 175 00:07:07,090 --> 00:07:13,190 Em HTML, recall, tivemos HTML aberta, cabeça aberta, título aberta, perto do título, 176 00:07:13,190 --> 00:07:15,250 perto cabeça, corpo aberto, e assim por diante. 177 00:07:15,250 --> 00:07:19,149 Tivemos todas essas marcas que muito muito disse, dizer ao navegador o que fazer. 178 00:07:19,149 --> 00:07:20,690 Hey navegador, aqui vem uma página HTML. 179 00:07:20,690 --> 00:07:22,170 Hey navegador, aqui vem o título. 180 00:07:22,170 --> 00:07:24,429 Hey navegador, vem aqui alguns texto que deve ser ousado. 181 00:07:24,429 --> 00:07:25,720 E então você diga o contrário. 182 00:07:25,720 --> 00:07:27,330 Hey navegador, é isso para o texto negrito. 183 00:07:27,330 --> 00:07:28,830 Hey navegador, é isso para o corpo. 184 00:07:28,830 --> 00:07:29,740 E assim por diante. 185 00:07:29,740 --> 00:07:31,130 >> E então o que é um navegador? 186 00:07:31,130 --> 00:07:33,170 Um navegador é apenas um intérprete. 187 00:07:33,170 --> 00:07:36,090 É um programa que alguém como Microsoft ou o Google tem escrito, 188 00:07:36,090 --> 00:07:39,160 cujo propósito na vida é ler uma linguagem, conhecido como HTML, 189 00:07:39,160 --> 00:07:39,890 e interpretá-lo. 190 00:07:39,890 --> 00:07:41,290 De cima para baixo, da esquerda para a direita. 191 00:07:41,290 --> 00:07:46,880 E sempre que o navegador vê aberta suporte, título, fim do suporte, 192 00:07:46,880 --> 00:07:48,960 ele deve interpretar isso no sentido de, oh, que 193 00:07:48,960 --> 00:07:52,490 significa que eu deveria colocar essas palavras maneira -se aqui na parte superior do navegador. 194 00:07:52,490 --> 00:07:55,700 >> Por isso, só faz o que o código HTML diz. 195 00:07:55,700 --> 00:07:57,240 Mas não há zeros e uns. 196 00:07:57,240 --> 00:07:58,250 Não há nenhuma compilação. 197 00:07:58,250 --> 00:07:58,890 Você não fazê-lo. 198 00:07:58,890 --> 00:07:59,931 O navegador não fazê-lo. 199 00:07:59,931 --> 00:08:01,710 Ele só não está envolvido. 200 00:08:01,710 --> 00:08:05,890 >> Assim, no espírito destes em curso tópicos, hoje e ontem, 201 00:08:05,890 --> 00:08:08,400 que parece ser uma característica maravilhosa. 202 00:08:08,400 --> 00:08:11,410 Você salvar o seu código e, em seguida, basta executá-lo ou interpretá-lo. 203 00:08:11,410 --> 00:08:13,790 Não há etapas intermediárias. 204 00:08:13,790 --> 00:08:15,690 Certamente há um custo? 205 00:08:15,690 --> 00:08:16,810 Nem todos podem ser upsides. 206 00:08:16,810 --> 00:08:19,964 Então, o que pode esse custo ser? 207 00:08:19,964 --> 00:08:20,940 >> AUDIÊNCIA: Space. 208 00:08:20,940 --> 00:08:22,370 >> DAVID J. MALAN: Space. 209 00:08:22,370 --> 00:08:23,370 Então, com certeza. 210 00:08:23,370 --> 00:08:26,920 No mundo compilado, você tem não apenas o código-fonte original, 211 00:08:26,920 --> 00:08:29,657 você também está criando e então presumivelmente poupança 212 00:08:29,657 --> 00:08:31,740 a máquina a code-- zeros e ones-- e isso é 213 00:08:31,740 --> 00:08:33,870 tem que tomar-se uma certa quantidade de espaço. 214 00:08:33,870 --> 00:08:34,429 Absolutamente. 215 00:08:34,429 --> 00:08:35,765 Então, ele está custando-lhe mais espaço. 216 00:08:35,765 --> 00:08:39,289 217 00:08:39,289 --> 00:08:39,789 Sim? 218 00:08:39,789 --> 00:08:43,280 >> Audiência: navegadores podem interpretar de forma diferente. 219 00:08:43,280 --> 00:08:46,770 >> DAVID J. MALAN: navegadores podem interpretá-lo de forma diferente. 220 00:08:46,770 --> 00:08:48,622 Isso é verdade. 221 00:08:48,622 --> 00:08:50,330 Mas eu não tenho certeza que estou confortável reivindicando 222 00:08:50,330 --> 00:08:51,840 isso é porque ele é interpretado. 223 00:08:51,840 --> 00:08:56,340 Isso é mais só porque é uma aplicação de uma língua 224 00:08:56,340 --> 00:08:58,050 que se tem ambiguidades. 225 00:08:58,050 --> 00:09:01,570 Então não vamos muito confirmar aquele, mas bom palpite. 226 00:09:01,570 --> 00:09:03,103 O que mais pode ser o preço pago? 227 00:09:03,103 --> 00:09:03,602 Andrew? 228 00:09:03,602 --> 00:09:05,912 >> AUDIÊNCIA: Você está combinando duas etapas, para que, portanto, 229 00:09:05,912 --> 00:09:08,300 tem crescente complexidade também. 230 00:09:08,300 --> 00:09:11,040 >> David J. MALAN: A complex-- o aumento da complexidade, onde? 231 00:09:11,040 --> 00:09:12,270 Para quem? 232 00:09:12,270 --> 00:09:16,748 >> AUDIÊNCIA: Então, no interpretador etapa, você está combinando o intérprete 233 00:09:16,748 --> 00:09:19,120 e compilador para apenas levando-se a-- 234 00:09:19,120 --> 00:09:21,100 >> DAVID J. MALAN: Ah, OK. 235 00:09:21,100 --> 00:09:25,240 Ironicamente, é provavelmente um pouco mais simples de implementar do intérprete, 236 00:09:25,240 --> 00:09:29,530 mesmo que parece upsides rendimento desta conveniência. 237 00:09:29,530 --> 00:09:30,550 Então possivelmente verdadeira. 238 00:09:30,550 --> 00:09:32,716 Mas que tipo de depende, I diria que, na linguagem 239 00:09:32,716 --> 00:09:35,720 e sobre a forma como eles foram sobre a sua aplicação. 240 00:09:35,720 --> 00:09:38,535 Não pode ser muito mais complexidade, na verdade, no compilador, 241 00:09:38,535 --> 00:09:41,410 só porque você tem que ir de algo tão de alto nível para algo 242 00:09:41,410 --> 00:09:42,560 tão baixo nível. 243 00:09:42,560 --> 00:09:45,340 Mas um bom pensamento. 244 00:09:45,340 --> 00:09:50,770 >> Então, dito de outra forma, um programa compilado, quando se transformou em esses zeros e uns, 245 00:09:50,770 --> 00:09:54,470 termina-se na linguagem que a CPU fala, 246 00:09:54,470 --> 00:09:57,850 Considerando que, neste lado do mundo, o programa que você escreveu, 247 00:09:57,850 --> 00:10:02,527 o código que você escreveu, nunca realmente é convertido para o idioma real 248 00:10:02,527 --> 00:10:03,360 o computador fala. 249 00:10:03,360 --> 00:10:04,190 Os zeros e uns. 250 00:10:04,190 --> 00:10:08,480 Ele permanece no original mais humano, amigável linguagem, mais legível. 251 00:10:08,480 --> 00:10:11,720 Então, o que pode ser a implicação lá, se você realmente não 252 00:10:11,720 --> 00:10:15,020 incomoda converter seu programa para a própria linguagem 253 00:10:15,020 --> 00:10:18,013 que o computador subjacente fala? 254 00:10:18,013 --> 00:10:19,780 >> AUDIÊNCIA: Não poderia entender alguma coisa? 255 00:10:19,780 --> 00:10:21,170 >> DAVID J. MALAN: Poder não entender alguma coisa. 256 00:10:21,170 --> 00:10:23,297 E isso pode claim-- se ele não entendia 257 00:10:23,297 --> 00:10:25,880 alguma coisa, isso é um erro ou falta de recurso no interpretador. 258 00:10:25,880 --> 00:10:28,544 De modo que seria mais um erro do que um custo. 259 00:10:28,544 --> 00:10:30,419 >> AUDIÊNCIA: Você tem acesso ao código-fonte? 260 00:10:30,419 --> 00:10:31,877 DAVID J. MALAN: Há uma boa. 261 00:10:31,877 --> 00:10:34,140 Assim, uma desvantagem é que você pareceria ter acesso. 262 00:10:34,140 --> 00:10:37,006 Você, o usuário final, pode parecer ter acesso ao código-fonte. 263 00:10:37,006 --> 00:10:38,130 E isso nem sempre é verdade. 264 00:10:38,130 --> 00:10:39,660 Mas isso é verdade na caso de JavaScript, 265 00:10:39,660 --> 00:10:41,660 que veremos depois a pausa hoje, que 266 00:10:41,660 --> 00:10:45,720 é uma linguagem de programação interpretada que você escrever em código fonte. 267 00:10:45,720 --> 00:10:48,890 >> Mas que o código fonte é transferido a partir do servidor para o navegador 268 00:10:48,890 --> 00:10:51,392 e é executado no navegador do humano. 269 00:10:51,392 --> 00:10:54,350 Então, aqui ela só poderia abrir o janela, como se eu estivesse fazendo no Chrome, 270 00:10:54,350 --> 00:10:57,740 e olhar para ele, como nós mesmos olhou para ontem com o Google. 271 00:10:57,740 --> 00:11:00,420 Pode parecer um pouco incompreensível, mas ele está lá. 272 00:11:00,420 --> 00:11:03,482 Então, isso é absolutamente um preço pago. 273 00:11:03,482 --> 00:11:04,565 AUDIÊNCIA: acerto de desempenho? 274 00:11:04,565 --> 00:11:05,020 DAVID J. MALAN: Yeah. 275 00:11:05,020 --> 00:11:06,260 E essa é a outra pessoa importante. 276 00:11:06,260 --> 00:11:07,380 Há um acerto de desempenho. 277 00:11:07,380 --> 00:11:10,100 Porque você tem esse homem médio, que por si só 278 00:11:10,100 --> 00:11:13,740 é um programa, entre você e a CPU, em oposição 279 00:11:13,740 --> 00:11:17,880 apenas para alimentar dessas matérias zeros e uns na CPU, 280 00:11:17,880 --> 00:11:21,060 há um acerto de desempenho que você levar com uma linguagem interpretada. 281 00:11:21,060 --> 00:11:24,240 De tal modo que, arbitrariamente, um programa que pode demorar um segundo 282 00:11:24,240 --> 00:11:27,840 para ser executado em um computador ou um minutos para ser executado em um computador aqui, 283 00:11:27,840 --> 00:11:32,059 pode demorar 10 segundos ou 10 minutos para ser executado em um computador aqui. 284 00:11:32,059 --> 00:11:35,100 Ele geralmente não vai ser que muito de um fator difference-- de 10-- 285 00:11:35,100 --> 00:11:36,808 porque não há otimizações que você pode fazer. 286 00:11:36,808 --> 00:11:38,680 Mas é quase sempre mais lento. 287 00:11:38,680 --> 00:11:43,070 Agora, o outro lado para que a preocupação é que, bem computadores, cada 12 288 00:11:43,070 --> 00:11:45,970 a 18 de acordo com months-- A lei de Moore, por assim speak-- 289 00:11:45,970 --> 00:11:47,600 estão apenas ficando mais rápido e mais rápido. 290 00:11:47,600 --> 00:11:48,750 Eu tenho mais e mais espaço em disco. 291 00:11:48,750 --> 00:11:49,791 Eu tenho mais e mais memória RAM. 292 00:11:49,791 --> 00:11:50,620 Quem realmente se importa? 293 00:11:50,620 --> 00:11:52,328 >> E isso é uma espécie de argumento razoável. 294 00:11:52,328 --> 00:11:55,740 Com efeito, uma das razões por isso que podemos tolerar mais lento 295 00:11:55,740 --> 00:11:58,480 linguagens interpretadas é porque nós, humanos, não se apercebe. 296 00:11:58,480 --> 00:12:00,690 Os computadores têm chegado tão danado rápido. 297 00:12:00,690 --> 00:12:04,520 Considerando volta ao dia, especialmente quando o hardware foi muito mais limitado, 298 00:12:04,520 --> 00:12:06,860 você tinha menos de tudo, foi muito mais caro 299 00:12:06,860 --> 00:12:10,570 por isso tudo custa mais, bem, então você realmente queria espremer 300 00:12:10,570 --> 00:12:12,590 tanto desempenho quanto você poderia. 301 00:12:12,590 --> 00:12:16,400 Mas isso necessário escrever em um nível mais baixo, se quiserem, 302 00:12:16,400 --> 00:12:18,090 com uma linguagem compilada. 303 00:12:18,090 --> 00:12:20,830 >> Então você tomar este impacto no desempenho. 304 00:12:20,830 --> 00:12:24,780 Mas, geralmente, os upsides parece valer a pena estes dias. 305 00:12:24,780 --> 00:12:26,850 Bem, excepto para o questão da propriedade intelectual. 306 00:12:26,850 --> 00:12:28,641 Esse tipo de legibilidade do código, nós vamos 307 00:12:28,641 --> 00:12:30,640 voltar a quando olhamos para JavaScript. 308 00:12:30,640 --> 00:12:33,140 >> Então, vamos tentar categorizar pelo menos alguns destes. 309 00:12:33,140 --> 00:12:41,650 Assim, entre as linguagens compiladas, nós teria C, C ++, tipo de, sorta, Java, 310 00:12:41,650 --> 00:12:48,120 embora seja um pouco de uma exceção, por razões que eu vou lhe mostrar em apenas um momento. 311 00:12:48,120 --> 00:12:51,540 C # seria nesta lista. 312 00:12:51,540 --> 00:12:54,930 Nós vamos olhar para mais em apenas as linguagens mais modernas. 313 00:12:54,930 --> 00:12:55,430 Tudo certo. 314 00:12:55,430 --> 00:12:56,804 E isso parece ser muito lá. 315 00:12:56,804 --> 00:13:03,500 Considerando deste lado da cerca, poderíamos ter JavaScript e Python, 316 00:13:03,500 --> 00:13:08,040 e PHP e Ruby. 317 00:13:08,040 --> 00:13:13,640 E é que o suficiente para os mais recentes? 318 00:13:13,640 --> 00:13:15,410 Que se sente como uma abundância de agora. 319 00:13:15,410 --> 00:13:16,330 ESTÁ BEM. 320 00:13:16,330 --> 00:13:18,760 E então dot dot dot, uma vez que a lista é interminável. 321 00:13:18,760 --> 00:13:22,300 >> E, na verdade, se quisermos apenas ter uma noção de isto-- Wikipedia, 322 00:13:22,300 --> 00:13:24,130 linguagens compiladas. 323 00:13:24,130 --> 00:13:27,150 Eu estou supondo que podemos obter um lista mais exaustiva. 324 00:13:27,150 --> 00:13:27,910 Então, vamos lá. 325 00:13:27,910 --> 00:13:30,620 Então, aqui está uma lista muito mais exaustiva. 326 00:13:30,620 --> 00:13:34,150 E eu estava esperando que alguém poderia imaginar D como língua porque isso também existe, 327 00:13:34,150 --> 00:13:37,747 mas eles pararam em D que parece. 328 00:13:37,747 --> 00:13:39,330 Embora não pode realmente ser uma E. 329 00:13:39,330 --> 00:13:41,496 >> Oh, na verdade, isso deve estar na lista estes dias. 330 00:13:41,496 --> 00:13:47,460 Swift é, na verdade, uma linguagem que a Apple inventou 331 00:13:47,460 --> 00:13:50,302 que é usado agora, cada vez mais assim, no desenvolvimento do iPhone. 332 00:13:50,302 --> 00:13:52,260 Mas vamos voltar a que, com a nossa discussão 333 00:13:52,260 --> 00:13:54,090 de móveis em apenas um pouco também. 334 00:13:54,090 --> 00:13:55,260 Então Swift também. 335 00:13:55,260 --> 00:13:57,540 >> E então, se vamos para interpretados language-- 336 00:13:57,540 --> 00:14:05,010 interpretados language-- então é aqui uma lista ainda mais tão bem. 337 00:14:05,010 --> 00:14:07,260 Então, se você apenas google e olhar na Wikipedia para estes, 338 00:14:07,260 --> 00:14:09,231 você verá todos os tipos de línguas. 339 00:14:09,231 --> 00:14:10,980 Mas o objectivo é, para hoje realmente, apenas 340 00:14:10,980 --> 00:14:13,680 resume-se talvez esta questão da propriedade intelectual 341 00:14:13,680 --> 00:14:18,200 e legibilidade pelo usuário final e desempenho, é outra pessoa importante também. 342 00:14:18,200 --> 00:14:21,080 >> Assim, entre línguas, deixe-me ver se podemos dar-lhe 343 00:14:21,080 --> 00:14:24,487 apenas algumas amostra de idiomas. 344 00:14:24,487 --> 00:14:26,820 Não quero passar por todas as línguas indefinidamente. 345 00:14:26,820 --> 00:14:29,720 Você já se perguntou o que é um determinada língua parece? 346 00:14:29,720 --> 00:14:31,562 Fizemos ver um momento atrás. 347 00:14:31,562 --> 00:14:33,520 Por que não podemos ter um par das solicitações de recursos. 348 00:14:33,520 --> 00:14:35,380 Quem gostaria de ver o que outra língua parece? 349 00:14:35,380 --> 00:14:35,620 Sim. 350 00:14:35,620 --> 00:14:36,150 >> AUDIÊNCIA: Java. 351 00:14:36,150 --> 00:14:36,540 >> DAVID J. MALAN: Java. 352 00:14:36,540 --> 00:14:37,040 Tudo certo. 353 00:14:37,040 --> 00:14:38,504 Então vamos para Java. 354 00:14:38,504 --> 00:14:42,300 355 00:14:42,300 --> 00:14:44,900 E só para lhe dar uma sample-- poderíamos escrever tudo isso para fora, 356 00:14:44,900 --> 00:14:47,670 mas seria mais rápido apenas para olhar para o código de exemplo de outra pessoa. 357 00:14:47,670 --> 00:14:48,170 Tudo certo. 358 00:14:48,170 --> 00:14:50,330 Portanto, este é um bom exemplo? 359 00:14:50,330 --> 00:14:52,040 Whoops. 360 00:14:52,040 --> 00:14:52,540 ESTÁ BEM. 361 00:14:52,540 --> 00:14:58,810 Então aqui está a versão Java do programa que eu escrevi anteriormente, "Olá mundo". 362 00:14:58,810 --> 00:15:01,900 >> Então, Java, muitas vezes você vai ver a palavra-chave "class". 363 00:15:01,900 --> 00:15:03,779 Então você verá algum nome depois disso. 364 00:15:03,779 --> 00:15:05,570 Você verá chaves como vimos antes, 365 00:15:05,570 --> 00:15:08,153 e às vezes eles vão no mesma linha, por vezes, outras linhas, 366 00:15:08,153 --> 00:15:09,734 é uma espécie de uma decisão pessoal. 367 00:15:09,734 --> 00:15:11,900 Você verá palavras-chave como "Público", "estático", "vazio". 368 00:15:11,900 --> 00:15:13,790 Mas fizemos ver "principal". "Principal" é geralmente 369 00:15:13,790 --> 00:15:17,220 o nome da função predefinida ou o bloco padrão de código que 370 00:15:17,220 --> 00:15:18,760 é executado em um programa. 371 00:15:18,760 --> 00:15:19,330 >> "Corda." 372 00:15:19,330 --> 00:15:20,850 O que queremos dizer com cadeia mais cedo? 373 00:15:20,850 --> 00:15:23,480 Usei-o tipo de casualmente. 374 00:15:23,480 --> 00:15:25,100 Uma corda é o quê? 375 00:15:25,100 --> 00:15:25,601 Uma palavra. 376 00:15:25,601 --> 00:15:27,058 É como uma sequência de caracteres. 377 00:15:27,058 --> 00:15:29,810 caracteres individuais, de volta à de volta para trás, geralmente em uma matriz, 378 00:15:29,810 --> 00:15:30,690 como já discutimos. 379 00:15:30,690 --> 00:15:34,700 E, de fato, ver esta sintaxe aqui, os dois colchetes? 380 00:15:34,700 --> 00:15:39,210 Isso significa que, hey computador, aqui vem uma matriz de cadeias. 381 00:15:39,210 --> 00:15:42,636 A notação colchete é utilizada para indicar que. 382 00:15:42,636 --> 00:15:44,510 E então você pode provavelmente tomar uma adivinhar o que 383 00:15:44,510 --> 00:15:46,580 faz este destaque pedaço de código, provavelmente, fazer? 384 00:15:46,580 --> 00:15:49,737 385 00:15:49,737 --> 00:15:50,639 >> AUDIÊNCIA: A saída? 386 00:15:50,639 --> 00:15:51,090 >> DAVID J. MALAN: Yeah. 387 00:15:51,090 --> 00:15:52,506 Ela imprime alguma coisa para a tela. 388 00:15:52,506 --> 00:15:57,070 Assim, "sistema" é uma espécie de referência ao seu computador. 389 00:15:57,070 --> 00:15:59,620 "Out" significa que o computador de de saída ou da tela. 390 00:15:59,620 --> 00:16:04,450 Assim, "ln System.out.print" provavelmente significa? 391 00:16:04,450 --> 00:16:05,570 "LN". 392 00:16:05,570 --> 00:16:09,570 linha de impressão que programadores como soletrar algumas palavras aparentemente fora 393 00:16:09,570 --> 00:16:11,820 na sua totalidade e tomar atalhos com outras palavras. 394 00:16:11,820 --> 00:16:13,260 Mas "ln" é a linha, portanto, linha de impressão. 395 00:16:13,260 --> 00:16:17,370 Então, ele imprime "Olá Mundo! ", Seguido por uma nova linha. 396 00:16:17,370 --> 00:16:18,300 >> Então é isso. 397 00:16:18,300 --> 00:16:21,150 Mas Java é o que eles vão chamada orientada a objetos. 398 00:16:21,150 --> 00:16:23,440 E, de fato, apenas para dar uma par de outras definições 399 00:16:23,440 --> 00:16:26,420 lá que você pode ver, em geral, há 400 00:16:26,420 --> 00:16:30,600 muitos tipos diferentes de línguas, mas o mais comum 401 00:16:30,600 --> 00:16:37,830 são línguas processuais ou imperativas. 402 00:16:37,830 --> 00:16:41,600 Existem funcional línguas, o qual não 403 00:16:41,600 --> 00:16:43,790 significa que os outros não são funcionais. 404 00:16:43,790 --> 00:16:47,740 E depois há linguagens orientadas a objeto. 405 00:16:47,740 --> 00:16:51,170 E esta é talvez a melhor categorização da maioria das línguas 406 00:16:51,170 --> 00:16:56,445 que você poderia escolher para espécie de um projeto comercial típico. 407 00:16:56,445 --> 00:16:58,910 >> Isso seria demais, Eu acho que, de buraco de um rato 408 00:16:58,910 --> 00:17:01,620 para ir para baixo, para tentar explicar as várias diferenças. 409 00:17:01,620 --> 00:17:04,599 Mas as línguas nós vimos assim far-- C 410 00:17:04,599 --> 00:17:07,680 é um processual ou um linguagem imperativa. 411 00:17:07,680 --> 00:17:11,200 Mais recentemente inventado linguagens tendem a ser, desculpe, 412 00:17:11,200 --> 00:17:14,430 orientada a objetos, o que significa eles têm outros recursos para eles. 413 00:17:14,430 --> 00:17:18,130 414 00:17:18,130 --> 00:17:19,430 Eu posso explicar isso desta forma? 415 00:17:19,430 --> 00:17:20,950 Não vamos nem ir até lá. 416 00:17:20,950 --> 00:17:25,200 >> meios orientados a objeto você pode implement-- 417 00:17:25,200 --> 00:17:27,930 você pode modelar o mundo real um pouco mais eficaz. 418 00:17:27,930 --> 00:17:29,722 A humanidade, ao longo do tempo, descobriu, uau, 419 00:17:29,722 --> 00:17:32,430 seria bom se a minha língua tinha esse recurso ou esse recurso. 420 00:17:32,430 --> 00:17:34,830 E é por isso que temos até muitas línguas do mundo. 421 00:17:34,830 --> 00:17:37,670 As pessoas razoáveis, inteligente pessoas, concordar ou discordar 422 00:17:37,670 --> 00:17:41,000 e, invariavelmente, espécie de vir juntos em desenvolvimento de novas linguagens todos juntos. 423 00:17:41,000 --> 00:17:41,660 >> Caso em questão. 424 00:17:41,660 --> 00:17:45,260 A Apple inventou Swift em esperanças de redução presumivelmente 425 00:17:45,260 --> 00:17:47,950 a barra para o desenvolvimento do iPhone, porque a anterior language-- 426 00:17:47,950 --> 00:17:51,080 Objectivo chamado-C, que poderia também estar na nossa lista aqui-- 427 00:17:51,080 --> 00:17:54,190 era muito mais misterioso e muito mais difícil para embrulhar a mente ao redor. 428 00:17:54,190 --> 00:17:57,690 E como a programação está se tornando indiscutivelmente mais acessíveis e mais amplamente 429 00:17:57,690 --> 00:18:00,580 adotada por pessoas mesmo menos técnica, o goal-- 430 00:18:00,580 --> 00:18:04,160 É uma meta muito valente para tentar diminuir a barreira de entrada, fazendo 431 00:18:04,160 --> 00:18:07,400 as línguas próprias mais fácil para começar com, 432 00:18:07,400 --> 00:18:09,430 mas não menos poderosa necessariamente. 433 00:18:09,430 --> 00:18:10,560 >> E uma outra língua. 434 00:18:10,560 --> 00:18:14,110 Por que não vamos dar uma olhada em algo como Python, 435 00:18:14,110 --> 00:18:18,090 que é muito em voga nos dias de hoje. 436 00:18:18,090 --> 00:18:19,570 Python. 437 00:18:19,570 --> 00:18:20,464 Exemplo de programa. 438 00:18:20,464 --> 00:18:24,600 439 00:18:24,600 --> 00:18:26,700 Vamos ver. 440 00:18:26,700 --> 00:18:28,790 "Olá Mundo" línguas. 441 00:18:28,790 --> 00:18:30,180 Vamos fazer isso. 442 00:18:30,180 --> 00:18:33,625 "Olá Mundo." 443 00:18:33,625 --> 00:18:35,375 Vamos ver se isso dá -nos um bom exemplo. 444 00:18:35,375 --> 00:18:39,450 445 00:18:39,450 --> 00:18:39,950 ESTÁ BEM. 446 00:18:39,950 --> 00:18:41,283 Portanto, esta é realmente divertido. 447 00:18:41,283 --> 00:18:43,330 Então, se você google "Olá Mundo", que 448 00:18:43,330 --> 00:18:47,000 passa a ser um dos primeiros programas já escrito em uma linguagem moderna, 449 00:18:47,000 --> 00:18:51,830 assim como uma prova de conceito, você pode ver todos os tipos de implementações deste. 450 00:18:51,830 --> 00:18:54,240 >> Algumas dessas línguas Eu não tenho sequer ouvido falar. 451 00:18:54,240 --> 00:18:59,770 Mas você pode see-- vamos ao básico, o que eu aprendi anos atrás, em parte. 452 00:18:59,770 --> 00:19:02,720 Esta era uma língua divertido porque você tinha que, como o programador, número 453 00:19:02,720 --> 00:19:03,710 todas as suas linhas. 454 00:19:03,710 --> 00:19:05,626 Não ao contrário do que eu estava fazendo quando eu estava escrevendo 455 00:19:05,626 --> 00:19:08,380 pseudocódigo no documento amarelo anteriormente para busca binária, 456 00:19:08,380 --> 00:19:09,580 para pesquisar um livro de telefone. 457 00:19:09,580 --> 00:19:11,810 >> E assim, se você queria para ir para outra linha, 458 00:19:11,810 --> 00:19:15,780 você literalmente digitar, ir para 10, ou ir a 20. 459 00:19:15,780 --> 00:19:19,110 E se você estiver escrevendo linhas, os convenção era para fazer, esta é a linha 10, 460 00:19:19,110 --> 00:19:22,545 Esta é a linha 20, esta é a linha 30, 40, com nada entre eles, 461 00:19:22,545 --> 00:19:25,170 dando-se assim algum espaço se você decidir, espere um minuto, 462 00:19:25,170 --> 00:19:27,230 Eu deveria ter acrescentado alguns mais código em algum lugar. 463 00:19:27,230 --> 00:19:30,960 Você ainda teve sorte de nove chances de espremer isso em entre seu programa 464 00:19:30,960 --> 00:19:33,020 antes você tinha que manualmente renumerar tudo. 465 00:19:33,020 --> 00:19:35,470 >> Portanto, este é o tipo do que eu quero dizer quando eu digo que o mundo surgiu 466 00:19:35,470 --> 00:19:36,303 com novos recursos. 467 00:19:36,303 --> 00:19:39,364 Em algum lugar ao longo do caminho alguém percebeu, menino isto é estúpido. 468 00:19:39,364 --> 00:19:41,280 Esta é apenas a criação de trabalhar para o programador. 469 00:19:41,280 --> 00:19:44,200 Assim, ele ou ela só tipo de construção uma nova camada em cima do que 470 00:19:44,200 --> 00:19:46,910 de modo que você não precisa se preocupar sobre o que linha de números de seu código 471 00:19:46,910 --> 00:19:48,570 é, na verdade. 472 00:19:48,570 --> 00:19:54,940 >> Então, quando você pode escolher uma língua ou outra? 473 00:19:54,940 --> 00:19:56,690 Bem, qual destes línguas você tende 474 00:19:56,690 --> 00:20:00,960 ouvir falar mais em seu próprio mundo nos dias de hoje? 475 00:20:00,960 --> 00:20:02,680 Vamos cair Objective-C também. 476 00:20:02,680 --> 00:20:06,416 477 00:20:06,416 --> 00:20:07,739 >> AUDIÊNCIA: C #. 478 00:20:07,739 --> 00:20:08,530 DAVID J. MALAN: C #. 479 00:20:08,530 --> 00:20:10,310 Então deixe-me cor. 480 00:20:10,310 --> 00:20:13,190 Nós temos a nossa outra cor em algum lugar? 481 00:20:13,190 --> 00:20:14,550 Então C #. 482 00:20:14,550 --> 00:20:16,390 E o que você sabe sobre C #? 483 00:20:16,390 --> 00:20:18,940 Qualquer coisa vêm à mente? 484 00:20:18,940 --> 00:20:20,707 >> AUDIÊNCIA: É uma linguagem de programação. 485 00:20:20,707 --> 00:20:22,540 DAVID J. MALAN: É um linguagem de programação. 486 00:20:22,540 --> 00:20:23,200 ESTÁ BEM. 487 00:20:23,200 --> 00:20:24,690 Isso é verdade. 488 00:20:24,690 --> 00:20:26,440 Então, nós estamos falando de C #. 489 00:20:26,440 --> 00:20:29,230 C # tende a ser usado na ambientes Windows, 490 00:20:29,230 --> 00:20:33,550 por isso, se você está escrevendo software Microsoft para Windows, C # é muito comumente usado, 491 00:20:33,550 --> 00:20:38,560 se é para o software desktop, ou mesmo software do telefone em Windows phones, 492 00:20:38,560 --> 00:20:41,820 se você já teve aqueles, ou na web, mesmo também. 493 00:20:41,820 --> 00:20:44,642 E, na verdade, talvez Kareem ASP mencionado anteriormente? 494 00:20:44,642 --> 00:20:46,600 Então há também estes coisas chamadas estruturas, 495 00:20:46,600 --> 00:20:51,040 que podemos introduzir, por extensão. 496 00:20:51,040 --> 00:20:53,280 Frameworks, como ASP. 497 00:20:53,280 --> 00:20:55,740 Suportes para Active Server Pages. 498 00:20:55,740 --> 00:20:59,880 E este é código e um modo de programação 499 00:20:59,880 --> 00:21:03,490 que, geralmente, faz com que seja mais fácil para escrever aplicações baseadas na web. 500 00:21:03,490 --> 00:21:07,530 Em outras palavras, seria super, Super chato para escrever um website 501 00:21:07,530 --> 00:21:09,469 em que a linguagem C que já vimos antes, 502 00:21:09,469 --> 00:21:12,510 porque você teria que usar de impressão + F, você teria que usar essa palavra-chave 503 00:21:12,510 --> 00:21:13,940 "Principal" e as chaves. 504 00:21:13,940 --> 00:21:16,720 Um monte de sintaxe arcano e abordagem para implementar 505 00:21:16,720 --> 00:21:19,195 algo que é bastante complexo. 506 00:21:19,195 --> 00:21:20,240 Uma página web. 507 00:21:20,240 --> 00:21:23,800 >> E assim outros idiomas evoluíram para fazer esse tipo de coisa mais fácil. 508 00:21:23,800 --> 00:21:26,890 E, por sua vez, as pessoas vêm-se com os quadros, uma espécie de ferramentas 509 00:21:26,890 --> 00:21:30,520 que você pode usar que o tornam ainda mais fácil para escrever páginas da web. 510 00:21:30,520 --> 00:21:33,070 Assim, por exemplo, para fazer isso muito mais concreto, 511 00:21:33,070 --> 00:21:36,390 deixe-me abrir apenas um arquivo de texto por um momento. 512 00:21:36,390 --> 00:21:39,380 >> E você pode se lembrar de ontem que disse algo 513 00:21:39,380 --> 00:21:41,210 como, isto é uma página da web. 514 00:21:41,210 --> 00:21:42,300 HTML. 515 00:21:42,300 --> 00:21:45,340 Fechar HTML. 516 00:21:45,340 --> 00:21:48,500 Deixe-me saltar a cabeça e basta fazer o corpo aqui. 517 00:21:48,500 --> 00:21:52,810 Suponha que eu queria escrever não "Olá Mundo" 518 00:21:52,810 --> 00:21:57,020 mas "Olá David", onde David é o nome do usuário conectado no momento. 519 00:21:57,020 --> 00:22:00,270 Que algo como ASP vai fazer, ou JSP-- 520 00:22:00,270 --> 00:22:04,060 que é servidor Java pages-- ou qualquer número de outras estruturas 521 00:22:04,060 --> 00:22:05,435 é que eles não são línguas, per se. 522 00:22:05,435 --> 00:22:07,351 Eles são como software adicional que você 523 00:22:07,351 --> 00:22:10,490 iria instalar em seu ambiente que apenas torná-lo mais fácil de programar. 524 00:22:10,490 --> 00:22:15,670 >> Assim, por exemplo, em vez de ter que fazer algo como "Olá, printf (" David ")" 525 00:22:15,670 --> 00:22:17,510 ou algo que é tipo de co-mingling-- 526 00:22:17,510 --> 00:22:20,840 o tipo de código que vimos antes-- você faria algo muito mais simples, 527 00:22:20,840 --> 00:22:26,190 como "name%." 528 00:22:26,190 --> 00:22:28,660 E assim por estas estruturas, como ASP-- e eu 529 00:22:28,660 --> 00:22:31,212 Não me lembro se eu estou ficando a sintaxe apenas para a direita para o ASP. 530 00:22:31,212 --> 00:22:33,100 JSP é um little-- é esse direito? 531 00:22:33,100 --> 00:22:36,500 >> Assim, com ASP, este é uma espécie de sintaxe especial 532 00:22:36,500 --> 00:22:39,830 que alguns desenvolvedores decidiram isso pode ajudar as pessoas. 533 00:22:39,830 --> 00:22:43,000 E eu posso expressar de forma mais sucinta espaços reservados, por exemplo. 534 00:22:43,000 --> 00:22:47,187 Como colocar um valor aqui, onde este nome valor não é N-A-M-E, 535 00:22:47,187 --> 00:22:48,520 é algum valor armazenado lá. 536 00:22:48,520 --> 00:22:50,728 Assim, "nome", neste contexto, que chamaríamos de uma variável. 537 00:22:50,728 --> 00:22:52,760 Álgebra tem variáveis como x e y, e z. 538 00:22:52,760 --> 00:22:56,021 Os programadores usam variáveis ​​que são mais descritivo do que x, y, e z, 539 00:22:56,021 --> 00:22:56,520 tipicamente. 540 00:22:56,520 --> 00:23:01,020 Assim, "nome" seria literalmente algum tipo de recipiente de memória para algo como 541 00:23:01,020 --> 00:23:05,440 D-A-V-I-D, para o meu nome, ou quem outra coisa é registrado no site. 542 00:23:05,440 --> 00:23:09,300 >> E por isso este é o tipo de conveniência você começa com certos ambientes. 543 00:23:09,300 --> 00:23:14,220 Então, C # e algo como ASP seria muito geralmente ser usado em um mundo Windows 544 00:23:14,220 --> 00:23:16,460 independente da sua área de trabalho software ou servidor web, 545 00:23:16,460 --> 00:23:21,490 especialmente se os seus servidores estão por sua vez, Microsoft Windows e Microsoft 546 00:23:21,490 --> 00:23:25,810 IIS-- ou Internet Information Server, se eu começar a sigla direita-- 547 00:23:25,810 --> 00:23:27,800 que é servidor web da Microsoft. 548 00:23:27,800 --> 00:23:30,820 >> Então, o que outras línguas são pessoas familiarizadas com, 549 00:23:30,820 --> 00:23:35,228 ou você já ouviu falar mais frequentemente do que não? 550 00:23:35,228 --> 00:23:38,262 >> AUDIÊNCIA: Eu sei que Python de tipo de um popular [inaudível]. 551 00:23:38,262 --> 00:23:39,470 DAVID J. MALAN: Muito popular. 552 00:23:39,470 --> 00:23:45,490 Então Python aqui é usado muitas vezes em aplicações científicas ou dados 553 00:23:45,490 --> 00:23:48,330 ciência, onde você tem um monte de dados que você deseja analisar 554 00:23:48,330 --> 00:23:50,413 e você quiser usar um linguagem de programação para ele. 555 00:23:50,413 --> 00:23:53,640 R pode geralmente ser usada para esse assim, num contexto estatístico. 556 00:23:53,640 --> 00:23:56,400 Mas Python tem tantos características construído em. 557 00:23:56,400 --> 00:23:58,850 Tantos adicional bibliotecas, como as pessoas dizem. 558 00:23:58,850 --> 00:24:01,260 >> As bibliotecas são apenas coleções de código que outras pessoas 559 00:24:01,260 --> 00:24:04,218 escreveu que você pode usar para que você não tem que reinventar as rodas. 560 00:24:04,218 --> 00:24:07,430 E assim Python é muito comumente usado em aplicações de ciência de dados. 561 00:24:07,430 --> 00:24:09,930 Mas também é muito comumente usado em aplicações web. 562 00:24:09,930 --> 00:24:12,780 Você pode implementar uma dinâmica site usando Python. 563 00:24:12,780 --> 00:24:15,210 >> E pelo site dinâmico, I teor médio não apenas estática 564 00:24:15,210 --> 00:24:19,530 como se criou ontem, por apenas difícil de codificação no texto latino 565 00:24:19,530 --> 00:24:21,820 e outras coisas que tais, mas sim a capacidade 566 00:24:21,820 --> 00:24:25,367 fazer o login, a capacidade de comprar alguma coisa, a capacidade de verificar 567 00:24:25,367 --> 00:24:26,950 com os seus carrinhos de compras, ou semelhantes. 568 00:24:26,950 --> 00:24:30,590 Tudo isso exige dinamismo e você precisar de alguma linguagem como um deles. 569 00:24:30,590 --> 00:24:35,060 >> AUDIÊNCIA: Então não Python tem o seu próprio extensão, similar a gostar [inaudível] 570 00:24:35,060 --> 00:24:36,060 DAVID J. MALAN: Ele faz. 571 00:24:36,060 --> 00:24:42,250 Assim, no mundo de Python, Django é um quadro muito popular para Python. 572 00:24:42,250 --> 00:24:46,520 WSGI é outro mecanismo que é tipo de diferente desta 573 00:24:46,520 --> 00:24:47,640 mas semelhante em espírito. 574 00:24:47,640 --> 00:24:52,200 É um add-on que permite que você para executar código Python em um servidor. 575 00:24:52,200 --> 00:24:53,950 Há outro-- sim. 576 00:24:53,950 --> 00:24:57,250 Então, esses que chamaremos de frameworks. 577 00:24:57,250 --> 00:24:58,870 E é um pouco de um abuso. 578 00:24:58,870 --> 00:25:00,920 Esta é mais uma tecnologia de servidor web. 579 00:25:00,920 --> 00:25:04,610 Mas nós vamos mantê-lo simples e colocá que nesta coluna, no entanto. 580 00:25:04,610 --> 00:25:05,780 >> ESTÁ BEM. 581 00:25:05,780 --> 00:25:07,850 WSGI. 582 00:25:07,850 --> 00:25:09,020 WSGI. 583 00:25:09,020 --> 00:25:12,100 Outra coisa-- e, na verdade, deixe mover-me que a sua própria coluna, 584 00:25:12,100 --> 00:25:17,000 porque eu gritava para mim mesma por colocá-los no mesmo balde. 585 00:25:17,000 --> 00:25:24,910 Vamos colocar isso em servidor características, digamos. 586 00:25:24,910 --> 00:25:26,710 Isso não é um termo técnico. 587 00:25:26,710 --> 00:25:29,180 >> Então, aqui podemos estar WSGI. 588 00:25:29,180 --> 00:25:32,580 Há CGI, que é um mais velho técnica para que serve idiomas 589 00:25:32,580 --> 00:25:35,890 como Perl ou PHP, ou alguns outros. 590 00:25:35,890 --> 00:25:39,000 Mais uma vez, eu mencionei estes termos não tanto a sorte de incutir-lhes, 591 00:25:39,000 --> 00:25:40,749 mas para que se veja -los é algo 592 00:25:40,749 --> 00:25:42,130 você simplesmente google para ler mais. 593 00:25:42,130 --> 00:25:46,110 Não há real suco para algumas dessas coisas. 594 00:25:46,110 --> 00:25:47,850 >> Mas vamos voltar para as línguas. 595 00:25:47,850 --> 00:25:50,499 Falamos sobre C #, Python. 596 00:25:50,499 --> 00:25:52,790 O que mais você pode usar para Programação Web nos dias de hoje? 597 00:25:52,790 --> 00:25:54,302 Vamos nos concentrar no que ainda. 598 00:25:54,302 --> 00:25:55,247 >> AUDIÊNCIA: PHP. 599 00:25:55,247 --> 00:25:56,080 DAVID J. MALAN: PHP. 600 00:25:56,080 --> 00:25:57,413 E vamos voltar a esse. 601 00:25:57,413 --> 00:25:59,310 Então PHP é muito comumente usado. 602 00:25:59,310 --> 00:26:01,560 PHP tende a obter um mau rap. 603 00:26:01,560 --> 00:26:05,790 Começou como uma linguagem implementada por pessoas que talvez não eram necessariamente 604 00:26:05,790 --> 00:26:06,960 os melhores designers de linguagem. 605 00:26:06,960 --> 00:26:11,290 E assim você pode ler todos os tipos de artigos on-line sobre o quão ruim PHP é. 606 00:26:11,290 --> 00:26:13,660 E, infelizmente, este é uma manifestação, em parte, 607 00:26:13,660 --> 00:26:18,727 de apenas os debates religiosos que irrompem entre os programadores. 608 00:26:18,727 --> 00:26:20,560 E isso é algo vale a pena manter em mente, 609 00:26:20,560 --> 00:26:24,410 a partir de uma perspectiva de negócios, que é muito fácil para as pessoas técnicas 610 00:26:24,410 --> 00:26:26,900 para ficar excitado com a sua opiniões sobre certas coisas. 611 00:26:26,900 --> 00:26:29,566 E isso não significa necessariamente que a única gritando o mais alto 612 00:26:29,566 --> 00:26:31,870 ou com os mais fortes, opinião angriest é certo. 613 00:26:31,870 --> 00:26:34,100 Muitas vezes, ele realmente apenas não importa. 614 00:26:34,100 --> 00:26:37,970 >> E assim as pessoas estão apenas discutindo o que quer seus próprios preconceitos ou zonas de conforto são. 615 00:26:37,970 --> 00:26:40,760 E por isso você deve manter isso em mente ao fazer 616 00:26:40,760 --> 00:26:42,622 uma decisão, que só porque alguém diz 617 00:26:42,622 --> 00:26:45,080 Esta é a linguagem certa para o trabalho, isso pode ser verdade, 618 00:26:45,080 --> 00:26:48,350 mas também só poderia ser é a idioma da direita dentro de sua própria habilidade 619 00:26:48,350 --> 00:26:49,267 definir ou zona de conforto. 620 00:26:49,267 --> 00:26:52,600 Que não é ruim, mas você deve perceber que pode haver algum contexto lá. 621 00:26:52,600 --> 00:26:54,440 Existem alguns objectivamente declarações erradas, 622 00:26:54,440 --> 00:26:59,080 como C é o idioma errado usar estes dias para implementar sites 623 00:26:59,080 --> 00:27:00,520 quase sempre. 624 00:27:00,520 --> 00:27:03,370 Mas não é razoável quer dizer que qualquer um desses 625 00:27:03,370 --> 00:27:05,700 estão errados que temos circulou até agora. 626 00:27:05,700 --> 00:27:08,180 >> PHP passou por muitas versões. 627 00:27:08,180 --> 00:27:11,310 Então línguas tendem a ter versão números que lhes estão associados. 628 00:27:11,310 --> 00:27:15,390 PHP é até, penso eu, a versão 7 agora, então tem sido em torno de algum tempo. 629 00:27:15,390 --> 00:27:18,270 E como línguas obter mais recente, eles muitas vezes obter novos recursos. 630 00:27:18,270 --> 00:27:22,510 Mas você tem que estar atento a isso porque se o seu site tem sido 631 00:27:22,510 --> 00:27:27,539 implementados na versão 7 do PHP, mas você está tentando executar o seu site, 632 00:27:27,539 --> 00:27:29,830 ou talvez você tenha terceirizado o desenvolvimento de seu código 633 00:27:29,830 --> 00:27:31,960 a outra pessoa e eles enviá -lo para você ou enviá-lo para você 634 00:27:31,960 --> 00:27:33,960 e eles dizem, aqui, colocar esta no seu servidor web, 635 00:27:33,960 --> 00:27:36,610 se o seu servidor web é um pouco anos outdated-- se é 636 00:27:36,610 --> 00:27:39,465 seu próprio servidor ou um host-- web ele pode não rodar. 637 00:27:39,465 --> 00:27:41,340 Então, esses são os tipos de coisas que alguém 638 00:27:41,340 --> 00:27:44,067 precisa estar atento a ao atualizar um site 639 00:27:44,067 --> 00:27:45,650 ou implementá-lo pela primeira vez. 640 00:27:45,650 --> 00:27:46,900 >> Ouvi JavaScript anteriormente. 641 00:27:46,900 --> 00:27:50,570 Então JavaScript é um interessante uma em que é geralmente 642 00:27:50,570 --> 00:27:53,030 do lado do cliente, como veremos após o intervalo, que 643 00:27:53,030 --> 00:27:55,000 significa que ele é executado no navegador do usuário. 644 00:27:55,000 --> 00:27:58,400 Mas você também pode executar JavaScript nos dias de hoje 645 00:27:58,400 --> 00:28:03,450 usando algo chamado Node.js, quando Node.js 646 00:28:03,450 --> 00:28:08,000 é um mecanismo para execução código JavaScript do lado do servidor, 647 00:28:08,000 --> 00:28:12,430 em vez de usar Python, ou PHP, ou outras línguas. 648 00:28:12,430 --> 00:28:17,820 >> JavaScript é particularmente bem adequado para aplicações de chat e em tempo real 649 00:28:17,820 --> 00:28:22,050 aplicações, enquanto PHP não é um grande idioma para implementar algo 650 00:28:22,050 --> 00:28:25,050 como um servidor de chat, onde os usuários ficar ligado a ele constantemente. 651 00:28:25,050 --> 00:28:28,760 PHP é mais de uma visita me uma vez, voltar resultado, 652 00:28:28,760 --> 00:28:31,790 e clique em outro link alguns segundos ou minutos a partir de agora. 653 00:28:31,790 --> 00:28:36,020 Considerando Node.js e JavaScript pode ser usado mais para conexões persistentes. 654 00:28:36,020 --> 00:28:40,840 Outros idiomas que você suspeita são comumente usados ​​para coisas web? 655 00:28:40,840 --> 00:28:42,800 >> AUDIÊNCIA: Será que jQuery ser um quadro? 656 00:28:42,800 --> 00:28:44,050 >> DAVID J. MALAN: Boa pergunta. 657 00:28:44,050 --> 00:28:44,700 Nem. 658 00:28:44,700 --> 00:28:51,210 Eu chamaria jQuery biblioteca, onde novamente uma biblioteca é apenas um monte de código 659 00:28:51,210 --> 00:28:53,250 que alguém tem escrito que geralmente 660 00:28:53,250 --> 00:28:56,390 resolve alguns problemas que torna, esperançosamente, mais fácil 661 00:28:56,390 --> 00:28:57,760 para que você possa fazer o seu trabalho. 662 00:28:57,760 --> 00:29:00,820 E deixe-me fazer um exemplo de isto no contexto da teia. 663 00:29:00,820 --> 00:29:03,910 >> No contexto da teia não há esta linguagem, JavaScript, 664 00:29:03,910 --> 00:29:06,690 que veremos mais tarde, em que você poderia dizer algo como isto-- 665 00:29:06,690 --> 00:29:10,060 "Document.getElementById." 666 00:29:10,060 --> 00:29:11,490 E o que eu chamá-lo ontem? 667 00:29:11,490 --> 00:29:16,800 Em primeiro lugar, penso eu, foi a identificação única que eu dei a um elemento que olhou como este. 668 00:29:16,800 --> 00:29:23,110 "P id =" primeira ">" e depois tivemos como "lorem ipsum", et cetera. 669 00:29:23,110 --> 00:29:28,210 Então, se eu estivesse escrevendo um programa em JavaScript para manipular de alguma forma, 670 00:29:28,210 --> 00:29:30,830 alterar as páginas da web que nós estavam brincando com ontem, 671 00:29:30,830 --> 00:29:33,010 Gostaria de usar este linha realçada de código 672 00:29:33,010 --> 00:29:38,700 para obter esse trecho particular de HTML de minha página, esse nó particular, 673 00:29:38,700 --> 00:29:39,680 como vamos chamá-lo. 674 00:29:39,680 --> 00:29:44,540 >> No entanto, em jQuery, em vez de escrever isso, que é matéria-code-- JavaScript 675 00:29:44,540 --> 00:29:48,870 apenas fora da caixa, que é como você escrever ele-- você, ao invés, apenas dizer, 676 00:29:48,870 --> 00:29:50,260 "#primeiro." 677 00:29:50,260 --> 00:29:52,330 Isso é equivalente. 678 00:29:52,330 --> 00:29:56,040 E assim com base apenas nesta mesma exemplo arcano, o que talvez 679 00:29:56,040 --> 00:29:57,870 é o argumento para usar jQuery? 680 00:29:57,870 --> 00:30:01,390 681 00:30:01,390 --> 00:30:05,111 Por que um desenvolvedor usar uma biblioteca como jQuery, com base neste exemplo isolado, 682 00:30:05,111 --> 00:30:05,610 possivelmente? 683 00:30:05,610 --> 00:30:06,335 >> AUDIÊNCIA: Menos código. 684 00:30:06,335 --> 00:30:06,780 >> DAVID J. MALAN: Yeah. 685 00:30:06,780 --> 00:30:07,530 É menos código. 686 00:30:07,530 --> 00:30:09,070 É apenas mais rápido digitar. 687 00:30:09,070 --> 00:30:11,690 O contraponto é que ele se parece mais assustador. 688 00:30:11,690 --> 00:30:13,540 Você realmente não pode lê-lo esquerda para a direita. 689 00:30:13,540 --> 00:30:16,730 Na verdade, porque é na maior parte pontuação agora em vez de reais palavras, 690 00:30:16,730 --> 00:30:20,950 Eu posso tipo de inferir que "Document.getElementById" fica 691 00:30:20,950 --> 00:30:23,640 um elemento do documento pelo seu ID. 692 00:30:23,640 --> 00:30:26,750 Eu realmente pode usar tal mnemônicos de esta coisa aqui. 693 00:30:26,750 --> 00:30:27,680 >> Portanto, é um trade off. 694 00:30:27,680 --> 00:30:30,763 Há uma sofisticação que vem frequentemente com o uso de bibliotecas, especialmente 695 00:30:30,763 --> 00:30:31,440 como jQuery. 696 00:30:31,440 --> 00:30:34,700 Mas a realidade é jQuery tem uma espécie de tornar-se um padrão de fato, 697 00:30:34,700 --> 00:30:38,110 de modo que quase qualquer um destes dias que escreve código JavaScript 698 00:30:38,110 --> 00:30:41,520 usa jQuery ou algo como ele, e não escreve mais 699 00:30:41,520 --> 00:30:45,200 a expressões tais como verboso isso, porque mais uma vez, a humanidade 700 00:30:45,200 --> 00:30:47,850 aprendeu, uau, que foi tipo de uma oportunidade perdida 701 00:30:47,850 --> 00:30:49,030 para tornar nossa vida mais fácil. 702 00:30:49,030 --> 00:30:51,140 Assim, os seres humanos facilitar suas vidas. 703 00:30:51,140 --> 00:30:53,310 Boa pergunta. 704 00:30:53,310 --> 00:30:55,870 >> Outras línguas a considerar. 705 00:30:55,870 --> 00:30:58,660 Eu diria que entre esta lista Ruby é bastante popular. 706 00:30:58,660 --> 00:31:01,310 E assim no mundo da Ruby, há um quadro 707 00:31:01,310 --> 00:31:03,590 chamados Rails, que é muito popular. 708 00:31:03,590 --> 00:31:06,880 Então Ruby on Rails é um utilizada a expressão. 709 00:31:06,880 --> 00:31:10,330 Também neste mundo, deixe-me círculo Java para o material web, 710 00:31:10,330 --> 00:31:14,160 onde no mundo de Java você pode ter JSP, ou Java 711 00:31:14,160 --> 00:31:18,450 Servlets, que é uma tecnologia comum. 712 00:31:18,450 --> 00:31:22,560 E esta é apenas mais uma vez formas de utilização que a linguagem em um ambiente de servidor. 713 00:31:22,560 --> 00:31:23,520 >> Então o que isso quer dizer? 714 00:31:23,520 --> 00:31:25,770 Se você tem um físico servidor, você literalmente 715 00:31:25,770 --> 00:31:30,510 fazer o download do software de servidor web e instalá-lo de tal forma 716 00:31:30,510 --> 00:31:33,510 que você tem suporte para um dos estas estruturas, com o qual você 717 00:31:33,510 --> 00:31:37,260 poderia, por sua vez, utilizar uma ou mais destas línguas. 718 00:31:37,260 --> 00:31:40,260 E, na realidade, se você se inscrever para como um host ou alguma da nuvem 719 00:31:40,260 --> 00:31:41,968 serviços falamos sobre ontem, muitas vezes 720 00:31:41,968 --> 00:31:44,885 as coisas só vem com o configuração da máquina para você. 721 00:31:44,885 --> 00:31:46,510 Você não precisa configurá-lo manualmente. 722 00:31:46,510 --> 00:31:51,040 Mas se você fez, este é o lugar onde o papel do administrador do sistema, por assim dizer, 723 00:31:51,040 --> 00:31:51,860 entra em jogo. 724 00:31:51,860 --> 00:31:54,151 Ele ou ela iria realmente fazer esse tipo de coisa para você, 725 00:31:54,151 --> 00:31:58,510 ou o chamado webmaster vezes quis fazer isso por você. 726 00:31:58,510 --> 00:31:59,010 Tudo certo. 727 00:31:59,010 --> 00:32:03,300 Quaisquer perguntas sobre alguns destes aqui? 728 00:32:03,300 --> 00:32:06,690 Ou quaisquer oportunidades no todos para perguntar sobre línguas? 729 00:32:06,690 --> 00:32:09,500 Frameworks? 730 00:32:09,500 --> 00:32:11,530 Então deixe-me apresentar apenas uma outra biblioteca 731 00:32:11,530 --> 00:32:13,150 que também é muito comum nos dias de hoje. 732 00:32:13,150 --> 00:32:15,340 Esta lista poderia continuar infinitamente. 733 00:32:15,340 --> 00:32:19,140 >> E esta biblioteca é uma espécie de começando a cair em desuso. 734 00:32:19,140 --> 00:32:19,850 Tem sido em torno. 735 00:32:19,850 --> 00:32:22,040 Foi popularizada por Twitter por algum tempo. 736 00:32:22,040 --> 00:32:24,470 E agora muitos sites, muitos desenvolvedores usá-lo. 737 00:32:24,470 --> 00:32:26,629 Mas as coisas novas estão chegando para fora e bem vinda. 738 00:32:26,629 --> 00:32:29,420 Mas deixe-me dar-lhe um sentido do que significa usar uma biblioteca. 739 00:32:29,420 --> 00:32:32,250 Então, novamente, JavaScript uma linguagem muito popular. 740 00:32:32,250 --> 00:32:35,340 CSS, ou Cascading Style Sheets, nós falamos sobre ontem. 741 00:32:35,340 --> 00:32:36,600 Isso, também, é onipresente. 742 00:32:36,600 --> 00:32:40,130 Ninguém faz uma página web hoje sem o uso de HTML e CSS minimamente. 743 00:32:40,130 --> 00:32:42,510 Mas nem sempre é fácil de fazer certas coisas. 744 00:32:42,510 --> 00:32:46,281 >> E então deixe-me ir para getbootstrap.com. 745 00:32:46,281 --> 00:32:46,780 Whoops. 746 00:32:46,780 --> 00:32:48,280 Isso não é assim que soletrar. 747 00:32:48,280 --> 00:32:52,410 Getbootstrap.com, que vai me levar 748 00:32:52,410 --> 00:32:56,140 para a página de destino para esta biblioteca. 749 00:32:56,140 --> 00:32:59,720 Então, eles generosamente chamo -se um quadro, que 750 00:32:59,720 --> 00:33:02,032 é uma espécie de espécie de feira, mas eu ainda chamaria isso 751 00:33:02,032 --> 00:33:03,490 mais de uma biblioteca de um quadro. 752 00:33:03,490 --> 00:33:05,760 Mas estes são apenas semântica discutíveis. 753 00:33:05,760 --> 00:33:12,360 Deixe-me ir ao seu guia CSS e deixe-me ir para algo como isto. 754 00:33:12,360 --> 00:33:15,450 >> Então recordar o que nossas formas olhou como ontem em Cloud9? 755 00:33:15,450 --> 00:33:16,370 Foi muito feio. 756 00:33:16,370 --> 00:33:17,320 botões da velha escola. 757 00:33:17,320 --> 00:33:20,420 Eu acho que o botão foi cinza por padrão. E tudo foi realmente 758 00:33:20,420 --> 00:33:22,420 formatado muito messily. 759 00:33:22,420 --> 00:33:26,940 Então, se você quer que seus formulários web para olhar um pouco nicer-- deixe-me fazer zoom aqui. 760 00:33:26,940 --> 00:33:30,050 >> E por mais agradável que eu realmente apenas significa estética muito detalhista. 761 00:33:30,050 --> 00:33:35,390 Então, observe como a caixa de e-mail não tem A arredondado cantos retangulares para ele. 762 00:33:35,390 --> 00:33:37,010 Portanto, é um pouco mais limpo lá. 763 00:33:37,010 --> 00:33:40,770 Observe que a palavra e-mail é lá até que eu comece a escrever 764 00:33:40,770 --> 00:33:41,797 e, em seguida, ele vai embora. 765 00:33:41,797 --> 00:33:43,130 Então, isso é um pouco de bom recurso. 766 00:33:43,130 --> 00:33:46,046 Observe como a coisa é uma espécie de brilhando muito bem, que algumas dessas você 767 00:33:46,046 --> 00:33:49,069 obter gratuitamente a partir do seu navegador, mas alguns isso é também bibliotecas, 768 00:33:49,069 --> 00:33:51,360 código que outras pessoas têm escrito que lhe dar isso. 769 00:33:51,360 --> 00:33:53,480 >> Algo assim dá-me minha senha. 770 00:33:53,480 --> 00:33:58,480 Este botão é um pouco mais sexy do que a padrão. Muito em voga no momento. 771 00:33:58,480 --> 00:34:03,570 Desde iOS 7 ou assim, o mundo ficou muito plana, 772 00:34:03,570 --> 00:34:09,000 Considerando que o mundo antes tinha muitas sombras, lotes 773 00:34:09,000 --> 00:34:11,040 de reflexões sobre ícones. 774 00:34:11,040 --> 00:34:14,170 Muito parecido no mundo do vestuário, há tendências da moda que vêm e vão. 775 00:34:14,170 --> 00:34:16,190 Agora tudo é liso em seu telefone. 776 00:34:16,190 --> 00:34:19,159 >> De fato, botões no seu iPhone agora são apenas ligações azuis. 777 00:34:19,159 --> 00:34:21,000 Não há, muitas vezes até mesmo botões circulares. 778 00:34:21,000 --> 00:34:22,791 Portanto, estas são apenas coisas que entram e saem 779 00:34:22,791 --> 00:34:26,659 de moda, e por isso esta é a forma como você pode fazer um formulário web olhar mais moderno. 780 00:34:26,659 --> 00:34:27,159 Botões. 781 00:34:27,159 --> 00:34:29,190 Então Bootstrap tem muitos belos botões. 782 00:34:29,190 --> 00:34:33,639 Então se você quer azuis botões, botões verde, azul, laranja, vermelho. 783 00:34:33,639 --> 00:34:35,840 Bootstrap torna mais fácil para fazer essas coisas. 784 00:34:35,840 --> 00:34:38,131 Estes são os tipos de coisas que você poderia absolutamente 785 00:34:38,131 --> 00:34:41,840 ter feito ontem com CSS e com HTML, mas é apenas uma dor no pescoço. 786 00:34:41,840 --> 00:34:44,840 E assim em vez disso, o que faria Bootstrap tem a fazer é algo como isto. 787 00:34:44,840 --> 00:34:48,960 >> Se você quer uma button-- Acontece que este é uma tag HTML, não utilizar yesterday-- 788 00:34:48,960 --> 00:34:53,070 e você quer que ele procure como este botão verde, 789 00:34:53,070 --> 00:34:57,380 você literalmente apenas dar-lhe uma classe, que fizemos falar sobre ontem, 790 00:34:57,380 --> 00:34:59,710 de "btn btn-sucesso". 791 00:34:59,710 --> 00:35:00,971 >> Por essas palavras? 792 00:35:00,971 --> 00:35:03,470 Twitter, os autores do Bootstrap, veio com essas palavras. 793 00:35:03,470 --> 00:35:05,428 Eles poderiam ter chamado -lhes qualquer coisa que eles querem. 794 00:35:05,428 --> 00:35:08,480 Mas o que você está recebendo agora é alguém no Twitter, neste caso, 795 00:35:08,480 --> 00:35:12,360 descobriu como é que você faça uma botão bonito e limpo e verde. 796 00:35:12,360 --> 00:35:15,580 Eles embalados-se que a funcionalidade em uma classe CSS, chamado de "btn" 797 00:35:15,580 --> 00:35:19,790 e "btn-sucesso", de modo que qualquer um de nós pode agora usá-lo sem sequer pensar 798 00:35:19,790 --> 00:35:20,290 isto. 799 00:35:20,290 --> 00:35:22,880 Então, eles têm abstraída a noção de um botão verde 800 00:35:22,880 --> 00:35:25,320 por isso não precisa se preocupar com implementá-lo nós mesmos. 801 00:35:25,320 --> 00:35:28,520 Nós podemos realmente concentrar na implementação coisas de interesse para nós. 802 00:35:28,520 --> 00:35:30,902 >> Se rolar para baixo aqui. 803 00:35:30,902 --> 00:35:32,110 Mensagens de erro na tela. 804 00:35:32,110 --> 00:35:35,440 Às vezes você quer uma pequena mensagem a aparecer no topo do navegador. 805 00:35:35,440 --> 00:35:39,729 Qualquer um de nós poderia fazer isso com algum esforço, após a lição de ontem, 806 00:35:39,729 --> 00:35:40,770 mas por que você iria se preocupar? 807 00:35:40,770 --> 00:35:42,540 Aquele é tal desinteressante detalhe estético. 808 00:35:42,540 --> 00:35:44,248 Vamos ficar na ombros de Bootstrap 809 00:35:44,248 --> 00:35:49,440 e deixá-los dar-nos coisas como esta, onde nós literalmente, para obter uma caixa vermelha, 810 00:35:49,440 --> 00:35:53,220 apenas tem que fazer um parágrafo tag com uma classe de-- pena. 811 00:35:53,220 --> 00:35:57,307 "Bg-perigo" nos daria esta caixa avermelhada em vez disso. 812 00:35:57,307 --> 00:35:59,140 Agora vamos para o as coisas mais interessantes. 813 00:35:59,140 --> 00:36:02,950 Se eu voltar para o topo esta página e ir para Componentes, 814 00:36:02,950 --> 00:36:05,380 agora o mundo fica mais interessante. 815 00:36:05,380 --> 00:36:08,826 Por exemplo, muito comum é menus suspensos como este. 816 00:36:08,826 --> 00:36:11,560 Este seria um absoluto dor de implementar. 817 00:36:11,560 --> 00:36:13,610 E não foi por muito tempo atrás que programadores 818 00:36:13,610 --> 00:36:16,490 teria que implementar esses tipos de menus a partir do zero. 819 00:36:16,490 --> 00:36:20,800 >> Mas é um paradigma tão comum que as bibliotecas como Bootstrap 820 00:36:20,800 --> 00:36:25,230 apenas dar-lhe a capacidade de fazer uma no menu suspenso longe, muito mais facilmente. 821 00:36:25,230 --> 00:36:27,850 Não há uma maneira de fazê-lo, mas se eu ler a documentação 822 00:36:27,850 --> 00:36:32,100 Gostaria de ver isso, OK, eu devo usar este HTML, se eu quiser um menu suspenso 823 00:36:32,100 --> 00:36:34,030 que se comporta assim. 824 00:36:34,030 --> 00:36:36,690 >> Da mesma forma, vamos ao botão drop-down. 825 00:36:36,690 --> 00:36:38,470 Então, isso é ainda mais extravagante. 826 00:36:38,470 --> 00:36:41,800 Se eu quero isso para se parecer com um botão mas esse pequeno triângulo significa 827 00:36:41,800 --> 00:36:44,080 I deve clicar nele e obter este menu, este 828 00:36:44,080 --> 00:36:45,760 é usando uma linguagem chamada JavaScript. 829 00:36:45,760 --> 00:36:47,470 E todos nós poderíamos implementar isso em JavaScript. 830 00:36:47,470 --> 00:36:49,720 Mas, novamente, isso é uma roda você não quer reinventar. 831 00:36:49,720 --> 00:36:52,700 Você só quer tirá-lo a biblioteca de prateleira para este. 832 00:36:52,700 --> 00:36:58,145 >> Vamos para algo como barras de progresso. 833 00:36:58,145 --> 00:36:59,770 Então, algo como isso é legal. 834 00:36:59,770 --> 00:37:02,910 Se você já viu um progresso bar se movendo na tela, 835 00:37:02,910 --> 00:37:06,380 implementação que muitas vezes é apenas um ícone de spinning. 836 00:37:06,380 --> 00:37:10,200 Na verdade, apenas como um aparte, deixe me ir para Ajax-- o que é? 837 00:37:10,200 --> 00:37:10,710 Informação Ajax? 838 00:37:10,710 --> 00:37:11,720 Whoops. 839 00:37:11,720 --> 00:37:13,035 Ajaxinfo. 840 00:37:13,035 --> 00:37:14,800 Deixe-me lembrar o endereço. 841 00:37:14,800 --> 00:37:15,820 Aqui vamos nós. 842 00:37:15,820 --> 00:37:19,850 >> Então, se você já viu alguma animação enquanto a página está carregando, ou pensar, 843 00:37:19,850 --> 00:37:25,410 ou poupança, ou a criação de algo, você pode ver essas animações como estes. 844 00:37:25,410 --> 00:37:28,800 Então, vamos olhar para algo como este aqui, 845 00:37:28,800 --> 00:37:33,550 e vamos escolher uma cor de primeiro plano verde, que se sente tipo de amigável. 846 00:37:33,550 --> 00:37:34,545 Posso clicar isso? 847 00:37:34,545 --> 00:37:35,500 Vem um. 848 00:37:35,500 --> 00:37:36,000 ESTÁ BEM. 849 00:37:36,000 --> 00:37:38,930 Nós vamos apenas ir com vermelho porque isso é o que está recebendo. 850 00:37:38,930 --> 00:37:40,250 Então, aqui temos. 851 00:37:40,250 --> 00:37:43,940 >> Então, se você já viu isso em uma tela, em que de repente ele aparece e, em seguida, 852 00:37:43,940 --> 00:37:47,550 desaparece de repente, o que é que está implementando isso? 853 00:37:47,550 --> 00:37:48,970 Bem, este é apenas um GIF. 854 00:37:48,970 --> 00:37:52,850 G-I-F. E esta é uma animação arquivo, o que significa apenas 855 00:37:52,850 --> 00:37:54,327 é como uma história em quadrinhos da velha escola. 856 00:37:54,327 --> 00:37:57,160 Há apenas um monte de diferente quadros que vão [gagueira] 857 00:37:57,160 --> 00:37:58,085 e apenas repetindo. 858 00:37:58,085 --> 00:38:00,090 E isso está criando o ilusão de movimento. 859 00:38:00,090 --> 00:38:03,070 >> Assim, logo que uma página é feito carregar ou fazer algo, 860 00:38:03,070 --> 00:38:04,610 o que um programador faria? 861 00:38:04,610 --> 00:38:07,500 Bem, ele ou ela simplesmente esconde esta imagem. 862 00:38:07,500 --> 00:38:11,536 Então tudo uma barra de progresso é é tipo de gostar de um filme que está assistindo. 863 00:38:11,536 --> 00:38:14,660 Você é tipo de alheio ao fato que não está realmente fazendo alguma coisa, 864 00:38:14,660 --> 00:38:15,940 é só se mover. 865 00:38:15,940 --> 00:38:19,150 >> E então, quando ele é feito progredindo, eles apenas escondê-lo ou desligá-lo. 866 00:38:19,150 --> 00:38:21,115 E isso é toda a magia que está acontecendo lá. 867 00:38:21,115 --> 00:38:22,770 Bootstrap dá-lhe algo um pouco mais sofisticado, 868 00:38:22,770 --> 00:38:25,030 através do qual você pode realmente ver uma percentagem em que vai, 869 00:38:25,030 --> 00:38:27,840 mas isso também é apenas uma espécie de uma animação simples. 870 00:38:27,840 --> 00:38:32,250 >> Vejamos alguns finais mais exemplos complexos aqui. 871 00:38:32,250 --> 00:38:35,526 Algo como um modal. 872 00:38:35,526 --> 00:38:36,900 Alguém sabe o que é um modal é? 873 00:38:36,900 --> 00:38:39,880 874 00:38:39,880 --> 00:38:42,550 Uma janela modal é geralmente um que é suposto 875 00:38:42,550 --> 00:38:46,880 para assumir o controle dos novos conhecimentos e impedi-lo de fazer qualquer outra coisa. 876 00:38:46,880 --> 00:38:50,290 É uma espécie de força o usuário do a atenção para o centro da tela, 877 00:38:50,290 --> 00:38:52,290 prendê-los para fora, normalmente, de tudo o resto. 878 00:38:52,290 --> 00:38:55,830 >> Então, se eu lançar este demo, o tela irá geralmente tornam-se cinza. 879 00:38:55,830 --> 00:38:57,060 Bem, como podemos torná-lo cinza? 880 00:38:57,060 --> 00:38:59,080 Bem, nós provavelmente apenas mudou a cor de fundo 881 00:38:59,080 --> 00:39:01,060 como fizemos ontem ou algo assim. 882 00:39:01,060 --> 00:39:03,490 Talvez seja uma sobreposição que semi-transparente. 883 00:39:03,490 --> 00:39:06,320 E agora percebe que você pode fazer coisas extravagantes como este. 884 00:39:06,320 --> 00:39:09,930 Então, se você clicar em um botão e quer um pouco de pop fora a aparecer, 885 00:39:09,930 --> 00:39:10,710 você pode fazer isso. 886 00:39:10,710 --> 00:39:12,340 E assim que se preocupa com tudo-- sim? 887 00:39:12,340 --> 00:39:15,791 >> AUDIÊNCIA: Assim, com Bootstrap, para obtê-lo incorporado, 888 00:39:15,791 --> 00:39:21,002 é tão simples quanto como ontem fizemos a página de estilos CSS? 889 00:39:21,002 --> 00:39:21,960 DAVID J. MALAN: Realmente. 890 00:39:21,960 --> 00:39:22,835 Pergunta muito boa. 891 00:39:22,835 --> 00:39:24,480 Deixe-me ir para a Introdução. 892 00:39:24,480 --> 00:39:26,090 E sim. 893 00:39:26,090 --> 00:39:30,920 Tudo que você tem que fazer, a fim de uso Bootstrap é essencialmente copiar 894 00:39:30,920 --> 00:39:35,910 e colar esses três longas filas de código na parte superior do seu próprio página-- web 895 00:39:35,910 --> 00:39:38,892 a cabeça de seu página-- e você está instalado e funcionando. 896 00:39:38,892 --> 00:39:41,850 E há diferentes maneiras de fazer ele, mas isso seria mais simples. 897 00:39:41,850 --> 00:39:45,190 >> Então, o que é útil sobre tudo isso? 898 00:39:45,190 --> 00:39:47,524 Bem, se você não é muito o implementador de um website 899 00:39:47,524 --> 00:39:50,106 mas você está tentando projetá-lo, ou você deseja fornecer alguém 900 00:39:50,106 --> 00:39:53,220 com diagramas de arame, por assim dizer, ou interpretações apenas do artista do que 901 00:39:53,220 --> 00:39:56,080 você quer fazer, eu, a este dia, muitas vezes vai para um site 902 00:39:56,080 --> 00:39:58,660 como Bootstrap, onde se eu deseja implementar algo-- 903 00:39:58,660 --> 00:40:02,290 como recentemente no campus queríamos implementar 904 00:40:02,290 --> 00:40:06,170 uma ferramenta baseada na Web para navegar catálogo de cursos da Universidade de Harvard, 905 00:40:06,170 --> 00:40:08,770 tornando mais fácil para os estudantes para navegar através de cursos 906 00:40:08,770 --> 00:40:10,930 e adicione cursos para lista de compras, por assim dizer, 907 00:40:10,930 --> 00:40:13,070 a espécie de decidir o que eles queriam tomar. 908 00:40:13,070 --> 00:40:16,252 >> Eu estava tentando imaginar para mim, o que faria ingredientes 909 00:40:16,252 --> 00:40:17,460 nós queremos usar para construir este? 910 00:40:17,460 --> 00:40:19,050 O que a interface do usuário ser como? 911 00:40:19,050 --> 00:40:22,800 E apenas olhando através de um site como o este ou outros sites de biblioteca, 912 00:40:22,800 --> 00:40:26,560 você pode ganhar inspiração, porque wow, Eu posso usar esse widget, e este widget, 913 00:40:26,560 --> 00:40:27,330 e este widget. 914 00:40:27,330 --> 00:40:29,080 E então realmente o que o programador começa 915 00:40:29,080 --> 00:40:32,800 para fazer, especialmente nestes dias neste mais moderno mundo da programação web, 916 00:40:32,800 --> 00:40:35,827 é a programação está cada vez mais sobre a fiação coisas juntos. 917 00:40:35,827 --> 00:40:38,910 Espécie de tomar este fora da prateleira, esta fora da prateleira, este fora da prateleira, 918 00:40:38,910 --> 00:40:41,954 e você ser o inteligente para ligar todos esses pontos, 919 00:40:41,954 --> 00:40:45,120 mas, finalmente, construir algo de novo de pé sobre os ombros de outros, 920 00:40:45,120 --> 00:40:49,370 para que você não passar um mês implementação de uma queda estúpida de menu para baixo, 921 00:40:49,370 --> 00:40:52,080 que é realmente difícil de fazer se você quer que ele para trabalhar no Chrome, 922 00:40:52,080 --> 00:40:55,220 e IE e Firefox, e qualquer número de outros navegadores. 923 00:40:55,220 --> 00:40:59,060 É por isso que há essa rica software de fonte comercial e aberta 924 00:40:59,060 --> 00:41:01,220 indústria também. 925 00:41:01,220 --> 00:41:06,810 >> AUDIÊNCIA: Então não Bootstrap ficar atualizado e você tem que, em seguida, atualizar seus links? 926 00:41:06,810 --> 00:41:07,820 >> DAVID J. MALAN: Ele faz. 927 00:41:07,820 --> 00:41:09,090 Bem, sim, ele faz. 928 00:41:09,090 --> 00:41:12,540 Bootstrap está atualmente na versão 3.3.6. 929 00:41:12,540 --> 00:41:16,720 E geralmente o que você fazer-- este é realmente vale a pena mencionar. 930 00:41:16,720 --> 00:41:19,200 Não é o que é geralmente conhecido como um controle de versão semântica 931 00:41:19,200 --> 00:41:20,160 sistema em todo o mundo. 932 00:41:20,160 --> 00:41:21,320 Nem todo mundo faz isso. 933 00:41:21,320 --> 00:41:26,410 >> Mas se você já viu os números de versão que são da forma x.y.z-- 934 00:41:26,410 --> 00:41:30,240 Assim, por exemplo, a primeira versão de um programa pode ser 1.0.0. 935 00:41:30,240 --> 00:41:34,970 Ou se é muito, muito beta, ou mesmo status de alfa, o que significa que o uso 936 00:41:34,970 --> 00:41:37,620 por sua conta e risco, não é realmente pronto para o horário nobre, 937 00:41:37,620 --> 00:41:42,080 você pode até começar 0.0.1 ou algum tal designação. 938 00:41:42,080 --> 00:41:47,260 Mas se o software começa em versão 1.0, 1.0.0 ou equivalentemente, 939 00:41:47,260 --> 00:41:50,530 normalmente, o que é comum estes dias-- embora não é omnipresent-- 940 00:41:50,530 --> 00:41:53,520 se uma empresa ou um correções programador individuais 941 00:41:53,520 --> 00:41:56,140 algum bug em alguma peça de software que realmente 942 00:41:56,140 --> 00:42:01,620 Foi um erro, cuja correção não deve impacto que a todos-- ele não muda 943 00:42:01,620 --> 00:42:03,940 o comportamento do programa, ele só corrige algo 944 00:42:03,940 --> 00:42:06,580 que não estava funcionando properly-- você faria normalmente 945 00:42:06,580 --> 00:42:08,890 atualizar o valor z lá. 946 00:42:08,890 --> 00:42:12,900 O que significa que alguém como Kareem poderia simplesmente entrar em seu website, 947 00:42:12,900 --> 00:42:19,470 cegamente mudar o número da versão partir da versão 1.0.0 para 1.0.1, salvá-lo, enviá-lo, 948 00:42:19,470 --> 00:42:21,880 e, em teoria, não têm de preocupam-se que ele está apenas quebrado 949 00:42:21,880 --> 00:42:24,430 seu site por causa de uma certa falta de funcionalidade, 950 00:42:24,430 --> 00:42:25,870 porque algo quebrou. 951 00:42:25,870 --> 00:42:28,740 >> Enquanto isso, se eu o programador ou alguma empresa 952 00:42:28,740 --> 00:42:35,500 estavam a fazer algum significativa mudança que adiciona funcionalidade, 953 00:42:35,500 --> 00:42:40,320 Eu poderia nos atualizar para 1.1.0 porque eu sou realmente 954 00:42:40,320 --> 00:42:42,200 alterar o comportamento da biblioteca. 955 00:42:42,200 --> 00:42:44,470 Eu estou dando-lhe talvez mais funcionalidade. 956 00:42:44,470 --> 00:42:48,490 Finalmente, se eu fosse, na verdade, mudar fundamentalmente o software para 957 00:42:48,490 --> 00:42:54,380 tanto que ele vai quebrar muitos sites de usuários ou aplicativos, 958 00:42:54,380 --> 00:42:59,550 então eu sou obrigado, neste modelo, a atualizar o número da versão principal também, 959 00:42:59,550 --> 00:43:01,059 que é uma mudança de ruptura. 960 00:43:01,059 --> 00:43:03,725 Em outras palavras, eu poderia ter deixou de prestar suporte para aqueles queda 961 00:43:03,725 --> 00:43:04,350 down menu. 962 00:43:04,350 --> 00:43:07,790 Então, se você atualizar para 2.0, a metade seu site pode parar de funcionar. 963 00:43:07,790 --> 00:43:10,950 E esta é uma espécie de sinal para a comunidade, como o que é 964 00:43:10,950 --> 00:43:13,223 envolvido em fazer um upgrade. 965 00:43:13,223 --> 00:43:16,710 966 00:43:16,710 --> 00:43:18,020 Uma boa oportunidade para levantar. 967 00:43:18,020 --> 00:43:18,718 Outras perguntas? 968 00:43:18,718 --> 00:43:21,761 969 00:43:21,761 --> 00:43:22,260 Tudo certo. 970 00:43:22,260 --> 00:43:26,945 Bem, vamos dar uma olhada em uma final, tópico neste segmento da programação 971 00:43:26,945 --> 00:43:30,640 de pilhas de tecnologia, nomeadamente relacionadas com móvel. 972 00:43:30,640 --> 00:43:36,232 >> Assim, no mundo de telefones celulares hoje você have-- e iPads, e superfícies, 973 00:43:36,232 --> 00:43:37,940 e todos os tipos de devices-- você tem 974 00:43:37,940 --> 00:43:40,950 um monte de opções quando se trata de implementar 975 00:43:40,950 --> 00:43:47,270 um aplicativo ou um site para dispositivos móveis do seu cliente. 976 00:43:47,270 --> 00:43:51,570 Então, só para indicar o óbvio, talvez nos dias de hoje, 977 00:43:51,570 --> 00:43:54,960 quais são as plataformas para desenvolver no espaço móvel? 978 00:43:54,960 --> 00:43:59,650 Que dispositivos você pode querer apoiar com a sua aplicação ou site? 979 00:43:59,650 --> 00:44:00,317 >> AUDIÊNCIA: Apple. 980 00:44:00,317 --> 00:44:01,108 DAVID J. MALAN: OK. 981 00:44:01,108 --> 00:44:01,820 Assim, os dispositivos da Apple. 982 00:44:01,820 --> 00:44:06,740 Então isso significa que o iPhone, e que significa iPad, e talvez até mesmo iPod. 983 00:44:06,740 --> 00:44:07,627 O quê mais? 984 00:44:07,627 --> 00:44:11,006 985 00:44:11,006 --> 00:44:11,505 Olivier? 986 00:44:11,505 --> 00:44:11,970 >> AUDIÊNCIA: Android. 987 00:44:11,970 --> 00:44:13,111 >> DAVID J. MALAN: Android. 988 00:44:13,111 --> 00:44:13,610 ESTÁ BEM. 989 00:44:13,610 --> 00:44:17,335 telefones para Android, Android comprimidos, o mercado Android 990 00:44:17,335 --> 00:44:21,240 é ainda mais confusa porque-- e até mesmo a Apple está se tornando confuso. 991 00:44:21,240 --> 00:44:23,960 Considerando once upon a time iPhone era um determinado tamanho, 992 00:44:23,960 --> 00:44:26,560 e iPad era um determinado tamanho, e iPod foi um certo tamanho, agora 993 00:44:26,560 --> 00:44:33,420 temos Minis do iPad, eo fina queridos, e o iPhone 6 Plus e 6. 994 00:44:33,420 --> 00:44:34,407 Está se tornando uma bagunça. 995 00:44:34,407 --> 00:44:35,740 Está se tornando o mundo Android. 996 00:44:35,740 --> 00:44:39,030 >> E eu digo isso com tipo de rolamento meus olhos, porque a partir de um desenvolvedor 997 00:44:39,030 --> 00:44:41,680 perspectiva, é um dor no pescoço quando 998 00:44:41,680 --> 00:44:45,686 você não tem Steve Jobs ' visão de controle absoluto 999 00:44:45,686 --> 00:44:47,060 sobre todas estas especificações. 1000 00:44:47,060 --> 00:44:49,726 Apple ainda faz porque eles são os construindo o hardware. 1001 00:44:49,726 --> 00:44:52,690 Mas é uma coisa boa, se Eu sou um desenvolvedor de software, 1002 00:44:52,690 --> 00:44:54,520 apenas sei que o meu iPhone é sempre vai 1003 00:44:54,520 --> 00:44:56,850 para ser tão grande, porque isso significa que eu sempre saber 1004 00:44:56,850 --> 00:44:58,847 quanto espaço na tela que eu tenho. 1005 00:44:58,847 --> 00:45:01,180 Então, se eu quiser colocar um ícone no canto superior esquerdo, 1006 00:45:01,180 --> 00:45:04,530 ele vai estar na mesma exata colocar no dispositivo de cada cliente. 1007 00:45:04,530 --> 00:45:07,140 >> Mas no mundo do iPhone 6s e iPhone 6 Pluses 1008 00:45:07,140 --> 00:45:10,570 e no mundo do Android telefones, é tudo sobre o mapa. 1009 00:45:10,570 --> 00:45:13,580 E assim torna-se mais difícil de programa coisas, especialmente interfaces de usuário, 1010 00:45:13,580 --> 00:45:18,270 porque agora você tem que começar a organizar suas interfaces de utilizador relativamente, não 1011 00:45:18,270 --> 00:45:19,730 absolutamente. 1012 00:45:19,730 --> 00:45:23,524 E o mesmo foi verdade em navegadores, e desktops e laptops para os anos 1013 00:45:23,524 --> 00:45:25,690 porque você, é claro, têm diferentes tamanhos de tela. 1014 00:45:25,690 --> 00:45:26,189 >> O quê mais? 1015 00:45:26,189 --> 00:45:30,170 Você pode ter superfícies, como da Microsoft. 1016 00:45:30,170 --> 00:45:31,270 Você pode have-- 1017 00:45:31,270 --> 00:45:32,270 AUDIÊNCIA: Windows phone. 1018 00:45:32,270 --> 00:45:32,816 DAVID J. MALAN: O que é isso? 1019 00:45:32,816 --> 00:45:33,570 AUDIÊNCIA: Windows phone. 1020 00:45:33,570 --> 00:45:34,403 DAVID J. MALAN: Sim. 1021 00:45:34,403 --> 00:45:37,570 Assim, os telefones com Windows ainda podem ser encontrados. 1022 00:45:37,570 --> 00:45:41,840 Tipo de tipo de BlackBerrys, mas eles continuam tentando. 1023 00:45:41,840 --> 00:45:43,900 E então cachos de outros dispositivos. 1024 00:45:43,900 --> 00:45:48,020 Assim, para a maior parte, vamos dizer que estes são os únicos 1025 00:45:48,020 --> 00:45:49,520 se preocupar com no momento. 1026 00:45:49,520 --> 00:45:51,890 Certamente as coisas da Apple, certamente o material Android, 1027 00:45:51,890 --> 00:45:55,640 e entre o Windows, como comprimidos de superfície parecem estar em recuperação muito bem. 1028 00:45:55,640 --> 00:45:58,030 >> E assim entre os dispositivos, se você quer rolar para fora, 1029 00:45:58,030 --> 00:46:02,677 digamos, uma presença móvel para o seu empresa, que tipos de decisões de design 1030 00:46:02,677 --> 00:46:03,510 você tem que fazer? 1031 00:46:03,510 --> 00:46:06,350 Bem, já disse no mundo da Apple, 1032 00:46:06,350 --> 00:46:08,790 existe pelo menos duas línguas que são normalmente usados. 1033 00:46:08,790 --> 00:46:10,260 Um deles foi chamado de quê? 1034 00:46:10,260 --> 00:46:11,260 >> AUDIÊNCIA: Objective-C. 1035 00:46:11,260 --> 00:46:11,560 >> DAVID J. MALAN: Yeah. 1036 00:46:11,560 --> 00:46:13,600 Então, Objective-C, que é a mais antiga. 1037 00:46:13,600 --> 00:46:17,720 É também a língua que muitos Mac aplicativos ainda são escritos em. 1038 00:46:17,720 --> 00:46:18,964 Em seguida, o outro mais novo era? 1039 00:46:18,964 --> 00:46:19,630 AUDIÊNCIA: Swift. 1040 00:46:19,630 --> 00:46:20,590 DAVID J. MALAN: Swift. 1041 00:46:20,590 --> 00:46:23,900 E esses são o tipo de dois para saber para impressionar as pessoas. 1042 00:46:23,900 --> 00:46:28,238 Em seguida, no mundo Android, que língua Android usar? 1043 00:46:28,238 --> 00:46:30,618 >> AUDIÊNCIA: C #? 1044 00:46:30,618 --> 00:46:31,570 >> AUDIÊNCIA: Java. 1045 00:46:31,570 --> 00:46:34,230 >> DAVID J. MALAN: Java é a linguagem do "du jour". 1046 00:46:34,230 --> 00:46:37,950 No mundo Windows, com certeza, diremos C # nesse caso. 1047 00:46:37,950 --> 00:46:40,590 Assim, já este é o tipo de irritante, porque o que é 1048 00:46:40,590 --> 00:46:43,070 o take-away para um negócio proprietário ou alguém que apenas 1049 00:46:43,070 --> 00:46:44,570 quer para a implantação de uma presença móvel? 1050 00:46:44,570 --> 00:46:45,220 Como, caramba? 1051 00:46:45,220 --> 00:46:48,590 Como, se eu quiser apoiar um bastante ampla base de usuários, 1052 00:46:48,590 --> 00:46:52,180 Eu tenho que escrever, ao que parece, três aplicações separadas. 1053 00:46:52,180 --> 00:46:55,630 Um em cada uma dessas línguas, um em Java, um em C #. 1054 00:46:55,630 --> 00:46:59,620 E mesmo se eu quero a funcionalidade ser idênticos, não importa. 1055 00:46:59,620 --> 00:47:02,940 Eu ainda preciso usar diferentes línguas porque a Apple e Microsoft, 1056 00:47:02,940 --> 00:47:06,084 e Google todo o apoio diferentes ambientes. 1057 00:47:06,084 --> 00:47:07,750 E isso tem sido um desafio para os anos. 1058 00:47:07,750 --> 00:47:10,100 De volta ao dia, quando as pessoas usadas para comprar software 1059 00:47:10,100 --> 00:47:12,230 em uma loja de computador em encolher caixas embrulhadas, 1060 00:47:12,230 --> 00:47:14,470 você teria que alcançar para a prateleira Mac, 1061 00:47:14,470 --> 00:47:19,040 ou for-- talvez este muito pequeno Mac shelf-- ou prateleira maior do Windows 1062 00:47:19,040 --> 00:47:19,980 e comprar alguns softwares. 1063 00:47:19,980 --> 00:47:22,813 E muitas vezes, não havia sequer qualquer coisa para você na prateleira Mac. 1064 00:47:22,813 --> 00:47:23,430 Por quê? 1065 00:47:23,430 --> 00:47:26,900 Bem, as empresas decidiram se 90% do mundo, 95% da população mundial 1066 00:47:26,900 --> 00:47:31,180 tem PCs, por que se preocupar mesmo implementar coisas no Mac OS? 1067 00:47:31,180 --> 00:47:34,370 >> Como um total aside-- digression-- por que é 1068 00:47:34,370 --> 00:47:40,960 Mac que parece tão impermeável aos vírus, e worms e ameaças de segurança? 1069 00:47:40,960 --> 00:47:44,040 Apple é melhor com isso? 1070 00:47:44,040 --> 00:47:45,934 Melhor em manter os computadores seguros? 1071 00:47:45,934 --> 00:47:47,750 >> AUDIÊNCIA: audiência menor? 1072 00:47:47,750 --> 00:47:50,720 >> DAVID J. MALAN: Isso é Provavelmente o maior de bits a ele. 1073 00:47:50,720 --> 00:47:54,740 Assim, os muitos usuários de Macs têm reivindicado por muito tempo, oh, usar um Mac, 1074 00:47:54,740 --> 00:47:57,630 você estará imune a vírus, e worms e todas essas coisas 1075 00:47:57,630 --> 00:47:59,180 que há muito atormentado PCs. 1076 00:47:59,180 --> 00:48:02,050 Isso pode ser porque a Apple tem melhores programadores 1077 00:48:02,050 --> 00:48:05,250 e eles escrever melhor software, ou o sistema operacional foi melhor concebido. 1078 00:48:05,250 --> 00:48:06,870 Talvez, mas provavelmente não. 1079 00:48:06,870 --> 00:48:10,840 >> Provavelmente é que quando você está um 12-year-old, ou 30 algo 1080 00:48:10,840 --> 00:48:13,510 tipo de sentado em casa escrevendo software malicioso para assumir 1081 00:48:13,510 --> 00:48:17,480 o mundo, você está indo para ir atrás o público-alvo muito maior. 1082 00:48:17,480 --> 00:48:20,590 O 95% do mundo que pode estar executando o Windows ou algum 1083 00:48:20,590 --> 00:48:21,740 as suas variantes. 1084 00:48:21,740 --> 00:48:23,800 Portanto, há um pouco de ambos os lados. 1085 00:48:23,800 --> 00:48:25,710 Mas, para seu crédito, A Apple, que eu saiba, 1086 00:48:25,710 --> 00:48:28,270 Não tem realmente elogiado-se como sendo mais seguro, 1087 00:48:28,270 --> 00:48:32,110 desde que você está apenas convidando o drama se você fazer essa reivindicação, eu acho. 1088 00:48:32,110 --> 00:48:32,610 >> Tudo certo. 1089 00:48:32,610 --> 00:48:36,490 Sem ficar muito longe para baixo que, como é que vamos resolver isso? 1090 00:48:36,490 --> 00:48:39,670 Você tem que comprar ou você tem que pagar três pessoas diferentes para desenvolver 1091 00:48:39,670 --> 00:48:41,540 seus aplicativos? 1092 00:48:41,540 --> 00:48:42,870 Você escolhe um sobre o outro? 1093 00:48:42,870 --> 00:48:45,460 O que deve orientar a sua aqui pensando que você acha? 1094 00:48:45,460 --> 00:48:47,960 1095 00:48:47,960 --> 00:48:48,460 Kareem? 1096 00:48:48,460 --> 00:48:51,001 1097 00:48:51,001 --> 00:48:51,500 Não. 1098 00:48:51,500 --> 00:48:54,190 Alguém. 1099 00:48:54,190 --> 00:48:56,885 >> AUDIÊNCIA: Basta vir com o hardware. 1100 00:48:56,885 --> 00:48:58,510 DAVID J. MALAN: Vindo com o hardware? 1101 00:48:58,510 --> 00:48:59,533 O que você quer dizer? 1102 00:48:59,533 --> 00:49:01,282 >> AUDIÊNCIA: Para o meio Ambiente. [INAUDÍVEL] 1103 00:49:01,282 --> 00:49:04,867 1104 00:49:04,867 --> 00:49:06,200 DAVID J. MALAN: Então, isso é verdade. 1105 00:49:06,200 --> 00:49:09,280 Mas os seus clientes, Enquanto isso, pode ter iPhones, 1106 00:49:09,280 --> 00:49:13,530 eles poderiam ter telefones Android, eles pode ter comprimidos feitos pela Microsoft. 1107 00:49:13,530 --> 00:49:19,040 Então como é que você tem uma estratégia móvel Por todas estas diferentes utilizadores? 1108 00:49:19,040 --> 00:49:23,320 Parece que se ele custa, digamos $ 1.000 para fazer um iPhone 1109 00:49:23,320 --> 00:49:25,940 aplicação, que vai a custar US $ 2.000 para fazer 1110 00:49:25,940 --> 00:49:29,250 um aplicativo para iPhone e um aplicativo Android, ou US $ 3.000 1111 00:49:29,250 --> 00:49:31,407 também suporta dispositivos do Windows também. 1112 00:49:31,407 --> 00:49:33,990 Isso é provavelmente um grande eufemismo, e ele pode até não 1113 00:49:33,990 --> 00:49:36,050 ser uma relação linear assim. 1114 00:49:36,050 --> 00:49:41,065 >> Audiência: Se você quer ter um aplicativo ou não, você pode ter o site responsivo. 1115 00:49:41,065 --> 00:49:41,940 DAVID J. MALAN: Good. 1116 00:49:41,940 --> 00:49:46,255 AUDIÊNCIA: Ou você pode ter um aplicativo nativo. 1117 00:49:46,255 --> 00:49:47,130 DAVID J. MALAN: Yeah. 1118 00:49:47,130 --> 00:49:50,260 Assim, em todo este contexto aqui, nós temos falado sobre o que 1119 00:49:50,260 --> 00:49:53,190 pessoas chamaria de aplicativos nativos. 1120 00:49:53,190 --> 00:49:58,040 Isso é aplicações que são escritas na língua nativa desse dispositivo. 1121 00:49:58,040 --> 00:50:02,190 Então nativa Objective-C ou Swift código, ou em Java, ou C #. 1122 00:50:02,190 --> 00:50:06,900 O que significa que quando você baixar, vamos dizem Snapchat, uma aplicação popular, 1123 00:50:06,900 --> 00:50:10,060 ou quando você baixar Facebook para um telefone, 1124 00:50:10,060 --> 00:50:13,270 você está baixando ou o versão escrita para o seu iPhone, 1125 00:50:13,270 --> 00:50:16,830 ou por escrito para o seu telefone Android, ou por escrito para a sua superfície. 1126 00:50:16,830 --> 00:50:18,500 >> Mas há uma alternativa. 1127 00:50:18,500 --> 00:50:26,020 Como Olivier estava se referindo, você pode realmente usar HTML 5 1128 00:50:26,020 --> 00:50:33,440 em vez disso, usando o que é chamado de web aplicação, em que você simplesmente 1129 00:50:33,440 --> 00:50:35,940 implementar sua presença móvel e qualquer funcionalidade. 1130 00:50:35,940 --> 00:50:37,030 O que quero dizer com presença móvel? 1131 00:50:37,030 --> 00:50:39,800 Como seu site que tem o seu informações de contato, uma lista de todos 1132 00:50:39,800 --> 00:50:43,049 seus produtos, talvez ele tenha um shopping carrinho, talvez você vender coisas através dele. 1133 00:50:43,049 --> 00:50:46,850 Seja qual for a sua aplicação é, você implementá-lo, não em Objective-C, 1134 00:50:46,850 --> 00:50:51,200 ou Swift, ou Java ou C #, mas em HTML 5, que era a língua olhamos 1135 00:50:51,200 --> 00:50:55,470 na ontem, com JavaScript e CSS. 1136 00:50:55,470 --> 00:50:58,700 >> E o que é agradável sobre os três é que para executá-los, 1137 00:50:58,700 --> 00:51:01,981 você precisa apenas o pedaço de software? 1138 00:51:01,981 --> 00:51:02,980 AUDIÊNCIA: Um navegador web. 1139 00:51:02,980 --> 00:51:04,229 DAVID J. MALAN: Um navegador web. 1140 00:51:04,229 --> 00:51:07,610 E o melhor que eu sei, todos estes dispositivos vêm com navegadores web, 1141 00:51:07,610 --> 00:51:10,480 para que o usuário não tem que instalar algo especial. 1142 00:51:10,480 --> 00:51:12,920 Então você pode apenas informar o seu público, seus clientes, 1143 00:51:12,920 --> 00:51:16,590 ir para ACME.COM em sua navegador e você apenas 1144 00:51:16,590 --> 00:51:19,730 ter uma experiência baseada na web que ainda enche a tela, 1145 00:51:19,730 --> 00:51:25,100 mas você não precisa se preocupar com todos estes custos e toda essa complexidade. 1146 00:51:25,100 --> 00:51:28,600 Mas certamente não vai ser um problema aqui, certo? 1147 00:51:28,600 --> 00:51:31,740 Especialmente se eu aponto que há alguns anos atrás, 1148 00:51:31,740 --> 00:51:35,700 a primeira versão do aplicação móvel do Facebook 1149 00:51:35,700 --> 00:51:38,810 foi principalmente um aplicativo HTML 5. 1150 00:51:38,810 --> 00:51:42,490 E eles têm, mais recentemente, reimplemented-lo 1151 00:51:42,490 --> 00:51:44,700 nas suas outras aplicações. 1152 00:51:44,700 --> 00:51:46,990 >> Então, por que você não imediatamente quer dizer, 1153 00:51:46,990 --> 00:51:49,190 Bem, obviamente nós vamos fazer isso? 1154 00:51:49,190 --> 00:51:51,560 O que pode os custos ocultos ser? 1155 00:51:51,560 --> 00:51:52,477 >> AUDIÊNCIA: Performance. 1156 00:51:52,477 --> 00:51:53,643 DAVID J. MALAN: Performance? 1157 00:51:53,643 --> 00:51:54,567 O que você quer dizer? 1158 00:51:54,567 --> 00:52:01,040 >> Audiência: O aplicativo nativo tem mais performance. 1159 00:52:01,040 --> 00:52:03,850 >> DAVID J. MALAN: Para que é verdade, para um par de razões. 1160 00:52:03,850 --> 00:52:05,270 Podemos simplificar a resposta. 1161 00:52:05,270 --> 00:52:08,061 E recordar nossa discussão sobre interpretados em relação linguagens compiladas. 1162 00:52:08,061 --> 00:52:12,030 Este é o HTML 5 e, com ela, apenas para ser claro, JavaScript-- comumente escrito 1163 00:52:12,030 --> 00:52:15,880 JS-- e CSS são todos linguagens interpretadas, 1164 00:52:15,880 --> 00:52:21,020 apesar de apenas JavaScript é uma linguagem de programação. 1165 00:52:21,020 --> 00:52:25,820 >> E assim contra estes, que alguns destes são compilados, pelo menos, estes three-- 1166 00:52:25,820 --> 00:52:29,990 Objective-C, Java e C # - estes, em teoria, deve apenas ser mais rápido. 1167 00:52:29,990 --> 00:52:31,670 Mas há uma outra realidade for-- 1168 00:52:31,670 --> 00:52:32,440 >> AUDIÊNCIA: Funcionalidades? 1169 00:52:32,440 --> 00:52:32,830 >> DAVID J. MALAN: O que é isso? 1170 00:52:32,830 --> 00:52:34,060 >> Audiência: funcionalidades. 1171 00:52:34,060 --> 00:52:34,570 >> DAVID J. MALAN: Funcionalidade? 1172 00:52:34,570 --> 00:52:35,070 Como assim? 1173 00:52:35,070 --> 00:52:37,305 AUDIÊNCIA: Use a câmera o seu telefone ou algo assim. 1174 00:52:37,305 --> 00:52:41,471 Você pode usá-los com o browser. 1175 00:52:41,471 --> 00:52:42,470 DAVID J. MALAN: Exatamente. 1176 00:52:42,470 --> 00:52:43,011 Eles estão sec-- 1177 00:52:43,011 --> 00:52:45,034 AUDIÊNCIA: [inaudível] 1178 00:52:45,034 --> 00:52:46,700 DAVID J. MALAN: Essa é outra boa. 1179 00:52:46,700 --> 00:52:49,230 Há recursos que vêm com telefones celulares hoje 1180 00:52:49,230 --> 00:52:53,840 que não são, por design, para a segurança razões, acessíveis a navegadores web. 1181 00:52:53,840 --> 00:52:56,410 Porque seria tipo de uma coisa assustador se apenas quando 1182 00:52:56,410 --> 00:53:00,710 você visitar google.com, ou cnn.com ou qualquer website.com, 1183 00:53:00,710 --> 00:53:04,490 que esse site tem o poder de transformar em sua câmera, tirar uma foto de você, 1184 00:53:04,490 --> 00:53:06,010 e, em seguida, usá-lo. 1185 00:53:06,010 --> 00:53:09,280 Mas você não iria querer um site aleatório que você visita pela primeira vez 1186 00:53:09,280 --> 00:53:10,690 ter essa capacidade. 1187 00:53:10,690 --> 00:53:13,460 >> E então o que telefone os fabricantes costumam fazer 1188 00:53:13,460 --> 00:53:17,230 é que eles simplesmente negar o acesso para esse tipo de informações 1189 00:53:17,230 --> 00:53:20,650 para um navegador, o que significa que você não pode implementar a câmera. 1190 00:53:20,650 --> 00:53:24,180 Você não pode implementar as notificações push, os sinais sonoros que você recebe em sua tela 1191 00:53:24,180 --> 00:53:26,120 com mensagens curtas. 1192 00:53:26,120 --> 00:53:31,350 E, de fato, mesmo GPS é único tipo do tipo de disponível para navegadores web. 1193 00:53:31,350 --> 00:53:34,140 Se você já, em um laptop ou em um dispositivo móvel, 1194 00:53:34,140 --> 00:53:38,770 puxou algo como talvez CNN.com, mas também estações de notícias locais 1195 00:53:38,770 --> 00:53:43,890 tendem a fazer isso, você será solicitado muitas vezes com um message-- foxnews.com 1196 00:53:43,890 --> 00:53:45,170 quer saber a sua localização. 1197 00:53:45,170 --> 00:53:46,610 Aprovar ou negar. 1198 00:53:46,610 --> 00:53:52,070 >> Bem, o navegador está tentando acessar sua informação GPS do seu telefone. 1199 00:53:52,070 --> 00:53:54,740 Mas, felizmente, Microsoft, e Apple e Google 1200 00:53:54,740 --> 00:53:57,330 decidiram que se sente como é uma situação útil, 1201 00:53:57,330 --> 00:53:59,461 queremos que o Google Maps e outras ferramentas para o trabalho, 1202 00:53:59,461 --> 00:54:02,710 mas nós não queremos a rastejar as pessoas para fora por apenas permitindo a qualquer website para fazer isso. 1203 00:54:02,710 --> 00:54:05,934 Então, vamos espécie de encontro meio e solicitar ao usuário. 1204 00:54:05,934 --> 00:54:08,850 Mas isso não é necessariamente o caso com todo o hardware, como a câmera 1205 00:54:08,850 --> 00:54:10,680 e com push notificações e similares, 1206 00:54:10,680 --> 00:54:13,650 assim você pode ter que sacrificar determinadas características. 1207 00:54:13,650 --> 00:54:15,100 Mas o desempenho também. 1208 00:54:15,100 --> 00:54:18,020 É cada vez menos perceptível nos dias de hoje, talvez 1209 00:54:18,020 --> 00:54:22,400 como LTE sobre as capturas e mais rápido velocidades de internet em telefones, 1210 00:54:22,400 --> 00:54:24,110 mas você pode tipo de sentir a diferença. 1211 00:54:24,110 --> 00:54:28,190 Como um aplicativo baseado na web só se sente mais lento, normalmente, 1212 00:54:28,190 --> 00:54:31,100 que um aplicativo nativo, em parte porque um aplicativo baseado na web 1213 00:54:31,100 --> 00:54:32,680 por definição, está na internet. 1214 00:54:32,680 --> 00:54:35,610 Ele está falando com os servidores da web. 1215 00:54:35,610 --> 00:54:39,590 E se a sua conexão de rede é lento, mesmo a rolagem pode ser lento. 1216 00:54:39,590 --> 00:54:43,710 >> Mas um aplicativo nativo, você tem já pré-downloaded-- provavelmente 1217 00:54:43,710 --> 00:54:45,680 quando estivesse em casa a partir da App Store, 1218 00:54:45,680 --> 00:54:47,900 ou você pelo menos pré-descarregado -lo em sua totalidade 1219 00:54:47,900 --> 00:54:49,640 antes, qualquer que seja sua velocidade de conexão-- 1220 00:54:49,640 --> 00:54:52,530 e agora você tem todo o bits que você geralmente precisa. 1221 00:54:52,530 --> 00:54:55,090 Exceto talvez alguns dados que vem a partir de um servidor. 1222 00:54:55,090 --> 00:54:57,130 >> Então, esses são os trade-offs aqui. 1223 00:54:57,130 --> 00:54:59,980 Há uma espécie de meio compromisso, na verdade. 1224 00:54:59,980 --> 00:55:00,907 E eu acho que você-- 1225 00:55:00,907 --> 00:55:02,895 >> AUDIÊNCIA: Use os dados offline. 1226 00:55:02,895 --> 00:55:06,355 Nos aplicativos nativos, você pode [inaudível] 1227 00:55:06,355 --> 00:55:07,480 DAVID J. MALAN: Absolutamente. 1228 00:55:07,480 --> 00:55:09,730 Portanto, há a questão off-line, que é realmente irritante 1229 00:55:09,730 --> 00:55:13,120 Se você não pode jogar algum jogo ou utilização alguns softwares só porque você está 1230 00:55:13,120 --> 00:55:15,110 em um porão em algum lugar ou em um elevador. 1231 00:55:15,110 --> 00:55:18,700 Um aplicativo nativo é resiliente com maior probabilidade de encontro que, 1232 00:55:18,700 --> 00:55:20,990 supondo que você tem todo o dados que você precisa localmente. 1233 00:55:20,990 --> 00:55:22,900 >> Portanto, há uma terceira opção aqui. 1234 00:55:22,900 --> 00:55:30,270 E vamos desenhar o espectro como aplicativo nativo aqui e web app aqui. 1235 00:55:30,270 --> 00:55:32,460 E o que é no meio é algo called-- 1236 00:55:32,460 --> 00:55:35,410 e eu acho que você pode ter usou a palavra antes, talvez? 1237 00:55:35,410 --> 00:55:37,170 aplicação híbrida. 1238 00:55:37,170 --> 00:55:40,980 E como a palavra indica, é algo no meio. 1239 00:55:40,980 --> 00:55:46,230 É uma espécie de uma aplicação web e é uma espécie de um aplicativo nativo. 1240 00:55:46,230 --> 00:55:47,690 >> E o que isso significa? 1241 00:55:47,690 --> 00:55:51,750 Acontece que existem frameworks-- para usar um termo de software earlier-- 1242 00:55:51,750 --> 00:55:55,860 que outras pessoas têm escrito para cada uma dessas plataformas. 1243 00:55:55,860 --> 00:55:57,500 Estes e ainda outros dispositivos. 1244 00:55:57,500 --> 00:56:02,390 Na verdade, deixe-me ir para PhoneGap, que é um tal quadro que eu 1245 00:56:02,390 --> 00:56:04,520 acredito Adobe possui agora. 1246 00:56:04,520 --> 00:56:07,830 Deixe-me ir para a Introdução. 1247 00:56:07,830 --> 00:56:09,430 Vamos ver. 1248 00:56:09,430 --> 00:56:12,450 Veja se eu posso ver uma lista de ferramentas. 1249 00:56:12,450 --> 00:56:13,150 Hardware. 1250 00:56:13,150 --> 00:56:15,845 Começando. 1251 00:56:15,845 --> 00:56:17,570 hardware PhoneGap. 1252 00:56:17,570 --> 00:56:18,672 >> Vamos ver. 1253 00:56:18,672 --> 00:56:23,459 PhoneGap acesso ao hardware. 1254 00:56:23,459 --> 00:56:26,125 Deixe-me ver se podemos encontrar um pouco gráfico que eles costumavam ter. 1255 00:56:26,125 --> 00:56:29,170 1256 00:56:29,170 --> 00:56:31,640 Isto está em outro site. 1257 00:56:31,640 --> 00:56:32,525 Isso é útil? 1258 00:56:32,525 --> 00:56:33,030 Não. 1259 00:56:33,030 --> 00:56:36,330 Isso vai perder o nosso tempo lá. 1260 00:56:36,330 --> 00:56:40,185 hardware PhoneGap. 1261 00:56:40,185 --> 00:56:40,685 Dispositivos. 1262 00:56:40,685 --> 00:56:45,190 1263 00:56:45,190 --> 00:56:48,030 API dispositivo. 1264 00:56:48,030 --> 00:56:49,270 Não, eles mudaram-lo. 1265 00:56:49,270 --> 00:56:50,070 >> PhoneGap. 1266 00:56:50,070 --> 00:56:54,964 Vamos dar uma última olhada neste e ver se eu posso te mostrar. 1267 00:56:54,964 --> 00:56:55,630 Começando. 1268 00:56:55,630 --> 00:56:58,160 1269 00:56:58,160 --> 00:56:59,020 Instale PhoneGap. 1270 00:56:59,020 --> 00:57:02,310 1271 00:57:02,310 --> 00:57:03,270 Instalar aplicativo móvel. 1272 00:57:03,270 --> 00:57:04,320 Vamos. 1273 00:57:04,320 --> 00:57:07,220 1274 00:57:07,220 --> 00:57:08,580 Eles reorganizou tudo. 1275 00:57:08,580 --> 00:57:09,750 Tudo certo. 1276 00:57:09,750 --> 00:57:11,370 Oh tudo bem. 1277 00:57:11,370 --> 00:57:12,550 Bem, aqui vamos nós. 1278 00:57:12,550 --> 00:57:16,130 Isso não é tudo o que esclarecedor, mas este é o que eu estava tipo de procura. 1279 00:57:16,130 --> 00:57:20,940 >> Então PhoneGap é um quadro que você pode baixar de graça que lhe dá 1280 00:57:20,940 --> 00:57:22,750 algum código inicial, essencialmente. 1281 00:57:22,750 --> 00:57:26,600 Então, algum código que eles têm escrito que não faz muita coisa. 1282 00:57:26,600 --> 00:57:29,610 Mas o que lhe dá essencialmente é o equivalente 1283 00:57:29,610 --> 00:57:34,910 de um aplicativo que apenas coloca um retângulo grande na tela do usuário. 1284 00:57:34,910 --> 00:57:38,040 Não colocar uma barra de URL, como um navegador, não coloca um endereço. 1285 00:57:38,040 --> 00:57:39,650 Ele só coloca um grande retângulo. 1286 00:57:39,650 --> 00:57:43,230 E você configurar esta grande retângulo, debaixo do capô, 1287 00:57:43,230 --> 00:57:50,780 para realmente ir para acme.com, ou talvez m.acme.com, por mobile.acme.com, 1288 00:57:50,780 --> 00:57:52,910 mas o usuário não sabe eles estão nesse endereço. 1289 00:57:52,910 --> 00:57:55,520 Tudo o que vemos é a conteúdo da página web. 1290 00:57:55,520 --> 00:57:59,822 >> Mas o que é agradável sobre este ser um aplicativo híbrido é que o que PhoneGap 1291 00:57:59,822 --> 00:58:03,030 e outras empresas estão dando é eles estão dando-lhe um pouco de código 1292 00:58:03,030 --> 00:58:05,760 em Objective-C ou Swift, ou um pouco de código em Java, 1293 00:58:05,760 --> 00:58:08,320 ou um pouco de código em C #, e essencialmente, 1294 00:58:08,320 --> 00:58:12,990 tudo que você tem para oferecer é minimamente o endereço do seu aplicativo baseado na web. 1295 00:58:12,990 --> 00:58:15,750 E então você unir este todos juntos e você 1296 00:58:15,750 --> 00:58:20,670 tê-lo quer aceder ao seu site através da internet, 1297 00:58:20,670 --> 00:58:24,060 ou você mesmo cache um local, copiar dentro do aplicativo, 1298 00:58:24,060 --> 00:58:28,690 em seguida, guardar a sua aplicação em formato iPhone, telefone Android 1299 00:58:28,690 --> 00:58:32,030 formato, formato de superfície, ou qualquer número de outros dispositivos. 1300 00:58:32,030 --> 00:58:34,960 >> Você carregar cada uma dessas versões ao Play Store Google, 1301 00:58:34,960 --> 00:58:37,690 para a App Store, ao Windows Store, e assim por diante. 1302 00:58:37,690 --> 00:58:41,570 E agora, você pode ter todas as suas o público baixar verdadeiramente um aplicativo nativo, 1303 00:58:41,570 --> 00:58:44,250 se bem que a maior parte do código estava escrito por outra pessoa, 1304 00:58:44,250 --> 00:58:49,090 mas o conteúdo do que aplicativo nativo tudo vêm, normalmente, o seu próprio site. 1305 00:58:49,090 --> 00:58:53,950 Então você continuar a escrever o seu site em HTML, JavaScript e CSS. 1306 00:58:53,950 --> 00:58:56,400 >> Então, por que confundem essas fronteiras? 1307 00:58:56,400 --> 00:59:00,240 Por que ter uma aplicação híbrida que é uma espécie de nativo, mas também 1308 00:59:00,240 --> 00:59:02,569 tipo de web com base? 1309 00:59:02,569 --> 00:59:04,610 O que é o ponto inteiro de adicionando essa complexidade? 1310 00:59:04,610 --> 00:59:07,180 Quer dizer, mesmo assim, só a partir de olhando através desta página, 1311 00:59:07,180 --> 00:59:11,790 o Guia de Introdução sente como ele tem um monte de etapas para mim 1312 00:59:11,790 --> 00:59:13,514 para fazer antes de eu can-- 1313 00:59:13,514 --> 00:59:14,430 AUDIÊNCIA: Reutilização? 1314 00:59:14,430 --> 00:59:14,960 DAVID J. MALAN: Reutilização? 1315 00:59:14,960 --> 00:59:15,618 O que você quer dizer? 1316 00:59:15,618 --> 00:59:16,826 >> AUDIÊNCIA: do código-fonte. 1317 00:59:16,826 --> 00:59:19,438 Assim, o mesmo código seria executado em todas as diferentes plataformas. 1318 00:59:19,438 --> 00:59:20,313 DAVID J. MALAN: Yeah. 1319 00:59:20,313 --> 00:59:21,188 AUDIÊNCIA: [inaudível] 1320 00:59:21,188 --> 00:59:23,200 1321 00:59:23,200 --> 00:59:24,200 DAVID J. MALAN: Perfeito. 1322 00:59:24,200 --> 00:59:26,930 Se o tempo está apertado e se você não têm que muitas developers-- 1323 00:59:26,930 --> 00:59:28,900 talvez você tem um desenvolvedor e ele ou ela certamente 1324 00:59:28,900 --> 00:59:31,050 não sabe tudo isso environments-- certamente não bem, 1325 00:59:31,050 --> 00:59:33,341 e, certamente, não é possível programar em todos os três em simultâneo 1326 00:59:33,341 --> 00:59:35,970 e enviar três produtos em o tempo permitido para um, 1327 00:59:35,970 --> 00:59:40,360 você pode tê-lo ou construir tudo em HTML e JavaScript e CSS, 1328 00:59:40,360 --> 00:59:43,260 e, em seguida, aprender um pouco pequena pouco sobre aplicativos nativos, 1329 00:59:43,260 --> 00:59:45,930 apenas o suficiente para baixar um quadro como este, 1330 00:59:45,930 --> 00:59:48,750 para, em seguida, enviar o seu produto para todas as várias lojas de aplicações 1331 00:59:48,750 --> 00:59:51,700 de modo que agora você tem um aplicativo nativo. 1332 00:59:51,700 --> 00:59:54,090 >> Assim que parece ser uma win-win, mas, novamente, para ser claro, 1333 00:59:54,090 --> 00:59:56,540 Quais são os potenciais custos ou as armadilhas? 1334 00:59:56,540 --> 01:00:00,292 1335 01:00:00,292 --> 01:00:01,209 >> AUDIÊNCIA: Performance? 1336 01:00:01,209 --> 01:00:02,083 DAVID J. MALAN: Yeah. 1337 01:00:02,083 --> 01:00:02,959 Atuação. 1338 01:00:02,959 --> 01:00:04,250 É difícil de descrever verbalmente. 1339 01:00:04,250 --> 01:00:07,590 Então, se você tomar apenas em fé uma aplicação móvel, 1340 01:00:07,590 --> 01:00:11,430 uma aplicação web será tipicamente executar mais lentamente. 1341 01:00:11,430 --> 01:00:16,500 Pode não parecer muito certo, porque no iPhone e em celulares Android, 1342 01:00:16,500 --> 01:00:19,210 e dispositivos Windows, há sempre uma espécie de aparência padrão 1343 01:00:19,210 --> 01:00:21,780 e a sensação de todo o botões e os menus. 1344 01:00:21,780 --> 01:00:25,160 >> E empresas no web, pode tentar aproximar essas estética 1345 01:00:25,160 --> 01:00:28,329 com bibliotecas como Bootstrap, mas o user-- um user-- astuto 1346 01:00:28,329 --> 01:00:30,620 vai saber que algo não está certo aqui. 1347 01:00:30,620 --> 01:00:32,510 E isso é bom, talvez isso não é um grande negócio. 1348 01:00:32,510 --> 01:00:35,500 Mas o problema de desempenho absolutamente é um grande negócio. 1349 01:00:35,500 --> 01:00:39,400 Os aplicativos nativos tendem a apenas ser muito mais sensível e, portanto, 1350 01:00:39,400 --> 01:00:39,946 melhor. 1351 01:00:39,946 --> 01:00:42,070 E assim, o que então pode ser o melhor de dois mundos? 1352 01:00:42,070 --> 01:00:44,584 Se você é especialmente um pequeno empresa ou um pequeno grupo, 1353 01:00:44,584 --> 01:00:47,000 você não tem os recursos para desenvolver um aplicativo em paralelo 1354 01:00:47,000 --> 01:00:50,480 em todas as três plataformas, e, francamente, Parece que isso é uma má idéia de qualquer maneira 1355 01:00:50,480 --> 01:00:53,526 porque se você estendê-lo e sobre todos os três realizar simultaneamente, 1356 01:00:53,526 --> 01:00:56,400 devemos ter acrescentado algumas características ou feito algo diferente, agora 1357 01:00:56,400 --> 01:00:59,530 você tem que consertá-lo em três lugares, não um. 1358 01:00:59,530 --> 01:01:02,390 O que é talvez o melhor aqui estratégia global, 1359 01:01:02,390 --> 01:01:04,130 se recursos e tempo estão apertados? 1360 01:01:04,130 --> 01:01:06,420 >> AUDIÊNCIA: Basta fazê-lo no iOS. 1361 01:01:06,420 --> 01:01:08,390 >> DAVID J. MALAN: Isso não é razoável. 1362 01:01:08,390 --> 01:01:10,670 Capas pelo menos na EUA, são super popular. 1363 01:01:10,670 --> 01:01:13,820 Android ainda parece ter dominante quota de mercado, a nível mundial, em geral. 1364 01:01:13,820 --> 01:01:16,740 Então você não está necessariamente representativa 1365 01:01:16,740 --> 01:01:19,210 da totalidade do globo esta semana. 1366 01:01:19,210 --> 01:01:21,180 Mas isso é absolutamente um de decisão. 1367 01:01:21,180 --> 01:01:23,620 Quer dizer, no campus aqui eu acho que algum número atroz 1368 01:01:23,620 --> 01:01:26,600 ou a percentagem de alunos de graduação têm iPhones e telefones não Android. 1369 01:01:26,600 --> 01:01:28,490 Mas no exterior, é uma espécie de o oposto. 1370 01:01:28,490 --> 01:01:30,040 Então você decidir com base em sua audiência. 1371 01:01:30,040 --> 01:01:31,990 Como você sabe o que seu público tem? 1372 01:01:31,990 --> 01:01:34,080 >> Bem, aprendemos um truque ontem. 1373 01:01:34,080 --> 01:01:35,060 Você poderia perguntar-lhes. 1374 01:01:35,060 --> 01:01:37,910 Se você tem um público cativo você pode enviar-lhes um formulário de pesquisa. 1375 01:01:37,910 --> 01:01:39,172 Ou você poderia apenas fazer o quê? 1376 01:01:39,172 --> 01:01:40,076 >> AUDIÊNCIA: Google Analytics? 1377 01:01:40,076 --> 01:01:40,680 >> DAVID J. MALAN: O que é isso? 1378 01:01:40,680 --> 01:01:41,876 >> AUDIÊNCIA: Google Analytics. 1379 01:01:41,876 --> 01:01:43,250 DAVID J. MALAN: Google Analytics. 1380 01:01:43,250 --> 01:01:43,750 Sim. 1381 01:01:43,750 --> 01:01:46,970 Ou ainda mais tipo de técnica, apenas olhar para os seus próprios web servidores logs. 1382 01:01:46,970 --> 01:01:49,100 Porque o que acontece cada vez que um navegador, 1383 01:01:49,100 --> 01:01:51,880 se laptop, desktop ou telefone visitar o seu site? 1384 01:01:51,880 --> 01:01:56,847 Eles enviar o cabeçalho HTTP que mostra o que navegador e sistema operacional que eles estão usando. 1385 01:01:56,847 --> 01:02:00,180 Assim, você pode inferir, com alta probabilidade, o seu demográfica está usando esse caminho 1386 01:02:00,180 --> 01:02:01,410 e depois ajustar. 1387 01:02:01,410 --> 01:02:03,030 >> Então, acho que isso é inaceitável. 1388 01:02:03,030 --> 01:02:07,760 Isso é tipo de mau para o negócio se os usuários do Android não pode comprar nossos widgets. 1389 01:02:07,760 --> 01:02:10,942 >> Audiência: Se você é vai cobrar ou não? 1390 01:02:10,942 --> 01:02:12,900 DAVID J. MALAN: Se você vai cobrar? 1391 01:02:12,900 --> 01:02:14,900 Então, OK, você recebe o que você paga. 1392 01:02:14,900 --> 01:02:18,400 >> AUDIÊNCIA: Se seu aplicativo vai ser livre ou se é gonna-- 1393 01:02:18,400 --> 01:02:19,530 >> DAVID J. MALAN: OK. 1394 01:02:19,530 --> 01:02:21,920 Então, talvez você poderia recuperar custos dessa maneira, ou-? 1395 01:02:21,920 --> 01:02:26,195 >> AUDIÊNCIA: Eu li um estudo, uma vez que disse mais usuários da Apple pagar por aplicativos versus-- 1396 01:02:26,195 --> 01:02:28,320 DAVID J. MALAN: Isso é verdade porque eles já estão 1397 01:02:28,320 --> 01:02:29,640 pagando mais para os seus dispositivos. 1398 01:02:29,640 --> 01:02:31,295 Assim, não é razoável uma suposição. 1399 01:02:31,295 --> 01:02:32,170 >> AUDIÊNCIA: [inaudível] 1400 01:02:32,170 --> 01:02:34,439 1401 01:02:34,439 --> 01:02:35,230 DAVID J. MALAN: OK. 1402 01:02:35,230 --> 01:02:38,667 Então, se eles estão mais dispostos a pagar, em seguida, para o inferno com os usuários do Android. 1403 01:02:38,667 --> 01:02:40,500 Eles não vão pagar-nos qualquer coisa de qualquer maneira. 1404 01:02:40,500 --> 01:02:43,499 Nós também podemos focar nossas prioridades, pelo menos para os primeiros poucos meses 1405 01:02:43,499 --> 01:02:44,810 ou um ano, no iOS. 1406 01:02:44,810 --> 01:02:46,240 Totalmente razoável. 1407 01:02:46,240 --> 01:02:48,558 O que é um mais inclusivo estratégia do que isso? 1408 01:02:48,558 --> 01:02:53,740 1409 01:02:53,740 --> 01:02:54,960 Maybe-- que é isso? 1410 01:02:54,960 --> 01:02:57,040 >> AUDIÊNCIA: [inaudível] 1411 01:02:57,040 --> 01:03:00,142 >> DAVID J. MALAN: A mais expensive-- talvez por isso investir mais em-- ir em frente. 1412 01:03:00,142 --> 01:03:00,767 AUDIÊNCIA: É. 1413 01:03:00,767 --> 01:03:02,050 Apenas um site móvel. 1414 01:03:02,050 --> 01:03:03,966 >> DAVID J. MALAN: Então, fazer um website móvel e não 1415 01:03:03,966 --> 01:03:05,440 mesmo se preocupar com essa complexidade. 1416 01:03:05,440 --> 01:03:07,970 Ou talvez uma estratégia razoável, que até mesmo Facebook levou, 1417 01:03:07,970 --> 01:03:10,890 é começar com um híbrido aplicação porque não é 1418 01:03:10,890 --> 01:03:13,582 muito mais difícil de fazer isso do que isso. 1419 01:03:13,582 --> 01:03:16,040 Você apenas tem que ler alguns documentação e descobrir como 1420 01:03:16,040 --> 01:03:17,480 para carregar as coisas para a App Store. 1421 01:03:17,480 --> 01:03:19,670 Então, talvez você comece com este, de modo que no primeiro dia, 1422 01:03:19,670 --> 01:03:21,112 você pode apoiar todos os seus usuários. 1423 01:03:21,112 --> 01:03:23,570 E então, apenas como Facebook e outras empresas têm feito, 1424 01:03:23,570 --> 01:03:25,330 quando você tem os recursos, você tem as pessoas, 1425 01:03:25,330 --> 01:03:27,660 por que você não reimplementar apenas o aplicativo iOS. 1426 01:03:27,660 --> 01:03:31,460 Você ainda tem algo para todos, mesmo que seja uma experiência inferior 1427 01:03:31,460 --> 01:03:33,330 talvez, com a aplicação híbrido. 1428 01:03:33,330 --> 01:03:36,770 Mas você pode gradualmente rolar para fora e substituir o seu curto prazo 1429 01:03:36,770 --> 01:03:40,280 medidas dos aplicativos híbridos com suas aplicações mais nativas. 1430 01:03:40,280 --> 01:03:44,090 >> AUDIÊNCIA: Mas com um aplicativo híbrido você terá acesso a recursos móveis? 1431 01:03:44,090 --> 01:03:45,440 >> DAVID J. MALAN: Não necessariamente. 1432 01:03:45,440 --> 01:03:47,810 Então, talvez você fazer uma decisão consciente desde o início, 1433 01:03:47,810 --> 01:03:51,930 você só pode fazer upload de fotos no iPhone aplicação nativa para o Facebook, 1434 01:03:51,930 --> 01:03:56,060 mas não sobre a aplicação Android, inicialmente, por exemplo. 1435 01:03:56,060 --> 01:04:00,600 E isso é um pouco de uma mentira, porque aplicações web têm mais restrições 1436 01:04:00,600 --> 01:04:03,620 de aplicações híbridas que se transforma para fora, e se ler a documentação 1437 01:04:03,620 --> 01:04:07,260 para PhoneGap e as coisas como ele, as pessoas vêm-se com formas 1438 01:04:07,260 --> 01:04:11,110 para dar aplicações baseadas na web acesso à câmera, 1439 01:04:11,110 --> 01:04:13,310 desde que você está usando uma aplicação híbrida. 1440 01:04:13,310 --> 01:04:14,214 >> Como isso funciona? 1441 01:04:14,214 --> 01:04:16,130 Uma vez que o híbrido aplicação, por definição, 1442 01:04:16,130 --> 01:04:19,600 tem um pouco de código em Objective-C, e Swift, e Java, ou C #, 1443 01:04:19,600 --> 01:04:20,920 ele pode acessar o hardware. 1444 01:04:20,920 --> 01:04:24,590 Não necessariamente tudo, mas poderia muito bem 1445 01:04:24,590 --> 01:04:27,310 ser o caso que você tem suficiente de acesso para obter a câmera, 1446 01:04:27,310 --> 01:04:32,960 mesmo para plataformas Android, por exemplo, em que o exemplo artificial. 1447 01:04:32,960 --> 01:04:35,515 >> Alguma outra pergunta? 1448 01:04:35,515 --> 01:04:36,279 Tudo certo. 1449 01:04:36,279 --> 01:04:38,070 Por que não vamos tomar o nosso 15 minutos de intervalo aqui. 1450 01:04:38,070 --> 01:04:44,060 Vamos retomar a três com uma final olhar para a programação web, bancos de dados, 1451 01:04:44,060 --> 01:04:45,910 e Javascript. 1452 01:04:45,910 --> 01:04:48,877