1 00:00:00,000 --> 00:00:01,291 >> DAVID J. MALAN: Så vi er tilbake. 2 00:00:01,291 --> 00:00:03,050 Så høyt nivå Temaet i øyeblikket nå 3 00:00:03,050 --> 00:00:06,440 er teknologi stabler, som ikke er et spesielt teknisk term, 4 00:00:06,440 --> 00:00:09,960 det er mer av en fange alle for alle antall kombinasjoner av teknologier 5 00:00:09,960 --> 00:00:11,840 som du kan bruke til å løse problemer. 6 00:00:11,840 --> 00:00:14,850 Og kanskje den mest passende måte å starte 7 00:00:14,850 --> 00:00:18,110 ville være å se på språk siden Jeg fortsetter å lire av en hel haug 8 00:00:18,110 --> 00:00:21,000 og mest alle i rommet har sannsynligvis hørt av minst ett. 9 00:00:21,000 --> 00:00:25,730 >> Og så hvorfor ikke vi prøve å skille what-- skille disse språkene 10 00:00:25,730 --> 00:00:28,932 og snakke kort om når du vil velge en over den andre, hvordan de er 11 00:00:28,932 --> 00:00:30,890 slags fundamentalt forskjellige, og særlig 12 00:00:30,890 --> 00:00:34,830 når du chatter med ingeniører, eller prøver å bestemme hvem du skal leie, 13 00:00:34,830 --> 00:00:37,652 eller hva implementering Forslaget til greenlight, 14 00:00:37,652 --> 00:00:39,860 hvordan ville du faktisk gjøre slike avgjørelser. 15 00:00:39,860 --> 00:00:41,890 >> Så la oss bare skrangle noen ting av. 16 00:00:41,890 --> 00:00:45,300 Av språkene folk har hørt om, hva som kommer til tankene? 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 Hva er det? 21 00:00:51,990 --> 00:00:52,390 >> PUBLIKUM: Python. 22 00:00:52,390 --> 00:00:53,348 >> DAVID J. MALAN: Python. 23 00:00:53,348 --> 00:00:55,330 Utmerket. 24 00:00:55,330 --> 00:00:57,000 Hva annet? 25 00:00:57,000 --> 00:00:58,810 Visual Basic. 26 00:00:58,810 --> 00:01:01,100 Jeg hørte Java. 27 00:01:01,100 --> 00:01:02,610 Visual Basic-- a.k.a. 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, som er mer av en fange alle for hva som er normalt C # som språk 32 00:01:12,810 --> 00:01:13,770 i spørsmålet. 33 00:01:13,770 --> 00:01:14,770 Og la meg nevne det. 34 00:01:14,770 --> 00:01:15,900 Så vi vil komme tilbake til det. 35 00:01:15,900 --> 00:01:17,560 Unnskyld? 36 00:01:17,560 --> 00:01:18,170 Beklager? 37 00:01:18,170 --> 00:01:19,877 >> PUBLIKUM: SQL. 38 00:01:19,877 --> 00:01:20,876 DAVID J. MALAN: Ripe? 39 00:01:20,876 --> 00:01:21,610 PUBLIKUM: SQL. 40 00:01:21,610 --> 00:01:22,610 DAVID J. MALAN: Oh, SQL. 41 00:01:22,610 --> 00:01:23,110 OK. 42 00:01:23,110 --> 00:01:23,750 SQL. 43 00:01:23,750 --> 00:01:29,510 Så får vi komme tilbake til at-- faktisk, det er bra-- etter pause også. 44 00:01:29,510 --> 00:01:30,572 Hva annet? 45 00:01:30,572 --> 00:01:32,530 >> PUBLIKUM: Oracle. 46 00:01:32,530 --> 00:01:34,670 >> DAVID J. MALAN: So Oracle, ikke et språk. 47 00:01:34,670 --> 00:01:36,560 Egentlig ville de bruke SQL også. 48 00:01:36,560 --> 00:01:38,360 Så la oss sette det etter pause også. 49 00:01:38,360 --> 00:01:39,744 Og sorry, noe over her? 50 00:01:39,744 --> 00:01:40,660 PUBLIKUM: Mathematica. 51 00:01:40,660 --> 00:01:41,390 DAVID J. MALAN: Mathematica? 52 00:01:41,390 --> 00:01:42,303 Ok sikkert. 53 00:01:42,303 --> 00:01:46,150 54 00:01:46,150 --> 00:01:49,180 Og MATLAB er slags på det noen ganger. 55 00:01:49,180 --> 00:01:50,060 >> PUBLIKUM: R. 56 00:01:50,060 --> 00:01:51,755 >> DAVID J. MALAN: R. La oss gå over her. 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 Ja visst. 60 00:01:55,880 --> 00:01:57,910 Eldre skolen. 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 Jeg skal kaste ut 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 Noen-- 67 00:02:09,390 --> 00:02:10,352 >> PUBLIKUM: MATLAB? 68 00:02:10,352 --> 00:02:11,310 DAVID J. MALAN: MATLAB. 69 00:02:11,310 --> 00:02:12,248 Oh, slå deg til det. 70 00:02:12,248 --> 00:02:15,370 71 00:02:15,370 --> 00:02:15,870 Hva som helst? 72 00:02:15,870 --> 00:02:18,700 Jeg kan tenke meg et par andre. 73 00:02:18,700 --> 00:02:21,876 Jeg kan tenke på noen andre. 74 00:02:21,876 --> 00:02:22,792 Og hva var den siste? 75 00:02:22,792 --> 00:02:23,970 >> PUBLIKUM: ASP. 76 00:02:23,970 --> 00:02:25,030 >> DAVID J. MALAN: ASP? 77 00:02:25,030 --> 00:02:26,100 Yeah. 78 00:02:26,100 --> 00:02:27,100 Active Server Pages. 79 00:02:27,100 --> 00:02:30,270 Som vanligvis ville falle under andre språk, noen ganger C #, 80 00:02:30,270 --> 00:02:32,040 så la oss la det ut. 81 00:02:32,040 --> 00:02:35,510 Men vi vil komme tilbake til dette for rammer og slikt. 82 00:02:35,510 --> 00:02:36,290 Alt annet? 83 00:02:36,290 --> 00:02:39,020 PHP er populært. 84 00:02:39,020 --> 00:02:41,710 Ruby er en annen. 85 00:02:41,710 --> 00:02:48,230 Javascript, for ikke å bli forvirret med Java, er en annen. 86 00:02:48,230 --> 00:02:49,570 Det er litt mye. 87 00:02:49,570 --> 00:02:53,590 >> Så det kan være absolutt overveldende, som om listen ikke er allerede 88 00:02:53,590 --> 00:02:55,650 bare å begynne å vite hvor du skal begynne. 89 00:02:55,650 --> 00:02:58,130 Og så heldigvis, la oss nærme seg dette fra noen vinkler. 90 00:02:58,130 --> 00:03:03,520 Først, la oss prøve å kategorisere i det minste noen av disse språkene 91 00:03:03,520 --> 00:03:06,790 i to brede skuffer, som minner om samtalen vi hadde før pause, 92 00:03:06,790 --> 00:03:09,630 hvor vi snakket om kompilering, og kildekoden, og maskinkode, 93 00:03:09,630 --> 00:03:11,440 fordi det er ikke slik alle språk fungerer. 94 00:03:11,440 --> 00:03:15,640 Så vi vil plukke ut noen få eksempler of-- eller mot examples-- til denne modellen. 95 00:03:15,640 --> 00:03:18,490 >> Og så, hvorfor gjør ikke vi snakke om programmene 96 00:03:18,490 --> 00:03:20,390 at disse språkene er vanligvis brukt for. 97 00:03:20,390 --> 00:03:22,840 Og ærlig talt, selv om Dette er en ganske lang liste, 98 00:03:22,840 --> 00:03:26,320 det er bare en undergruppe av denne listen som du vanligvis trekke fra disse dager 99 00:03:26,320 --> 00:03:27,220 å løse problemer. 100 00:03:27,220 --> 00:03:29,150 Enkelte språk er nyere enn andre. 101 00:03:29,150 --> 00:03:31,170 Enkelte språk er mer populære enn andre. 102 00:03:31,170 --> 00:03:34,370 Så det er ikke som du har slik en overveldende oppgave før du 103 00:03:34,370 --> 00:03:36,970 når du bestemmer blant disse ulike språk. 104 00:03:36,970 --> 00:03:40,110 >> Så la oss gjøre dette. 105 00:03:40,110 --> 00:03:45,870 Vi hadde tidligere, kildekode, og da vi hadde maskinkode. 106 00:03:45,870 --> 00:03:48,590 107 00:03:48,590 --> 00:03:49,400 Uff. 108 00:03:49,400 --> 00:03:50,910 Skrive feil ord. 109 00:03:50,910 --> 00:03:52,740 Maskinkode. 110 00:03:52,740 --> 00:03:57,549 Og vi hadde noen prosess i midten called-- yeah, kompilatoren. 111 00:03:57,549 --> 00:03:58,215 Så kompilatoren. 112 00:03:58,215 --> 00:04:00,760 113 00:04:00,760 --> 00:04:03,910 >> Og hva maskinkode faktisk kjører på i enden 114 00:04:03,910 --> 00:04:05,680 kommer til å være den faktiske CPU. 115 00:04:05,680 --> 00:04:09,660 Med andre ord, etter maskinkode, jeg mener de laveste Instruksjoner nivå 116 00:04:09,660 --> 00:04:11,330 at en CPU faktisk forstår. 117 00:04:11,330 --> 00:04:15,100 Addisjon, subtraksjon, flytte, lagre, og operasjoner som det. 118 00:04:15,100 --> 00:04:19,700 Og så dette er modellen for hva som er vanligvis kjent som kompilerte språk. 119 00:04:19,700 --> 00:04:21,000 Kanskje ikke overraskende. 120 00:04:21,000 --> 00:04:23,550 >> Så dette er modellen for kompilerte språk. 121 00:04:23,550 --> 00:04:25,970 Men det viser seg at det er en annen klasse av språk 122 00:04:25,970 --> 00:04:32,650 kalt tolket languages-- tolket languages-- 123 00:04:32,650 --> 00:04:34,030 som er litt annerledes. 124 00:04:34,030 --> 00:04:41,660 Du skriver i kildekoden, løpe dem gjennom en tolk, 125 00:04:41,660 --> 00:04:45,440 og at tolk er det som kjører på CPU. 126 00:04:45,440 --> 00:04:50,120 Med andre ord, hva du gjør ikke Emit er hva, tilsynelatende? 127 00:04:50,120 --> 00:04:50,980 Maskinkode. 128 00:04:50,980 --> 00:04:54,290 De nuller og enere at CPU selv til slutt forstår. 129 00:04:54,290 --> 00:04:59,780 >> Så i denne første versjonen og språk som C, som vi så, 130 00:04:59,780 --> 00:05:02,040 du skrive i kildekoden som er litt uforståelige, 131 00:05:02,040 --> 00:05:05,300 men minst det er slags engelsk-lignende og det er minst lesbar 132 00:05:05,300 --> 00:05:06,780 når du blir vant til det. 133 00:05:06,780 --> 00:05:10,100 Du kjører den gjennom en kompilator og ut du får, til slutt, nuller og enere. 134 00:05:10,100 --> 00:05:11,340 >> At en overforenkling. 135 00:05:11,340 --> 00:05:12,839 Det er noen andre trinn i der. 136 00:05:12,839 --> 00:05:15,530 Faktisk, hvis du noen gang har hørt begrepet "assembly" 137 00:05:15,530 --> 00:05:17,990 det er ett trinn før nuller og enere. 138 00:05:17,990 --> 00:05:20,949 At en litt mer lesbar, men fortsatt ganske uforståelige. 139 00:05:20,949 --> 00:05:23,740 Og så det er mellomtrinn som faktisk skjer her. 140 00:05:23,740 --> 00:05:26,360 Men produksjonen, til slutt, er disse nuller og enere. 141 00:05:26,360 --> 00:05:28,990 >> Men i tolkes verden, hvor du har 142 00:05:28,990 --> 00:05:32,680 språk som er tolket språk, du faktisk hoppe over dette trinnet. 143 00:05:32,680 --> 00:05:36,010 Med andre ord, når du skriver et programmet, du bare umiddelbart kjøre den. 144 00:05:36,010 --> 00:05:38,960 Du trenger ikke kompilere den og deretter kjøre den, som jeg gjorde før. 145 00:05:38,960 --> 00:05:41,132 Du bare skrive det og kjøre det. 146 00:05:41,132 --> 00:05:44,340 Og hvis du ønsker å gjøre en rask endring, du gjør en rask endring, og kjør det. 147 00:05:44,340 --> 00:05:46,640 Så det er ingen mellomtrinn her. 148 00:05:46,640 --> 00:05:50,840 >> Nå, for det programmet jeg skrev tidligere, som var denne "Hello World" program, 149 00:05:50,840 --> 00:05:53,660 du kanskje rimelig wonder-- eller med rimelighet kunne 150 00:05:53,660 --> 00:05:58,570 state-- det var ikke den tiden tidkrevende å kompilere programmet mitt. 151 00:05:58,570 --> 00:06:00,337 Det ser ut til å ha gjort det akkurat sånn. 152 00:06:00,337 --> 00:06:02,170 Og det er grafisk versjoner av kompilatorer. 153 00:06:02,170 --> 00:06:05,270 Jeg bruker en veldig uforståelige versjon, men du kunne treffe en avspillingsknapp 154 00:06:05,270 --> 00:06:07,887 og det ville faktisk gjøre kompilering for deg. 155 00:06:07,887 --> 00:06:10,720 Jeg har samlet programmet og deretter igjen, for å kjøre den, jeg bare gjøre dette. 156 00:06:10,720 --> 00:06:13,820 Og det utganger til venstre der, "Hello!" 157 00:06:13,820 --> 00:06:15,530 Det ser ikke ut alt det tunge. 158 00:06:15,530 --> 00:06:19,920 Men når programmene er mer enn bare en, to, tre, 159 00:06:19,920 --> 00:06:25,470 fire, fem linjer lange, kan det ta langt flere sekunder å kompilere. 160 00:06:25,470 --> 00:06:28,310 Noen ganger med minutter eller ganske mye tid å kompilere. 161 00:06:28,310 --> 00:06:30,480 Tross alt, noen av Verdens største produkter 162 00:06:30,480 --> 00:06:35,040 er ting som operativsystemer, Microsoft Word, Microsoft Excel, 163 00:06:35,040 --> 00:06:39,070 som kan være flere hundre tusen eller til og med millioner av linjer med kode lange, 164 00:06:39,070 --> 00:06:41,300 og de som ikke gjør det bare øyeblikkelig start. 165 00:06:41,300 --> 00:06:44,560 >> Videre på nettet, er det blitt moderne å bruke 166 00:06:44,560 --> 00:06:47,600 bare tolket språk, delvis fordi du 167 00:06:47,600 --> 00:06:50,570 kan gjøre en endring som utvikleren og så bare umiddelbart på nytt 168 00:06:50,570 --> 00:06:52,570 skjermbildet og umiddelbart se resultatet. 169 00:06:52,570 --> 00:06:56,160 Og så HTML, mens ikke et programmeringsspråk, 170 00:06:56,160 --> 00:06:58,860 er et språk som er tolket. 171 00:06:58,860 --> 00:07:00,770 Og vi så at samme effekt i går. 172 00:07:00,770 --> 00:07:04,070 Du bare laste siden på nytt etter at en endring i Cloud9 og-- voila-- 173 00:07:04,070 --> 00:07:05,560 du ser en ny resultat. 174 00:07:05,560 --> 00:07:07,090 >> Så hva er forskjellen her? 175 00:07:07,090 --> 00:07:13,190 I HTML, husker, hadde vi åpne HTML, åpen hode, åpen tittel, nær tittelen, 176 00:07:13,190 --> 00:07:15,250 nær hodet, åpent legeme, og så videre. 177 00:07:15,250 --> 00:07:19,149 Vi hadde alle disse kodene som vi ganske mye er sagt, fortelle leseren hva de skal gjøre. 178 00:07:19,149 --> 00:07:20,690 Hei nettleser, her kommer en HTML-side. 179 00:07:20,690 --> 00:07:22,170 Hei nettleser, her kommer den tittelen. 180 00:07:22,170 --> 00:07:24,429 Hei nettleser, her kommer noen teksten som skal være fet. 181 00:07:24,429 --> 00:07:25,720 Og så forteller det motsatte. 182 00:07:25,720 --> 00:07:27,330 Hei leseren, det er det for fet skrift tekst. 183 00:07:27,330 --> 00:07:28,830 Hei nettleser, det er det for kroppen. 184 00:07:28,830 --> 00:07:29,740 Og så videre. 185 00:07:29,740 --> 00:07:31,130 >> Og så hva er en nettleser? 186 00:07:31,130 --> 00:07:33,170 En nettleser er bare en tolk. 187 00:07:33,170 --> 00:07:36,090 Det er et program som noen liker Microsoft eller Google har skrevet, 188 00:07:36,090 --> 00:07:39,160 hvis formål i livet er å lese et språk, kjent som HTML, 189 00:07:39,160 --> 00:07:39,890 og tolke den. 190 00:07:39,890 --> 00:07:41,290 Topp til bunn, venstre til høyre. 191 00:07:41,290 --> 00:07:46,880 Og helst nettleseren ser åpent brakett, tittel, tett brakett, 192 00:07:46,880 --> 00:07:48,960 det skal tolke det som betyr, oh, at 193 00:07:48,960 --> 00:07:52,490 betyr at jeg bør sette disse ordene måte her oppe på toppen av nettleseren. 194 00:07:52,490 --> 00:07:55,700 >> Så det bare gjør hva HTML-koden sier. 195 00:07:55,700 --> 00:07:57,240 Men det er ingen nuller og enere. 196 00:07:57,240 --> 00:07:58,250 Det er ingen samling. 197 00:07:58,250 --> 00:07:58,890 Du gjorde ikke det. 198 00:07:58,890 --> 00:07:59,931 Nettleseren gjorde det ikke. 199 00:07:59,931 --> 00:08:01,710 Det er bare ikke involvert. 200 00:08:01,710 --> 00:08:05,890 >> Så i ånden av disse pågående emner, i dag og i går, 201 00:08:05,890 --> 00:08:08,400 som synes å være en flott funksjon. 202 00:08:08,400 --> 00:08:11,410 Du sparer koden og deretter bare kjøre den eller tolke den. 203 00:08:11,410 --> 00:08:13,790 Det finnes ingen mellomliggende trinn. 204 00:08:13,790 --> 00:08:15,690 Sikkert er det en kostnad? 205 00:08:15,690 --> 00:08:16,810 Kan ikke alle være oppsider. 206 00:08:16,810 --> 00:08:19,964 Så hva kan det koste være? 207 00:08:19,964 --> 00:08:20,940 >> PUBLIKUM: Space. 208 00:08:20,940 --> 00:08:22,370 >> DAVID J. MALAN: Space. 209 00:08:22,370 --> 00:08:23,370 Så sikker. 210 00:08:23,370 --> 00:08:26,920 I den kompilerte verden, må du ikke bare den originale kildekoden, 211 00:08:26,920 --> 00:08:29,657 du er også å skape og da antagelig spare 212 00:08:29,657 --> 00:08:31,740 maskinen code-- den nuller og ones-- og det er 213 00:08:31,740 --> 00:08:33,870 kom til å ta opp en viss mengde plass. 214 00:08:33,870 --> 00:08:34,429 Absolutt. 215 00:08:34,429 --> 00:08:35,765 Så det koster deg mer plass. 216 00:08:35,765 --> 00:08:39,289 217 00:08:39,289 --> 00:08:39,789 Ja? 218 00:08:39,789 --> 00:08:43,280 >> Målgruppe: Nettlesere kanskje tolke annerledes. 219 00:08:43,280 --> 00:08:46,770 >> DAVID J. Malan: nettlesere kan tolke det annerledes. 220 00:08:46,770 --> 00:08:48,622 Det er sant. 221 00:08:48,622 --> 00:08:50,330 Men jeg er ikke sikker på at jeg komfortabel hevde 222 00:08:50,330 --> 00:08:51,840 det er fordi det er tolket. 223 00:08:51,840 --> 00:08:56,340 Det er mer bare fordi det er en implementering av et språk 224 00:08:56,340 --> 00:08:58,050 som selv har uklarheter. 225 00:08:58,050 --> 00:09:01,570 Så la oss ikke helt bekrefte at en, men god anelse. 226 00:09:01,570 --> 00:09:03,103 Hva annet kan den prisen? 227 00:09:03,103 --> 00:09:03,602 Andrew? 228 00:09:03,602 --> 00:09:05,912 >> PUBLIKUM: Du kombinerer to trinn, slik at du derfor 229 00:09:05,912 --> 00:09:08,300 har økt kompleksitet i tillegg. 230 00:09:08,300 --> 00:09:11,040 >> DAVID J. MALAN: The complex-- økningen i kompleksitet der? 231 00:09:11,040 --> 00:09:12,270 For hvem? 232 00:09:12,270 --> 00:09:16,748 >> PUBLIKUM: Så, i tolk trinn, du kombinere tolk 233 00:09:16,748 --> 00:09:19,120 og kompilator for bare fører opp to-- 234 00:09:19,120 --> 00:09:21,100 >> DAVID J. MALAN: Ah, OK. 235 00:09:21,100 --> 00:09:25,240 Ironisk nok, er det sannsynligvis en liten enklere å gjennomføre tolk, 236 00:09:25,240 --> 00:09:29,530 selv om det ville synes å avkastning oppsider av dette lettere. 237 00:09:29,530 --> 00:09:30,550 Så muligens sant. 238 00:09:30,550 --> 00:09:32,716 Men den slags kommer an på, jeg vil si, på det språket 239 00:09:32,716 --> 00:09:35,720 og om hvordan de gikk om å implementere det. 240 00:09:35,720 --> 00:09:38,535 Det kan være mye mer kompleksitet, faktisk, i kompilatoren, 241 00:09:38,535 --> 00:09:41,410 bare fordi du har å gå fra noe så høyt nivå til noe 242 00:09:41,410 --> 00:09:42,560 så lavt nivå. 243 00:09:42,560 --> 00:09:45,340 Men en god tanke. 244 00:09:45,340 --> 00:09:50,770 >> Så sagt på en annen måte, en kompilert program, når den er slått inn i disse nuller og enere, 245 00:09:50,770 --> 00:09:54,470 ender opp i språket at CPU taler, 246 00:09:54,470 --> 00:09:57,850 mens det på denne siden av verden, programmet du har skrevet, 247 00:09:57,850 --> 00:10:02,527 koden du har skrevet, faktisk aldri blir konvertert inn i selve språket 248 00:10:02,527 --> 00:10:03,360 datamaskinen taler. 249 00:10:03,360 --> 00:10:04,190 De nuller og enere. 250 00:10:04,190 --> 00:10:08,480 Det forblir i den opprinnelige, mer menneskelig vennlig, mer lesbar språk. 251 00:10:08,480 --> 00:10:11,720 Så hva kan være konsekvensen der, ikke hvis du gjør faktisk 252 00:10:11,720 --> 00:10:15,020 bry konvertere Programmet til den aller språk 253 00:10:15,020 --> 00:10:18,013 at den underliggende data taler? 254 00:10:18,013 --> 00:10:19,780 >> PUBLIKUM: Might ikke forstå noe? 255 00:10:19,780 --> 00:10:21,170 >> DAVID J. MALAN: Might ikke forstår noe. 256 00:10:21,170 --> 00:10:23,297 Og det kan claim-- hvis den ikke forsto 257 00:10:23,297 --> 00:10:25,880 noe, det er en feil eller mangel av funksjonen i tolk. 258 00:10:25,880 --> 00:10:28,544 Slik det vil være mer av en feil enn en kostnad. 259 00:10:28,544 --> 00:10:30,419 >> PUBLIKUM: Du har tilgang til kildekoden? 260 00:10:30,419 --> 00:10:31,877 DAVID J. MALAN: Det er en god en. 261 00:10:31,877 --> 00:10:34,140 Så en ulempe her er du ville synes å ha tilgang. 262 00:10:34,140 --> 00:10:37,006 Du, sluttbrukeren, kan synes å har tilgang til kildekoden. 263 00:10:37,006 --> 00:10:38,130 Og det er ikke alltid sant. 264 00:10:38,130 --> 00:10:39,660 Men det er sant i tilfelle av Javascript, 265 00:10:39,660 --> 00:10:41,660 som vi skal se på etter pause i dag, noe som 266 00:10:41,660 --> 00:10:45,720 er et tolket programmeringsspråk som du skriver i kildekoden. 267 00:10:45,720 --> 00:10:48,890 >> Men at kildekoden blir overført fra serveren til nettleseren 268 00:10:48,890 --> 00:10:51,392 og kjører i den menneskelige nettleser. 269 00:10:51,392 --> 00:10:54,350 Så her hun kunne bare åpne vindu, som jeg har gjort i Chrome, 270 00:10:54,350 --> 00:10:57,740 og ser på det, så vi oss selv kikket på i går med Google. 271 00:10:57,740 --> 00:11:00,420 Det kan se litt uforståelig, men det er der. 272 00:11:00,420 --> 00:11:03,482 Så det er absolutt en pris som er betalt. 273 00:11:03,482 --> 00:11:04,565 PUBLIKUM: Ytelse hit? 274 00:11:04,565 --> 00:11:05,020 DAVID J. MALAN: Ja. 275 00:11:05,020 --> 00:11:06,260 Og det er den andre biggie. 276 00:11:06,260 --> 00:11:07,380 Det er en forestilling hit. 277 00:11:07,380 --> 00:11:10,100 Fordi du har denne midt mann, som selv 278 00:11:10,100 --> 00:11:13,740 er et program, mellom dere og CPU, i motsetning 279 00:11:13,740 --> 00:11:17,880 å bare mate disse rå nuller og enere i CPU, 280 00:11:17,880 --> 00:11:21,060 det er en ytelse hit som du ta med et tolket språk. 281 00:11:21,060 --> 00:11:24,240 Slik at, vilkårlig, et program som kan ta ett sekund 282 00:11:24,240 --> 00:11:27,840 å kjøre på en datamaskin eller en minutt å kjøre på en datamaskin her, 283 00:11:27,840 --> 00:11:32,059 kan ta 10 sekunder eller 10 minutter å kjøre på en datamaskin her. 284 00:11:32,059 --> 00:11:35,100 Det er generelt ikke til å være det mye av en difference-- faktor på 10-- 285 00:11:35,100 --> 00:11:36,808 fordi det er optimaliseringer du kan gjøre. 286 00:11:36,808 --> 00:11:38,680 Men det er nesten alltid tregere. 287 00:11:38,680 --> 00:11:43,070 Nå baksiden til denne bekymringen er det, vel datamaskiner, hver 12 288 00:11:43,070 --> 00:11:45,970 til 18 months-- henhold til Moores lov, så å speak-- 289 00:11:45,970 --> 00:11:47,600 er bare å få raskere og raskere. 290 00:11:47,600 --> 00:11:48,750 Jeg har mer og mer diskplass. 291 00:11:48,750 --> 00:11:49,791 Jeg har mer og mer RAM. 292 00:11:49,791 --> 00:11:50,620 Som virkelig bryr seg? 293 00:11:50,620 --> 00:11:52,328 >> Og det er litt av en rimelig argument. 294 00:11:52,328 --> 00:11:55,740 Faktisk er en av grunnene Derfor kan vi tolerere tregere 295 00:11:55,740 --> 00:11:58,480 tolket språk er fordi vi mennesker egentlig ikke merke. 296 00:11:58,480 --> 00:12:00,690 Datamaskinene har fått bare så utrolig fort. 297 00:12:00,690 --> 00:12:04,520 Mens tilbake i dag, spesielt når maskinvaren var mye mer begrenset, 298 00:12:04,520 --> 00:12:06,860 du hadde mindre av alt, Det var mye dyrere 299 00:12:06,860 --> 00:12:10,570 slik at alt koster mer, vel da du virkelig ønsket å presse ut 300 00:12:10,570 --> 00:12:12,590 så mye ytelse som du kunne. 301 00:12:12,590 --> 00:12:16,400 Men det kreves skriftlig et lavere nivå, om du vil, 302 00:12:16,400 --> 00:12:18,090 med et kompilert språk. 303 00:12:18,090 --> 00:12:20,830 >> Så du tar denne ytelsen hit. 304 00:12:20,830 --> 00:12:24,780 Men generelt, oppsider ser ut til å være verdt det i disse dager. 305 00:12:24,780 --> 00:12:26,850 Vel, med unntak av åndsverk problemet. 306 00:12:26,850 --> 00:12:28,641 Den slags lesbarhet av koden, vil vi 307 00:12:28,641 --> 00:12:30,640 komme tilbake til når vi ser på Javascript. 308 00:12:30,640 --> 00:12:33,140 >> Så la oss prøve å kategorisere minst et par av disse. 309 00:12:33,140 --> 00:12:41,650 Så blant de kompilerte språk, vi ville ha C, C ++, ganske, sorta, Java, 310 00:12:41,650 --> 00:12:48,120 selv om det er litt av et unntak, for grunnene til at jeg skal vise deg i bare et øyeblikk. 311 00:12:48,120 --> 00:12:51,540 C # ville være på denne listen. 312 00:12:51,540 --> 00:12:54,930 Vi skal se på mer på bare de mer moderne språk. 313 00:12:54,930 --> 00:12:55,430 Greit. 314 00:12:55,430 --> 00:12:56,804 Og det virker som mange der. 315 00:12:56,804 --> 00:13:03,500 Mens på denne siden av gjerdet, vi kan ha Javascript, og Python, 316 00:13:03,500 --> 00:13:08,040 og PHP og Ruby. 317 00:13:08,040 --> 00:13:13,640 Og er det nok for de mer nyeste bildene? 318 00:13:13,640 --> 00:13:15,410 Det føles nok for nå. 319 00:13:15,410 --> 00:13:16,330 OK. 320 00:13:16,330 --> 00:13:18,760 Og så dot dot dot, Siden listen er endeløs. 321 00:13:18,760 --> 00:13:22,300 >> Og faktisk, hvis vi bare vil få en følelse av dette-- Wikipedia, 322 00:13:22,300 --> 00:13:24,130 kompilerte språk. 323 00:13:24,130 --> 00:13:27,150 Jeg gjetter vi kan få en langt mer uttømmende liste. 324 00:13:27,150 --> 00:13:27,910 Så her vi går. 325 00:13:27,910 --> 00:13:30,620 Så her er en mye mer uttømmende liste. 326 00:13:30,620 --> 00:13:34,150 Og jeg håpet noen ville gjette D som et språk fordi det også eksisterer, 327 00:13:34,150 --> 00:13:37,747 men de stoppet på D det ville virke. 328 00:13:37,747 --> 00:13:39,330 Selv om det kan faktisk være en E. 329 00:13:39,330 --> 00:13:41,496 >> Oh, faktisk, bør dette være på listen i disse dager. 330 00:13:41,496 --> 00:13:47,460 Swift er faktisk en språk som Apple oppfant 331 00:13:47,460 --> 00:13:50,302 som nå brukes i økende grad så, i iPhone utvikling. 332 00:13:50,302 --> 00:13:52,260 Men vi vil komme tilbake til at med vår diskusjon 333 00:13:52,260 --> 00:13:54,090 av mobil i bare litt også. 334 00:13:54,090 --> 00:13:55,260 Så Swift også. 335 00:13:55,260 --> 00:13:57,540 >> Og så hvis vi går til tolket language-- 336 00:13:57,540 --> 00:14:05,010 tolket language-- så her er en enda lengre liste også. 337 00:14:05,010 --> 00:14:07,260 Så hvis du bare google og ser på Wikipedia for disse, 338 00:14:07,260 --> 00:14:09,231 vil du se alle slags språk. 339 00:14:09,231 --> 00:14:10,980 Men hensikten er, for i dag egentlig, bare 340 00:14:10,980 --> 00:14:13,680 koker ned til kanskje dette Spørsmålet om intellektuell eiendom 341 00:14:13,680 --> 00:14:18,200 og lesbarhet av sluttbrukeren og for å ytelse, er en annen sak også. 342 00:14:18,200 --> 00:14:21,080 >> Så blant disse språkene, la meg se om vi kan gi deg 343 00:14:21,080 --> 00:14:24,487 bare noen eksempler språk. 344 00:14:24,487 --> 00:14:26,820 Vi ønsker ikke å gå gjennom alle språkene det uendelige. 345 00:14:26,820 --> 00:14:29,720 Har du noen gang lurt på hva en bestemt språk ser ut? 346 00:14:29,720 --> 00:14:31,562 Vi fikk se et øyeblikk siden. 347 00:14:31,562 --> 00:14:33,520 Hvorfor kan ikke vi ta et par av funksjonen forespørsler. 348 00:14:33,520 --> 00:14:35,380 Hvem ønsker å se hva annet språk ser ut? 349 00:14:35,380 --> 00:14:35,620 Yeah. 350 00:14:35,620 --> 00:14:36,150 >> PUBLIKUM: Java. 351 00:14:36,150 --> 00:14:36,540 >> DAVID J. MALAN: Java. 352 00:14:36,540 --> 00:14:37,040 Greit. 353 00:14:37,040 --> 00:14:38,504 Så la oss gå til Java. 354 00:14:38,504 --> 00:14:42,300 355 00:14:42,300 --> 00:14:44,900 Og bare for å gi deg en sample-- vi kunne skrive alle disse ut, 356 00:14:44,900 --> 00:14:47,670 men det vil være raskere bare se på andres eksempelkode. 357 00:14:47,670 --> 00:14:48,170 Greit. 358 00:14:48,170 --> 00:14:50,330 Så er dette et godt eksempel? 359 00:14:50,330 --> 00:14:52,040 Uff. 360 00:14:52,040 --> 00:14:52,540 OK. 361 00:14:52,540 --> 00:14:58,810 Så her er Java-versjonen av program jeg skrev tidligere, "Hello World". 362 00:14:58,810 --> 00:15:01,900 >> Så Java, vil du ofte se søkeordet "klasse". 363 00:15:01,900 --> 00:15:03,779 Da vil du se noen navn etter det. 364 00:15:03,779 --> 00:15:05,570 Du vil se klammeparentes som vi så før, 365 00:15:05,570 --> 00:15:08,153 og noen ganger går de på samme linje, også andre linjer, 366 00:15:08,153 --> 00:15:09,734 det er litt av en personlig avgjørelse. 367 00:15:09,734 --> 00:15:11,900 Du vil se søkeord som "Offentlig", "statisk", "ugyldig." 368 00:15:11,900 --> 00:15:13,790 Men vi fikk se "main". "Main" er vanligvis 369 00:15:13,790 --> 00:15:17,220 navnet på standardfunksjon eller standard mengde koder som 370 00:15:17,220 --> 00:15:18,760 blir drevet i et program. 371 00:15:18,760 --> 00:15:19,330 >> "String". 372 00:15:19,330 --> 00:15:20,850 Hva var det vi mener med streng tidligere? 373 00:15:20,850 --> 00:15:23,480 Jeg brukte den slags tilfeldig. 374 00:15:23,480 --> 00:15:25,100 En streng er hva? 375 00:15:25,100 --> 00:15:25,601 Et ord. 376 00:15:25,601 --> 00:15:27,058 Det er som en sekvens av tegn. 377 00:15:27,058 --> 00:15:29,810 Individuelle tegn, tilbake til rygg mot rygg, vanligvis i en matrise, 378 00:15:29,810 --> 00:15:30,690 som vi har diskutert. 379 00:15:30,690 --> 00:15:34,700 Og faktisk, se denne syntaksen her, de to hakeparenteser? 380 00:15:34,700 --> 00:15:39,210 Det betyr, hei datamaskin, her kommer en rekke strenger. 381 00:15:39,210 --> 00:15:42,636 Den hakeparentes notasjon er vanligvis brukt for å betegne at. 382 00:15:42,636 --> 00:15:44,510 Og så kan du sannsynligvis ta en guess-- hva 383 00:15:44,510 --> 00:15:46,580 betyr dette uthevet mengde koder sannsynligvis gjøre? 384 00:15:46,580 --> 00:15:49,737 385 00:15:49,737 --> 00:15:50,639 >> PUBLIKUM: Utgangen? 386 00:15:50,639 --> 00:15:51,090 >> DAVID J. MALAN: Ja. 387 00:15:51,090 --> 00:15:52,506 Den skriver noe til skjermen. 388 00:15:52,506 --> 00:15:57,070 Så "system" er en slags en referanse til datamaskinen. 389 00:15:57,070 --> 00:15:59,620 "Out" betyr at datamaskinen er utgang eller skjermen. 390 00:15:59,620 --> 00:16:04,450 Så "System.out.print ln" betyr sannsynligvis? 391 00:16:04,450 --> 00:16:05,570 "Ln". 392 00:16:05,570 --> 00:16:09,570 Skriv linje som programmerere som til tilsynelatende stave noen ord ut 393 00:16:09,570 --> 00:16:11,820 i sin helhet og ta snarveier med andre ord. 394 00:16:11,820 --> 00:16:13,260 Men "ln" er linje, så print linje. 395 00:16:13,260 --> 00:16:17,370 Så det skrives ut "Hello Verden! "Etterfulgt av en ny linje. 396 00:16:17,370 --> 00:16:18,300 >> Så det er det. 397 00:16:18,300 --> 00:16:21,150 Men Java er hva de vil call objektorientert. 398 00:16:21,150 --> 00:16:23,440 Og ja, bare for å gi en par andre definisjoner 399 00:16:23,440 --> 00:16:26,420 der som du kanskje Se, generelt, der 400 00:16:26,420 --> 00:16:30,600 finnes mange forskjellige typer av språk, men den vanligste 401 00:16:30,600 --> 00:16:37,830 er prosessuelle eller imperative språk. 402 00:16:37,830 --> 00:16:41,600 Det er funksjonell språk, som ikke 403 00:16:41,600 --> 00:16:43,790 bety at andre er ikke-funksjonelle. 404 00:16:43,790 --> 00:16:47,740 Og så er det objektorienterte språk. 405 00:16:47,740 --> 00:16:51,170 Og dette er kanskje den beste kategorisering av de fleste språk 406 00:16:51,170 --> 00:16:56,445 at du noen gang ville velge for sortering av en typisk kommersielt prosjekt. 407 00:16:56,445 --> 00:16:58,910 >> Dette ville være for mye av, Jeg tror, ​​av en rotte hull 408 00:16:58,910 --> 00:17:01,620 å gå ned, for å prøve å forklare de forskjellige forskjeller. 409 00:17:01,620 --> 00:17:04,599 Men språk vi har sett og dermed far-- C 410 00:17:04,599 --> 00:17:07,680 er en prosessuell eller en imperative språk. 411 00:17:07,680 --> 00:17:11,200 Flere nylig oppfunnet språk pleier å være, beklager, 412 00:17:11,200 --> 00:17:14,430 objekt-orientert, noe som betyr de har andre egenskaper til dem. 413 00:17:14,430 --> 00:17:18,130 414 00:17:18,130 --> 00:17:19,430 Kan jeg forklare det på denne måten? 415 00:17:19,430 --> 00:17:20,950 La oss ikke engang gå ned dit. 416 00:17:20,950 --> 00:17:25,200 >> Objektorienterte midler du kan implement-- 417 00:17:25,200 --> 00:17:27,930 du kan modellere den virkelige verden litt mer effektivt. 418 00:17:27,930 --> 00:17:29,722 Menneskeheten, over tid, har funnet ut, wow, 419 00:17:29,722 --> 00:17:32,430 det ville være fint om mitt språk hadde denne funksjonen, eller at funksjonen. 420 00:17:32,430 --> 00:17:34,830 Og det er derfor vi har så mange språk i verden. 421 00:17:34,830 --> 00:17:37,670 Fornuftige mennesker, smart folk, enig eller uenig 422 00:17:37,670 --> 00:17:41,000 og alltid liksom kommer sammen på utvikle nye språk alle sammen. 423 00:17:41,000 --> 00:17:41,660 >> Sak i punkt. 424 00:17:41,660 --> 00:17:45,260 Apple oppfant Swift i håp om antagelig senke 425 00:17:45,260 --> 00:17:47,950 baren til iPhone utvikling, fordi den forrige language-- 426 00:17:47,950 --> 00:17:51,080 heter Objective-C, noe som kan også være på vår liste her-- 427 00:17:51,080 --> 00:17:54,190 var mye mer uforståelige og mye vanskeligere å bryte ens sinn rundt. 428 00:17:54,190 --> 00:17:57,690 Og som programmering blir uten tvil mer tilgjengelig og mer generelt 429 00:17:57,690 --> 00:18:00,580 vedtatt av folk selv mindre teknisk, den goal-- 430 00:18:00,580 --> 00:18:04,160 det er en veldig tapper mål å prøve å senke barrieren for å komme ved å gjøre 431 00:18:04,160 --> 00:18:07,400 språkene selv lettere å komme i gang med, 432 00:18:07,400 --> 00:18:09,430 men ikke mindre kraftig nødvendigvis. 433 00:18:09,430 --> 00:18:10,560 >> Og ett annet språk. 434 00:18:10,560 --> 00:18:14,110 Hvorfor kan ikke vi ta en titt på noe som Python, 435 00:18:14,110 --> 00:18:18,090 noe som er veldig mye på moten i disse dager. 436 00:18:18,090 --> 00:18:19,570 Python. 437 00:18:19,570 --> 00:18:20,464 Prøveprogram. 438 00:18:20,464 --> 00:18:24,600 439 00:18:24,600 --> 00:18:26,700 La oss se. 440 00:18:26,700 --> 00:18:28,790 "Hello World" språk. 441 00:18:28,790 --> 00:18:30,180 La oss gjøre dette. 442 00:18:30,180 --> 00:18:33,625 "Hei verden." 443 00:18:33,625 --> 00:18:35,375 La oss se om dette gir oss et fint eksempel. 444 00:18:35,375 --> 00:18:39,450 445 00:18:39,450 --> 00:18:39,950 OK. 446 00:18:39,950 --> 00:18:41,283 Så dette er faktisk like gøy. 447 00:18:41,283 --> 00:18:43,330 Så hvis du noen gang google "Hello World", som 448 00:18:43,330 --> 00:18:47,000 skjer for å være en av de første programmene noensinne er skrevet i et moderne språk, 449 00:18:47,000 --> 00:18:51,830 akkurat som et bevis på konseptet, kan du se alle slags implementasjoner av denne. 450 00:18:51,830 --> 00:18:54,240 >> Noen av disse språkene Jeg har ikke engang hørt om. 451 00:18:54,240 --> 00:18:59,770 Men du kan see-- la oss gå til Basic, den jeg lærte år siden, delvis. 452 00:18:59,770 --> 00:19:02,720 Dette var et morsomt språk fordi du måtte, som programmerer, nummer 453 00:19:02,720 --> 00:19:03,710 alle dine linjer. 454 00:19:03,710 --> 00:19:05,626 Ikke ulikt det jeg var gjør når jeg skrev 455 00:19:05,626 --> 00:19:08,380 pseudokode på den gule dokument tidligere for binære søk, 456 00:19:08,380 --> 00:19:09,580 for å søke en telefonbok. 457 00:19:09,580 --> 00:19:11,810 >> Og så, hvis du ønsket å gå til en annen linje, 458 00:19:11,810 --> 00:19:15,780 du ville bokstavelig talt skriver, gå til 10, eller gå til 20. 459 00:19:15,780 --> 00:19:19,110 Og hvis du skriver linjer, de konvensjonen var å gjøre, er denne linjen 10, 460 00:19:19,110 --> 00:19:22,545 dette er ledningen 20, er denne linje 30, 40, med ingenting i mellom, 461 00:19:22,545 --> 00:19:25,170 og dermed gi deg selv litt rom hvis du bestemmer deg, vent litt, 462 00:19:25,170 --> 00:19:27,230 Jeg burde ha lagt noen mer kode et sted. 463 00:19:27,230 --> 00:19:30,960 Du hadde fortsatt slags ni sjanser til å presse som i mellom programmet 464 00:19:30,960 --> 00:19:33,020 før du måtte manuelt nummerere alt. 465 00:19:33,020 --> 00:19:35,470 >> Så dette er litt av hva jeg mener når jeg sier at verden har kommet opp 466 00:19:35,470 --> 00:19:36,303 med nye funksjoner. 467 00:19:36,303 --> 00:19:39,364 Et sted langs veien noen realisert, gutt dette er dumt. 468 00:19:39,364 --> 00:19:41,280 Dette er bare å skape arbeide for programmereren. 469 00:19:41,280 --> 00:19:44,200 Slik at han eller hun bare slags inne et nytt lag på toppen av det 470 00:19:44,200 --> 00:19:46,910 slik at du ikke trenger å bekymre deg om hvilken linje tall koden 471 00:19:46,910 --> 00:19:48,570 er faktisk på. 472 00:19:48,570 --> 00:19:54,940 >> Så når kan du velge ett eller annet språk? 473 00:19:54,940 --> 00:19:56,690 Vel, hvilke av disse språk vil du pleier 474 00:19:56,690 --> 00:20:00,960 å høre om de fleste i din egen verden i disse dager? 475 00:20:00,960 --> 00:20:02,680 La oss slippe ned Objective-C også. 476 00:20:02,680 --> 00:20:06,416 477 00:20:06,416 --> 00:20:07,739 >> PUBLIKUM: C #. 478 00:20:07,739 --> 00:20:08,530 DAVID J. MALAN: C #. 479 00:20:08,530 --> 00:20:10,310 Så la meg farge. 480 00:20:10,310 --> 00:20:13,190 Har vi vår andre farger eller annet sted? 481 00:20:13,190 --> 00:20:14,550 Så C #. 482 00:20:14,550 --> 00:20:16,390 Og hva vet du om C #? 483 00:20:16,390 --> 00:20:18,940 Noe våren til tankene? 484 00:20:18,940 --> 00:20:20,707 >> PUBLIKUM: Det er et programmeringsspråk. 485 00:20:20,707 --> 00:20:22,540 DAVID J. MALAN: Det er en programmeringsspråk. 486 00:20:22,540 --> 00:20:23,200 OK. 487 00:20:23,200 --> 00:20:24,690 Det er sant. 488 00:20:24,690 --> 00:20:26,440 Så vi snakker om C #. 489 00:20:26,440 --> 00:20:29,230 C # har en tendens til å bli brukt i Windows-miljøer, 490 00:20:29,230 --> 00:20:33,550 så hvis du skriver Microsoft-programvare for Windows, er C # svært vanlig, 491 00:20:33,550 --> 00:20:38,560 enten det er for desktop programvare, eller selv telefonens programvare på Windows-telefoner, 492 00:20:38,560 --> 00:20:41,820 hvis du har hatt dem, eller på nettet selv også. 493 00:20:41,820 --> 00:20:44,642 Og faktisk, kanskje Kareem nevnte ASP tidligere? 494 00:20:44,642 --> 00:20:46,600 Så det er også disse ting som kalles rammeverk, 495 00:20:46,600 --> 00:20:51,040 som vi kan presentere i forlengelsen. 496 00:20:51,040 --> 00:20:53,280 Strukturer som ASP. 497 00:20:53,280 --> 00:20:55,740 Står for Active Server Pages. 498 00:20:55,740 --> 00:20:59,880 Og dette er kode og en metode for programmering 499 00:20:59,880 --> 00:21:03,490 som vanligvis gjør det lettere å skrive web-baserte applikasjoner. 500 00:21:03,490 --> 00:21:07,530 Med andre ord, det ville være super, super irriterende å skrive et nettsted 501 00:21:07,530 --> 00:21:09,469 i språket C som vi har sett før, 502 00:21:09,469 --> 00:21:12,510 fordi du må bruke print + F, du må bruke dette søkeordet 503 00:21:12,510 --> 00:21:13,940 "Main" og klammeparentes. 504 00:21:13,940 --> 00:21:16,720 Mye av uforståelige syntaks og tilnærming til å implementere 505 00:21:16,720 --> 00:21:19,195 noe som er nokså komplisert. 506 00:21:19,195 --> 00:21:20,240 En nettside. 507 00:21:20,240 --> 00:21:23,800 >> Og så andre språk har utviklet seg for å gjøre den slags ting enklere. 508 00:21:23,800 --> 00:21:26,890 Og i sin tur, har folk kommet opp med rammer, liksom verktøy 509 00:21:26,890 --> 00:21:30,520 som du kan bruke som gjør det enda enklere å skrive websider. 510 00:21:30,520 --> 00:21:33,070 Så for eksempel, for å gjøre dette mye mer konkret, 511 00:21:33,070 --> 00:21:36,390 la meg åpne opp bare en tekstfil for et øyeblikk. 512 00:21:36,390 --> 00:21:39,380 >> Og du kanskje husker i går at vi sa noe 513 00:21:39,380 --> 00:21:41,210 liker, er dette en nettside. 514 00:21:41,210 --> 00:21:42,300 HTML. 515 00:21:42,300 --> 00:21:45,340 Lukk HTML. 516 00:21:45,340 --> 00:21:48,500 La meg hoppe over hodet og bare gjøre kroppen her. 517 00:21:48,500 --> 00:21:52,810 Anta at jeg ønsket å skrive ikke "Hello World" 518 00:21:52,810 --> 00:21:57,020 men "Hei David," hvor David er Navnet på den påloggede brukeren. 519 00:21:57,020 --> 00:22:00,270 Hva noe sånt ASP vil gjøre, eller JSP-- 520 00:22:00,270 --> 00:22:04,060 som er Java-server pages-- eller hvilket som helst antall av andre rammeverk 521 00:22:04,060 --> 00:22:05,435 er de ikke språk, per se. 522 00:22:05,435 --> 00:22:07,351 De er akkurat som tilleggsprogramvare som du 523 00:22:07,351 --> 00:22:10,490 vil installere i ditt miljø som bare gjør det lettere å programmere. 524 00:22:10,490 --> 00:22:15,670 >> Så for eksempel, snarere enn å gjøre noe sånt som "hei, printf (" David ")" 525 00:22:15,670 --> 00:22:17,510 eller noe som er slags co-mingling-- 526 00:22:17,510 --> 00:22:20,840 hva slags kode vi har sett before-- du ville gjøre noe mye enklere, 527 00:22:20,840 --> 00:22:26,190 som "name%." 528 00:22:26,190 --> 00:22:28,660 Og så disse rammene, som ASP-- og jeg 529 00:22:28,660 --> 00:22:31,212 husker ikke om jeg får syntaksen akkurat for ASP. 530 00:22:31,212 --> 00:22:33,100 JSP er en little-- er dette riktig? 531 00:22:33,100 --> 00:22:36,500 >> Så med ASP, er denne liksom en spesiell syntaks 532 00:22:36,500 --> 00:22:39,830 at noen utviklere har bestemt dette kan hjelpe folk ut. 533 00:22:39,830 --> 00:22:43,000 Og jeg kan uttrykke mer konsist plassholdere, for eksempel. 534 00:22:43,000 --> 00:22:47,187 Som sette en verdi her, hvor denne verdien navnet ikke N-A-M-E, 535 00:22:47,187 --> 00:22:48,520 det er noen verdi lagret der. 536 00:22:48,520 --> 00:22:50,728 Så "navn" i denne sammenheng vi vil kalle en variabel. 537 00:22:50,728 --> 00:22:52,760 Algebra har variabler som x, og y, og z. 538 00:22:52,760 --> 00:22:56,021 Programmerere bruker variabler som er mer beskrivende enn x, y, og z, 539 00:22:56,021 --> 00:22:56,520 typisk. 540 00:22:56,520 --> 00:23:01,020 Så "navn" vil bokstavelig talt være en slags minne beholder for noe sånt 541 00:23:01,020 --> 00:23:05,440 D-A-V-I-D, for mitt navn, eller hvem som helst ellers er logget inn på nettstedet. 542 00:23:05,440 --> 00:23:09,300 >> Og så dette er den type stor du får med visse miljøer. 543 00:23:09,300 --> 00:23:14,220 Så C # og noe som ASP vil veldig som vanligvis benyttes i et Windows verden, 544 00:23:14,220 --> 00:23:16,460 enten for sin desktop programvare eller web server, 545 00:23:16,460 --> 00:23:21,490 spesielt hvis serverne er i sving kjører Microsoft Windows og Microsoft 546 00:23:21,490 --> 00:23:25,810 IIS-- eller Internet Information Server, hvis jeg får akronym right-- 547 00:23:25,810 --> 00:23:27,800 som er Microsofts webserver. 548 00:23:27,800 --> 00:23:30,820 >> Så hva andre språk er folk som er kjent med, 549 00:23:30,820 --> 00:23:35,228 eller har du hørt om oftere enn ikke? 550 00:23:35,228 --> 00:23:38,262 >> PUBLIKUM: Jeg vet at Pythons slag av en populær [hørbar]. 551 00:23:38,262 --> 00:23:39,470 DAVID J. MALAN: Veldig populært. 552 00:23:39,470 --> 00:23:45,490 Så Python her brukes svært ofte i vitenskapelige applikasjoner eller data 553 00:23:45,490 --> 00:23:48,330 vitenskap, hvor du har mye av data som du ønsker å analysere 554 00:23:48,330 --> 00:23:50,413 og du vil bruke en programmeringsspråk for det. 555 00:23:50,413 --> 00:23:53,640 R kan ofte bli brukt for det også, i en statistisk sammenheng. 556 00:23:53,640 --> 00:23:56,400 Men Python har så mange funksjoner innebygd. 557 00:23:56,400 --> 00:23:58,850 Så mange ekstra biblioteker, som folk sier. 558 00:23:58,850 --> 00:24:01,260 >> Bibliotekene er bare samlinger kode som andre mennesker 559 00:24:01,260 --> 00:24:04,218 skrev at du kan bruke slik at du trenger ikke å gjenoppfinne disse hjulene. 560 00:24:04,218 --> 00:24:07,430 Og så Python er svært vanlig brukes i datavitenskap applikasjoner. 561 00:24:07,430 --> 00:24:09,930 Men det er også veldig vanlig brukes i web-applikasjoner. 562 00:24:09,930 --> 00:24:12,780 Du kan implementere en dynamisk nettside ved hjelp av Python. 563 00:24:12,780 --> 00:24:15,210 >> Og ved dynamisk nettside, jeg betyr ikke bare statisk innhold 564 00:24:15,210 --> 00:24:19,530 som vi opprettet i går, etter bare hardt koding i den latinske teksten 565 00:24:19,530 --> 00:24:21,820 og andre slike ting, men heller evnen 566 00:24:21,820 --> 00:24:25,367 å logge på, evnen til å kjøpe noe, muligheten til å sjekke ut 567 00:24:25,367 --> 00:24:26,950 med handlekurver eller lignende. 568 00:24:26,950 --> 00:24:30,590 Alle som krever dynamikk og du trenger noen språk som en av dem. 569 00:24:30,590 --> 00:24:35,060 >> PUBLIKUM: Det gjør Python har sin egen forlengelse, ligner liker [hørbar] 570 00:24:35,060 --> 00:24:36,060 DAVID J. MALAN: Det gjør. 571 00:24:36,060 --> 00:24:42,250 Så i en verden av Python, er Django et svært populært rammeverk for Python. 572 00:24:42,250 --> 00:24:46,520 WSGI er en annen mekanisme som er slags forskjellig fra denne 573 00:24:46,520 --> 00:24:47,640 men ligner i ånden. 574 00:24:47,640 --> 00:24:52,200 Det er en add-on som lar deg å kjøre Python kode på en server. 575 00:24:52,200 --> 00:24:53,950 Det er other-- ja. 576 00:24:53,950 --> 00:24:57,250 Så vil disse vi kaller rammer. 577 00:24:57,250 --> 00:24:58,870 Og det er litt av et misbruk. 578 00:24:58,870 --> 00:25:00,920 Dette er mer av en web-server teknologi. 579 00:25:00,920 --> 00:25:04,610 Men vi vil holde det enkelt og sette det i denne kolonnen likevel. 580 00:25:04,610 --> 00:25:05,780 >> OK. 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 En annen thing-- og faktisk, la meg flytte det til en egen kolonne, 584 00:25:12,100 --> 00:25:17,000 fordi jeg vil kjefte på meg selv for sette dem i samme bøtte. 585 00:25:17,000 --> 00:25:24,910 La oss sette dette inn i serveren funksjoner, la oss si. 586 00:25:24,910 --> 00:25:26,710 Det er ikke et teknisk begrep. 587 00:25:26,710 --> 00:25:29,180 >> Så her kan vi være WSGI. 588 00:25:29,180 --> 00:25:32,580 Det er CGI, som er en eldre teknikk for å tjene opp språk 589 00:25:32,580 --> 00:25:35,890 som Perl eller PHP, eller noen andre. 590 00:25:35,890 --> 00:25:39,000 Igjen, jeg har nevnt disse vilkårene ikke så mye å slags ingrain dem, 591 00:25:39,000 --> 00:25:40,749 men slik at hvis du ser dem det er noe 592 00:25:40,749 --> 00:25:42,130 du bare google for å lese mer. 593 00:25:42,130 --> 00:25:46,110 Det er ingen reell juice til noen av disse tingene. 594 00:25:46,110 --> 00:25:47,850 >> Men la oss gå tilbake til språk. 595 00:25:47,850 --> 00:25:50,499 Vi snakket om C #, Python. 596 00:25:50,499 --> 00:25:52,790 Hva annet kan du bruke for web programmering i disse dager? 597 00:25:52,790 --> 00:25:54,302 La oss fokusere på det likevel. 598 00:25:54,302 --> 00:25:55,247 >> PUBLIKUM: PHP. 599 00:25:55,247 --> 00:25:56,080 DAVID J. MALAN: PHP. 600 00:25:56,080 --> 00:25:57,413 Og la oss komme tilbake til den. 601 00:25:57,413 --> 00:25:59,310 Så PHP er svært vanlig. 602 00:25:59,310 --> 00:26:01,560 PHP har en tendens til å få en dårlig rap. 603 00:26:01,560 --> 00:26:05,790 Det startet som et språk implementert av folk som kanskje ikke var nødvendigvis 604 00:26:05,790 --> 00:26:06,960 de beste språk designere. 605 00:26:06,960 --> 00:26:11,290 Og slik at du kan lese alle slags artikler på nettet om hvor ille PHP er. 606 00:26:11,290 --> 00:26:13,660 Og dessverre, dette er en manifestasjon, delvis, 607 00:26:13,660 --> 00:26:18,727 av bare de religiøse debatter som bryter ut blant programmerere. 608 00:26:18,727 --> 00:26:20,560 Og dette er noe verdt å holde i tankene, 609 00:26:20,560 --> 00:26:24,410 fra et forretningsmessig perspektiv, som det er veldig lett for tekniske folk 610 00:26:24,410 --> 00:26:26,900 å få alle jobbet opp med sine meninger om visse ting. 611 00:26:26,900 --> 00:26:29,566 Og det betyr ikke nødvendigvis at en roping høyest 612 00:26:29,566 --> 00:26:31,870 eller med den sterkeste, sinteste mening er riktig. 613 00:26:31,870 --> 00:26:34,100 Mange ganger, det virkelig bare spiller ingen rolle. 614 00:26:34,100 --> 00:26:37,970 >> Og så folk bare krangler uansett sine egne fordommer eller komfortsoner er. 615 00:26:37,970 --> 00:26:40,760 Og så bør du holde det i tankene når du gjør 616 00:26:40,760 --> 00:26:42,622 en beslutning, som bare fordi noen sier 617 00:26:42,622 --> 00:26:45,080 dette er riktig språk for jobben, som kan være sant, 618 00:26:45,080 --> 00:26:48,350 men det også bare kan være den er riktig språk i sin egen dyktighet 619 00:26:48,350 --> 00:26:49,267 sett eller comfort zone. 620 00:26:49,267 --> 00:26:52,600 Som ikke er dårlig, men du bør innse at det kan være noen sammenheng der. 621 00:26:52,600 --> 00:26:54,440 Det er noen objektivt gale uttalelser, 622 00:26:54,440 --> 00:26:59,080 som C er feil språk å bruke i disse dager for å gjennomføre nettsteder 623 00:26:59,080 --> 00:27:00,520 nesten alltid. 624 00:27:00,520 --> 00:27:03,370 Men det er ikke urimelig å si at noen av disse 625 00:27:03,370 --> 00:27:05,700 er galt at vi har sirklet så langt. 626 00:27:05,700 --> 00:27:08,180 >> PHP har gått gjennom mange versjoner. 627 00:27:08,180 --> 00:27:11,310 Så språk tendens til å ha versjon tallene knyttet til dem. 628 00:27:11,310 --> 00:27:15,390 PHP er opp til, tror jeg, versjon 7 nå, så det har eksistert i ganske lang tid. 629 00:27:15,390 --> 00:27:18,270 Og som språk få nyere, de ofte får nye funksjoner. 630 00:27:18,270 --> 00:27:22,510 Men du må være oppmerksom på dette fordi hvis nettstedet har vært 631 00:27:22,510 --> 00:27:27,539 implementert i versjon 7 av PHP, men du prøver å kjøre ditt nettsted, 632 00:27:27,539 --> 00:27:29,830 eller kanskje du har outsourcet utviklingen av koden din 633 00:27:29,830 --> 00:27:31,960 til noen andre, og de post det til deg, eller sende det til deg 634 00:27:31,960 --> 00:27:33,960 og de sier her, legg dette på webserveren din, 635 00:27:33,960 --> 00:27:36,610 hvis webserveren er noen år outdated-- enten det er 636 00:27:36,610 --> 00:27:39,465 din egen server eller en web host-- det kan faktisk ikke kjøre. 637 00:27:39,465 --> 00:27:41,340 Så disse er typer ting som noen 638 00:27:41,340 --> 00:27:44,067 må være oppmerksom på ved oppgradering et nettsted 639 00:27:44,067 --> 00:27:45,650 eller implementere det for første gang. 640 00:27:45,650 --> 00:27:46,900 >> Jeg hørte Javascript tidligere. 641 00:27:46,900 --> 00:27:50,570 Så Javascript er et interessant man ved at det er vanligvis 642 00:27:50,570 --> 00:27:53,030 klientsiden, så vi får se etter pause, noe som 643 00:27:53,030 --> 00:27:55,000 betyr at det kjører i brukerens nettleser. 644 00:27:55,000 --> 00:27:58,400 Men du kan også kjøre Javascript disse dager 645 00:27:58,400 --> 00:28:03,450 ved hjelp av noe som kalles Node.js, der Node.js 646 00:28:03,450 --> 00:28:08,000 er en mekanisme for å kjøre Javascript-kode server side, 647 00:28:08,000 --> 00:28:12,430 stedet for å bruke Python, eller PHP eller andre slike språk. 648 00:28:12,430 --> 00:28:17,820 >> Javascript er spesielt godt egnet for chat programmer og sanntids 649 00:28:17,820 --> 00:28:22,050 programmer, mens PHP er ikke en stor språk for å gjennomføre noe 650 00:28:22,050 --> 00:28:25,050 som en chat-server, hvor brukerne holde kontakten med det hele tiden. 651 00:28:25,050 --> 00:28:28,760 PHP er mer av et besøk meg en gang, får tilbake et resultat 652 00:28:28,760 --> 00:28:31,790 og deretter en annen link noen sekunder eller minutter fra nå. 653 00:28:31,790 --> 00:28:36,020 Mens Node.js og Javascript kan være brukes mer for vedvarende tilkoblinger. 654 00:28:36,020 --> 00:28:40,840 Andre språk som du mistenker blir ofte brukt for web ting? 655 00:28:40,840 --> 00:28:42,800 >> PUBLIKUM: Vil jQuery være et rammeverk? 656 00:28:42,800 --> 00:28:44,050 >> DAVID J. MALAN: Godt spørsmål. 657 00:28:44,050 --> 00:28:44,700 Ingen. 658 00:28:44,700 --> 00:28:51,210 Jeg vil kalle jQuery bibliotek, hvor igjen et bibliotek er bare en haug med kode 659 00:28:51,210 --> 00:28:53,250 at noen andre har skrevet at generelt 660 00:28:53,250 --> 00:28:56,390 løser noen problemer som gjør det forhåpentligvis lettere 661 00:28:56,390 --> 00:28:57,760 for deg å gjøre jobben din. 662 00:28:57,760 --> 00:29:00,820 Og la meg gjøre ett eksempel på dette i sammenheng med nettet. 663 00:29:00,820 --> 00:29:03,910 >> I sammenheng med banen er det dette språket, Javascript, 664 00:29:03,910 --> 00:29:06,690 at vi vil se senere, hvor du kan si noe sånt dette-- 665 00:29:06,690 --> 00:29:10,060 "Document.getElementById." 666 00:29:10,060 --> 00:29:11,490 Og hva gjorde jeg kaller det i går? 667 00:29:11,490 --> 00:29:16,800 Først tror jeg, var den unike ID jeg ga til et element som så ut som dette. 668 00:29:16,800 --> 00:29:23,110 "P id =" første ">", og da vi hadde som "lorem ipsum", et cetera. 669 00:29:23,110 --> 00:29:28,210 Så hvis jeg skulle skrive et program i Javascript for å liksom manipulere, 670 00:29:28,210 --> 00:29:30,830 endre websider som vi lekte med i går, 671 00:29:30,830 --> 00:29:33,010 Jeg vil bruke denne uthevede linjen med kode 672 00:29:33,010 --> 00:29:38,700 å få den aktuelle HTML- fra min side, det bestemt node, 673 00:29:38,700 --> 00:29:39,680 som vi kaller det. 674 00:29:39,680 --> 00:29:44,540 >> Men i jQuery, i stedet for å skrive dette, noe som er rå Javascript code-- 675 00:29:44,540 --> 00:29:48,870 bare ut av boksen, det er hvordan du skrive it ville du i stedet bare si, 676 00:29:48,870 --> 00:29:50,260 "#først." 677 00:29:50,260 --> 00:29:52,330 Det er tilsvarende. 678 00:29:52,330 --> 00:29:56,040 Og så bare basert på dette svært uforståelige eksempel, hva kanskje 679 00:29:56,040 --> 00:29:57,870 er argumentet for å bruke jQuery? 680 00:29:57,870 --> 00:30:01,390 681 00:30:01,390 --> 00:30:05,111 Hvorfor skulle en utvikler bruke et bibliotek som jQuery, basert på denne isolerte eksempel 682 00:30:05,111 --> 00:30:05,610 kanskje? 683 00:30:05,610 --> 00:30:06,335 >> PUBLIKUM: Mindre kode. 684 00:30:06,335 --> 00:30:06,780 >> DAVID J. MALAN: Ja. 685 00:30:06,780 --> 00:30:07,530 Det er mindre kode. 686 00:30:07,530 --> 00:30:09,070 Det er bare raskere å skrive. 687 00:30:09,070 --> 00:30:11,690 Motstykket er at det ser mer skremmende. 688 00:30:11,690 --> 00:30:13,540 Du kan egentlig ikke lese det venstre til høyre. 689 00:30:13,540 --> 00:30:16,730 Faktisk, fordi det er det meste tegnsetting nå i stedet for faktiske ord, 690 00:30:16,730 --> 00:30:20,950 Jeg kan slags antyde at "Document.getElementById" får 691 00:30:20,950 --> 00:30:23,640 et element fra dokumentet ved sin ID. 692 00:30:23,640 --> 00:30:26,750 Jeg kan egentlig bruke noe slikt huskeregler fra denne tingen her. 693 00:30:26,750 --> 00:30:27,680 >> Så det er en trade off. 694 00:30:27,680 --> 00:30:30,763 Det er et raffinement som kommer ofte med å bruke bibliotekene, spesielt 695 00:30:30,763 --> 00:30:31,440 som jQuery. 696 00:30:31,440 --> 00:30:34,700 Men realiteten er jQuery har form av å bli en de facto standard, 697 00:30:34,700 --> 00:30:38,110 slik at nesten alle disse dager som skriver Javascript-kode 698 00:30:38,110 --> 00:30:41,520 bruker jQuery eller noe liker det, og ikke lenger skriver 699 00:30:41,520 --> 00:30:45,200 slike en detaljert uttrykk som dette, fordi igjen, menneskeheten 700 00:30:45,200 --> 00:30:47,850 har lært, wow, det var liksom en tapt mulighet 701 00:30:47,850 --> 00:30:49,030 å gjøre livet enklere. 702 00:30:49,030 --> 00:30:51,140 Så mennesker gjøre livet enklere. 703 00:30:51,140 --> 00:30:53,310 Godt spørsmål. 704 00:30:53,310 --> 00:30:55,870 >> Andre språk å vurdere. 705 00:30:55,870 --> 00:30:58,660 Jeg vil si blant denne Listen Ruby er ganske populær. 706 00:30:58,660 --> 00:31:01,310 Og så i en verden av Ruby, det er et rammeverk 707 00:31:01,310 --> 00:31:03,590 kalt Rails, som er svært populær. 708 00:31:03,590 --> 00:31:06,880 Så Ruby on Rails er en brukte uttrykk. 709 00:31:06,880 --> 00:31:10,330 Også i denne verden, la meg sirkel Java for web ting, 710 00:31:10,330 --> 00:31:14,160 hvor i verden av Java du kan ha JSP, eller Java 711 00:31:14,160 --> 00:31:18,450 Servlets, som er en felles teknologi. 712 00:31:18,450 --> 00:31:22,560 Og dette er bare igjen måter å bruke at språket i en servermiljø. 713 00:31:22,560 --> 00:31:23,520 >> Så hva betyr dette? 714 00:31:23,520 --> 00:31:25,770 Hvis du har en fysisk server, ville du bokstavelig talt 715 00:31:25,770 --> 00:31:30,510 laste ned serverprogrammet og installere det på en slik måte 716 00:31:30,510 --> 00:31:33,510 at du har støtte for en av disse rammene, som du 717 00:31:33,510 --> 00:31:37,260 kan i sin tur bruke ett eller flere av disse språkene. 718 00:31:37,260 --> 00:31:40,260 Og i virkeligheten, hvis du registrerer deg for som en web host eller noen av skyen 719 00:31:40,260 --> 00:31:41,968 tjenestene vi snakket om i går, ofte 720 00:31:41,968 --> 00:31:44,885 ting kommer bare med maskinens konfigurasjon for deg. 721 00:31:44,885 --> 00:31:46,510 Du trenger ikke å sette dette opp manuelt. 722 00:31:46,510 --> 00:31:51,040 Men hvis du gjorde, dette er hvor den rollen av system administrator, så å si, 723 00:31:51,040 --> 00:31:51,860 kommer inn i bildet. 724 00:31:51,860 --> 00:31:54,151 Han eller hun vil faktisk gjøre denne typen ting for deg, 725 00:31:54,151 --> 00:31:58,510 eller den såkalte webmaster vil ofte gjøre dette for deg. 726 00:31:58,510 --> 00:31:59,010 Greit. 727 00:31:59,010 --> 00:32:03,300 Eventuelle spørsmål om noen av disse her? 728 00:32:03,300 --> 00:32:06,690 Eller noen muligheter på alt for å spørre om språk? 729 00:32:06,690 --> 00:32:09,500 Rammeverk? 730 00:32:09,500 --> 00:32:11,530 Så la meg presentere bare ett annet bibliotek 731 00:32:11,530 --> 00:32:13,150 det er også svært vanlig i disse dager. 732 00:32:13,150 --> 00:32:15,340 Denne listen kunne gå på uendelig. 733 00:32:15,340 --> 00:32:19,140 >> Og dette biblioteket er slags begynner å falle i unåde. 734 00:32:19,140 --> 00:32:19,850 Det har eksistert. 735 00:32:19,850 --> 00:32:22,040 Det ble popularisert av Twitter for noen tid. 736 00:32:22,040 --> 00:32:24,470 Og nå mange nettsteder, mange utviklere bruker den. 737 00:32:24,470 --> 00:32:26,629 Men nye ting kommer ut og kommer sammen. 738 00:32:26,629 --> 00:32:29,420 Men la meg bare gi deg en følelse av på hvilken måte det å bruke et bibliotek. 739 00:32:29,420 --> 00:32:32,250 Så igjen, er Javascript et svært populært språk. 740 00:32:32,250 --> 00:32:35,340 CSS, eller Cascading Style Sheets, vi snakket om i går. 741 00:32:35,340 --> 00:32:36,600 Det også, er allestedsnærværende. 742 00:32:36,600 --> 00:32:40,130 Ingen som gjør en nettside i dag uten å bruke HTML og CSS minimal. 743 00:32:40,130 --> 00:32:42,510 Men det er ikke alltid lett å gjøre visse ting. 744 00:32:42,510 --> 00:32:46,281 >> Og så la meg gå til getbootstrap.com. 745 00:32:46,281 --> 00:32:46,780 Uff. 746 00:32:46,780 --> 00:32:48,280 Det er ikke hvordan vi stave. 747 00:32:48,280 --> 00:32:52,410 Getbootstrap.com, som kommer til å føre meg 748 00:32:52,410 --> 00:32:56,140 til destinasjonssiden for dette biblioteket. 749 00:32:56,140 --> 00:32:59,720 Så de sjenerøst kaller seg et rammeverk som 750 00:32:59,720 --> 00:33:02,032 er slags form for rettferdig, men jeg vil fortsatt kalle det 751 00:33:02,032 --> 00:33:03,490 mer av et bibliotek enn et rammeverk. 752 00:33:03,490 --> 00:33:05,760 Men dette er bare arguable semantikk. 753 00:33:05,760 --> 00:33:12,360 La meg gå til deres CSS-kategorien og la meg gå til noe som dette. 754 00:33:12,360 --> 00:33:15,450 >> Så husker hva våre skjemaer så som i går på Cloud9? 755 00:33:15,450 --> 00:33:16,370 Det var ganske stygg. 756 00:33:16,370 --> 00:33:17,320 Old school knapper. 757 00:33:17,320 --> 00:33:20,420 Jeg tror på knappen var grå av misligholde. Og alt var virkelig 758 00:33:20,420 --> 00:33:22,420 formatert ganske messily. 759 00:33:22,420 --> 00:33:26,940 Så hvis du vil at webskjemaer for å se litt nicer-- la meg zoome inn her. 760 00:33:26,940 --> 00:33:30,050 >> Og bedre jeg egentlig bare mener veldig nitpicky estetikk. 761 00:33:30,050 --> 00:33:35,390 Så legger merke til hvordan e-boksen har det en avrundet rektangulære hjørner til det. 762 00:33:35,390 --> 00:33:37,010 Så det er litt renere der. 763 00:33:37,010 --> 00:33:40,770 Legg merke til at ordet e-post er det før jeg begynner å skrive 764 00:33:40,770 --> 00:33:41,797 og deretter går det unna. 765 00:33:41,797 --> 00:33:43,130 Så det er en fin liten funksjon. 766 00:33:43,130 --> 00:33:46,046 Legg merke til hvordan ting er slags glødende pent, som noe av dette du 767 00:33:46,046 --> 00:33:49,069 får gratis fra nettleseren din, men noe av dette er også biblioteker 768 00:33:49,069 --> 00:33:51,360 kode som andre mennesker har skrevet som gir deg dette. 769 00:33:51,360 --> 00:33:53,480 >> Noe sånt som dette gir meg passordet mitt. 770 00:33:53,480 --> 00:33:58,480 Denne knappen er litt mer sexy enn den misligholde. Veldig mye på moten akkurat nå. 771 00:33:58,480 --> 00:34:03,570 Helt siden iOS 7 eller så, Verden har fått veldig flat, 772 00:34:03,570 --> 00:34:09,000 mens verden før hadde massevis av skygger, mye 773 00:34:09,000 --> 00:34:11,040 refleksjoner på ikoner. 774 00:34:11,040 --> 00:34:14,170 Mye som i klær verden, det er motetrender som kommer og går. 775 00:34:14,170 --> 00:34:16,190 Nå er alt flatt på telefonen. 776 00:34:16,190 --> 00:34:19,159 >> Faktisk knappene på iPhone er nå bare blå koblinger. 777 00:34:19,159 --> 00:34:21,000 Det er ikke ofte selv sirkulære knapper. 778 00:34:21,000 --> 00:34:22,791 Så dette er bare ting som går inn og ut 779 00:34:22,791 --> 00:34:26,659 av moten, og så dette er hvordan du kan lage et mer moderne utseende webskjema. 780 00:34:26,659 --> 00:34:27,159 Knapper. 781 00:34:27,159 --> 00:34:29,190 Så Bootstrap har mange pene knapper. 782 00:34:29,190 --> 00:34:33,639 Så hvis du vil blå knapper, grønne knapper, blå, oransje, rød. 783 00:34:33,639 --> 00:34:35,840 Bootstrap gjør det lettere å gjøre disse tingene. 784 00:34:35,840 --> 00:34:38,131 Dette er den slags ting at du kan absolutt 785 00:34:38,131 --> 00:34:41,840 har gjort i går med CSS og med HTML, men det er bare en smerte i nakken. 786 00:34:41,840 --> 00:34:44,840 Og så i stedet, hva Bootstrap ville har du gjør er noe som dette. 787 00:34:44,840 --> 00:34:48,960 >> Hvis du ønsker en button-- viser seg at dette er en HTML-tag vi ikke bruke yesterday-- 788 00:34:48,960 --> 00:34:53,070 og du vil den skal se sånn grønn knapp, 789 00:34:53,070 --> 00:34:57,380 du bokstavelig talt bare gi den en klasse, som vi gjorde snakker om i går, 790 00:34:57,380 --> 00:34:59,710 av "btn btn-suksess." 791 00:34:59,710 --> 00:35:00,971 >> Hvorfor disse ordene? 792 00:35:00,971 --> 00:35:03,470 Twitter, forfatterne av Bootstrap, kom opp med disse ordene. 793 00:35:03,470 --> 00:35:05,428 De kunne ha kalt dem alt de vil. 794 00:35:05,428 --> 00:35:08,480 Men hva du får nå er noen andre på Twitter, i dette tilfellet, 795 00:35:08,480 --> 00:35:12,360 har funnet ut hvordan du gjør en knappen ser fin og ren og grønn. 796 00:35:12,360 --> 00:35:15,580 De pakket opp denne funksjonaliteten i en CSS-klasse, kalt "btn" 797 00:35:15,580 --> 00:35:19,790 og "btn-suksess", slik at noen av oss kan nå bruke den uten engang å tenke på 798 00:35:19,790 --> 00:35:20,290 den. 799 00:35:20,290 --> 00:35:22,880 Så de har abstrahert bort oppfatningen av en grønn knapp 800 00:35:22,880 --> 00:35:25,320 slik at vi ikke trenger å bry seg om implementere det selv. 801 00:35:25,320 --> 00:35:28,520 Vi kan faktisk fokusere på å implementere ting av interesse for oss. 802 00:35:28,520 --> 00:35:30,902 >> Hvis vi bla nedover her. 803 00:35:30,902 --> 00:35:32,110 Feilmeldinger på skjermen. 804 00:35:32,110 --> 00:35:35,440 Noen ganger du vil ha en liten melding skal vises på toppen av nettleseren. 805 00:35:35,440 --> 00:35:39,729 Enhver av oss kunne gjøre dette med noen innsats, etter gårsdagens leksjon, 806 00:35:39,729 --> 00:35:40,770 men hvorfor skulle du bry deg? 807 00:35:40,770 --> 00:35:42,540 Det er slik en uinteressant estetisk detalj. 808 00:35:42,540 --> 00:35:44,248 La oss stå på skuldrene til Bootstrap 809 00:35:44,248 --> 00:35:49,440 og la dem gi oss ting som dette, hvor vi bokstavelig talt, for å få en rød boks, 810 00:35:49,440 --> 00:35:53,220 må bare gjøre et avsnitt tag med en klasse of-- beklager. 811 00:35:53,220 --> 00:35:57,307 "Bg-fare" ville gi oss dette rødlig boksen i stedet. 812 00:35:57,307 --> 00:35:59,140 Nå la oss gå til mer interessante ting. 813 00:35:59,140 --> 00:36:02,950 Hvis jeg går tilbake til toppen av denne siden og gå til komponenter, 814 00:36:02,950 --> 00:36:05,380 nå verden blir mer interessant. 815 00:36:05,380 --> 00:36:08,826 For eksempel, er meget vanlig drop down menyer som dette. 816 00:36:08,826 --> 00:36:11,560 Dette ville være en absolutt smerte å gjennomføre. 817 00:36:11,560 --> 00:36:13,610 Og det var ikke så lenge siden at vi programmerere 818 00:36:13,610 --> 00:36:16,490 måtte gjennomføre disse typer menyer fra scratch. 819 00:36:16,490 --> 00:36:20,800 >> Men det er en slik felles paradigme at bibliotekene som Bootstrap 820 00:36:20,800 --> 00:36:25,230 bare gi deg muligheten til å lage en nedtrekksmenyen langt, langt lettere. 821 00:36:25,230 --> 00:36:27,850 Det er ingen måte å gjøre det, men hvis jeg leser dokumentasjonen 822 00:36:27,850 --> 00:36:32,100 Jeg ville se det, OK, jeg skal bruke denne HTML hvis jeg vil ha en rullegardinmeny 823 00:36:32,100 --> 00:36:34,030 som oppfører seg sånn. 824 00:36:34,030 --> 00:36:36,690 >> Tilsvarende, la oss gå til knappen falle ned. 825 00:36:36,690 --> 00:36:38,470 Så dette er enda mer avansert. 826 00:36:38,470 --> 00:36:41,800 Hvis jeg vil at dette skal se ut som en knapp men den lille trekanten betyr 827 00:36:41,800 --> 00:36:44,080 Jeg skal klikke på det og få denne menyen, dette 828 00:36:44,080 --> 00:36:45,760 er å bruke et språk som kalles Javascript. 829 00:36:45,760 --> 00:36:47,470 Og vi kan alle gjennomføre dette i Javascript. 830 00:36:47,470 --> 00:36:49,720 Men igjen, er dette et hjul du ikke ønsker å gjenoppfinne. 831 00:36:49,720 --> 00:36:52,700 Du ønsker bare å ta den av sokkelen bibliotek for dette. 832 00:36:52,700 --> 00:36:58,145 >> La oss gå til noe som fremdriftsindikatorer. 833 00:36:58,145 --> 00:36:59,770 Så noe som dette er litt kult. 834 00:36:59,770 --> 00:37:02,910 Hvis du noensinne har sett en fremgang bar beveger seg over skjermen, 835 00:37:02,910 --> 00:37:06,380 implementering som ofte er bare en spinnende ikon. 836 00:37:06,380 --> 00:37:10,200 Faktisk, akkurat som en side, la meg gå til Ajax-- hva er det? 837 00:37:10,200 --> 00:37:10,710 Ajax info? 838 00:37:10,710 --> 00:37:11,720 Uff. 839 00:37:11,720 --> 00:37:13,035 Ajaxinfo. 840 00:37:13,035 --> 00:37:14,800 La meg huske adressen. 841 00:37:14,800 --> 00:37:15,820 Det vi går. 842 00:37:15,820 --> 00:37:19,850 >> Så hvis du noen gang har sett noen animasjon mens siden lastes, eller tenker, 843 00:37:19,850 --> 00:37:25,410 eller lagrer, eller skape noe, du kan se slike animasjoner som disse. 844 00:37:25,410 --> 00:37:28,800 Så la oss se på noe som dette her, 845 00:37:28,800 --> 00:37:33,550 og la oss velge en forgrunnsfarge av grønn, som føles slags vennlig. 846 00:37:33,550 --> 00:37:34,545 Kan jeg klikker på denne? 847 00:37:34,545 --> 00:37:35,500 Kom en. 848 00:37:35,500 --> 00:37:36,000 OK. 849 00:37:36,000 --> 00:37:38,930 Vi skal bare gå med rød fordi det er det vi får. 850 00:37:38,930 --> 00:37:40,250 Så her har vi det. 851 00:37:40,250 --> 00:37:43,940 >> Så hvis du noen gang har sett dette på en skjerm, hvor plutselig den vises, og deretter 852 00:37:43,940 --> 00:37:47,550 plutselig forsvinner, hva er det som er å gjennomføre det? 853 00:37:47,550 --> 00:37:48,970 Vel, dette er bare en GIF. 854 00:37:48,970 --> 00:37:52,850 G-I-F. Og dette er en animert fil, som nettopp betyr 855 00:37:52,850 --> 00:37:54,327 det er som en gammel skole tegneserie. 856 00:37:54,327 --> 00:37:57,160 Det er bare en haug med forskjellige rammer som skal [stamming] 857 00:37:57,160 --> 00:37:58,085 og bare gjenta. 858 00:37:58,085 --> 00:38:00,090 Og det er å skape illusjon av bevegelse. 859 00:38:00,090 --> 00:38:03,070 >> Så så snart en side er ferdig lasting eller gjøre noe, 860 00:38:03,070 --> 00:38:04,610 hva gjør en programmerer gjøre? 861 00:38:04,610 --> 00:38:07,500 Vel, han eller hun bare skjuler dette bildet. 862 00:38:07,500 --> 00:38:11,536 Så alt en fremdriftslinje er er snill av som en film du ser på. 863 00:38:11,536 --> 00:38:14,660 Du er liksom uvitende om det faktum at det ikke er faktisk gjør noe, 864 00:38:14,660 --> 00:38:15,940 det er bare å flytte. 865 00:38:15,940 --> 00:38:19,150 >> Og så, når det er gjort framskritt, de bare skjule det eller slå den av. 866 00:38:19,150 --> 00:38:21,115 Og det er all magi det som skjer der. 867 00:38:21,115 --> 00:38:22,770 Bootstrap gir deg noe litt mer avansert, 868 00:38:22,770 --> 00:38:25,030 hvor du faktisk kan se en prosentandel som det går, 869 00:38:25,030 --> 00:38:27,840 men det er også bare en slags av en enkel animasjon. 870 00:38:27,840 --> 00:38:32,250 >> La oss se på noen endelige mer komplekse eksempler her. 871 00:38:32,250 --> 00:38:35,526 Noe sånt som en modal. 872 00:38:35,526 --> 00:38:36,900 Er det noen som vet hva en modal er? 873 00:38:36,900 --> 00:38:39,880 874 00:38:39,880 --> 00:38:42,550 Et modalt vindu er vanligvis en som er ment 875 00:38:42,550 --> 00:38:46,880 å ta kontroll over forgrunnen og hindre deg fra å gjøre noe annet. 876 00:38:46,880 --> 00:38:50,290 Den slags tvinger brukeren hensyn til midten av skjermen, 877 00:38:50,290 --> 00:38:52,290 låse dem ut, typisk av alt annet. 878 00:38:52,290 --> 00:38:55,830 >> Så hvis jeg starter denne demoen, den Skjermen vil generelt bli grå. 879 00:38:55,830 --> 00:38:57,060 Vel, hvordan gjør vi det grå? 880 00:38:57,060 --> 00:38:59,080 Vel, vi sannsynligvis bare endret bakgrunnsfargen 881 00:38:59,080 --> 00:39:01,060 som vi gjorde i går eller noe sånt. 882 00:39:01,060 --> 00:39:03,490 Kanskje det er et overlegg det semi-transparent. 883 00:39:03,490 --> 00:39:06,320 Og nå legger merke til at du kan gjøre fancy ting som dette. 884 00:39:06,320 --> 00:39:09,930 Så hvis du noen gang klikker på en knapp og vil ha en liten pop ut til å vises, 885 00:39:09,930 --> 00:39:10,710 du kan gjøre det. 886 00:39:10,710 --> 00:39:12,340 Og så hvem bryr seg om alle-- ja? 887 00:39:12,340 --> 00:39:15,791 >> PUBLIKUM: Så med Bootstrap, for å få det innarbeidet, 888 00:39:15,791 --> 00:39:21,002 er det så enkelt som som i går vi gjorde CSS-stiler siden? 889 00:39:21,002 --> 00:39:21,960 DAVID J. MALAN: Ja. 890 00:39:21,960 --> 00:39:22,835 Virkelig godt spørsmål. 891 00:39:22,835 --> 00:39:24,480 La meg gå til Komme i gang. 892 00:39:24,480 --> 00:39:26,090 Og ja. 893 00:39:26,090 --> 00:39:30,920 Alt du trenger å gjøre for å bruk Bootstrap er egentlig kopiere 894 00:39:30,920 --> 00:39:35,910 og lime inn disse tre lange linjer av kode i toppen av din egen web page-- 895 00:39:35,910 --> 00:39:38,892 hodet på page-- og du er oppe og går. 896 00:39:38,892 --> 00:39:41,850 Og det er forskjellige måter å gjøre det, ville men dette være den enkleste. 897 00:39:41,850 --> 00:39:45,190 >> Så hva er nyttig om alt dette? 898 00:39:45,190 --> 00:39:47,524 Vel, hvis du ikke er så mye den iverksetter av et nettsted 899 00:39:47,524 --> 00:39:50,106 men du prøver å designe den, eller du ønsker å gi noen 900 00:39:50,106 --> 00:39:53,220 med wire ramme diagrammer, så å si, eller bare kunstnerens gjengivelser av hva 901 00:39:53,220 --> 00:39:56,080 du ønsker å gjøre, jeg, til denne dag, vil ofte gå til et nettsted 902 00:39:56,080 --> 00:39:58,660 som Bootstrap, der hvis jeg ønsker å implementere something-- 903 00:39:58,660 --> 00:40:02,290 som nylig på campus vi ønsket å gjennomføre 904 00:40:02,290 --> 00:40:06,170 en web-basert verktøy for å navigere Harvards kurskatalogen 905 00:40:06,170 --> 00:40:08,770 noe som gjør det lettere for studenter å bla gjennom kurs 906 00:40:08,770 --> 00:40:10,930 og legge kurs til handleliste, så å si, 907 00:40:10,930 --> 00:40:13,070 til slags bestemme hva de ønsket å ta. 908 00:40:13,070 --> 00:40:16,252 >> Jeg prøvde å forestille seg for meg selv, hva ingrediensene ville 909 00:40:16,252 --> 00:40:17,460 vi vil bruke til å bygge dette? 910 00:40:17,460 --> 00:40:19,050 Hva ville brukergrensesnittet bli? 911 00:40:19,050 --> 00:40:22,800 Og bare se gjennom et område som denne eller andre slike biblioteksider, 912 00:40:22,800 --> 00:40:26,560 du kan få inspirasjon, fordi wow, Jeg kan bruke denne widgeten, og denne widgeten, 913 00:40:26,560 --> 00:40:27,330 og denne widgeten. 914 00:40:27,330 --> 00:40:29,080 Og så virkelig hva programmereren starter 915 00:40:29,080 --> 00:40:32,800 å gjøre, spesielt i disse dager i denne mer moderne verden av web-programmering, 916 00:40:32,800 --> 00:40:35,827 er programmering er stadig om kabling ting sammen. 917 00:40:35,827 --> 00:40:38,910 Sorter med å ta dette hyllevare, dette hyllevare, dette hyllevare, 918 00:40:38,910 --> 00:40:41,954 og du er den smarte ett for å koble alle disse prikker 919 00:40:41,954 --> 00:40:45,120 men til slutt bygge noe med det igjen står på skuldrene til andre, 920 00:40:45,120 --> 00:40:49,370 slik at du ikke tilbringe en måned implementere en dum rullegardinmenyen 921 00:40:49,370 --> 00:40:52,080 som faktisk er vanskelig å gjøre hvis du vil den skal fungere på Chrome, 922 00:40:52,080 --> 00:40:55,220 og IE og Firefox, og eventuelle rekke andre nettlesere. 923 00:40:55,220 --> 00:40:59,060 Dette er grunnen til at det er denne rike kommersielle og åpen kildekode 924 00:40:59,060 --> 00:41:01,220 bransjen også. 925 00:41:01,220 --> 00:41:06,810 >> PUBLIKUM: Så betyr Bootstrap får oppdatert og du må deretter oppdatere koblingene? 926 00:41:06,810 --> 00:41:07,820 >> DAVID J. MALAN: Det gjør. 927 00:41:07,820 --> 00:41:09,090 Vel, ja, det gjør det. 928 00:41:09,090 --> 00:41:12,540 Bootstrap er for tiden på versjon 3.3.6. 929 00:41:12,540 --> 00:41:16,720 Og generelt hva du ville do-- dette er faktisk verdt å nevne. 930 00:41:16,720 --> 00:41:19,200 Det er det som er generelt kjent som en semantisk versjons 931 00:41:19,200 --> 00:41:20,160 Systemet i verden. 932 00:41:20,160 --> 00:41:21,320 Ikke alle gjør dette. 933 00:41:21,320 --> 00:41:26,410 >> Men hvis du har sett versjonsnumre som er på formen x.y.z-- 934 00:41:26,410 --> 00:41:30,240 så for eksempel, den første versjonen av et program kan være 1.0.0. 935 00:41:30,240 --> 00:41:34,970 Eller hvis det er veldig, veldig beta, eller til og med alfa-status, det vil si bruk 936 00:41:34,970 --> 00:41:37,620 på egen risiko, er det ikke virkelig klar for prime time, 937 00:41:37,620 --> 00:41:42,080 du kan selv starte 0.0.1 eller noe slikt betegnelse. 938 00:41:42,080 --> 00:41:47,260 Men hvis programvaren starter på versjon 1.0, eller ekvivalent 1.0.0, 939 00:41:47,260 --> 00:41:50,530 Vanligvis er det vanlig disse days-- men ikke omnipresent-- er 940 00:41:50,530 --> 00:41:53,520 hvis et selskap eller en individuelle programmerer fikser 941 00:41:53,520 --> 00:41:56,140 noen feil i noen stykke programvare som virkelig 942 00:41:56,140 --> 00:42:01,620 var en feil, hvis korreksjon bør ikke innvirkning på deg på alle-- det ikke endrer 943 00:42:01,620 --> 00:42:03,940 programmets oppførsel, det bare løser noe 944 00:42:03,940 --> 00:42:06,580 som ikke virket properly-- du ville vanligvis 945 00:42:06,580 --> 00:42:08,890 oppdaterer z-verdien der. 946 00:42:08,890 --> 00:42:12,900 Hvilket betyr noen som Kareem kan bare gå inn i hans nettside, 947 00:42:12,900 --> 00:42:19,470 blindt endrer versjonsnummeret fra 1.0.0 til 1.0.1, lagre det, sende den, 948 00:42:19,470 --> 00:42:21,880 og i teorien, ikke trenger å redd for at han bare brutt 949 00:42:21,880 --> 00:42:24,430 sin nettside på grunn av noen mangel på funksjonalitet, 950 00:42:24,430 --> 00:42:25,870 fordi noe annet blakk. 951 00:42:25,870 --> 00:42:28,740 >> I mellomtiden, hvis jeg programmerer eller noen selskap 952 00:42:28,740 --> 00:42:35,500 var å gjøre noen betydelige endring som legger til funksjonalitet, 953 00:42:35,500 --> 00:42:40,320 Jeg kan oppdatere oss til 1.1.0 fordi jeg er faktisk 954 00:42:40,320 --> 00:42:42,200 endre oppførselen til biblioteket. 955 00:42:42,200 --> 00:42:44,470 Jeg gir deg kanskje mer funksjonalitet. 956 00:42:44,470 --> 00:42:48,490 Til slutt, hvis jeg skulle faktisk fundamentalt endre programvaren så 957 00:42:48,490 --> 00:42:54,380 mye at det vil bryte mange brukere nettsteder eller applikasjoner, 958 00:42:54,380 --> 00:42:59,550 da er jeg nødt til, i denne modellen, til oppgradere hovedversjonsnummeret også, 959 00:42:59,550 --> 00:43:01,059 som er et brudd forandring. 960 00:43:01,059 --> 00:43:03,725 Med andre ord, kan jeg ha avviklet støtte for de dråpe 961 00:43:03,725 --> 00:43:04,350 gardinmenyen. 962 00:43:04,350 --> 00:43:07,790 Så hvis du oppgraderer til 2.0, halv ditt nettsted kan slutte å fungere. 963 00:43:07,790 --> 00:43:10,950 Og dette er liksom et signal til samfunnet om hva som er 964 00:43:10,950 --> 00:43:13,223 involvert i å gjøre en oppgradering. 965 00:43:13,223 --> 00:43:16,710 966 00:43:16,710 --> 00:43:18,020 En god mulighet til å øke. 967 00:43:18,020 --> 00:43:18,718 Andre spørsmål? 968 00:43:18,718 --> 00:43:21,761 969 00:43:21,761 --> 00:43:22,260 Greit. 970 00:43:22,260 --> 00:43:26,945 Vel la oss ta en titt på en endelig Temaet i dette segmentet av programmering 971 00:43:26,945 --> 00:43:30,640 av teknologi stabler, nemlig relatert til mobil. 972 00:43:30,640 --> 00:43:36,232 >> Så i en verden av mobiltelefoner i dag du Opptaktene og iPads, og overflater, 973 00:43:36,232 --> 00:43:37,940 og alle slike av devices-- du har 974 00:43:37,940 --> 00:43:40,950 en rekke valg når det gjelder implementering 975 00:43:40,950 --> 00:43:47,270 et program eller en nettside for kundens mobile enheter. 976 00:43:47,270 --> 00:43:51,570 Så bare å oppgi åpenbare, kanskje i disse dager, 977 00:43:51,570 --> 00:43:54,960 hva er plattformer til utvikle for i mobilen? 978 00:43:54,960 --> 00:43:59,650 Hvilke enheter kan det være lurt å støtte med din app eller nettside? 979 00:43:59,650 --> 00:44:00,317 >> PUBLIKUM: Apple. 980 00:44:00,317 --> 00:44:01,108 DAVID J. MALAN: OK. 981 00:44:01,108 --> 00:44:01,820 Så Apple-enheter. 982 00:44:01,820 --> 00:44:06,740 Så det betyr at iPhone, og at betyr iPad, og kanskje til og med iPod. 983 00:44:06,740 --> 00:44:07,627 Hva annet? 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 >> PUBLIKUM: Android. 987 00:44:11,970 --> 00:44:13,111 >> DAVID J. MALAN: Android. 988 00:44:13,111 --> 00:44:13,610 OK. 989 00:44:13,610 --> 00:44:17,335 Så Android-telefoner, Android tabletter, Android Market 990 00:44:17,335 --> 00:44:21,240 er enda Messier because-- og selv Apple blir rotete. 991 00:44:21,240 --> 00:44:23,960 Mens det var en gang iPhone var en viss størrelse, 992 00:44:23,960 --> 00:44:26,560 og iPad var en viss størrelse, og iPod var en viss størrelse, nå 993 00:44:26,560 --> 00:44:33,420 vi har iPad Mini, og den tynne seg, og iPhone 6 Plus og 6. 994 00:44:33,420 --> 00:44:34,407 Det blir et rot. 995 00:44:34,407 --> 00:44:35,740 Det blir Android verden. 996 00:44:35,740 --> 00:44:39,030 >> Og jeg sier dette med slags rullende mine øyne fordi fra en utviklers 997 00:44:39,030 --> 00:44:41,680 perspektiv, er det en smerte i nakke når 998 00:44:41,680 --> 00:44:45,686 du trenger ikke Steve Jobs ' visjon om absolutt kontroll 999 00:44:45,686 --> 00:44:47,060 i løpet av alle disse spesifikasjonene. 1000 00:44:47,060 --> 00:44:49,726 Apple gjør likevel fordi de er de som bygger maskinvaren. 1001 00:44:49,726 --> 00:44:52,690 Men det er en fin ting, hvis Jeg er en programvareutvikler, 1002 00:44:52,690 --> 00:44:54,520 å bare vite at min iPhone er alltid kommer 1003 00:44:54,520 --> 00:44:56,850 å være så stor fordi det betyr at jeg alltid vet 1004 00:44:56,850 --> 00:44:58,847 hvor mye skjermen eiendomsmegling jeg har. 1005 00:44:58,847 --> 00:45:01,180 Så hvis jeg ønsker å sette et ikon i øvre venstre hjørne, 1006 00:45:01,180 --> 00:45:04,530 det kommer til å være i nøyaktig samme plassere på hver enkelt kundes enhet. 1007 00:45:04,530 --> 00:45:07,140 >> Men i en verden av iPhone 6s og iPhone 6 Plusser 1008 00:45:07,140 --> 00:45:10,570 og i verden av Android telefoner, det er over hele kartet. 1009 00:45:10,570 --> 00:45:13,580 Og så det gjør det vanskeligere å programmere ting, spesielt brukergrensesnitt, 1010 00:45:13,580 --> 00:45:18,270 fordi nå må du begynne å arrangere brukergrensesnittene relativt, ikke 1011 00:45:18,270 --> 00:45:19,730 absolutt. 1012 00:45:19,730 --> 00:45:23,524 Og det samme har vært tilfelle på nettlesere, og stasjonære og bærbare datamaskiner for år 1013 00:45:23,524 --> 00:45:25,690 fordi du, selvfølgelig, har ulike skjermstørrelser. 1014 00:45:25,690 --> 00:45:26,189 >> Hva annet? 1015 00:45:26,189 --> 00:45:30,170 Du har kanskje flater, som fra Microsoft. 1016 00:45:30,170 --> 00:45:31,270 Du kan Opptaktene 1017 00:45:31,270 --> 00:45:32,270 PUBLIKUM: Windows-telefon. 1018 00:45:32,270 --> 00:45:32,816 DAVID J. MALAN: Hva er det? 1019 00:45:32,816 --> 00:45:33,570 PUBLIKUM: Windows-telefon. 1020 00:45:33,570 --> 00:45:34,403 DAVID J. MALAN: Ja. 1021 00:45:34,403 --> 00:45:37,570 Slik at Windows-telefoner kan fortsatt bli funnet. 1022 00:45:37,570 --> 00:45:41,840 Slags form for Blackberrys, men de fortsette å prøve. 1023 00:45:41,840 --> 00:45:43,900 Og så bunter av andre enheter. 1024 00:45:43,900 --> 00:45:48,020 Så for det meste, la oss si at disse er de 1025 00:45:48,020 --> 00:45:49,520 å bry seg om i øyeblikket. 1026 00:45:49,520 --> 00:45:51,890 Gjerne Apple ting, absolutt Android ting, 1027 00:45:51,890 --> 00:45:55,640 og blant Windows, som overflate tabletter synes å være fange på ganske godt. 1028 00:45:55,640 --> 00:45:58,030 >> Og så blant disse enhetene, Hvis du ønsker å rulle ut, 1029 00:45:58,030 --> 00:46:02,677 la oss si, en mobil tilstedeværelse for din selskap, hva slags design beslutninger 1030 00:46:02,677 --> 00:46:03,510 trenger du å gjøre? 1031 00:46:03,510 --> 00:46:06,350 Vel, vi allerede har sagt i Apple verden, 1032 00:46:06,350 --> 00:46:08,790 det er minst to språk som vanligvis er anvendt. 1033 00:46:08,790 --> 00:46:10,260 En het hva? 1034 00:46:10,260 --> 00:46:11,260 >> PUBLIKUM: Objective-C. 1035 00:46:11,260 --> 00:46:11,560 >> DAVID J. MALAN: Ja. 1036 00:46:11,560 --> 00:46:13,600 Så Objective-C, som er den eldste. 1037 00:46:13,600 --> 00:46:17,720 Det er også det språket som mange Mac programmer er fortsatt skrevet i. 1038 00:46:17,720 --> 00:46:18,964 Da den andre nyere en var? 1039 00:46:18,964 --> 00:46:19,630 PUBLIKUM: Swift. 1040 00:46:19,630 --> 00:46:20,590 DAVID J. MALAN: Swift. 1041 00:46:20,590 --> 00:46:23,900 Og de er den type to å vite for å imponere folk. 1042 00:46:23,900 --> 00:46:28,238 Så i Android verden, hvilket språk gjør Android bruker? 1043 00:46:28,238 --> 00:46:30,618 >> PUBLIKUM: C #? 1044 00:46:30,618 --> 00:46:31,570 >> PUBLIKUM: Java. 1045 00:46:31,570 --> 00:46:34,230 >> DAVID J. MALAN: Java er språket "du jour." 1046 00:46:34,230 --> 00:46:37,950 I Windows verden, sikker, vi vil si C # i så fall. 1047 00:46:37,950 --> 00:46:40,590 Så allerede dette er slags irriterende, fordi det er 1048 00:46:40,590 --> 00:46:43,070 takeaway for en virksomhet eieren eller noen som bare 1049 00:46:43,070 --> 00:46:44,570 ønsker å rulle ut en mobil nærvær? 1050 00:46:44,570 --> 00:46:45,220 Som, for faen? 1051 00:46:45,220 --> 00:46:48,590 Som, hvis jeg ønsker å støtte en ganske bred brukerbase, 1052 00:46:48,590 --> 00:46:52,180 Jeg har til å skrive, det ville virke, tre separate programmer. 1053 00:46:52,180 --> 00:46:55,630 En i ett av disse språkene, en i Java, en i C #. 1054 00:46:55,630 --> 00:46:59,620 Og selv om jeg vil ha funksjonaliteten å være identiske, spiller det ingen rolle. 1055 00:46:59,620 --> 00:47:02,940 Jeg trenger fortsatt å bruke ulike språk fordi Apple og Microsoft, 1056 00:47:02,940 --> 00:47:06,084 og Google all støtte forskjellige miljøer. 1057 00:47:06,084 --> 00:47:07,750 Og dette har vært en utfordring i mange år. 1058 00:47:07,750 --> 00:47:10,100 Tilbake i dag, da folk pleide å kjøpe programvare 1059 00:47:10,100 --> 00:47:12,230 på en databutikk i krympe pakket esker, 1060 00:47:12,230 --> 00:47:14,470 ville du enten nødt til å rekkevidde for Mac hylle, 1061 00:47:14,470 --> 00:47:19,040 eller for-- kanskje dette svært liten Mac shelf-- eller større Windows sokkelen 1062 00:47:19,040 --> 00:47:19,980 og kjøpe noen programvare. 1063 00:47:19,980 --> 00:47:22,813 Og veldig ofte, det var ikke engang noe for deg på Mac sokkel. 1064 00:47:22,813 --> 00:47:23,430 Hvorfor? 1065 00:47:23,430 --> 00:47:26,900 Vel, selskapene besluttet om 90% av verden, 95% av verdens 1066 00:47:26,900 --> 00:47:31,180 har PC-er, hvorfor bry selv implementere ting på Mac OS? 1067 00:47:31,180 --> 00:47:34,370 >> Som en aside-- totalt digression-- hvorfor er det 1068 00:47:34,370 --> 00:47:40,960 at Mac virker så ugjennomtrengelig for virus, og ormer og sikkerhetstrusler? 1069 00:47:40,960 --> 00:47:44,040 Er Apple bedre på dette? 1070 00:47:44,040 --> 00:47:45,934 Flinkere til å holde datamaskiner sikre? 1071 00:47:45,934 --> 00:47:47,750 >> PUBLIKUM: Mindre publikum? 1072 00:47:47,750 --> 00:47:50,720 >> DAVID J. MALAN: Det er sannsynligvis større bit av den. 1073 00:47:50,720 --> 00:47:54,740 Så mange brukere av Mac-maskiner har lenge hevdet, oh, bruker en Mac, 1074 00:47:54,740 --> 00:47:57,630 vil du være immun mot virus, og ormer og alle disse tingene 1075 00:47:57,630 --> 00:47:59,180 som har lenge plaget PCer. 1076 00:47:59,180 --> 00:48:02,050 Det kan være fordi Apple har bedre programmerere 1077 00:48:02,050 --> 00:48:05,250 og de skriver bedre programvare, eller operativsystemet ble bedre utformet. 1078 00:48:05,250 --> 00:48:06,870 Kanskje, men sannsynligvis ikke. 1079 00:48:06,870 --> 00:48:10,840 >> Det er nok at når du er en 12-åring, eller en 30 noe 1080 00:48:10,840 --> 00:48:13,510 liksom sitte hjemme å skrive skadelig programvare til å ta over 1081 00:48:13,510 --> 00:48:17,480 verden, du kommer til å gå etter den mye større målgruppe. 1082 00:48:17,480 --> 00:48:20,590 95% av verden som kanskje kjøre Windows eller noen 1083 00:48:20,590 --> 00:48:21,740 varianter av disse. 1084 00:48:21,740 --> 00:48:23,800 Så det er litt på begge sider. 1085 00:48:23,800 --> 00:48:25,710 Men deres kreditt, Apple, så vidt jeg vet, 1086 00:48:25,710 --> 00:48:28,270 har egentlig ikke spioner seg selv som å være sikrere, 1087 00:48:28,270 --> 00:48:32,110 siden du bare invitere drama om du gjøre som hevder, vil jeg tro. 1088 00:48:32,110 --> 00:48:32,610 >> Greit. 1089 00:48:32,610 --> 00:48:36,490 Uten å bli for langt ned det, hvordan løser vi dette? 1090 00:48:36,490 --> 00:48:39,670 Har du å kjøpe eller har du å betale tre forskjellige mennesker til å utvikle 1091 00:48:39,670 --> 00:48:41,540 programmene dine? 1092 00:48:41,540 --> 00:48:42,870 Har du plukker en over den andre? 1093 00:48:42,870 --> 00:48:45,460 Hva skal lede din tenker her tror du? 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 Nope. 1098 00:48:51,500 --> 00:48:54,190 Noen andre. 1099 00:48:54,190 --> 00:48:56,885 >> PUBLIKUM: Bare kom med maskinvaren. 1100 00:48:56,885 --> 00:48:58,510 DAVID J. MALAN: Kom med maskinvaren? 1101 00:48:58,510 --> 00:48:59,533 Hva mener du? 1102 00:48:59,533 --> 00:49:01,282 >> PUBLIKUM: For miljø. [Hørbar] 1103 00:49:01,282 --> 00:49:04,867 1104 00:49:04,867 --> 00:49:06,200 DAVID J. MALAN: Så det er sant. 1105 00:49:06,200 --> 00:49:09,280 Men kundene, i mellomtiden, kan ha iPhones, 1106 00:49:09,280 --> 00:49:13,530 de kan ha Android-telefoner, de kan ha tabletter laget av Microsoft. 1107 00:49:13,530 --> 00:49:19,040 Så hvordan har du en mobil strategi for alle disse forskjellige brukere? 1108 00:49:19,040 --> 00:49:23,320 Det synes som om det koster, la oss si $ 1000 for å gjøre en iPhone 1109 00:49:23,320 --> 00:49:25,940 søknad, det kommer til å koste deg $ 2000 for å gjøre 1110 00:49:25,940 --> 00:49:29,250 en iPhone-applikasjon og en Android applikasjon, eller $ 3000 1111 00:49:29,250 --> 00:49:31,407 å også støtte Windows-enheter også. 1112 00:49:31,407 --> 00:49:33,990 Det er nok litt av en statement, og det kan ikke engang 1113 00:49:33,990 --> 00:49:36,050 være en lineær sammenheng sånn. 1114 00:49:36,050 --> 00:49:41,065 >> PUBLIKUM: Hvis du vil ha en app eller ikke, kan du ha responsive nettside. 1115 00:49:41,065 --> 00:49:41,940 DAVID J. MALAN: Good. 1116 00:49:41,940 --> 00:49:46,255 PUBLIKUM: Eller du kan ha en innfødt app. 1117 00:49:46,255 --> 00:49:47,130 DAVID J. MALAN: Ja. 1118 00:49:47,130 --> 00:49:50,260 Så i all denne sammenheng her, Vi har snakket om hva 1119 00:49:50,260 --> 00:49:53,190 folk vil kalle native applikasjoner. 1120 00:49:53,190 --> 00:49:58,040 Det er programmer som er skrevet i morsmål for enheten. 1121 00:49:58,040 --> 00:50:02,190 Så innfødte Objective-C eller Swift kode, eller i Java, eller i C #. 1122 00:50:02,190 --> 00:50:06,900 Hvilket betyr at når du laster ned, la oss sier snapchat, et populært program, 1123 00:50:06,900 --> 00:50:10,060 eller når du laster ned Facebook for en telefon, 1124 00:50:10,060 --> 00:50:13,270 du laster ned enten versjon skrevet for iPhone, 1125 00:50:13,270 --> 00:50:16,830 eller skrevet for din Android-telefon, eller skrevet for din overflate. 1126 00:50:16,830 --> 00:50:18,500 >> Men det er et alternativ. 1127 00:50:18,500 --> 00:50:26,020 Som Olivier ble berget, du kan faktisk bruke HTML 5 1128 00:50:26,020 --> 00:50:33,440 i stedet, ved hjelp av det som kalles en web program, der du rett og slett 1129 00:50:33,440 --> 00:50:35,940 implementere mobil nærvær og noen funksjonalitet. 1130 00:50:35,940 --> 00:50:37,030 Hva mener jeg med mobil nærvær? 1131 00:50:37,030 --> 00:50:39,800 Som ditt nettsted som har din kontaktinformasjon, en liste over alle 1132 00:50:39,800 --> 00:50:43,049 dine produkter, kanskje det har et kjøpesenter cart, kanskje du selge ting gjennom den. 1133 00:50:43,049 --> 00:50:46,850 Uansett søknaden din er, du implementere det, ikke i Objective-C, 1134 00:50:46,850 --> 00:50:51,200 eller Swift, eller Java eller C #, men i HTML 5, som var språket vi sett 1135 00:50:51,200 --> 00:50:55,470 på i går, med Javascript og CSS. 1136 00:50:55,470 --> 00:50:58,700 >> Og hva er fint om de som tre er at å kjøre dem, 1137 00:50:58,700 --> 00:51:01,981 du trenger bare hva stykke programvare? 1138 00:51:01,981 --> 00:51:02,980 PUBLIKUM: En nettleser. 1139 00:51:02,980 --> 00:51:04,229 DAVID J. MALAN: En nettleser. 1140 00:51:04,229 --> 00:51:07,610 Og det beste jeg vet, alle disse enheter leveres med nettlesere, 1141 00:51:07,610 --> 00:51:10,480 slik at brukeren ikke har nødt til å installere noe spesielt. 1142 00:51:10,480 --> 00:51:12,920 Så du kan bare fortelle din publikum, dine kunder, 1143 00:51:12,920 --> 00:51:16,590 gå til acme.com i nettleser og du vil bare 1144 00:51:16,590 --> 00:51:19,730 har en web-basert opplevelse som fortsatt fyller skjermen, 1145 00:51:19,730 --> 00:51:25,100 men du trenger ikke å bekymre deg for alle disse kostnadene, og alle av denne kompleksiteten. 1146 00:51:25,100 --> 00:51:28,600 Men sikkert er det kommer å være en fange her, ikke sant? 1147 00:51:28,600 --> 00:51:31,740 Spesielt hvis jeg påpeke at et par år siden, 1148 00:51:31,740 --> 00:51:35,700 den aller første versjonen av Facebooks mobilapplikasjon 1149 00:51:35,700 --> 00:51:38,810 var hovedsakelig en HTML 5 søknad. 1150 00:51:38,810 --> 00:51:42,490 Og de har, mer nylig, reimplemented det 1151 00:51:42,490 --> 00:51:44,700 i sine andre anvendelser. 1152 00:51:44,700 --> 00:51:46,990 >> Så hvorfor skulle du ikke umiddelbart vil si, 1153 00:51:46,990 --> 00:51:49,190 vel, selvsagt vi kommer til å gjøre dette? 1154 00:51:49,190 --> 00:51:51,560 Hva kan de skjulte kostnadene bli? 1155 00:51:51,560 --> 00:51:52,477 >> PUBLIKUM: Ytelse. 1156 00:51:52,477 --> 00:51:53,643 DAVID J. MALAN: Ytelse? 1157 00:51:53,643 --> 00:51:54,567 Hva mener du? 1158 00:51:54,567 --> 00:52:01,040 >> PUBLIKUM: De innfødte app har mer ytelse. 1159 00:52:01,040 --> 00:52:03,850 >> DAVID J. MALAN: Så det er sant, for et par grunner. 1160 00:52:03,850 --> 00:52:05,270 Vi kan overforenkle svaret. 1161 00:52:05,270 --> 00:52:08,061 Og husker vår diskusjon av tolket versus kompilerte språk. 1162 00:52:08,061 --> 00:52:12,030 Dette er HTML 5 og med det, bare for å være klart, JavaScript-- ofte skrevet 1163 00:52:12,030 --> 00:52:15,880 JS-- og CSS er alle tolket språk, 1164 00:52:15,880 --> 00:52:21,020 selv om bare Javascript er et programmeringsspråk. 1165 00:52:21,020 --> 00:52:25,820 >> Og så sammenlignet med disse, der noen av disse utarbeides, i hvert fall disse three-- 1166 00:52:25,820 --> 00:52:29,990 Objective-C, Java og C # - disse, i teorien skal bare være raskere. 1167 00:52:29,990 --> 00:52:31,670 Men det er en annen virkelighet for-- 1168 00:52:31,670 --> 00:52:32,440 >> PUBLIKUM: Funksjonalitet? 1169 00:52:32,440 --> 00:52:32,830 >> DAVID J. MALAN: Hva er det? 1170 00:52:32,830 --> 00:52:34,060 >> PUBLIKUM: Funksjonalitet. 1171 00:52:34,060 --> 00:52:34,570 >> DAVID J. MALAN: Funksjonalitet? 1172 00:52:34,570 --> 00:52:35,070 Hvordan det? 1173 00:52:35,070 --> 00:52:37,305 PUBLIKUM: Bruk kameraet av telefonen eller noe. 1174 00:52:37,305 --> 00:52:41,471 Du kan bruke de med nettleseren. 1175 00:52:41,471 --> 00:52:42,470 DAVID J. MALAN: Nettopp. 1176 00:52:42,470 --> 00:52:43,011 De er sec-- 1177 00:52:43,011 --> 00:52:45,034 PUBLIKUM: [uhørlig] 1178 00:52:45,034 --> 00:52:46,700 DAVID J. MALAN: Det er en annen god en. 1179 00:52:46,700 --> 00:52:49,230 Det er funksjoner som kommer med mobiltelefoner i dag 1180 00:52:49,230 --> 00:52:53,840 som ikke er det, av design, for sikkerhet årsaker, tilgjengelig for nettlesere. 1181 00:52:53,840 --> 00:52:56,410 Fordi det ville være slags en skummel ting hvis bare når 1182 00:52:56,410 --> 00:53:00,710 du besøker google.com, eller cnn.com, eller noen website.com, 1183 00:53:00,710 --> 00:53:04,490 at denne nettsiden har makt til å snu på kameraet, ta et bilde av deg, 1184 00:53:04,490 --> 00:53:06,010 og deretter bruke den. 1185 00:53:06,010 --> 00:53:09,280 Men du ville ikke ha en tilfeldig nettside at du besøker for første gang 1186 00:53:09,280 --> 00:53:10,690 å ha denne muligheten. 1187 00:53:10,690 --> 00:53:13,460 >> Og så hva telefonen produsenter vanligvis gjør 1188 00:53:13,460 --> 00:53:17,230 er de bare nekte adgang til den slags informasjon 1189 00:53:17,230 --> 00:53:20,650 til en nettleser, som betyr at du kan ikke gjennomføre kameraet. 1190 00:53:20,650 --> 00:53:24,180 Du kan ikke gjennomføre push-varslinger, pipene som du får på skjermen 1191 00:53:24,180 --> 00:53:26,120 med korte meldinger. 1192 00:53:26,120 --> 00:53:31,350 Og faktisk er enda GPS eneste form av typen tilgjengelig for nettlesere. 1193 00:53:31,350 --> 00:53:34,140 Hvis du noen gang, på en bærbar PC eller på en mobil enhet, 1194 00:53:34,140 --> 00:53:38,770 trakk opp noe som kanskje CNN.com, men også lokale nyheter stasjoner 1195 00:53:38,770 --> 00:53:43,890 tendens til å gjøre dette, blir du bedt ofte med en message-- foxnews.com 1196 00:53:43,890 --> 00:53:45,170 ønsker å vite hvor du befinner deg. 1197 00:53:45,170 --> 00:53:46,610 Godkjenne eller avslå. 1198 00:53:46,610 --> 00:53:52,070 >> Vel, er nettleseren prøver å få tilgang GPS-informasjon fra telefonen. 1199 00:53:52,070 --> 00:53:54,740 Men heldigvis Microsoft, og Apple og Google 1200 00:53:54,740 --> 00:53:57,330 har bestemt at føles som det er en nyttig situasjon, 1201 00:53:57,330 --> 00:53:59,461 vi ønsker Google Maps og andre verktøy for å arbeide, 1202 00:53:59,461 --> 00:54:02,710 men vi ønsker ikke å krype folk ut ved å bare slik at hvilken som helst nettside til å gjøre dette. 1203 00:54:02,710 --> 00:54:05,934 Så la oss liksom møtes halvveis og spørre brukeren. 1204 00:54:05,934 --> 00:54:08,850 Men det er ikke nødvendigvis tilfelle med all maskinvare, for eksempel kameraet 1205 00:54:08,850 --> 00:54:10,680 og med push underretninger og lignende, 1206 00:54:10,680 --> 00:54:13,650 så du må kanskje ofre visse funksjoner. 1207 00:54:13,650 --> 00:54:15,100 Men ytelsen også. 1208 00:54:15,100 --> 00:54:18,020 Det blir mindre merkbar i dag, kanskje 1209 00:54:18,020 --> 00:54:22,400 som LTE fanger på og raskere Internett-hastigheter på telefoner, 1210 00:54:22,400 --> 00:54:24,110 men du kan slags føle forskjellen. 1211 00:54:24,110 --> 00:54:28,190 Som en web-basert applikasjon bare føles tregere, typisk, 1212 00:54:28,190 --> 00:54:31,100 enn en opprinnelige programmet, dels fordi en web-basert applikasjon 1213 00:54:31,100 --> 00:54:32,680 ved definisjon er på internett. 1214 00:54:32,680 --> 00:54:35,610 Det snakker til servere på nettet. 1215 00:54:35,610 --> 00:54:39,590 Og hvis nettverkstilkoblingen er treg, selv rulle kan være treg. 1216 00:54:39,590 --> 00:54:43,710 >> Men en opprinnelige programmet, må du allerede forhånds downloaded-- sannsynligvis 1217 00:54:43,710 --> 00:54:45,680 når du var hjemme fra App Store, 1218 00:54:45,680 --> 00:54:47,900 eller du minst pre-lastet ned den i sin helhet 1219 00:54:47,900 --> 00:54:49,640 tidligere, uansett tilkobling speed-- 1220 00:54:49,640 --> 00:54:52,530 og så nå har du all biter som du vanligvis trenger. 1221 00:54:52,530 --> 00:54:55,090 Bortsett fra kanskje noen data som kommer fra en server. 1222 00:54:55,090 --> 00:54:57,130 >> Så disse er avveininger her. 1223 00:54:57,130 --> 00:54:59,980 Det er en slags mellom kompromiss, faktisk. 1224 00:54:59,980 --> 00:55:00,907 Og jeg tror you-- 1225 00:55:00,907 --> 00:55:02,895 >> PUBLIKUM: Bruk data offline. 1226 00:55:02,895 --> 00:55:06,355 I de innfødte apps, kan du [uhørbart] 1227 00:55:06,355 --> 00:55:07,480 DAVID J. MALAN: Absolutt. 1228 00:55:07,480 --> 00:55:09,730 Så det er den vanlige utgaven, som er veldig irriterende 1229 00:55:09,730 --> 00:55:13,120 hvis du ikke kan spille noen spill eller bruk noen programvare bare fordi du er 1230 00:55:13,120 --> 00:55:15,110 i en kjeller et sted eller i en heis. 1231 00:55:15,110 --> 00:55:18,700 En opprinnelige programmet er spenstig med høyere sannsynlighet for det, 1232 00:55:18,700 --> 00:55:20,990 forutsatt at du har all dataene du trenger lokalt. 1233 00:55:20,990 --> 00:55:22,900 >> Så det er et tredje alternativ her. 1234 00:55:22,900 --> 00:55:30,270 Og la oss trekke spekteret som innfødt app her og web app her. 1235 00:55:30,270 --> 00:55:32,460 Og hva er i midten er noe called-- 1236 00:55:32,460 --> 00:55:35,410 og jeg tror du kan ha brukte ordet før, kanskje? 1237 00:55:35,410 --> 00:55:37,170 Hybrid-programmet. 1238 00:55:37,170 --> 00:55:40,980 Og som ordet tilsier, det er noe i midten. 1239 00:55:40,980 --> 00:55:46,230 Det er litt av en web-applikasjon og det er litt av en opprinnelige programmet. 1240 00:55:46,230 --> 00:55:47,690 >> Og hva betyr dette? 1241 00:55:47,690 --> 00:55:51,750 Det viser seg at det er frameworks-- å bruke et begrep fra earlier-- programvare 1242 00:55:51,750 --> 00:55:55,860 som andre har skrevet for hver og en av disse plattformene. 1243 00:55:55,860 --> 00:55:57,500 Disse og ennå andre enheter. 1244 00:55:57,500 --> 00:56:02,390 Faktisk, la meg gå til PhoneGap, som er et slikt rammeverk som jeg 1245 00:56:02,390 --> 00:56:04,520 tror Adobe nå eier. 1246 00:56:04,520 --> 00:56:07,830 La meg gå til Komme i gang. 1247 00:56:07,830 --> 00:56:09,430 La oss se. 1248 00:56:09,430 --> 00:56:12,450 Se om jeg kan se en liste over verktøy. 1249 00:56:12,450 --> 00:56:13,150 Maskinvare. 1250 00:56:13,150 --> 00:56:15,845 Starter. 1251 00:56:15,845 --> 00:56:17,570 PhoneGap maskinvare. 1252 00:56:17,570 --> 00:56:18,672 >> La oss se. 1253 00:56:18,672 --> 00:56:23,459 PhoneGap hardware tilgang. 1254 00:56:23,459 --> 00:56:26,125 La meg se om vi kan finne en liten kartlegge at de pleide å ha. 1255 00:56:26,125 --> 00:56:29,170 1256 00:56:29,170 --> 00:56:31,640 Dette er på et annet nettsted. 1257 00:56:31,640 --> 00:56:32,525 Er dette nyttig? 1258 00:56:32,525 --> 00:56:33,030 Nei. 1259 00:56:33,030 --> 00:56:36,330 Det er skal kaste bort vår tid der. 1260 00:56:36,330 --> 00:56:40,185 PhoneGap maskinvare. 1261 00:56:40,185 --> 00:56:40,685 Enheter. 1262 00:56:40,685 --> 00:56:45,190 1263 00:56:45,190 --> 00:56:48,030 Device API. 1264 00:56:48,030 --> 00:56:49,270 Nope, de har flyttet den. 1265 00:56:49,270 --> 00:56:50,070 >> PhoneGap. 1266 00:56:50,070 --> 00:56:54,964 La oss gå en siste titt på denne og se om jeg kan vise deg. 1267 00:56:54,964 --> 00:56:55,630 Starter. 1268 00:56:55,630 --> 00:56:58,160 1269 00:56:58,160 --> 00:56:59,020 Installer PhoneGap. 1270 00:56:59,020 --> 00:57:02,310 1271 00:57:02,310 --> 00:57:03,270 Installer appen. 1272 00:57:03,270 --> 00:57:04,320 Kom igjen. 1273 00:57:04,320 --> 00:57:07,220 1274 00:57:07,220 --> 00:57:08,580 De har omorganisert alt. 1275 00:57:08,580 --> 00:57:09,750 Greit. 1276 00:57:09,750 --> 00:57:11,370 Å, ja vel. 1277 00:57:11,370 --> 00:57:12,550 Vel, her vi går. 1278 00:57:12,550 --> 00:57:16,130 Dette er ikke alle som opplysende, men dette er hva jeg var litt ute etter. 1279 00:57:16,130 --> 00:57:20,940 >> Så PhoneGap er et rammeverk som du kan laste ned gratis som gir deg 1280 00:57:20,940 --> 00:57:22,750 noen starter kode, i hovedsak. 1281 00:57:22,750 --> 00:57:26,600 Så noen kode som de har skrevet som ikke gjør mye av noe. 1282 00:57:26,600 --> 00:57:29,610 Men hva det gir deg hovedsak er tilsvar 1283 00:57:29,610 --> 00:57:34,910 av et program som bare setter en stor rektangel på brukerens skjerm. 1284 00:57:34,910 --> 00:57:38,040 Det setter ikke en URL bar, som en nettleser, setter ikke en adresse. 1285 00:57:38,040 --> 00:57:39,650 Det setter bare en stor rektangel. 1286 00:57:39,650 --> 00:57:43,230 Og du konfigurere denne store rektangel, under panseret, 1287 00:57:43,230 --> 00:57:50,780 å faktisk gå til acme.com, eller kanskje m.acme.com, for mobile.acme.com, 1288 00:57:50,780 --> 00:57:52,910 men brukeren ikke vet de er på denne adressen. 1289 00:57:52,910 --> 00:57:55,520 Alt de ser er Innholdet på nettsiden. 1290 00:57:55,520 --> 00:57:59,822 >> Men hva er fint om dette vesenet en hybrid app er at det PhoneGap 1291 00:57:59,822 --> 00:58:03,030 og andre selskaper gir deg er de gir deg en liten bit av koden 1292 00:58:03,030 --> 00:58:05,760 i Objective-C eller Swift, eller en liten bit av koden i Java, 1293 00:58:05,760 --> 00:58:08,320 eller en liten bit av koden i C #, og i hovedsak, 1294 00:58:08,320 --> 00:58:12,990 alt du trenger å gi er minimal den adressen til web-basert applikasjon. 1295 00:58:12,990 --> 00:58:15,750 Og så du pakke dette alle sammen, og du 1296 00:58:15,750 --> 00:58:20,670 har det enten få tilgang til nettstedet via internett, 1297 00:58:20,670 --> 00:58:24,060 eller du selv cache en lokal kopiere inne i søknaden, 1298 00:58:24,060 --> 00:58:28,690 og deretter lagrer din søknad i iPhone-format, Android-telefon 1299 00:58:28,690 --> 00:58:32,030 format, overflate format, eller hvilket som helst antall av andre enheter. 1300 00:58:32,030 --> 00:58:34,960 >> Du laster opp hver av disse versjonene til Google Play-butikken, 1301 00:58:34,960 --> 00:58:37,690 til App Store, til Windows Store, og så videre. 1302 00:58:37,690 --> 00:58:41,570 Og nå kan du ha alle dine publikum laste ned virkelig en innfødt app, 1303 00:58:41,570 --> 00:58:44,250 riktignok det meste av koden var skrevet av noen andre, 1304 00:58:44,250 --> 00:58:49,090 men innholdet i den innfødte app alle kommer fra, typisk, ditt eget nettsted. 1305 00:58:49,090 --> 00:58:53,950 Så du fortsetter å skrive ditt nettsted i HTML, Javascript og CSS. 1306 00:58:53,950 --> 00:58:56,400 >> Så hvorfor dimme disse linjene? 1307 00:58:56,400 --> 00:59:00,240 Hvorfor har en hybrid applikasjon det er slags innfødte, men også 1308 00:59:00,240 --> 00:59:02,569 form for web basert? 1309 00:59:02,569 --> 00:59:04,610 Hva er hele poenget med legge denne kompleksiteten? 1310 00:59:04,610 --> 00:59:07,180 Jeg mener, selv fortsatt, bare fra skotter gjennom denne siden, 1311 00:59:07,180 --> 00:59:11,790 Komme i gang føles som det har en hel rekke skritt for meg 1312 00:59:11,790 --> 00:59:13,514 å gjøre før jeg can-- 1313 00:59:13,514 --> 00:59:14,430 PUBLIKUM: Gjenbruk? 1314 00:59:14,430 --> 00:59:14,960 DAVID J. MALAN: Gjenbruk? 1315 00:59:14,960 --> 00:59:15,618 Hva mener du? 1316 00:59:15,618 --> 00:59:16,826 >> PUBLIKUM: Av kildekoden. 1317 00:59:16,826 --> 00:59:19,438 Så den samme koden kjøres på alle de forskjellige plattformene. 1318 00:59:19,438 --> 00:59:20,313 DAVID J. MALAN: Ja. 1319 00:59:20,313 --> 00:59:21,188 PUBLIKUM: [uhørlig] 1320 00:59:21,188 --> 00:59:23,200 1321 00:59:23,200 --> 00:59:24,200 DAVID J. MALAN: Perfect. 1322 00:59:24,200 --> 00:59:26,930 Hvis tiden er stramt, og hvis du har ikke så mange developers-- 1323 00:59:26,930 --> 00:59:28,900 kanskje du har en utbygger og han eller hun sikkert 1324 00:59:28,900 --> 00:59:31,050 kjenner ikke alle disse environments-- absolutt ikke bra, 1325 00:59:31,050 --> 00:59:33,341 og absolutt ikke kan programmet i alle tre samtidig 1326 00:59:33,341 --> 00:59:35,970 og sende tre produkter i tiden tillatt for en, 1327 00:59:35,970 --> 00:59:40,360 du kan ha ham eller henne med å bygge alt i HTML og Javascript og CSS, 1328 00:59:40,360 --> 00:59:43,260 og deretter lære en bitte liten litt om native apps, 1329 00:59:43,260 --> 00:59:45,930 akkurat nok til å laste ned et rammeverk som dette, 1330 00:59:45,930 --> 00:59:48,750 deretter laste opp produktet til alle de ulike app-butikkene 1331 00:59:48,750 --> 00:59:51,700 slik at du nå har en opprinnelige programmet. 1332 00:59:51,700 --> 00:59:54,090 >> Så det virker som en vinn-vinn, men igjen, for å være klar, 1333 00:59:54,090 --> 00:59:56,540 hva er den potensielle kostnader eller feller? 1334 00:59:56,540 --> 01:00:00,292 1335 01:00:00,292 --> 01:00:01,209 >> PUBLIKUM: ytelse? 1336 01:00:01,209 --> 01:00:02,083 DAVID J. MALAN: Ja. 1337 01:00:02,083 --> 01:00:02,959 Opptreden. 1338 01:00:02,959 --> 01:00:04,250 Det er vanskelig å beskrive verbalt. 1339 01:00:04,250 --> 01:00:07,590 Så hvis du bare ta på tro en mobil applikasjon, 1340 01:00:07,590 --> 01:00:11,430 en webapplikasjon vil vanligvis utføre saktere. 1341 01:00:11,430 --> 01:00:16,500 Det kanskje ikke ser helt riktig, fordi i iPhone, og i Android-telefoner, 1342 01:00:16,500 --> 01:00:19,210 og Windows-enheter, er det alltid en slags standard utseende 1343 01:00:19,210 --> 01:00:21,780 og føler til alle knapper og menyer. 1344 01:00:21,780 --> 01:00:25,160 >> Og selskapene i nettet, kan du prøve å tilnærme disse estetikk 1345 01:00:25,160 --> 01:00:28,329 med biblioteker som Bootstrap, men user-- en slu user-- 1346 01:00:28,329 --> 01:00:30,620 kommer til å vite at noe er ikke helt rett her. 1347 01:00:30,620 --> 01:00:32,510 Og det er greit, kanskje det er ikke en stor avtale. 1348 01:00:32,510 --> 01:00:35,500 Men ytelsesproblemet absolutt er en stor avtale. 1349 01:00:35,500 --> 01:00:39,400 Native applikasjoner vil tendens til å bare være mye mer responsiv og derfor 1350 01:00:39,400 --> 01:00:39,946 bedre. 1351 01:00:39,946 --> 01:00:42,070 Og ja, hva da kan være det beste fra begge verdener? 1352 01:00:42,070 --> 01:00:44,584 Hvis du er spesielt en liten bedrift eller en liten gruppe, 1353 01:00:44,584 --> 01:00:47,000 du ikke har ressurser å utvikle en app i parallell 1354 01:00:47,000 --> 01:00:50,480 på alle tre plattformer, og ærlig, føles som det er en dårlig idé uansett 1355 01:00:50,480 --> 01:00:53,526 fordi hvis du ruller den ut og på alle tre samtidig skjønner, 1356 01:00:53,526 --> 01:00:56,400 vi burde ha lagt til noen funksjoner eller gjort noe annerledes, nå 1357 01:00:56,400 --> 01:00:59,530 du må fikse det i tre stedene, ikke én. 1358 01:00:59,530 --> 01:01:02,390 Hva er kanskje den optimale strategi her samlet, 1359 01:01:02,390 --> 01:01:04,130 hvis ressurser og tid er tett? 1360 01:01:04,130 --> 01:01:06,420 >> PUBLIKUM: Bare gjør det på iOS. 1361 01:01:06,420 --> 01:01:08,390 >> DAVID J. MALAN: Det er ikke urimelig. 1362 01:01:08,390 --> 01:01:10,670 iPhones, i hvert fall i USA, er super populære. 1363 01:01:10,670 --> 01:01:13,820 Android synes fortsatt å ha dominerende markedsandel globalt, samlet. 1364 01:01:13,820 --> 01:01:16,740 Så du er ikke nødvendigvis representative 1365 01:01:16,740 --> 01:01:19,210 av helheten av verden denne uken. 1366 01:01:19,210 --> 01:01:21,180 Men det er absolutt en avgjørelse. 1367 01:01:21,180 --> 01:01:23,620 Jeg mener, på campus her jeg tror noen fryktelig tall 1368 01:01:23,620 --> 01:01:26,600 eller prosentandel av studenter har iPhone og ikke Android-telefoner. 1369 01:01:26,600 --> 01:01:28,490 Men i utlandet, er det slags motsatt. 1370 01:01:28,490 --> 01:01:30,040 Så du bestemmer deg basert på publikum. 1371 01:01:30,040 --> 01:01:31,990 Hvordan vet du hva publikum har? 1372 01:01:31,990 --> 01:01:34,080 >> Vel, vi har lært et triks i går. 1373 01:01:34,080 --> 01:01:35,060 Du kan be dem. 1374 01:01:35,060 --> 01:01:37,910 Hvis du har en fange publikum du kan sende dem en undersøkelse form. 1375 01:01:37,910 --> 01:01:39,172 Eller du kan bare gjøre det? 1376 01:01:39,172 --> 01:01:40,076 >> PUBLIKUM: Google Analytics? 1377 01:01:40,076 --> 01:01:40,680 >> DAVID J. MALAN: Hva er det? 1378 01:01:40,680 --> 01:01:41,876 >> PUBLIKUM: 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 Yeah. 1381 01:01:43,750 --> 01:01:46,970 Eller enda mer slags teknisk, bare se på dine egne webservere logger. 1382 01:01:46,970 --> 01:01:49,100 Fordi hva som skjer hver gang en nettleser, 1383 01:01:49,100 --> 01:01:51,880 om bærbare, stasjonære eller Telefonen besøker nettstedet ditt? 1384 01:01:51,880 --> 01:01:56,847 De sender som HTTP header som viser du hvilken nettleser og operativsystem de bruker. 1385 01:01:56,847 --> 01:02:00,180 Så du kan antyde, med stor sannsynlighet, hva demografiske bruker den måten 1386 01:02:00,180 --> 01:02:01,410 og deretter justere. 1387 01:02:01,410 --> 01:02:03,030 >> Så antar det er uakseptabelt. 1388 01:02:03,030 --> 01:02:07,760 Det er liksom dårlig for virksomheten dersom Android-brukere kan ikke kjøpe våre widgets. 1389 01:02:07,760 --> 01:02:10,942 >> PUBLIKUM: Enten du er skal lade eller ikke? 1390 01:02:10,942 --> 01:02:12,900 DAVID J. MALAN: Enten du kommer til å lade? 1391 01:02:12,900 --> 01:02:14,900 Så OK, du får hva du betaler for. 1392 01:02:14,900 --> 01:02:18,400 >> PUBLIKUM: Enten app er skal være gratis eller om det er gonna-- 1393 01:02:18,400 --> 01:02:19,530 >> DAVID J. MALAN: OK. 1394 01:02:19,530 --> 01:02:21,920 Så kanskje du kan hente inn kostnader på den måten, or--? 1395 01:02:21,920 --> 01:02:26,195 >> PUBLIKUM: Jeg leste en studie en gang som sa at Flere Apple-brukere betale for apps versus-- 1396 01:02:26,195 --> 01:02:28,320 DAVID J. MALAN: Det er sant fordi de allerede 1397 01:02:28,320 --> 01:02:29,640 betale mer for sine enheter. 1398 01:02:29,640 --> 01:02:31,295 Så ikke urimelig antagelse. 1399 01:02:31,295 --> 01:02:32,170 >> PUBLIKUM: [uhørlig] 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 Så hvis de er mer villige til å betale, så til helvete med Android-brukere. 1403 01:02:38,667 --> 01:02:40,500 De kommer ikke til å betale oss noe likevel. 1404 01:02:40,500 --> 01:02:43,499 Vi kan like godt fokusere våre prioriteringer, i hvert fall for de første månedene 1405 01:02:43,499 --> 01:02:44,810 eller et år, på iOS. 1406 01:02:44,810 --> 01:02:46,240 Helt rimelig. 1407 01:02:46,240 --> 01:02:48,558 Hva er et mer inkluderende strategi enn det? 1408 01:02:48,558 --> 01:02:53,740 1409 01:02:53,740 --> 01:02:54,960 Maybe-- hva er det? 1410 01:02:54,960 --> 01:02:57,040 >> PUBLIKUM: [uhørlig] 1411 01:02:57,040 --> 01:03:00,142 >> DAVID J. MALAN: En mer expensive-- så kanskje investere mer in-- gå videre. 1412 01:03:00,142 --> 01:03:00,767 PUBLIKUM: Yeah. 1413 01:03:00,767 --> 01:03:02,050 Bare et mobilnettsted. 1414 01:03:02,050 --> 01:03:03,966 >> DAVID J. MALAN: Så gjør en mobile nettside og ikke 1415 01:03:03,966 --> 01:03:05,440 selv bekymre deg for dette kompleksitet. 1416 01:03:05,440 --> 01:03:07,970 Eller kanskje en fornuftig strategi, som selv Facebook tok, 1417 01:03:07,970 --> 01:03:10,890 er å starte med en hybrid søknad fordi det ikke er 1418 01:03:10,890 --> 01:03:13,582 det mye vanskeligere å gjøre dette på enn dette. 1419 01:03:13,582 --> 01:03:16,040 Du må bare lese noen dokumentasjon og finne ut hvordan 1420 01:03:16,040 --> 01:03:17,480 å laste opp ting til App Store. 1421 01:03:17,480 --> 01:03:19,670 Så kanskje du starter med denne, slik at på dag en, 1422 01:03:19,670 --> 01:03:21,112 du kan støtte alle brukere. 1423 01:03:21,112 --> 01:03:23,570 Og så, akkurat som Facebook og andre selskaper har gjort, 1424 01:03:23,570 --> 01:03:25,330 når du har ressurser, du har folk, 1425 01:03:25,330 --> 01:03:27,660 hvorfor ikke du re-implementere bare iOS søknad. 1426 01:03:27,660 --> 01:03:31,460 Du har fortsatt noe for alle, selv om det er en dårligere opplevelse 1427 01:03:31,460 --> 01:03:33,330 kanskje med hybrid-programmet. 1428 01:03:33,330 --> 01:03:36,770 Men du kan gradvis rulle ut og erstatte kort sikt 1429 01:03:36,770 --> 01:03:40,280 tiltak av hybrid apps med dine mer native applikasjoner. 1430 01:03:40,280 --> 01:03:44,090 >> PUBLIKUM: Men med en hybrid app du vil ha tilgang til mobile funksjoner? 1431 01:03:44,090 --> 01:03:45,440 >> DAVID J. MALAN: Ikke nødvendigvis. 1432 01:03:45,440 --> 01:03:47,810 Så kanskje du gjør en bevisst beslutning tidlig, 1433 01:03:47,810 --> 01:03:51,930 du kan bare laste opp bilder på opprinnelige iPhone-applikasjon for Facebook, 1434 01:03:51,930 --> 01:03:56,060 men ikke på Android-applikasjonen, innledningsvis, for eksempel. 1435 01:03:56,060 --> 01:04:00,600 Og det er litt av en hvit løgn, fordi web-applikasjoner har flere restriksjoner 1436 01:04:00,600 --> 01:04:03,620 enn hybride applikasjoner det viser ut, og hvis vi leser dokumentasjonen 1437 01:04:03,620 --> 01:04:07,260 for PhoneGap og ting som det, folk har kommet opp med måter 1438 01:04:07,260 --> 01:04:11,110 å gi web-baserte applikasjoner adgang til kameraet, 1439 01:04:11,110 --> 01:04:13,310 så lenge du bruker en hybrid applikasjon. 1440 01:04:13,310 --> 01:04:14,214 >> Hvordan fungerer det? 1441 01:04:14,214 --> 01:04:16,130 Fordi hybrid søknad, per definisjon, 1442 01:04:16,130 --> 01:04:19,600 har en bit av koden i Objective-C, og Swift, og Java, eller i C #, 1443 01:04:19,600 --> 01:04:20,920 det kan få tilgang til maskinvaren. 1444 01:04:20,920 --> 01:04:24,590 Ikke nødvendigvis alt, men det kan godt 1445 01:04:24,590 --> 01:04:27,310 være slik at du har nok tilgang til å få kameraet, 1446 01:04:27,310 --> 01:04:32,960 selv for Android-plattformer, for eksempel, i den contrived eksempel. 1447 01:04:32,960 --> 01:04:35,515 >> Eventuelle andre spørsmål? 1448 01:04:35,515 --> 01:04:36,279 Greit. 1449 01:04:36,279 --> 01:04:38,070 Hvorfor kan ikke vi ta vår 15 minutters pause her. 1450 01:04:38,070 --> 01:04:44,060 Vi vil starte opp igjen med tre med en endelig se på web-programmering, databaser, 1451 01:04:44,060 --> 01:04:45,910 og Javascript. 1452 01:04:45,910 --> 01:04:48,877