1 00:00:00,000 --> 00:00:01,291 >> DAVID J. MALAN: Så er vi tilbage. 2 00:00:01,291 --> 00:00:03,050 Så højt niveau emne i øjeblikket nu 3 00:00:03,050 --> 00:00:06,440 er teknologi stakke, hvilket ikke er en særlig teknisk term, 4 00:00:06,440 --> 00:00:09,960 det er mere af en fangst alle for enhver antallet af kombinationer af teknologier 5 00:00:09,960 --> 00:00:11,840 at du kan bruge til at løse problemer. 6 00:00:11,840 --> 00:00:14,850 Og måske den mest passende måde at starte 7 00:00:14,850 --> 00:00:18,110 ville være at se på sprog siden Jeg bliver raslende ned af en hel masse 8 00:00:18,110 --> 00:00:21,000 og de fleste alle i rummet har sikkert hørt om mindst én. 9 00:00:21,000 --> 00:00:25,730 >> Og så hvorfor vi ikke forsøger at skelne hvad-- skelne disse sprog 10 00:00:25,730 --> 00:00:28,932 og tale kort om, når du ville vælge en frem for den anden, hvordan de er 11 00:00:28,932 --> 00:00:30,890 slags fundamentalt forskellige, og især 12 00:00:30,890 --> 00:00:34,830 når du chatter med ingeniører, eller forsøger at beslutte, hvem de skal ansætte, 13 00:00:34,830 --> 00:00:37,652 eller hvad gennemførelsen forslag om at GreenLight, 14 00:00:37,652 --> 00:00:39,860 hvordan du rent faktisk ville gøre den slags beslutninger. 15 00:00:39,860 --> 00:00:41,890 >> Så lad os bare rasle nogle ting fra. 16 00:00:41,890 --> 00:00:45,300 Af de sprog folk har hørt om, hvad der kommer til at tænke på? 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 Hvad 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 Fremragende. 24 00:00:55,330 --> 00:00:57,000 Hvad ellers? 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-- alias 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, der er mere af en fangst alle for hvad er normalt C # som det sprog 32 00:01:12,810 --> 00:01:13,770 pågældende. 33 00:01:13,770 --> 00:01:14,770 Og lad mig nævne. 34 00:01:14,770 --> 00:01:15,900 Så vi vil vende tilbage til. 35 00:01:15,900 --> 00:01:17,560 Undskyld? 36 00:01:17,560 --> 00:01:18,170 Undskyld? 37 00:01:18,170 --> 00:01:19,877 >> PUBLIKUM: SQL. 38 00:01:19,877 --> 00:01:20,876 DAVID J. MALAN: Scratch? 39 00:01:20,876 --> 00:01:21,610 PUBLIKUM: SQL. 40 00:01:21,610 --> 00:01:22,610 DAVID J. MALAN: Åh, SQL. 41 00:01:22,610 --> 00:01:23,110 OKAY. 42 00:01:23,110 --> 00:01:23,750 SQL. 43 00:01:23,750 --> 00:01:29,510 Så vi vil vende tilbage til at-- faktisk, det er god-- efter pausen så godt. 44 00:01:29,510 --> 00:01:30,572 Hvad ellers? 45 00:01:30,572 --> 00:01:32,530 >> PUBLIKUM: Oracle. 46 00:01:32,530 --> 00:01:34,670 >> DAVID J. MALAN: Så Oracle, ikke et sprog. 47 00:01:34,670 --> 00:01:36,560 Faktisk ville de bruge SQL så godt. 48 00:01:36,560 --> 00:01:38,360 Så lad os sætte, at efter pausen samt. 49 00:01:38,360 --> 00:01:39,744 Og undskyld, noget herovre? 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 fint. 53 00:01:42,303 --> 00:01:46,150 54 00:01:46,150 --> 00:01:49,180 Og MATLAB er slags på der nogle gange. 55 00:01:49,180 --> 00:01:50,060 >> PUBLIKUM: R. 56 00:01:50,060 --> 00:01:51,755 >> DAVID J. MALAN R. Lad os 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 Jo da. 60 00:01:55,880 --> 00:01:57,910 Ældre skole. 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 vil smide BASIC. 64 00:02:02,410 --> 00:02:05,990 65 00:02:05,990 --> 00:02:08,539 GRUNDLÆGGENDE. 66 00:02:08,539 --> 00:02:09,390 Enhver-- 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 Åh, slå dig til det. 70 00:02:12,248 --> 00:02:15,370 71 00:02:15,370 --> 00:02:15,870 Noget? 72 00:02:15,870 --> 00:02:18,700 Jeg kan tænke på et par andre. 73 00:02:18,700 --> 00:02:21,876 Jeg kan tænke på et par andre. 74 00:02:21,876 --> 00:02:22,792 Og hvad var det sidste? 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 Ja. 78 00:02:26,100 --> 00:02:27,100 Active Server Pages. 79 00:02:27,100 --> 00:02:30,270 Det generelt ville falde ind under andre sprog, undertiden C #, 80 00:02:30,270 --> 00:02:32,040 så lad os forlade denne off. 81 00:02:32,040 --> 00:02:35,510 Men vi vil vende tilbage til det for rammer og sådan. 82 00:02:35,510 --> 00:02:36,290 Ellers andet? 83 00:02:36,290 --> 00:02:39,020 PHP er populær. 84 00:02:39,020 --> 00:02:41,710 Ruby er en anden. 85 00:02:41,710 --> 00:02:48,230 JavaScript, ikke at forveksle med Java, er en anden. 86 00:02:48,230 --> 00:02:49,570 Det er sådan et parti. 87 00:02:49,570 --> 00:02:53,590 >> Så det kan være helt sikkert overvældende, som hvis listen ikke allerede er, 88 00:02:53,590 --> 00:02:55,650 bare at begynde at vide, hvor du begynder. 89 00:02:55,650 --> 00:02:58,130 Og så heldigvis, lad os gribe dette fra et par vinkler. 90 00:02:58,130 --> 00:03:03,520 Først, lad os prøve at kategorisere i det mindste nogle af disse sprog 91 00:03:03,520 --> 00:03:06,790 i to brede spande, der minder om samtalen vi havde før pausen, 92 00:03:06,790 --> 00:03:09,630 hvor vi talte om kompilering, og kildekode, og maskinkode, 93 00:03:09,630 --> 00:03:11,440 fordi det er ikke sådan alle sprog fungerer. 94 00:03:11,440 --> 00:03:15,640 Så vi vil plukke ud et par eksempler of-- eller mod examples-- til denne model. 95 00:03:15,640 --> 00:03:18,490 >> Og så, hvorfor ikke vi tale om de programmer 96 00:03:18,490 --> 00:03:20,390 at disse sprog anvendes generelt til. 97 00:03:20,390 --> 00:03:22,840 Og helt ærligt, selvom dette er en temmelig lang liste, 98 00:03:22,840 --> 00:03:26,320 det er kun en delmængde af denne liste, du vil typisk trække disse dage 99 00:03:26,320 --> 00:03:27,220 til at løse problemer. 100 00:03:27,220 --> 00:03:29,150 Visse sprog er nyere end andre. 101 00:03:29,150 --> 00:03:31,170 Visse sprog er mere populære end andre. 102 00:03:31,170 --> 00:03:34,370 Så det er ikke ligesom du har sådan en overvældende opgave, før du 103 00:03:34,370 --> 00:03:36,970 når de beslutter blandt disse forskellige sprog. 104 00:03:36,970 --> 00:03:40,110 >> Så lad os gøre det. 105 00:03:40,110 --> 00:03:45,870 Vi havde tidligere, kildekode, og derefter havde vi maskinkode. 106 00:03:45,870 --> 00:03:48,590 107 00:03:48,590 --> 00:03:49,400 Ups. 108 00:03:49,400 --> 00:03:50,910 Skrivning det forkerte ord. 109 00:03:50,910 --> 00:03:52,740 Machine kode. 110 00:03:52,740 --> 00:03:57,549 Og vi havde nogle proces i midten called-- yeah, compiler. 111 00:03:57,549 --> 00:03:58,215 Så compileren. 112 00:03:58,215 --> 00:04:00,760 113 00:04:00,760 --> 00:04:03,910 >> Og hvad maskinkode faktisk kører på i sidste ende 114 00:04:03,910 --> 00:04:05,680 vil være din faktiske CPU. 115 00:04:05,680 --> 00:04:09,660 Med andre ord, af maskinkode, jeg betyder de laveste instruktioner niveau 116 00:04:09,660 --> 00:04:11,330 at en CPU faktisk forstår. 117 00:04:11,330 --> 00:04:15,100 Addition, subtraktion, flytte, gemme og operationer som det. 118 00:04:15,100 --> 00:04:19,700 Og så dette er den model for, hvad der er almindeligt kendt som kompilerede sprog. 119 00:04:19,700 --> 00:04:21,000 Måske ikke overraskende. 120 00:04:21,000 --> 00:04:23,550 >> Så det er den model for kompileret sprog. 121 00:04:23,550 --> 00:04:25,970 Men det viser sig at der er en anden klasse af sprog 122 00:04:25,970 --> 00:04:32,650 kaldet fortolket languages-- fortolket languages-- 123 00:04:32,650 --> 00:04:34,030 der er lidt anderledes. 124 00:04:34,030 --> 00:04:41,660 Du skriver i kildekoden, køre dem gennem en tolk, 125 00:04:41,660 --> 00:04:45,440 og at tolken er hvad kører på CPU. 126 00:04:45,440 --> 00:04:50,120 Med andre ord, hvad du ikke gør Emit er hvad, tilsyneladende? 127 00:04:50,120 --> 00:04:50,980 Machine kode. 128 00:04:50,980 --> 00:04:54,290 De nuller og ettaller, at CPU'en selv i sidste ende forstår. 129 00:04:54,290 --> 00:04:59,780 >> Så i denne første version, og sprog som C, ligesom vi så, 130 00:04:59,780 --> 00:05:02,040 du skriver i kildekode der er lidt mystisk, 131 00:05:02,040 --> 00:05:05,300 men i det mindste er lidt engelsk-lignende og det er mindst læsbar 132 00:05:05,300 --> 00:05:06,780 når man vænner sig til det. 133 00:05:06,780 --> 00:05:10,100 Du kører det gennem en compiler og ud du får, i sidste ende, nuller og ettaller. 134 00:05:10,100 --> 00:05:11,340 >> At en oversimplificering. 135 00:05:11,340 --> 00:05:12,839 Der er nogle andre trin i der. 136 00:05:12,839 --> 00:05:15,530 Faktisk, hvis du nogensinde har hørt udtrykket "assembler" 137 00:05:15,530 --> 00:05:17,990 det er et skridt, før de nuller og ettaller. 138 00:05:17,990 --> 00:05:20,949 At lidt mere læsbar, men stadig temmelig mystisk. 139 00:05:20,949 --> 00:05:23,740 Og så der er mellemliggende trin der er i virkeligheden foregår her. 140 00:05:23,740 --> 00:05:26,360 Men produktionen, i sidste ende, er disse nuller og ettaller. 141 00:05:26,360 --> 00:05:28,990 >> Men i den fortolkes verden, hvor du har 142 00:05:28,990 --> 00:05:32,680 sprog, der tolkes sprog, du faktisk springe dette skridt. 143 00:05:32,680 --> 00:05:36,010 Med andre ord, når man skriver en program, du lige straks køre den. 144 00:05:36,010 --> 00:05:38,960 Du behøver ikke kompilere det og derefter køre det, som jeg gjorde før. 145 00:05:38,960 --> 00:05:41,132 Du skal bare skrive det og køre det. 146 00:05:41,132 --> 00:05:44,340 Og hvis du ønsker at gøre en hurtig ændring, du laver en hurtig forandring, og gentag det. 147 00:05:44,340 --> 00:05:46,640 Så der er ingen mellemvej skridt her. 148 00:05:46,640 --> 00:05:50,840 >> Nu, for det program, jeg skrev tidligere, som var denne "Hello World" program, 149 00:05:50,840 --> 00:05:53,660 du måske med rimelighed wonder-- eller med rimelighed 150 00:05:53,660 --> 00:05:58,570 state-- der var ikke dengang tidskrævende at kompilere mit program. 151 00:05:58,570 --> 00:06:00,337 Det synes at have gjort det bare sådan. 152 00:06:00,337 --> 00:06:02,170 Og der er grafisk versioner af compilere. 153 00:06:02,170 --> 00:06:05,270 Jeg bruger en meget mystisk udgave, men du kunne ramme en play-knap 154 00:06:05,270 --> 00:06:07,887 og det ville faktisk gør udarbejdelse for dig. 155 00:06:07,887 --> 00:06:10,720 Jeg har kompileret programmet og derefter igen, for at køre det, jeg bare gøre dette. 156 00:06:10,720 --> 00:06:13,820 Og det output til venstre der, "Hej!" 157 00:06:13,820 --> 00:06:15,530 Det synes ikke alt det besværlige. 158 00:06:15,530 --> 00:06:19,920 Men når dine programmer er mere end blot én, to, tre, 159 00:06:19,920 --> 00:06:25,470 fire, fem linjer lang, kan det tage langt flere sekunder at kompilere. 160 00:06:25,470 --> 00:06:28,310 Undertiden endda minutter eller ganske lidt tid til at kompilere. 161 00:06:28,310 --> 00:06:30,480 Efter alt, nogle af de 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 hundreder af tusinder eller endda millioner af linjer kode lange, 164 00:06:39,070 --> 00:06:41,300 og dem ikke bare straks at udføre. 165 00:06:41,300 --> 00:06:44,560 >> Desuden på nettet, er det blevet moderne at bruge 166 00:06:44,560 --> 00:06:47,600 simpelthen fortolket sprog, delvis fordi du 167 00:06:47,600 --> 00:06:50,570 kan gøre en ændring som udvikleren og så bare straks genindlæse 168 00:06:50,570 --> 00:06:52,570 browsersiden og straks se resultatet. 169 00:06:52,570 --> 00:06:56,160 Og så HTML, mens ikke et programmeringssprog, 170 00:06:56,160 --> 00:06:58,860 er et sprog, der er fortolket. 171 00:06:58,860 --> 00:07:00,770 Og vi så, at samme virkning i går. 172 00:07:00,770 --> 00:07:04,070 Du skal bare genindlæse siden efter at en ændring i Cloud9 og-- voila-- 173 00:07:04,070 --> 00:07:05,560 du se et nyt resultat. 174 00:07:05,560 --> 00:07:07,090 >> Så hvad er forskellen her? 175 00:07:07,090 --> 00:07:13,190 I HTML, husker, havde vi åbne HTML, åben hoved, åben titel, tæt titel, 176 00:07:13,190 --> 00:07:15,250 tæt hoved, åben krop, og så videre. 177 00:07:15,250 --> 00:07:19,149 Vi havde alle disse tags, som vi temmelig meget sagt, fortælle browseren hvad de skal gøre. 178 00:07:19,149 --> 00:07:20,690 Hey browser, her kommer en HTML-side. 179 00:07:20,690 --> 00:07:22,170 Hey browser, her kommer titlen. 180 00:07:22,170 --> 00:07:24,429 Hey browser, her kommer nogle tekst, der skal være fed. 181 00:07:24,429 --> 00:07:25,720 Og så skal du fortælle det modsatte. 182 00:07:25,720 --> 00:07:27,330 Hey browser, det er det for fed tekst. 183 00:07:27,330 --> 00:07:28,830 Hey browser, 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å hvad er en browser? 186 00:07:31,130 --> 00:07:33,170 En browser er bare en tolk. 187 00:07:33,170 --> 00:07:36,090 Det er et program, der nogen som Microsoft eller Google har skrevet, 188 00:07:36,090 --> 00:07:39,160 hvis formål i livet er at læse et sprog, der er kendt som HTML, 189 00:07:39,160 --> 00:07:39,890 og fortolke den. 190 00:07:39,890 --> 00:07:41,290 Top til bund, venstre til højre. 191 00:07:41,290 --> 00:07:46,880 Og helst browseren ser åben beslag, titel, tæt beslag, 192 00:07:46,880 --> 00:07:48,960 Det bør fortolke denne således, åh, at 193 00:07:48,960 --> 00:07:52,490 betyder, at jeg skulle sætte disse ord måde op her på toppen af ​​browseren. 194 00:07:52,490 --> 00:07:55,700 >> Så det gør bare, hvad HTML-koden siger. 195 00:07:55,700 --> 00:07:57,240 Men der er ingen nuller og ettaller. 196 00:07:57,240 --> 00:07:58,250 Der er ingen kompilering. 197 00:07:58,250 --> 00:07:58,890 Du gjorde det ikke. 198 00:07:58,890 --> 00:07:59,931 Browseren ikke gjorde det. 199 00:07:59,931 --> 00:08:01,710 Det er bare ikke involveret. 200 00:08:01,710 --> 00:08:05,890 >> Så i ånden af ​​disse igangværende emner, i dag og i går, 201 00:08:05,890 --> 00:08:08,400 der synes at være en vidunderlig funktion. 202 00:08:08,400 --> 00:08:11,410 Du sparer din kode og derefter bare køre det eller fortolke den. 203 00:08:11,410 --> 00:08:13,790 Der er ingen mellemliggende trin. 204 00:08:13,790 --> 00:08:15,690 Mon der er en omkostning? 205 00:08:15,690 --> 00:08:16,810 Kan ikke alle være upsides. 206 00:08:16,810 --> 00:08:19,964 Så hvad 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 kompileret verden, du har ikke kun den originale kildekode, 211 00:08:26,920 --> 00:08:29,657 du er også at skabe og derefter formentlig 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 nødt til at tage nogle meget plads. 214 00:08:33,870 --> 00:08:34,429 Absolut. 215 00:08:34,429 --> 00:08:35,765 Så det koster dig mere plads. 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: Browsere måske fortolke anderledes. 219 00:08:43,280 --> 00:08:46,770 >> DAVID J. Malan: muligvis browsere fortolker det anderledes. 220 00:08:46,770 --> 00:08:48,622 Det er sandt. 221 00:08:48,622 --> 00:08:50,330 Men jeg er ikke sikker på jeg er komfortable hævder 222 00:08:50,330 --> 00:08:51,840 det er fordi det er fortolket. 223 00:08:51,840 --> 00:08:56,340 Det er mere bare fordi det er en implementering af et sprog 224 00:08:56,340 --> 00:08:58,050 at selv har uklarheder. 225 00:08:58,050 --> 00:09:01,570 Så lad os ikke helt bekræfte at en, men god fornemmelse. 226 00:09:01,570 --> 00:09:03,103 Hvad andet kunne den betalte pris? 227 00:09:03,103 --> 00:09:03,602 Andrew? 228 00:09:03,602 --> 00:09:05,912 >> PUBLIKUM: Du kombinerer to trin, så du derfor 229 00:09:05,912 --> 00:09:08,300 har stigende kompleksitet samt. 230 00:09:08,300 --> 00:09:11,040 >> DAVID J. MALAN: Den complex-- stigningen i kompleksitet, hvor? 231 00:09:11,040 --> 00:09:12,270 Til hvem? 232 00:09:12,270 --> 00:09:16,748 >> PUBLIKUM: Så i tolken trin, er du kombinerer tolken 233 00:09:16,748 --> 00:09:19,120 og compiler til bare op at-- 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 nok lidt enklere at gennemføre tolken, 236 00:09:25,240 --> 00:09:29,530 selvom det synes at udbytte upsides af denne bekvemmelighed. 237 00:09:29,530 --> 00:09:30,550 Så muligvis sandt. 238 00:09:30,550 --> 00:09:32,716 Men det slags afhænger jeg vil sige, om sproget 239 00:09:32,716 --> 00:09:35,720 og om, hvordan de gik om at gennemføre det. 240 00:09:35,720 --> 00:09:38,535 Der kan være en meget mere kompliceret, faktisk, i compileren, 241 00:09:38,535 --> 00:09:41,410 bare fordi du nødt til at gå fra noget så højt niveau til noget 242 00:09:41,410 --> 00:09:42,560 så lavt niveau. 243 00:09:42,560 --> 00:09:45,340 Men en god tanke. 244 00:09:45,340 --> 00:09:50,770 >> Så sætte en anden måde, en kompileret program, når forvandlet til disse nuller og ettaller, 245 00:09:50,770 --> 00:09:54,470 ender i sproget at CPU'en taler, 246 00:09:54,470 --> 00:09:57,850 mens det i denne side af verden, det program, du har skrevet, 247 00:09:57,850 --> 00:10:02,527 den kode, du har skrevet, faktisk aldrig bliver omdannet til den faktiske sprog 248 00:10:02,527 --> 00:10:03,360 computeren taler. 249 00:10:03,360 --> 00:10:04,190 De nuller og ettaller. 250 00:10:04,190 --> 00:10:08,480 Det forbliver i den oprindelige, mere menneskelig venlige, mere læsbar sprog. 251 00:10:08,480 --> 00:10:11,720 Så hvad kunne være konsekvenser der, hvis du ikke faktisk 252 00:10:11,720 --> 00:10:15,020 gider konvertere dine program til meget sprog 253 00:10:15,020 --> 00:10:18,013 at den underliggende computer taler? 254 00:10:18,013 --> 00:10:19,780 >> PUBLIKUM: Might ikke forstå noget? 255 00:10:19,780 --> 00:10:21,170 >> DAVID J. MALAN: Might ikke forstår noget. 256 00:10:21,170 --> 00:10:23,297 Og det kan claim-- hvis det ikke forstod 257 00:10:23,297 --> 00:10:25,880 noget, det er en fejl eller mangel af funktion i fortolkeren. 258 00:10:25,880 --> 00:10:28,544 Så det ville være mere af en fejl end en omkostning. 259 00:10:28,544 --> 00:10:30,419 >> PUBLIKUM: Du har adgang til kildekoden? 260 00:10:30,419 --> 00:10:31,877 DAVID J. MALAN: Der er en god en. 261 00:10:31,877 --> 00:10:34,140 Så en ulempe her er dig synes at have adgang. 262 00:10:34,140 --> 00:10:37,006 Du, slutbrugeren, kan synes at har adgang til kildekoden. 263 00:10:37,006 --> 00:10:38,130 Og det er ikke altid tilfældet. 264 00:10:38,130 --> 00:10:39,660 Men det er rigtigt i tilfælde af JavaScript, 265 00:10:39,660 --> 00:10:41,660 som vi vil se på, efter pausen dag, som 266 00:10:41,660 --> 00:10:45,720 er et fortolket programmeringssprog at du skriver i kildekoden. 267 00:10:45,720 --> 00:10:48,890 >> Men at kildekoden bliver overført fra din server til browseren 268 00:10:48,890 --> 00:10:51,392 og kører i den menneskelige browser. 269 00:10:51,392 --> 00:10:54,350 Så her kunne hun bare åbne vindue, ligesom jeg har gjort i Chrome, 270 00:10:54,350 --> 00:10:57,740 og ser på det, som vi selv så på i går med Google. 271 00:10:57,740 --> 00:11:00,420 Det ser måske lidt uforståeligt, men det er der. 272 00:11:00,420 --> 00:11:03,482 Så det er absolut en pris betalt. 273 00:11:03,482 --> 00:11:04,565 PUBLIKUM: Performance 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 anden Biggie. 276 00:11:06,260 --> 00:11:07,380 Der er en performance hit. 277 00:11:07,380 --> 00:11:10,100 Fordi du har denne midt mand, der i sig selv 278 00:11:10,100 --> 00:11:13,740 er et program, mellem dig og CPU, i modsætning 279 00:11:13,740 --> 00:11:17,880 til bare at fodre disse rå nuller og ettaller i CPU'en, 280 00:11:17,880 --> 00:11:21,060 der er en præstation hit, som du tage med et fortolket sprog. 281 00:11:21,060 --> 00:11:24,240 Sådan at, vilkårligt, et program der kan tage en, andet 282 00:11:24,240 --> 00:11:27,840 til at køre på en computer eller en minut til at køre på en computer her, 283 00:11:27,840 --> 00:11:32,059 kan tage 10 sekunder eller 10 minutter til at køre på en computer her. 284 00:11:32,059 --> 00:11:35,100 Det er generelt ikke til at være, at meget af en difference-- faktor 10-- 285 00:11:35,100 --> 00:11:36,808 fordi der er optimeringer, du kan gøre. 286 00:11:36,808 --> 00:11:38,680 Men det er næsten altid langsommere. 287 00:11:38,680 --> 00:11:43,070 Nu bagsiden til bekymring er, godt computere, hver 12 288 00:11:43,070 --> 00:11:45,970 til 18 months-- ifølge Moores lov, så at speak-- 289 00:11:45,970 --> 00:11:47,600 er lige ved at komme hurtigere og hurtigere. 290 00:11:47,600 --> 00:11:48,750 Jeg har mere og mere diskplads. 291 00:11:48,750 --> 00:11:49,791 Jeg har mere og mere RAM. 292 00:11:49,791 --> 00:11:50,620 Hvem virkelig bekymrer sig? 293 00:11:50,620 --> 00:11:52,328 >> Og det er sådan en rimeligt argument. 294 00:11:52,328 --> 00:11:55,740 Faktisk er en af ​​grundene hvorfor vi kan tolerere langsommere 295 00:11:55,740 --> 00:11:58,480 fortolket sprog er fordi vi mennesker ikke rigtig mærke. 296 00:11:58,480 --> 00:12:00,690 Computerne har fået lige så pokkers hurtigt. 297 00:12:00,690 --> 00:12:04,520 Ud fra følgende betragtninger tilbage i dag, især når hardware var langt mere begrænset, 298 00:12:04,520 --> 00:12:06,860 du havde mindre af alt, det var meget dyrere 299 00:12:06,860 --> 00:12:10,570 så alt koster mere, ja så du virkelig ønskede at presse ud 300 00:12:10,570 --> 00:12:12,590 så meget ydelse som du kunne. 301 00:12:12,590 --> 00:12:16,400 Men der kræves skriftligt et lavere niveau, hvis du vil, 302 00:12:16,400 --> 00:12:18,090 med et kompileret sprog. 303 00:12:18,090 --> 00:12:20,830 >> Så du tager denne præstation hit. 304 00:12:20,830 --> 00:12:24,780 Men generelt, upsides synes at være det værd i disse dage. 305 00:12:24,780 --> 00:12:26,850 Nå, bortset fra den intellektuel ejendomsret problem. 306 00:12:26,850 --> 00:12:28,641 Den slags læsbarhed af koden, vil vi 307 00:12:28,641 --> 00:12:30,640 komme tilbage til, når vi ser på JavaScript. 308 00:12:30,640 --> 00:12:33,140 >> Så lad os prøve at kategorisere mindst et par af disse. 309 00:12:33,140 --> 00:12:41,650 Så blandt de indsamlede sprog, vi ville have C, C ++, kinda, sorta, Java, 310 00:12:41,650 --> 00:12:48,120 selv om det er lidt af en undtagelse, for grunde, jeg vil vise dig på bare et øjeblik. 311 00:12:48,120 --> 00:12:51,540 C # ville være på denne liste. 312 00:12:51,540 --> 00:12:54,930 Vi ser på mere på bare de mere moderne sprog. 313 00:12:54,930 --> 00:12:55,430 Okay. 314 00:12:55,430 --> 00:12:56,804 Og det ser ud som masser der. 315 00:12:56,804 --> 00:13:03,500 Betragtninger på denne side af hegnet, vi måske have 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 nyere dem? 318 00:13:13,640 --> 00:13:15,410 Det føles rigeligt til nu. 319 00:13:15,410 --> 00:13:16,330 OKAY. 320 00:13:16,330 --> 00:13:18,760 Og så dot dot dot, da listen er uendelig. 321 00:13:18,760 --> 00:13:22,300 >> Og i virkeligheden, hvis vi ønsker at bare få en fornemmelse af denne-- Wikipedia, 322 00:13:22,300 --> 00:13:24,130 kompileret sprog. 323 00:13:24,130 --> 00:13:27,150 Jeg gætte, vi kan få en langt mere udtø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 langt mere udtømmende liste. 326 00:13:30,620 --> 00:13:34,150 Og jeg håbede nogen vil gætte D som et sprog, fordi det også eksisterer, 327 00:13:34,150 --> 00:13:37,747 men de stoppede ved D det synes. 328 00:13:37,747 --> 00:13:39,330 Selv om der faktisk kunne være en E. 329 00:13:39,330 --> 00:13:41,496 >> Åh, faktisk, det bør være på listen i disse dage. 330 00:13:41,496 --> 00:13:47,460 Swift er faktisk en sprog, at Apple opfandt 331 00:13:47,460 --> 00:13:50,302 der nu anvendes i stigende grad så, i iPhone udvikling. 332 00:13:50,302 --> 00:13:52,260 Men vi vil vende tilbage til at med vores diskussion 333 00:13:52,260 --> 00:13:54,090 af mobil i bare en lille smule så godt. 334 00:13:54,090 --> 00:13:55,260 Så Swift så godt. 335 00:13:55,260 --> 00:13:57,540 >> Og så hvis vi går til fortolket language-- 336 00:13:57,540 --> 00:14:05,010 fortolket language-- så her er en endnu længere liste. 337 00:14:05,010 --> 00:14:07,260 Så hvis du bare google og se på Wikipedia for disse, 338 00:14:07,260 --> 00:14:09,231 vil du se alle mulige sprog. 339 00:14:09,231 --> 00:14:10,980 Men formålet er, for i dag virkelig, bare 340 00:14:10,980 --> 00:14:13,680 koges ned til måske dette spørgsmålet om intellektuel ejendomsret 341 00:14:13,680 --> 00:14:18,200 og læsbarhed af slutbrugeren og ydeevne, er en anden biggie samt. 342 00:14:18,200 --> 00:14:21,080 >> Så blandt disse sprog, lad mig se, om vi kan give dig 343 00:14:21,080 --> 00:14:24,487 blot nogle udsnit af sprog. 344 00:14:24,487 --> 00:14:26,820 Vi ønsker ikke at gå igennem alle sprog uendeligt. 345 00:14:26,820 --> 00:14:29,720 Har du nogensinde spekuleret over, hvad en bestemt sprog ser ud? 346 00:14:29,720 --> 00:14:31,562 Vi kunne se en øjeblik siden. 347 00:14:31,562 --> 00:14:33,520 Hvorfor ikke tage et par af funktionen anmodninger. 348 00:14:33,520 --> 00:14:35,380 Hvem vil gerne se, hvad andet sprog ser ud? 349 00:14:35,380 --> 00:14:35,620 Ja. 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 Okay. 353 00:14:37,040 --> 00:14:38,504 Så lad os gå til Java. 354 00:14:38,504 --> 00:14:42,300 355 00:14:42,300 --> 00:14:44,900 Og bare for at give dig et sample-- vi kunne skrive alle disse ud, 356 00:14:44,900 --> 00:14:47,670 men det ville være hurtigere blot at se på en andens kodeeksempler. 357 00:14:47,670 --> 00:14:48,170 Okay. 358 00:14:48,170 --> 00:14:50,330 Så er dette et godt eksempel? 359 00:14:50,330 --> 00:14:52,040 Ups. 360 00:14:52,040 --> 00:14:52,540 OKAY. 361 00:14:52,540 --> 00:14:58,810 Så her er Java-versionen af program jeg skrev tidligere, "Hello World." 362 00:14:58,810 --> 00:15:01,900 >> Så Java, vil du ofte se "klasse". nøgleordet 363 00:15:01,900 --> 00:15:03,779 Så vil du se nogle navn efter det. 364 00:15:03,779 --> 00:15:05,570 Du vil se krøllede parenteser ligesom vi så før, 365 00:15:05,570 --> 00:15:08,153 og nogle gange de går på samme linje, undertiden andre linjer, 366 00:15:08,153 --> 00:15:09,734 det er form for en personlig beslutning. 367 00:15:09,734 --> 00:15:11,900 Du vil se søgeord som "Offentlig", "statisk", "ugyldig". 368 00:15:11,900 --> 00:15:13,790 Men vi kunne se "main". "Main" er generelt 369 00:15:13,790 --> 00:15:17,220 navnet på standard-funktionen eller standard chunk kode, 370 00:15:17,220 --> 00:15:18,760 bliver kørt i et program. 371 00:15:18,760 --> 00:15:19,330 >> "Streng." 372 00:15:19,330 --> 00:15:20,850 Hvad gjorde vi mener med snor tidligere? 373 00:15:20,850 --> 00:15:23,480 Jeg brugte den slags henkastet. 374 00:15:23,480 --> 00:15:25,100 En streng er hvad? 375 00:15:25,100 --> 00:15:25,601 Et ord. 376 00:15:25,601 --> 00:15:27,058 Det er ligesom en sekvens af tegn. 377 00:15:27,058 --> 00:15:29,810 Individuelle tegn, tilbage til ryg mod ryg, som regel i et array, 378 00:15:29,810 --> 00:15:30,690 som vi har diskuteret. 379 00:15:30,690 --> 00:15:34,700 Og i virkeligheden, se denne syntaks her, de to firkantede parenteser? 380 00:15:34,700 --> 00:15:39,210 Det betyder, hey computer, her kommer et array af strenge. 381 00:15:39,210 --> 00:15:42,636 Pladsen beslag notation er almindeligt anvendt til at betegne det. 382 00:15:42,636 --> 00:15:44,510 Og så kan du sikkert tage en guess-- hvad 383 00:15:44,510 --> 00:15:46,580 betyder dette fremhævet luns af kode sandsynligvis gøre? 384 00:15:46,580 --> 00:15:49,737 385 00:15:49,737 --> 00:15:50,639 >> PUBLIKUM: Udgangen? 386 00:15:50,639 --> 00:15:51,090 >> DAVID J. MALAN: Ja. 387 00:15:51,090 --> 00:15:52,506 Den udskriver noget til skærmen. 388 00:15:52,506 --> 00:15:57,070 Så "system" er en slags en reference til din computer. 389 00:15:57,070 --> 00:15:59,620 "Out" betyder, at din computers udgang eller skærmen. 390 00:15:59,620 --> 00:16:04,450 Så "system.out.print ln" betyder sandsynligvis? 391 00:16:04,450 --> 00:16:05,570 "Ln". 392 00:16:05,570 --> 00:16:09,570 Print linje, som programmører som til tilsyneladende stave nogle ord ud 393 00:16:09,570 --> 00:16:11,820 i deres helhed og tage genveje 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 udskriver "Hello Verden! "Efterfulgt af 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, hvad de vil call objektorienteret. 398 00:16:21,150 --> 00:16:23,440 Og ja, bare for at give et par andre definitioner 399 00:16:23,440 --> 00:16:26,420 der, at du måske se, der generelt 400 00:16:26,420 --> 00:16:30,600 er mange forskellige typer af sprog, men det mest almindelige 401 00:16:30,600 --> 00:16:37,830 er proceduremæssige eller tvingende sprog. 402 00:16:37,830 --> 00:16:41,600 Der er funktionelle sprog, der ikke gør 403 00:16:41,600 --> 00:16:43,790 betyde, at andre er ikke-funktionelt. 404 00:16:43,790 --> 00:16:47,740 Og så er der objekt-orienterede sprog. 405 00:16:47,740 --> 00:16:51,170 Og det er måske den bedste kategorisering af de fleste sprog 406 00:16:51,170 --> 00:16:56,445 at du nogensinde ville vælge for sortering af et typisk kommercielt projekt. 407 00:16:56,445 --> 00:16:58,910 >> Det ville være for meget af, Jeg tror, ​​en rotte hul 408 00:16:58,910 --> 00:17:01,620 at gå ned, for at forsøge at forklare de forskellige forskelle. 409 00:17:01,620 --> 00:17:04,599 Men sprogene vi har set således far-- C 410 00:17:04,599 --> 00:17:07,680 er en proceduremæssig eller afgørende sprog. 411 00:17:07,680 --> 00:17:11,200 For nylig opfundet sprog tendens til at være, undskyld, 412 00:17:11,200 --> 00:17:14,430 objekt-orienteret, hvilket betyder de har andre funktioner 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åde? 415 00:17:19,430 --> 00:17:20,950 Lad os ikke engang gå dernede. 416 00:17:20,950 --> 00:17:25,200 >> Objektorienteret midler du kan implement-- 417 00:17:25,200 --> 00:17:27,930 du kan modellere den virkelige verden lidt mere effektivt. 418 00:17:27,930 --> 00:17:29,722 Menneskeheden, over tid, har regnet ud, wow, 419 00:17:29,722 --> 00:17:32,430 det ville være rart, hvis mit sprog havde denne funktion, eller at funktionen. 420 00:17:32,430 --> 00:17:34,830 Og det er derfor, vi har så mange sprog i verden. 421 00:17:34,830 --> 00:17:37,670 Rimelige mennesker, smarte mennesker, enig eller uenig 422 00:17:37,670 --> 00:17:41,000 og uvægerligt slags mødes på udvikle nye sprog alle sammen. 423 00:17:41,000 --> 00:17:41,660 >> Sag i punkt. 424 00:17:41,660 --> 00:17:45,260 Apple opfandt Swift i håb om formentlig sænke 425 00:17:45,260 --> 00:17:47,950 panelet til iPhone udvikling, fordi den tidligere language-- 426 00:17:47,950 --> 00:17:51,080 kaldet Objective-C, som kunne også være på vores liste her-- 427 00:17:51,080 --> 00:17:54,190 var meget mere mystiske og meget sværere at ombryde ens sind rundt. 428 00:17:54,190 --> 00:17:57,690 Og som programmering bliver velsagtens mere tilgængelig og mere bredt 429 00:17:57,690 --> 00:18:00,580 vedtaget af folk selv mindre tekniske, det goal-- 430 00:18:00,580 --> 00:18:04,160 det er en meget tapper mål at forsøge at sænke adgangsbarriere ved at gøre 431 00:18:04,160 --> 00:18:07,400 sprogene selv nemmere at komme i gang med, 432 00:18:07,400 --> 00:18:09,430 men ikke mindre kraftfuld nødvendigvis. 433 00:18:09,430 --> 00:18:10,560 >> Og en anden sprog. 434 00:18:10,560 --> 00:18:14,110 Hvorfor vi ikke tage et kig på noget som Python, 435 00:18:14,110 --> 00:18:18,090 som er meget på mode i disse dage. 436 00:18:18,090 --> 00:18:19,570 Python. 437 00:18:19,570 --> 00:18:20,464 Sample program. 438 00:18:20,464 --> 00:18:24,600 439 00:18:24,600 --> 00:18:26,700 Lad os se. 440 00:18:26,700 --> 00:18:28,790 "Hej verden" sprog. 441 00:18:28,790 --> 00:18:30,180 Lad os gøre det. 442 00:18:30,180 --> 00:18:33,625 "Hej Verden." 443 00:18:33,625 --> 00:18:35,375 Lad os se, om det giver os et fint eksempel. 444 00:18:35,375 --> 00:18:39,450 445 00:18:39,450 --> 00:18:39,950 OKAY. 446 00:18:39,950 --> 00:18:41,283 Så det er faktisk slags sjov. 447 00:18:41,283 --> 00:18:43,330 Så hvis du nogensinde google "Hello World", som 448 00:18:43,330 --> 00:18:47,000 sker for at være et af de første programmer nogensinde er skrevet i et moderne sprog, 449 00:18:47,000 --> 00:18:51,830 lige som en proof of concept, kan du se alle mulige implementeringer af dette. 450 00:18:51,830 --> 00:18:54,240 >> Nogle af disse sprog Jeg har ikke engang hørt om. 451 00:18:54,240 --> 00:18:59,770 Men du kan see-- lad os gå til Basic, den ene jeg lærte år siden, delvist. 452 00:18:59,770 --> 00:19:02,720 Dette var en sjov sprog, fordi du måtte, som programmøren, antal 453 00:19:02,720 --> 00:19:03,710 alle dine linjer. 454 00:19:03,710 --> 00:19:05,626 Ikke ulig, hvad jeg var gør, når jeg skrev 455 00:19:05,626 --> 00:19:08,380 pseudokode på den gule dokument tidligere til binær søgning, 456 00:19:08,380 --> 00:19:09,580 til at søge en telefonbog. 457 00:19:09,580 --> 00:19:11,810 >> Og så, hvis du ville at gå til en anden linje, 458 00:19:11,810 --> 00:19:15,780 du ville bogstaveligt skrive, gå til 10, eller gå til 20. 459 00:19:15,780 --> 00:19:19,110 Og hvis du skriver linjer, de konvention var at gøre, det er linje 10, 460 00:19:19,110 --> 00:19:22,545 dette er linie 20, er dette linie 30, 40, med intet i mellem, 461 00:19:22,545 --> 00:19:25,170 derved give dig selv lidt plads hvis du beslutter, vent et øjeblik, 462 00:19:25,170 --> 00:19:27,230 Jeg burde have tilføjet nogle mere kode et sted. 463 00:19:27,230 --> 00:19:30,960 Du havde stadig slags ni chancer for at klemme det i mellem dit program 464 00:19:30,960 --> 00:19:33,020 før du var nødt til manuelt omnummerere alt. 465 00:19:33,020 --> 00:19:35,470 >> Så dette er slags hvad jeg mener når jeg siger verden er kommet op 466 00:19:35,470 --> 00:19:36,303 med en nye funktioner. 467 00:19:36,303 --> 00:19:39,364 Et eller andet sted undervejs nogen indså, dreng det er dumt. 468 00:19:39,364 --> 00:19:41,280 Dette er blot skabe arbejde for programmøren. 469 00:19:41,280 --> 00:19:44,200 Så han eller hun lige slags bygget et nyt lag oven på det 470 00:19:44,200 --> 00:19:46,910 så du ikke behøver at bekymre dig om, hvad line numre din kode 471 00:19:46,910 --> 00:19:48,570 er faktisk på. 472 00:19:48,570 --> 00:19:54,940 >> Så når du måske vælger et sprog eller en anden? 473 00:19:54,940 --> 00:19:56,690 Nå, hvilke af disse sprog gør du har tendens 474 00:19:56,690 --> 00:20:00,960 at høre om de mest din egen verden i disse dage? 475 00:20:00,960 --> 00:20:02,680 Lad os falde 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å lad mig farve. 480 00:20:10,310 --> 00:20:13,190 Har vi vores anden farve eller andet sted? 481 00:20:13,190 --> 00:20:14,550 Så C #. 482 00:20:14,550 --> 00:20:16,390 Og hvad ved du om C #? 483 00:20:16,390 --> 00:20:18,940 Alt foråret til at tænke på? 484 00:20:18,940 --> 00:20:20,707 >> PUBLIKUM: Det er et programmeringssprog. 485 00:20:20,707 --> 00:20:22,540 DAVID J. MALAN: Det er en programmeringssprog. 486 00:20:22,540 --> 00:20:23,200 OKAY. 487 00:20:23,200 --> 00:20:24,690 Det er sandt. 488 00:20:24,690 --> 00:20:26,440 Så vi taler om C #. 489 00:20:26,440 --> 00:20:29,230 C # tendens til at blive anvendt i Windows-miljøer, 490 00:20:29,230 --> 00:20:33,550 så hvis du skriver Microsoft-software til Windows, er C # meget almindeligt anvendt, 491 00:20:33,550 --> 00:20:38,560 uanset om det er til desktop-software, eller selv telefonens software på Windows-telefoner, 492 00:20:38,560 --> 00:20:41,820 hvis du har haft dem, eller på internettet selv også. 493 00:20:41,820 --> 00:20:44,642 Og i virkeligheden, måske Kareem ovennævnte ASP tidligere? 494 00:20:44,642 --> 00:20:46,600 Så der er også disse ting kaldet rammer, 495 00:20:46,600 --> 00:20:51,040 som vi kan præsentere i forlængelse. 496 00:20:51,040 --> 00:20:53,280 Rammer, ligesom 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 det er kode og en måde at programmere 499 00:20:59,880 --> 00:21:03,490 der generelt gør det lettere at skrive web-baserede applikationer. 500 00:21:03,490 --> 00:21:07,530 Med andre ord ville det være super, super irriterende at skrive en hjemmeside 501 00:21:07,530 --> 00:21:09,469 på det sprog C, der vi har set før, 502 00:21:09,469 --> 00:21:12,510 fordi du ville have til at bruge print + F, du ville have til at bruge det pågældende søgeord 503 00:21:12,510 --> 00:21:13,940 "Main" og de krøllede parenteser. 504 00:21:13,940 --> 00:21:16,720 En masse mystiske syntaks og tilgang til gennemførelse 505 00:21:16,720 --> 00:21:19,195 noget, der er ret kompleks. 506 00:21:19,195 --> 00:21:20,240 En webside. 507 00:21:20,240 --> 00:21:23,800 >> Og så andre sprog har udviklet sig at gøre den slags ting lettere. 508 00:21:23,800 --> 00:21:26,890 Og til gengæld har folk kommet op med rammer, en slags værktøjer 509 00:21:26,890 --> 00:21:30,520 at du kan bruge, der gør det endnu nemmere at skrive websider. 510 00:21:30,520 --> 00:21:33,070 Så for eksempel, for at gøre dette langt mere konkret, 511 00:21:33,070 --> 00:21:36,390 lad mig åbne op bare en tekstfil et øjeblik. 512 00:21:36,390 --> 00:21:39,380 >> Og du måske husker i går at vi sagde noget 513 00:21:39,380 --> 00:21:41,210 lignende, er dette en webside. 514 00:21:41,210 --> 00:21:42,300 HTML. 515 00:21:42,300 --> 00:21:45,340 Luk HTML. 516 00:21:45,340 --> 00:21:48,500 Lad mig springe hovedet og bare gøre kroppen her. 517 00:21:48,500 --> 00:21:52,810 Antag, at jeg ønskede at skrive ikke "Hello World", 518 00:21:52,810 --> 00:21:57,020 men "Hej David," hvor David er navn på den aktuelt indloggede bruger. 519 00:21:57,020 --> 00:22:00,270 Hvad noget som ASP vil gøre, eller JSP-- 520 00:22:00,270 --> 00:22:04,060 som er Java server Og den slags eller en række andre rammer 521 00:22:04,060 --> 00:22:05,435 er de ikke er sprog, per se. 522 00:22:05,435 --> 00:22:07,351 De er ligesom ekstra software, som du 523 00:22:07,351 --> 00:22:10,490 ville installere i dit miljø der bare gør det lettere at programmere. 524 00:22:10,490 --> 00:22:15,670 >> Så for eksempel, snarere end at gøre noget som "goddag, printf (" David ")" 525 00:22:15,670 --> 00:22:17,510 eller noget, der er slags co-mingling-- 526 00:22:17,510 --> 00:22:20,840 den slags kode, vi har set before-- du ville gøre noget meget enklere, 527 00:22:20,840 --> 00:22:26,190 lignende "name%." 528 00:22:26,190 --> 00:22:28,660 Og så disse rammer, ligesom ASP-- og jeg 529 00:22:28,660 --> 00:22:31,212 kan ikke huske om jeg får syntaksen lige ret for ASP. 530 00:22:31,212 --> 00:22:33,100 JSP er en little-- er denne ret? 531 00:22:33,100 --> 00:22:36,500 >> Så med ASP, er dette sortering af en speciel syntaks 532 00:22:36,500 --> 00:22:39,830 at nogle udviklere har besluttet dette kan hjælpe folk ud. 533 00:22:39,830 --> 00:22:43,000 Og jeg kan udtrykke mere kortfattet pladsholdere, f.eks. 534 00:22:43,000 --> 00:22:47,187 Ligesom sætte en værdi her, hvor denne værdi navn er ikke N-A-M-E, 535 00:22:47,187 --> 00:22:48,520 det er nogle lagret der. 536 00:22:48,520 --> 00:22:50,728 Så "navn" i denne sammenhæng, vi ville kalde en variabel. 537 00:22:50,728 --> 00:22:52,760 Algebra har variabler ligesom x, og y og z. 538 00:22:52,760 --> 00:22:56,021 Programmører bruge variabler, der er mere beskrivende end 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" ville bogstaveligt være en form hukommelse beholder til noget som 541 00:23:01,020 --> 00:23:05,440 D-A-V-I-D, for mit navn, eller hvem ellers er logget ind på hjemmesiden. 542 00:23:05,440 --> 00:23:09,300 >> Og så dette er den slags bekvemmelighed du får med visse miljøer. 543 00:23:09,300 --> 00:23:14,220 Så C # og noget ASP ville meget almindeligvis anvendes i en Windows verden, 544 00:23:14,220 --> 00:23:16,460 hverken for sin desktop software eller web-server, 545 00:23:16,460 --> 00:23:21,490 især hvis dine servere er igen kører Microsoft Windows og Microsoft 546 00:23:21,490 --> 00:23:25,810 IIS-- eller Internet Information Server, hvis jeg får akronymet right-- 547 00:23:25,810 --> 00:23:27,800 som er Microsofts webserver. 548 00:23:27,800 --> 00:23:30,820 >> Så hvad andre sprog er folk bekendt med, 549 00:23:30,820 --> 00:23:35,228 eller har du hørt om oftere end ikke? 550 00:23:35,228 --> 00:23:38,262 >> PUBLIKUM: Jeg ved, at Pythons slags en populær [uhørligt]. 551 00:23:38,262 --> 00:23:39,470 DAVID J. MALAN: Meget populær. 552 00:23:39,470 --> 00:23:45,490 Så Python her bruges meget ofte i videnskabelige programmer eller data 553 00:23:45,490 --> 00:23:48,330 videnskab, hvor du har en masse af data, som du vil analysere 554 00:23:48,330 --> 00:23:50,413 og du ønsker at bruge en programmeringssprog for det. 555 00:23:50,413 --> 00:23:53,640 R kan almindeligvis anvendes til dette samt, i en statistisk sammenhæng. 556 00:23:53,640 --> 00:23:56,400 Men Python har så mange funktioner indbygget. 557 00:23:56,400 --> 00:23:58,850 Så mange ekstra biblioteker, som folk siger. 558 00:23:58,850 --> 00:24:01,260 >> Biblioteker er bare samlinger kode, som andre mennesker 559 00:24:01,260 --> 00:24:04,218 skrev, at du kan bruge, så du behøver ikke at genopfinde disse hjul. 560 00:24:04,218 --> 00:24:07,430 Og så Python er meget almindeligt bruges i data science applikationer. 561 00:24:07,430 --> 00:24:09,930 Men det er også meget almindeligt bruges i web-applikationer. 562 00:24:09,930 --> 00:24:12,780 Du kan implementere en dynamisk websted ved hjælp af Python. 563 00:24:12,780 --> 00:24:15,210 >> Og ved dynamisk hjemmeside, jeg betyder ikke bare statisk indhold 564 00:24:15,210 --> 00:24:19,530 ligesom vi skabte i går, ved bare svært kodning i den latinske tekst 565 00:24:19,530 --> 00:24:21,820 og andre sådanne ting, men derimod evnen 566 00:24:21,820 --> 00:24:25,367 at logge på, evnen til at købe noget, evnen tjek 567 00:24:25,367 --> 00:24:26,950 med dine indkøbsvogne eller lignende. 568 00:24:26,950 --> 00:24:30,590 Alt dette kræver dynamik og du brug for nogle sprog som en af ​​dem. 569 00:24:30,590 --> 00:24:35,060 >> PUBLIKUM: Så betyder Python har sin egen udvidelse, der ligner lide [uhørligt] 570 00:24:35,060 --> 00:24:36,060 DAVID J. MALAN: Det gør. 571 00:24:36,060 --> 00:24:42,250 Så i verden af ​​Python, Django er en meget populær ramme for Python. 572 00:24:42,250 --> 00:24:46,520 WSGI er en anden mekanisme, der er slags forskellig fra dette 573 00:24:46,520 --> 00:24:47,640 men lignende i ånden. 574 00:24:47,640 --> 00:24:52,200 Det er en add-on, der giver dig at køre Python kode på en server. 575 00:24:52,200 --> 00:24:53,950 Der er other-- ja. 576 00:24:53,950 --> 00:24:57,250 Så vil disse vi kalder rammer. 577 00:24:57,250 --> 00:24:58,870 Og det er en lille smule af et misbrug. 578 00:24:58,870 --> 00:25:00,920 Dette er mere af en web-server teknologi. 579 00:25:00,920 --> 00:25:04,610 Men vi vil holde det enkelt og sætte det i denne kolonne alligevel. 580 00:25:04,610 --> 00:25:05,780 >> OKAY. 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 anden thing-- og faktisk, lad mig med at flytte det til sin egen søjle, 584 00:25:12,100 --> 00:25:17,000 fordi jeg ville råbe på mig selv for sætte dem i samme spand. 585 00:25:17,000 --> 00:25:24,910 Lad os sætte dette i server funktioner, lad os sige. 586 00:25:24,910 --> 00:25:26,710 Det er ikke en teknisk term. 587 00:25:26,710 --> 00:25:29,180 >> Så her er vi måske WSGI. 588 00:25:29,180 --> 00:25:32,580 Der er CGI, hvilket er en ældre teknik til betjener op sprog 589 00:25:32,580 --> 00:25:35,890 ligesom Perl eller PHP, eller nogle andre. 590 00:25:35,890 --> 00:25:39,000 Igen, jeg har nævnt disse vilkår ikke så meget at slags ingrain dem, 591 00:25:39,000 --> 00:25:40,749 men så hvis du ser dem er det noget 592 00:25:40,749 --> 00:25:42,130 du bare google for at læse mere. 593 00:25:42,130 --> 00:25:46,110 Der er ingen reel saft til nogle af disse ting. 594 00:25:46,110 --> 00:25:47,850 >> Men lad os gå tilbage til sprogene. 595 00:25:47,850 --> 00:25:50,499 Vi talte om C #, Python. 596 00:25:50,499 --> 00:25:52,790 Hvad kan du bruge til web programmering i disse dage? 597 00:25:52,790 --> 00:25:54,302 Lad os fokusere på at stille. 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 lad os vende tilbage til. 601 00:25:57,413 --> 00:25:59,310 Så PHP meget almindeligt anvendt. 602 00:25:59,310 --> 00:26:01,560 PHP tendens til at få en dårlig rap. 603 00:26:01,560 --> 00:26:05,790 Det startede som et sprog implementeret af folk, der måske ikke var nødvendigvis 604 00:26:05,790 --> 00:26:06,960 det bedste sprog designere. 605 00:26:06,960 --> 00:26:11,290 Og så du kan læse alle mulige artikler online om hvordan dårlig PHP er. 606 00:26:11,290 --> 00:26:13,660 Og desværre, det er en manifestation, delvist, 607 00:26:13,660 --> 00:26:18,727 af bare de religiøse debatter at bryde ud blandt programmører. 608 00:26:18,727 --> 00:26:20,560 Og det er noget værd at holde sig for øje, 609 00:26:20,560 --> 00:26:24,410 fra et forretningsmæssigt synspunkt, at det er meget nemt for tekniske mennesker 610 00:26:24,410 --> 00:26:26,900 at få alle arbejdet op med deres meninger om visse ting. 611 00:26:26,900 --> 00:26:29,566 Og det betyder ikke nødvendigvis, at den, råben højest 612 00:26:29,566 --> 00:26:31,870 eller med den stærkeste, vredeste mening er rigtigt. 613 00:26:31,870 --> 00:26:34,100 En masse gange, det virkelig bare ligegyldigt. 614 00:26:34,100 --> 00:26:37,970 >> Og så folk er bare argumenterer uanset deres egne fordomme eller komfort zoner er. 615 00:26:37,970 --> 00:26:40,760 Og så bør du holde det i tankerne, når de foretager 616 00:26:40,760 --> 00:26:42,622 en beslutning, der bare fordi nogen siger 617 00:26:42,622 --> 00:26:45,080 dette er det rigtige sprog for det job, der kan være sandt, 618 00:26:45,080 --> 00:26:48,350 men det også bare kan være det er den rigtige sprog inden for deres egne evner 619 00:26:48,350 --> 00:26:49,267 indstille eller komfort zone. 620 00:26:49,267 --> 00:26:52,600 Hvilket er ikke dårligt, men du bør indse at der kan være nogle sammenhæng der. 621 00:26:52,600 --> 00:26:54,440 Der er nogle objektivt forkerte udsagn, 622 00:26:54,440 --> 00:26:59,080 som C er det forkerte sprog til at bruge disse dage for at gennemføre hjemmesider 623 00:26:59,080 --> 00:27:00,520 næsten altid. 624 00:27:00,520 --> 00:27:03,370 Men det er ikke urimeligt at sige, at nogen af ​​disse 625 00:27:03,370 --> 00:27:05,700 er forkert, at vi har kredset hidtil. 626 00:27:05,700 --> 00:27:08,180 >> PHP har været igennem mange versioner. 627 00:27:08,180 --> 00:27:11,310 Så sprog tendens til at have udgave tal knyttet til dem. 628 00:27:11,310 --> 00:27:15,390 PHP er op til, tror jeg, version 7 nu, så det har været rundt i temmelig lang tid. 629 00:27:15,390 --> 00:27:18,270 Og som sprog får nyere, de ofte får nye funktioner. 630 00:27:18,270 --> 00:27:22,510 Men du skal være opmærksomme på dette fordi hvis din hjemmeside er blevet 631 00:27:22,510 --> 00:27:27,539 implementeret i version 7 af PHP men du forsøger at køre din hjemmeside, 632 00:27:27,539 --> 00:27:29,830 eller måske du har outsourcet udviklingen af ​​din kode 633 00:27:29,830 --> 00:27:31,960 til en anden, og de mail den til dig, eller sende den til dig 634 00:27:31,960 --> 00:27:33,960 og de siger, her, sætte dette på din webserver, 635 00:27:33,960 --> 00:27:36,610 hvis webserveren er et par år outdated-- uanset om det er 636 00:27:36,610 --> 00:27:39,465 din egen server eller en web host-- det kan faktisk ikke køre. 637 00:27:39,465 --> 00:27:41,340 Så det er disse former af ting, at nogen 638 00:27:41,340 --> 00:27:44,067 skal være opmærksomme på ved opgradering et websted 639 00:27:44,067 --> 00:27:45,650 eller gennemføre 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 en interessant én i, at den generelt 642 00:27:50,570 --> 00:27:53,030 klientsiden, som vi vil se efter pausen, hvilket 643 00:27:53,030 --> 00:27:55,000 betyder, at det kører i brugerens browser. 644 00:27:55,000 --> 00:27:58,400 Men du kan også køre JavaScript disse dage 645 00:27:58,400 --> 00:28:03,450 bruge noget, der hedder Node.js, hvor node.js 646 00:28:03,450 --> 00:28:08,000 er en mekanisme til drift JavaScript-kode server side, 647 00:28:08,000 --> 00:28:12,430 stedet for at bruge Python, eller PHP, eller andre sådanne sprog. 648 00:28:12,430 --> 00:28:17,820 >> JavaScript er særlig velegnet for chat programmer og real tid 649 00:28:17,820 --> 00:28:22,050 applikationer, mens PHP er ikke en stor sprog til at gennemføre noget 650 00:28:22,050 --> 00:28:25,050 ligesom en chat server, hvor brugerne holde forbindelsen til det konstant. 651 00:28:25,050 --> 00:28:28,760 PHP er mere af et besøg mig gang, kom tilbage et resultat, 652 00:28:28,760 --> 00:28:31,790 og klik derefter på et andet link nogle sekunder eller minutter fra nu. 653 00:28:31,790 --> 00:28:36,020 Ud fra følgende betragtninger node.js og JavaScript kan være anvendes mere for vedvarende forbindelser. 654 00:28:36,020 --> 00:28:40,840 Andre sprog, som du har mistanke er almindeligt anvendt til web kram? 655 00:28:40,840 --> 00:28:42,800 >> PUBLIKUM: Ville jQuery være en ramme? 656 00:28:42,800 --> 00:28:44,050 >> DAVID J. MALAN: Godt spørgsmål. 657 00:28:44,050 --> 00:28:44,700 Ingen. 658 00:28:44,700 --> 00:28:51,210 Jeg ville kalde jQuery et bibliotek, hvor igen et bibliotek er bare en masse kode 659 00:28:51,210 --> 00:28:53,250 at nogen har ellers skrevet, at generelt 660 00:28:53,250 --> 00:28:56,390 løser nogle problemer, som gør det forhåbentlig lettere 661 00:28:56,390 --> 00:28:57,760 for dig at gøre dit job. 662 00:28:57,760 --> 00:29:00,820 Og lad mig gøre et eksempel på dette i forbindelse med nettet. 663 00:29:00,820 --> 00:29:03,910 >> I forbindelse med internettet er der dette sprog, JavaScript, 664 00:29:03,910 --> 00:29:06,690 at vi vil se senere, hvor du kan sige noget lignende denne-- 665 00:29:06,690 --> 00:29:10,060 "Document.getElementById." 666 00:29:10,060 --> 00:29:11,490 Og hvad gjorde jeg kalder det i går? 667 00:29:11,490 --> 00:29:16,800 Først tror jeg, var den unikke id jeg gav til et element, der lignede dette. 668 00:29:16,800 --> 00:29:23,110 "P id =" første ">" og derefter havde vi lignende "lorem ipsum" et cetera. 669 00:29:23,110 --> 00:29:28,210 Så hvis jeg var at skrive et program i JavaScript eller anden måde manipulere, 670 00:29:28,210 --> 00:29:30,830 ændre de websider, vi legede med i går, 671 00:29:30,830 --> 00:29:33,010 Jeg vil bruge denne fremhævede linje kode 672 00:29:33,010 --> 00:29:38,700 at få denne særlige uddrag af HTML fra min side, at bestemt node, 673 00:29:38,700 --> 00:29:39,680 som vi vil kalde det. 674 00:29:39,680 --> 00:29:44,540 >> Men i jQuery, i stedet for at skrive dette, som er rå JavaScript code-- 675 00:29:44,540 --> 00:29:48,870 lige ud af kassen, det er hvordan du skrive det-- du vil i stedet bare sige, 676 00:29:48,870 --> 00:29:50,260 "#først." 677 00:29:50,260 --> 00:29:52,330 Det svarer. 678 00:29:52,330 --> 00:29:56,040 Og så kun er baseret på dette meget mystiske eksempel, hvad måske 679 00:29:56,040 --> 00:29:57,870 er argumentet for at bruge jQuery? 680 00:29:57,870 --> 00:30:01,390 681 00:30:01,390 --> 00:30:05,111 Hvorfor skulle en udvikler bruge et bibliotek som jQuery, baseret på denne isolerede eksempel 682 00:30:05,111 --> 00:30:05,610 måske? 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 hurtigere at skrive. 687 00:30:09,070 --> 00:30:11,690 Den kontrapunkt er at det ser mere skræmmende. 688 00:30:11,690 --> 00:30:13,540 Du kan ikke rigtig læse det venstre til højre. 689 00:30:13,540 --> 00:30:16,730 Faktisk, for det er for det meste tegnsætning nu i stedet for faktiske ord, 690 00:30:16,730 --> 00:30:20,950 Jeg kan slags udlede, 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 virkelig bruge sådan aliaser fra denne ting her. 693 00:30:26,750 --> 00:30:27,680 >> Så det er en afvejning. 694 00:30:27,680 --> 00:30:30,763 Der er en raffinement, der kommer ofte med anvendelse af biblioteker, især 695 00:30:30,763 --> 00:30:31,440 ligesom jQuery. 696 00:30:31,440 --> 00:30:34,700 Men virkeligheden er jQuery har form af blive en de facto standard, 697 00:30:34,700 --> 00:30:38,110 således at næsten alle disse dag, der skriver JavaScript-kode 698 00:30:38,110 --> 00:30:41,520 bruger jQuery eller noget lide det, og ikke længere skriver 699 00:30:41,520 --> 00:30:45,200 sådan en ordrige udtryk som dette, fordi igen, menneskeheden 700 00:30:45,200 --> 00:30:47,850 har lært, wow, det var slags en forspildt chance 701 00:30:47,850 --> 00:30:49,030 at gøre vores liv lettere. 702 00:30:49,030 --> 00:30:51,140 Så mennesker gøre deres liv lettere. 703 00:30:51,140 --> 00:30:53,310 Godt spørgsmål. 704 00:30:53,310 --> 00:30:55,870 >> Andre sprog til at overveje. 705 00:30:55,870 --> 00:30:58,660 Jeg vil sige blandt denne liste Ruby er meget populært. 706 00:30:58,660 --> 00:31:01,310 Og så i en verden af Ruby, der er en ramme 707 00:31:01,310 --> 00:31:03,590 kaldet Rails, hvilket er meget populært. 708 00:31:03,590 --> 00:31:06,880 Så Ruby on Rails er et almindeligt anvendt udtryk. 709 00:31:06,880 --> 00:31:10,330 Også i denne verden, lad mig cirkel Java til web kram, 710 00:31:10,330 --> 00:31:14,160 hvor i verden af ​​Java du måtte have JSP eller Java 711 00:31:14,160 --> 00:31:18,450 Servlets, som er en fælles teknologi. 712 00:31:18,450 --> 00:31:22,560 Og dette er blot igen måder at bruge at sproget i et servermiljø. 713 00:31:22,560 --> 00:31:23,520 >> Så hvad betyder det? 714 00:31:23,520 --> 00:31:25,770 Hvis du har fået en fysisk server, ville du bogstaveligt talt 715 00:31:25,770 --> 00:31:30,510 downloade webserversoftware og installere det på en sådan måde 716 00:31:30,510 --> 00:31:33,510 at du har støtte til en af disse rammer, som du 717 00:31:33,510 --> 00:31:37,260 kunne til gengæld bruge en eller flere af disse sprog. 718 00:31:37,260 --> 00:31:40,260 Og i virkeligheden, hvis du tilmelder dig som en web vært eller nogle af skyen 719 00:31:40,260 --> 00:31:41,968 tjenester, vi talte om i går, ofte 720 00:31:41,968 --> 00:31:44,885 de ting bare kommer med maskinens konfiguration for dig. 721 00:31:44,885 --> 00:31:46,510 Du behøver ikke at sætte dette op manuelt. 722 00:31:46,510 --> 00:31:51,040 Men hvis du gjorde, det er her den rolle af systemadministratoren, så at sige, 723 00:31:51,040 --> 00:31:51,860 kommer i spil. 724 00:31:51,860 --> 00:31:54,151 Han eller hun rent faktisk ville gøre den slags ting for dig, 725 00:31:54,151 --> 00:31:58,510 eller den såkaldte webmaster ville ofte gøre dette for dig. 726 00:31:58,510 --> 00:31:59,010 Okay. 727 00:31:59,010 --> 00:32:03,300 Eventuelle spørgsmål om nogle af disse her? 728 00:32:03,300 --> 00:32:06,690 Eller muligheder på alle til at spørge om sprog? 729 00:32:06,690 --> 00:32:09,500 Frameworks? 730 00:32:09,500 --> 00:32:11,530 Så lad mig introducere bare en anden bibliotek 731 00:32:11,530 --> 00:32:13,150 det er også meget almindeligt i disse dage. 732 00:32:13,150 --> 00:32:15,340 Denne liste kunne blive ved i det uendelige. 733 00:32:15,340 --> 00:32:19,140 >> Og dette bibliotek er lidt begyndt at falde i unåde. 734 00:32:19,140 --> 00:32:19,850 Det har været omkring. 735 00:32:19,850 --> 00:32:22,040 Det blev udbredt af Twitter i nogen tid. 736 00:32:22,040 --> 00:32:24,470 Og nu masser af hjemmesider, masser af udviklere bruger det. 737 00:32:24,470 --> 00:32:26,629 Men nye ting kommer ud og kommer sammen. 738 00:32:26,629 --> 00:32:29,420 Men lad mig bare give dig en følelse af, hvad det vil sige at bruge et bibliotek. 739 00:32:29,420 --> 00:32:32,250 Så igen, JavaScript er en meget populær sprog. 740 00:32:32,250 --> 00:32:35,340 CSS eller Cascading Style Sheets, vi talte om i går. 741 00:32:35,340 --> 00:32:36,600 Det er også er allestedsnærværende. 742 00:32:36,600 --> 00:32:40,130 Ingen gør en webside i dag uden brug af HTML og CSS minimalt. 743 00:32:40,130 --> 00:32:42,510 Men det er ikke altid let at gøre visse ting. 744 00:32:42,510 --> 00:32:46,281 >> Og så lad mig gå til getbootstrap.com. 745 00:32:46,281 --> 00:32:46,780 Ups. 746 00:32:46,780 --> 00:32:48,280 Det er ikke, hvordan vi staver. 747 00:32:48,280 --> 00:32:52,410 Getbootstrap.com, som kommer til at føre mig 748 00:32:52,410 --> 00:32:56,140 til destinationssiden for dette bibliotek. 749 00:32:56,140 --> 00:32:59,720 Så de generøst kalder selv en ramme, der 750 00:32:59,720 --> 00:33:02,032 er slags slags fair, men jeg vil stadig kalde det 751 00:33:02,032 --> 00:33:03,490 mere af et bibliotek end en ramme. 752 00:33:03,490 --> 00:33:05,760 Men disse er blot diskutabel semantik. 753 00:33:05,760 --> 00:33:12,360 Lad mig gå til deres fane CSS og lad mig gå til noget som dette. 754 00:33:12,360 --> 00:33:15,450 >> Så huske, hvad vores formularer så som i går på Cloud9? 755 00:33:15,450 --> 00:33:16,370 Det var temmelig grim. 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å af misligholdelse. Og alt var virkelig 758 00:33:20,420 --> 00:33:22,420 formateret ganske messily. 759 00:33:22,420 --> 00:33:26,940 Så hvis du ønsker dine webformularer til at se lidt nicer-- lade mig zoome ind her. 760 00:33:26,940 --> 00:33:30,050 >> Og ved pænere jeg virkelig bare betyde meget nitpicky æstetik. 761 00:33:30,050 --> 00:33:35,390 Så læg mærke til hvordan den e-mail boks der har en afrundet rektangulære hjørner til det. 762 00:33:35,390 --> 00:33:37,010 Så det er lidt renere der. 763 00:33:37,010 --> 00:33:40,770 Bemærk, at ordet e-mail er der, indtil jeg begynder at skrive 764 00:33:40,770 --> 00:33:41,797 og så går det væk. 765 00:33:41,797 --> 00:33:43,130 Så det er en fin lille funktion. 766 00:33:43,130 --> 00:33:46,046 Bemærk hvordan de ting er slags glødende pænt, som nogle af disse du 767 00:33:46,046 --> 00:33:49,069 få gratis fra din browser, men nogle af disse er også biblioteker, 768 00:33:49,069 --> 00:33:51,360 kode, som andre mennesker har skrevet, at give dig denne. 769 00:33:51,360 --> 00:33:53,480 >> Noget som dette giver mig min adgangskode. 770 00:33:53,480 --> 00:33:58,480 Denne knap er lidt mere sexet end den misligholdelse. Meget meget på mode lige nu. 771 00:33:58,480 --> 00:34:03,570 Lige siden iOS 7 eller deromkring, verden har fået meget fladt, 772 00:34:03,570 --> 00:34:09,000 mens verden før havde masser af skyggeeffekter, masser 773 00:34:09,000 --> 00:34:11,040 af refleksioner over ikoner. 774 00:34:11,040 --> 00:34:14,170 Meget gerne i tøj verden, der er modetrends der kommer og går. 775 00:34:14,170 --> 00:34:16,190 Nu er alt er fladt på din telefon. 776 00:34:16,190 --> 00:34:19,159 >> Faktisk knapper på din iPhone er nu bare blå links. 777 00:34:19,159 --> 00:34:21,000 Der er ikke ofte endda cirkulære knapper. 778 00:34:21,000 --> 00:34:22,791 Så disse er blot ting at gå ind og ud 779 00:34:22,791 --> 00:34:26,659 af mode, og så dette er, hvordan du kan lave en mere moderne leder webformular. 780 00:34:26,659 --> 00:34:27,159 Knapper. 781 00:34:27,159 --> 00:34:29,190 Så Bootstrap har masser af smukke knapper. 782 00:34:29,190 --> 00:34:33,639 Så hvis du ønsker blå knapper, grønne knapper, blå, orange, rød. 783 00:34:33,639 --> 00:34:35,840 Bootstrap gør det nemmere at gøre disse ting. 784 00:34:35,840 --> 00:34:38,131 Det er den slags ting at du kunne absolut 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, hvad Bootstrap ville har du skal gøre er noget som dette. 787 00:34:44,840 --> 00:34:48,960 >> Hvis du ønsker en button-- viser sig dette er en HTML-tag vi ikke bruge yesterday-- 788 00:34:48,960 --> 00:34:53,070 og du vil have det til at se som denne grønne knap, 789 00:34:53,070 --> 00:34:57,380 du bogstaveligt talt bare give det en klasse, som vi gjorde taler om i går, 790 00:34:57,380 --> 00:34:59,710 af "BTN Btn-succes." 791 00:34:59,710 --> 00:35:00,971 >> Hvorfor disse ord? 792 00:35:00,971 --> 00:35:03,470 Twitter, forfatterne af Bootstrap, kom op med disse ord. 793 00:35:03,470 --> 00:35:05,428 De kunne have kaldt dem noget, de ønsker. 794 00:35:05,428 --> 00:35:08,480 Men hvad du får nu, er en anden på Twitter, i dette tilfælde, 795 00:35:08,480 --> 00:35:12,360 har regnet ud, hvordan kan du lave en knappen ser pæn og ren og grøn. 796 00:35:12,360 --> 00:35:15,580 De pakkede op denne funktionalitet i en CSS-klasse, kaldet "btn" 797 00:35:15,580 --> 00:35:19,790 og "btn-succes", så at nogen af ​​os kan nu bruge det uden at tænke over 798 00:35:19,790 --> 00:35:20,290 det. 799 00:35:20,290 --> 00:35:22,880 Så de har abstraheret væk begrebet en grøn knap 800 00:35:22,880 --> 00:35:25,320 så vi ikke behøver at bekymre sig om gennemføre det selv. 801 00:35:25,320 --> 00:35:28,520 Vi kan faktisk fokusere på at gennemføre ting af interesse for os. 802 00:35:28,520 --> 00:35:30,902 >> Hvis vi rulle ned her. 803 00:35:30,902 --> 00:35:32,110 Fejlmeddelelser på skærmen. 804 00:35:32,110 --> 00:35:35,440 Nogle gange du vil have lidt besked til at blive vist på toppen af ​​browseren. 805 00:35:35,440 --> 00:35:39,729 Enhver af os kunne gøre dette med nogle indsats, efter gårsdagens lektion 806 00:35:39,729 --> 00:35:40,770 men hvorfor ville du gider? 807 00:35:40,770 --> 00:35:42,540 Det er sådan en uinteressant æstetiske detaljer. 808 00:35:42,540 --> 00:35:44,248 Lad os stå på skuldrene af Bootstrap 809 00:35:44,248 --> 00:35:49,440 og lad dem give os ting som dette, hvor vi bogstaveligt, for at få en rød boks, 810 00:35:49,440 --> 00:35:53,220 bare nødt til at gøre et stykke tag med en klasse of-- ked af det. 811 00:35:53,220 --> 00:35:57,307 "Bg-fare" ville give os denne rødlig boks i stedet. 812 00:35:57,307 --> 00:35:59,140 Lad os nu gå til mere interessante ting. 813 00:35:59,140 --> 00:36:02,950 Hvis jeg går tilbage til toppen af denne side og gå til komponenter, 814 00:36:02,950 --> 00:36:05,380 nu verden bliver mere interessant. 815 00:36:05,380 --> 00:36:08,826 For eksempel, meget almindelig er drop down menuer som denne. 816 00:36:08,826 --> 00:36:11,560 Dette ville være et absolut smerte at gennemføre. 817 00:36:11,560 --> 00:36:13,610 Og det var ikke så længe siden, vi programmører 818 00:36:13,610 --> 00:36:16,490 skulle gennemføre disse former for menuer fra bunden. 819 00:36:16,490 --> 00:36:20,800 >> Men det er sådan en fælles paradigme at bibliotekerne som Bootstrap 820 00:36:20,800 --> 00:36:25,230 bare give dig mulighed for at gøre en drop down menu langt, langt lettere. 821 00:36:25,230 --> 00:36:27,850 Der er ingen måde at gøre det, men hvis jeg læser dokumentationen 822 00:36:27,850 --> 00:36:32,100 Jeg vil se, at, OK, jeg skal bruge denne HTML, hvis jeg vil have en drop down menu 823 00:36:32,100 --> 00:36:34,030 der opfører sig sådan. 824 00:36:34,030 --> 00:36:36,690 >> Ligeledes, lad os gå til knappen falde ned. 825 00:36:36,690 --> 00:36:38,470 Så dette er endnu mere avanceret. 826 00:36:38,470 --> 00:36:41,800 Hvis jeg ønsker, at dette at ligne en knap men den lille trekant betyder 827 00:36:41,800 --> 00:36:44,080 Jeg skal klikke på det og få denne menu, dette 828 00:36:44,080 --> 00:36:45,760 er at bruge et sprog kaldet JavaScript. 829 00:36:45,760 --> 00:36:47,470 Og vi kunne alle implementere dette i JavaScript. 830 00:36:47,470 --> 00:36:49,720 Men igen, det er et hjul du ikke ønsker at genopfinde. 831 00:36:49,720 --> 00:36:52,700 Du vil bare tage det ud hylden bibliotek til dette. 832 00:36:52,700 --> 00:36:58,145 >> Lad os gå til noget ligesom fremskridt barer. 833 00:36:58,145 --> 00:36:59,770 Så noget som dette er slags cool. 834 00:36:59,770 --> 00:37:02,910 Hvis du nogensinde har set en fremgang bar flytter hen over skærmen, 835 00:37:02,910 --> 00:37:06,380 gennemførelsen, som ofte er blot en spinning-ikon. 836 00:37:06,380 --> 00:37:10,200 Faktisk lige som en sidebemærkning, lad mig gå til Ajax-- hvad er det? 837 00:37:10,200 --> 00:37:10,710 Ajax info? 838 00:37:10,710 --> 00:37:11,720 Ups. 839 00:37:11,720 --> 00:37:13,035 Ajaxinfo. 840 00:37:13,035 --> 00:37:14,800 Lad mig huske adressen. 841 00:37:14,800 --> 00:37:15,820 Sådan der. 842 00:37:15,820 --> 00:37:19,850 >> Så hvis du nogensinde har set nogle animation mens siden indlæses, eller tænker, 843 00:37:19,850 --> 00:37:25,410 eller besparelse, eller skabe noget, du kunne se sådanne animationer som disse. 844 00:37:25,410 --> 00:37:28,800 Så lad os se på noget som denne her, 845 00:37:28,800 --> 00:37:33,550 og lad os vælge en forgrundsfarve af grøn, som føles slags venlige. 846 00:37:33,550 --> 00:37:34,545 Kan jeg klikker på dette? 847 00:37:34,545 --> 00:37:35,500 Kom en. 848 00:37:35,500 --> 00:37:36,000 OKAY. 849 00:37:36,000 --> 00:37:38,930 Vi vil bare gå med rød, fordi det er, hvad 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 nogensinde har set dette på en skærm, hvorved pludselig ser det ud, og derefter 852 00:37:43,940 --> 00:37:47,550 pludselig forsvinder, hvad der er det, der er at gennemføre det? 853 00:37:47,550 --> 00:37:48,970 Nå, det er bare et GIF. 854 00:37:48,970 --> 00:37:52,850 G-I-F. Og dette er en animeret fil, som netop betyder 855 00:37:52,850 --> 00:37:54,327 det er ligesom en gammel skole tegneserie. 856 00:37:54,327 --> 00:37:57,160 Der er bare en masse forskellige rammer, der går [Stammen] 857 00:37:57,160 --> 00:37:58,085 og bare gentage. 858 00:37:58,085 --> 00:38:00,090 Og det er at skabe illusion af bevægelse. 859 00:38:00,090 --> 00:38:03,070 >> Så så snart en side er færdig lastning eller gøre noget, 860 00:38:03,070 --> 00:38:04,610 hvad gør en programmør gøre? 861 00:38:04,610 --> 00:38:07,500 Nå, han eller hun bare skjuler dette billede. 862 00:38:07,500 --> 00:38:11,536 Så alle en statuslinje er der slags ligesom en film, du ser. 863 00:38:11,536 --> 00:38:14,660 Du er slags uvidende om det faktum, at det ikke er faktisk at gøre noget, 864 00:38:14,660 --> 00:38:15,940 det er bare at flytte. 865 00:38:15,940 --> 00:38:19,150 >> Og så, når det er gjort fremskridt, de bare skjule det eller slå det fra. 866 00:38:19,150 --> 00:38:21,115 Og det er alle de magiske der foregår der. 867 00:38:21,115 --> 00:38:22,770 Bootstrap giver dig noget lidt amatør, 868 00:38:22,770 --> 00:38:25,030 hvor du kan faktisk se en procentdel, som det går, 869 00:38:25,030 --> 00:38:27,840 men det er også bare slags af en simpel animation. 870 00:38:27,840 --> 00:38:32,250 >> Lad os se på nogle endelige mere komplekse eksempler her. 871 00:38:32,250 --> 00:38:35,526 Noget som en modal. 872 00:38:35,526 --> 00:38:36,900 Er der nogen der ved, hvad en modal er? 873 00:38:36,900 --> 00:38:39,880 874 00:38:39,880 --> 00:38:42,550 En modal vindue er generelt én, der formodes 875 00:38:42,550 --> 00:38:46,880 at tage kontrol over forgrunden og forhindre dig i at gøre noget andet. 876 00:38:46,880 --> 00:38:50,290 Det tvinger slags brugerens vægt på midten af ​​skærmen, 877 00:38:50,290 --> 00:38:52,290 låse dem ud, typisk, af alt andet. 878 00:38:52,290 --> 00:38:55,830 >> Så hvis jeg lancere denne demo, den Skærmen vil generelt blive grå. 879 00:38:55,830 --> 00:38:57,060 Nå, hvordan gør vi det grå? 880 00:38:57,060 --> 00:38:59,080 Nå, vi sandsynligvis bare ændret baggrundsfarven 881 00:38:59,080 --> 00:39:01,060 ligesom vi gjorde i går eller sådan noget. 882 00:39:01,060 --> 00:39:03,490 Måske er det en overlejring at semi-transparent. 883 00:39:03,490 --> 00:39:06,320 Og nu mærke, at du kan gøre fancy ting som dette. 884 00:39:06,320 --> 00:39:09,930 Så hvis du nogensinde klikker på en knap og ønsker en lille pop ud til at blive vist, 885 00:39:09,930 --> 00:39:10,710 du kan gøre det. 886 00:39:10,710 --> 00:39:12,340 Og så hvem bekymrer sig om all-- ikke? 887 00:39:12,340 --> 00:39:15,791 >> PUBLIKUM: Så med Bootstrap, at få det indarbejdet, 888 00:39:15,791 --> 00:39:21,002 er det så simpelt som som i går vi gjorde siden CSS? 889 00:39:21,002 --> 00:39:21,960 DAVID J. MALAN: Ja. 890 00:39:21,960 --> 00:39:22,835 Rigtig godt spørgsmål. 891 00:39:22,835 --> 00:39:24,480 Lad mig gå til Kom godt i gang. 892 00:39:24,480 --> 00:39:26,090 Og ja. 893 00:39:26,090 --> 00:39:30,920 Alt du skal gøre for at Anvendelse Bootstrap er hovedsagelig kopiere 894 00:39:30,920 --> 00:39:35,910 og indsæt disse tre lange rækker af kode i toppen af ​​din egen web page-- 895 00:39:35,910 --> 00:39:38,892 lederen af ​​din page-- og du er oppe og køre. 896 00:39:38,892 --> 00:39:41,850 Og der er forskellige måder at gøre det, ville men dette være den enkleste. 897 00:39:41,850 --> 00:39:45,190 >> Så hvad er nyttigt om alt dette? 898 00:39:45,190 --> 00:39:47,524 Tja, hvis du ikke er så meget den iværksætter af en hjemmeside 899 00:39:47,524 --> 00:39:50,106 men du forsøger at designe det, eller du ønsker at give nogen 900 00:39:50,106 --> 00:39:53,220 med wire frame diagrammer, så at sige, eller bare kunstners gengivelser af, hvad 901 00:39:53,220 --> 00:39:56,080 du ønsker at gøre, jeg, at dette dag, vil ofte gå til et websted 902 00:39:56,080 --> 00:39:58,660 ligesom Bootstrap, hvor, hvis jeg ønsker at gennemføre something-- 903 00:39:58,660 --> 00:40:02,290 ligesom nylig på campus vi ønskede at gennemføre 904 00:40:02,290 --> 00:40:06,170 et webbaseret værktøj til at navigere Harvards kursuskatalog, 905 00:40:06,170 --> 00:40:08,770 gør det lettere for studerende at gennemse kurser 906 00:40:08,770 --> 00:40:10,930 og tilføje kurser til indkøbsliste, så at sige, 907 00:40:10,930 --> 00:40:13,070 at slags beslutte, hvad de ønskede at tage. 908 00:40:13,070 --> 00:40:16,252 >> Jeg forsøgte at forestille sig for mig selv, hvilke ingredienser ville 909 00:40:16,252 --> 00:40:17,460 vi vil bruge til at bygge denne? 910 00:40:17,460 --> 00:40:19,050 Hvad ville brugergrænsefladen være? 911 00:40:19,050 --> 00:40:22,800 Og bare kigge gennem et site som denne eller andre sådanne bibliotek sites, 912 00:40:22,800 --> 00:40:26,560 du kan få inspiration, fordi wow, Jeg kan bruge denne widget, og denne widget, 913 00:40:26,560 --> 00:40:27,330 og denne widget. 914 00:40:27,330 --> 00:40:29,080 Og så virkelig, hvad programmøren starter 915 00:40:29,080 --> 00:40:32,800 at gøre, især i disse dage i denne mere moderne verden af ​​web-programmering, 916 00:40:32,800 --> 00:40:35,827 er programmering er i stigende grad om ledninger ting sammen. 917 00:40:35,827 --> 00:40:38,910 Slags tage dette fra hylden, dette fra hylden, dette fra hylden, 918 00:40:38,910 --> 00:40:41,954 og du bliver smart én at forbinde alle disse prikker, 919 00:40:41,954 --> 00:40:45,120 men i sidste ende bygge noget ved igen stående på skuldrene af andre, 920 00:40:45,120 --> 00:40:49,370 så du ikke tilbringe en måned gennemføre en dum rullemenu, 921 00:40:49,370 --> 00:40:52,080 der er faktisk svært at gøre, hvis du vil have det til at arbejde på Chrome, 922 00:40:52,080 --> 00:40:55,220 og IE og Firefox, og enhver antal andre browsere. 923 00:40:55,220 --> 00:40:59,060 Det er derfor, der er denne rige kommercielle og open source-software 924 00:40:59,060 --> 00:41:01,220 industrien såvel. 925 00:41:01,220 --> 00:41:06,810 >> PUBLIKUM: Så betyder Bootstrap få opdateret og du skal derefter opdatere dine links? 926 00:41:06,810 --> 00:41:07,820 >> DAVID J. MALAN: Det gør. 927 00:41:07,820 --> 00:41:09,090 Nå, ja, det gør. 928 00:41:09,090 --> 00:41:12,540 Bootstrap er i øjeblikket på versionen 3.3.6. 929 00:41:12,540 --> 00:41:16,720 Og generelt, hvad du ville do-- dette er faktisk værd at nævne. 930 00:41:16,720 --> 00:41:19,200 Der er hvad der er generelt kendt som en semantisk versionering 931 00:41:19,200 --> 00:41:20,160 system i verden. 932 00:41:20,160 --> 00:41:21,320 Ikke alle gør dette. 933 00:41:21,320 --> 00:41:26,410 >> Men hvis du har set versionsnumre der er af formen x.y.z-- 934 00:41:26,410 --> 00:41:30,240 så for eksempel den første version af et program kan være 1.0.0. 935 00:41:30,240 --> 00:41:34,970 Eller hvis det er meget, meget beta eller selv alfa-status, hvilket betyder brug 936 00:41:34,970 --> 00:41:37,620 på egen risiko, er det ikke virkelig klar til prime time, 937 00:41:37,620 --> 00:41:42,080 du kan endda begynde 0.0.1 eller nogle sådanne betegnelse. 938 00:41:42,080 --> 00:41:47,260 Men hvis software starter versionen 1,0, eller ækvivalent 1.0.0, 939 00:41:47,260 --> 00:41:50,530 typisk, hvad der er fælles disse days-- dog ikke omnipresent-- er 940 00:41:50,530 --> 00:41:53,520 hvis en virksomhed eller en enkelte programmør rettelser 941 00:41:53,520 --> 00:41:56,140 nogle fejl i nogle stykke software, der virkelig 942 00:41:56,140 --> 00:42:01,620 var en fejl, hvis korrektion ikke indvirkning dig på all-- det ikke ændrer 943 00:42:01,620 --> 00:42:03,940 programmets adfærd, det bare løser noget 944 00:42:03,940 --> 00:42:06,580 der ikke fungerer properly-- du ville typisk 945 00:42:06,580 --> 00:42:08,890 opdatere z-værdi der. 946 00:42:08,890 --> 00:42:12,900 Hvilket betyder en som Kareem kunne simpelthen gå ind i hans hjemmeside, 947 00:42:12,900 --> 00:42:19,470 blindt ændre versionsnummeret fra 1.0.0 til 1.0.1, gemme det, sende det, 948 00:42:19,470 --> 00:42:21,880 og i teorien ikke at bekymre sig, at han bare er brudt 949 00:42:21,880 --> 00:42:24,430 hans hjemmeside på grund af nogle manglende funktionalitet, 950 00:42:24,430 --> 00:42:25,870 fordi noget andet brød. 951 00:42:25,870 --> 00:42:28,740 >> I mellemtiden, hvis jeg programmør eller nogle selskab 952 00:42:28,740 --> 00:42:35,500 var at gøre nogle betydelige ændring, der tilføjer funktionalitet, 953 00:42:35,500 --> 00:42:40,320 Jeg kunne opdatere os til 1.1.0 fordi jeg er faktisk 954 00:42:40,320 --> 00:42:42,200 ændrer adfærd biblioteket. 955 00:42:42,200 --> 00:42:44,470 Jeg giver dig måske mere funktionalitet. 956 00:42:44,470 --> 00:42:48,490 Endelig, hvis jeg skulle faktisk grundlæggende ændre softwaren, så 957 00:42:48,490 --> 00:42:54,380 meget, at det vil bryde mange brugernes hjemmesider eller applikationer, 958 00:42:54,380 --> 00:42:59,550 så er jeg forpligtet til i denne model, at opgradere overordnede version også, 959 00:42:59,550 --> 00:43:01,059 som er en bryde ændring. 960 00:43:01,059 --> 00:43:03,725 Med andre ord, kunne jeg have ophørte støtte til dem, drop 961 00:43:03,725 --> 00:43:04,350 down menuen. 962 00:43:04,350 --> 00:43:07,790 Så hvis du opgraderer til 2,0, halvdelen din hjemmeside kan stoppe med at arbejde. 963 00:43:07,790 --> 00:43:10,950 Og det er en slags signal til samfundet om, hvad der er 964 00:43:10,950 --> 00:43:13,223 involveret i at gøre en opgradering. 965 00:43:13,223 --> 00:43:16,710 966 00:43:16,710 --> 00:43:18,020 En god mulighed for at rejse. 967 00:43:18,020 --> 00:43:18,718 Andre spørgsmål? 968 00:43:18,718 --> 00:43:21,761 969 00:43:21,761 --> 00:43:22,260 Okay. 970 00:43:22,260 --> 00:43:26,945 Jamen så lad os tage et kig på en sidste emne i dette segment af programmering 971 00:43:26,945 --> 00:43:30,640 af teknologi stakke, nemlig vedrørende mobilt. 972 00:43:30,640 --> 00:43:36,232 >> Så i verden af ​​mobiltelefoner i dag du have-- og iPads, og overflader, 973 00:43:36,232 --> 00:43:37,940 og alle den slags af enheder: du har 974 00:43:37,940 --> 00:43:40,950 en masse valg, når det kommer til at gennemføre 975 00:43:40,950 --> 00:43:47,270 et program eller en hjemmeside for din kundes mobile enheder. 976 00:43:47,270 --> 00:43:51,570 Så bare at angive indlysende, måske i disse dage, 977 00:43:51,570 --> 00:43:54,960 hvad er de platforme til udvikle til i det mobile rum? 978 00:43:54,960 --> 00:43:59,650 Hvilke enheder vil du måske støtte med din app eller hjemmeside? 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-enheder. 982 00:44:01,820 --> 00:44:06,740 Så det betyder iPhone, og at betyder iPad, og måske endda iPod. 983 00:44:06,740 --> 00:44:07,627 Hvad ellers? 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 OKAY. 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 endda Messier because-- og selv Apple er ved at blive rodet. 991 00:44:21,240 --> 00:44:23,960 Ud fra følgende betragtninger engang iPhone var en vis størrelse, 992 00:44:23,960 --> 00:44:26,560 og iPad var en vis størrelse, og iPod var en vis størrelse, nu 993 00:44:26,560 --> 00:44:33,420 vi har iPad Minis, og den tynde dem, og iPhone 6 Plus og 6. 994 00:44:33,420 --> 00:44:34,407 Det er ved at blive noget rod. 995 00:44:34,407 --> 00:44:35,740 Det er blevet Android verden. 996 00:44:35,740 --> 00:44:39,030 >> Og jeg siger dette med slags rullende mine øjne, fordi fra en udviklers 997 00:44:39,030 --> 00:44:41,680 perspektiv er det en smerter i halsen, når 998 00:44:41,680 --> 00:44:45,686 du ikke har Steve Jobs ' vision af absolut kontrol 999 00:44:45,686 --> 00:44:47,060 over alle disse specifikationer. 1000 00:44:47,060 --> 00:44:49,726 Apple stadig gør, fordi de er dem bygge hardware. 1001 00:44:49,726 --> 00:44:52,690 Men det er en dejlig ting, hvis Jeg er en softwareudvikler, 1002 00:44:52,690 --> 00:44:54,520 bare vide, at min iPhone vil altid 1003 00:44:54,520 --> 00:44:56,850 at være denne store, fordi det betyder at jeg altid ved 1004 00:44:56,850 --> 00:44:58,847 hvor meget skærmplads jeg har. 1005 00:44:58,847 --> 00:45:01,180 Så hvis jeg ønsker at sætte et ikon i øverste venstre hjørne, 1006 00:45:01,180 --> 00:45:04,530 det vil være i præcis samme placere på hver enkelt kundes enhed. 1007 00:45:04,530 --> 00:45:07,140 >> Men i en verden af ​​iPhone 6s og iPhone 6 Plusser 1008 00:45:07,140 --> 00:45:10,570 og i verden af ​​Android telefoner, det er over hele kortet. 1009 00:45:10,570 --> 00:45:13,580 Og så det gør det sværere at programmet ting, især brugergrænseflader, 1010 00:45:13,580 --> 00:45:18,270 fordi nu er du nødt til at begynde at arrangere dine brugergrænseflader relativt, ikke 1011 00:45:18,270 --> 00:45:19,730 absolut. 1012 00:45:19,730 --> 00:45:23,524 Og det samme har været tilfældet på browsere, og desktops og bærbare computere til år 1013 00:45:23,524 --> 00:45:25,690 fordi man naturligvis har forskellige skærmstørrelser. 1014 00:45:25,690 --> 00:45:26,189 >> Hvad ellers? 1015 00:45:26,189 --> 00:45:30,170 Du har måske overflader, gerne fra Microsoft. 1016 00:45:30,170 --> 00:45:31,270 Du har måske have-- 1017 00:45:31,270 --> 00:45:32,270 PUBLIKUM: Windows-telefon. 1018 00:45:32,270 --> 00:45:32,816 DAVID J. MALAN: Hvad 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 Så windows telefoner kan stadig findes. 1022 00:45:37,570 --> 00:45:41,840 Kind of slags BlackBerrys, men de holde forsøger. 1023 00:45:41,840 --> 00:45:43,900 Og så klaser af andre enheder. 1024 00:45:43,900 --> 00:45:48,020 Så for det meste, lad os sige det er dem 1025 00:45:48,020 --> 00:45:49,520 at bekymre sig om i øjeblikket. 1026 00:45:49,520 --> 00:45:51,890 Bestemt Apple ting, sikkert Android ting, 1027 00:45:51,890 --> 00:45:55,640 og blandt Windows, ligesom overfladen tabletter synes at fange på ganske godt. 1028 00:45:55,640 --> 00:45:58,030 >> Og så blandt disse enheder, hvis du ønsker at rulle ud, 1029 00:45:58,030 --> 00:46:02,677 lad os sige, en mobil tilstedeværelse for din selskab, hvilke typer af design beslutninger 1030 00:46:02,677 --> 00:46:03,510 har du at gøre? 1031 00:46:03,510 --> 00:46:06,350 Nå, vi allerede sagt i Apple verden, 1032 00:46:06,350 --> 00:46:08,790 der er mindst to sprog der anvendes typisk. 1033 00:46:08,790 --> 00:46:10,260 Den ene blev kaldt hvad? 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 ældre. 1037 00:46:13,600 --> 00:46:17,720 Det er også det sprog, som mange Mac ansøgning fortsat skrevet på. 1038 00:46:17,720 --> 00:46:18,964 Så den anden nyere ene 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 dem er den slags to at vide for at imponere folk. 1042 00:46:23,900 --> 00:46:28,238 Så i Android verden, hvilket sprog betyder Android bruge? 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 sprog "du jour." 1046 00:46:34,230 --> 00:46:37,950 I Windows verden, sikker, vi vil sige C # i dette tilfælde. 1047 00:46:37,950 --> 00:46:40,590 Så allerede det er form for irriterende, fordi det er 1048 00:46:40,590 --> 00:46:43,070 takeaway for en virksomhed ejer eller en person, der bare 1049 00:46:43,070 --> 00:46:44,570 ønsker at udrulle en mobil tilstedeværelse? 1050 00:46:44,570 --> 00:46:45,220 Ligesom, for pokker? 1051 00:46:45,220 --> 00:46:48,590 Ligesom, hvis jeg ønsker at støtte en temmelig bred brugerbase, 1052 00:46:48,590 --> 00:46:52,180 Jeg er nødt til at skrive, synes det, tre særskilte ansøgninger. 1053 00:46:52,180 --> 00:46:55,630 En ud af et af disse sprog, en i Java, en i C #. 1054 00:46:55,630 --> 00:46:59,620 Og selv om jeg ønsker funktionaliteten at være identiske, er det ligegyldigt. 1055 00:46:59,620 --> 00:47:02,940 Jeg stadig nødt til at bruge forskellige sprog, fordi Apple og Microsoft, 1056 00:47:02,940 --> 00:47:06,084 og Google al støtte forskellige miljøer. 1057 00:47:06,084 --> 00:47:07,750 Og det har været en udfordring for år. 1058 00:47:07,750 --> 00:47:10,100 Tilbage i dag, hvor folk bruges til at købe software 1059 00:47:10,100 --> 00:47:12,230 ved en computer butik i skrumpe indpakket kasser, 1060 00:47:12,230 --> 00:47:14,470 ville du enten nødt til at nå til Mac hylde, 1061 00:47:14,470 --> 00:47:19,040 eller for-- måske denne meget lille Mac shelf-- eller større Windows hylden 1062 00:47:19,040 --> 00:47:19,980 og købe noget software. 1063 00:47:19,980 --> 00:47:22,813 Og meget ofte, var der ikke engang noget for dig på Mac hylden. 1064 00:47:22,813 --> 00:47:23,430 Hvorfor? 1065 00:47:23,430 --> 00:47:26,900 Nå, besluttede virksomheder, hvis 90% af verden, 95% af verdens 1066 00:47:26,900 --> 00:47:31,180 har pc'er, hvorfor gider selv gennemføre ting på Mac OS? 1067 00:47:31,180 --> 00:47:34,370 >> Som en aside-- alt digression-- hvorfor er det 1068 00:47:34,370 --> 00:47:40,960 at Mac virker så uigennemtrængelig for virus, og orme og sikkerhedstrusler? 1069 00:47:40,960 --> 00:47:44,040 Er Apple bedre på dette? 1070 00:47:44,040 --> 00:47:45,934 Bedre at holde computere sikker? 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 sandsynligvis den større bit til den. 1073 00:47:50,720 --> 00:47:54,740 Så de mange brugere af Mac-computere har længe hævdet, åh, bruger en Mac, 1074 00:47:54,740 --> 00:47:57,630 vil du være immun over for virus, og orme og alle disse ting 1075 00:47:57,630 --> 00:47:59,180 der længe har plaget pc'er. 1076 00:47:59,180 --> 00:48:02,050 Det kunne være fordi Apple har bedre programmører 1077 00:48:02,050 --> 00:48:05,250 og de skriver bedre software, eller Operativsystemet blev bedre designet. 1078 00:48:05,250 --> 00:48:06,870 Måske, men sandsynligvis ikke. 1079 00:48:06,870 --> 00:48:10,840 >> Det er nok, at når du er en 12-årig, eller en 30 noget 1080 00:48:10,840 --> 00:48:13,510 slags sidder derhjemme skrivning skadelig software til at overtage 1081 00:48:13,510 --> 00:48:17,480 verden, er du nødt til at gå efter den meget større målgruppe. 1082 00:48:17,480 --> 00:48:20,590 De 95% af verden, som måske køre Windows eller nogle 1083 00:48:20,590 --> 00:48:21,740 varianter heraf. 1084 00:48:21,740 --> 00:48:23,800 Så der er en lille smule på begge sider. 1085 00:48:23,800 --> 00:48:25,710 Men til deres kredit, Apple, så vidt jeg ved, 1086 00:48:25,710 --> 00:48:28,270 har ikke rigtig udråbt sig som værende mere sikker, 1087 00:48:28,270 --> 00:48:32,110 da du bare invitere drama, hvis du gøre denne påstand, vil jeg mene. 1088 00:48:32,110 --> 00:48:32,610 >> Okay. 1089 00:48:32,610 --> 00:48:36,490 Uden at blive alt for langt ned det, hvordan løser vi dette? 1090 00:48:36,490 --> 00:48:39,670 Har du nødt til at købe eller har du til betale tre forskellige folk til at udvikle 1091 00:48:39,670 --> 00:48:41,540 dine apps? 1092 00:48:41,540 --> 00:48:42,870 Har du vælge en frem for den anden? 1093 00:48:42,870 --> 00:48:45,460 Hvad skal guide din tænker 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 En anden. 1099 00:48:54,190 --> 00:48:56,885 >> PUBLIKUM: Bare kom med hardwaren. 1100 00:48:56,885 --> 00:48:58,510 DAVID J. MALAN: Kom med hardwaren? 1101 00:48:58,510 --> 00:48:59,533 Hvad mener du? 1102 00:48:59,533 --> 00:49:01,282 >> PUBLIKUM: For miljø. [Uhørligt] 1103 00:49:01,282 --> 00:49:04,867 1104 00:49:04,867 --> 00:49:06,200 DAVID J. MALAN: Så det er sandt. 1105 00:49:06,200 --> 00:49:09,280 Men dine kunder, i mellemtiden, kan have iPhones, 1106 00:49:09,280 --> 00:49:13,530 de måtte have Android-telefoner, de kan have tabletter lavet af Microsoft. 1107 00:49:13,530 --> 00:49:19,040 Så hvordan kan du have en mobil strategi for alle disse forskellige brugere? 1108 00:49:19,040 --> 00:49:23,320 Det ser ud til, at hvis det koster, lad os sige $ 1.000 til at gøre en iPhone 1109 00:49:23,320 --> 00:49:25,940 ansøgning, går det til at koste dig $ 2.000 til at gøre 1110 00:49:25,940 --> 00:49:29,250 en iPhone-applikation og en Android applikation, eller $ 3000 1111 00:49:29,250 --> 00:49:31,407 til også understøtte Windows-enheder så godt. 1112 00:49:31,407 --> 00:49:33,990 Det er nok noget af en underdrivelse, og det måske ikke engang 1113 00:49:33,990 --> 00:49:36,050 være en lineær sammenhæng sådan. 1114 00:49:36,050 --> 00:49:41,065 >> PUBLIKUM: Hvis du ønsker at have en app eller ikke, kan du få lydhør hjemmeside. 1115 00:49:41,065 --> 00:49:41,940 DAVID J. MALAN: Godt. 1116 00:49:41,940 --> 00:49:46,255 PUBLIKUM: Eller du kan have en indfø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 al denne sammenhæng her, Vi har talt om, hvad 1119 00:49:50,260 --> 00:49:53,190 folk ville kalde native applikationer. 1120 00:49:53,190 --> 00:49:58,040 Det er programmer, der er skrevet i sproget, der tales pågældende enhed. 1121 00:49:58,040 --> 00:50:02,190 Så indfødte Objective-C eller Swift kode, eller i Java, eller C #. 1122 00:50:02,190 --> 00:50:06,900 Hvilket betyder, når du downloader, lad os sige snapchat, en populær applikation, 1123 00:50:06,900 --> 00:50:10,060 eller når du henter Facebook for en telefon, 1124 00:50:10,060 --> 00:50:13,270 du henter enten udgave skrevet til din iPhone, 1125 00:50:13,270 --> 00:50:16,830 eller skrevet til din Android-telefon, eller skrevet til din overflade. 1126 00:50:16,830 --> 00:50:18,500 >> Men der er et alternativ. 1127 00:50:18,500 --> 00:50:26,020 Som Olivier hentydede til, du rent faktisk kan bruge HTML 5 1128 00:50:26,020 --> 00:50:33,440 i stedet, ved hjælp af, hvad der kaldes en web ansøgning, hvor du bare 1129 00:50:33,440 --> 00:50:35,940 implementere din mobiltelefon tilstedeværelse og enhver funktionalitet. 1130 00:50:35,940 --> 00:50:37,030 Hvad mener jeg med mobil tilstedeværelse? 1131 00:50:37,030 --> 00:50:39,800 Ligesom din websted, der har din kontaktoplysninger, en liste over alle 1132 00:50:39,800 --> 00:50:43,049 dine produkter, måske det har en shopping vogn, måske du sælge ting igennem det. 1133 00:50:43,049 --> 00:50:46,850 Uanset hvad din ansøgning er, du gennemføre den, 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 det sprog, vi kiggede 1135 00:50:51,200 --> 00:50:55,470 i går, med JavaScript og CSS. 1136 00:50:55,470 --> 00:50:58,700 >> Og hvad er rart om dem tre er, at for at køre dem, 1137 00:50:58,700 --> 00:51:01,981 du har brug for lige hvad stykke software? 1138 00:51:01,981 --> 00:51:02,980 PUBLIKUM: En webbrowser. 1139 00:51:02,980 --> 00:51:04,229 DAVID J. MALAN: En webbrowser. 1140 00:51:04,229 --> 00:51:07,610 Og det bedste jeg ved, alle disse enheder leveres med webbrowsere, 1141 00:51:07,610 --> 00:51:10,480 så brugeren ikke har skal installere noget særligt. 1142 00:51:10,480 --> 00:51:12,920 Så du kan bare fortælle din publikum, dine kunder, 1143 00:51:12,920 --> 00:51:16,590 gå til acme.com i din browser og du vil bare 1144 00:51:16,590 --> 00:51:19,730 har en web-baseret oplevelse der stadig fylder skærmen, 1145 00:51:19,730 --> 00:51:25,100 men du behøver ikke at bekymre sig om alle disse omkostninger og alt dette kompleksitet. 1146 00:51:25,100 --> 00:51:28,600 Men mon der ikke kommer at være en fangst her, ikke? 1147 00:51:28,600 --> 00:51:31,740 Især hvis jeg påpege at et par år siden, 1148 00:51:31,740 --> 00:51:35,700 den allerførste udgave af Facebooks mobilapplikation 1149 00:51:35,700 --> 00:51:38,810 var for det meste en HTML 5 ansøgning. 1150 00:51:38,810 --> 00:51:42,490 Og de har, mere nylig, genimplementeret det 1151 00:51:42,490 --> 00:51:44,700 i deres andre applikationer. 1152 00:51:44,700 --> 00:51:46,990 >> Så hvorfor skulle du ikke straks ønsker at sige, 1153 00:51:46,990 --> 00:51:49,190 godt, selvfølgelig vil vi gøre det? 1154 00:51:49,190 --> 00:51:51,560 Hvad kan de skjulte omkostninger være? 1155 00:51:51,560 --> 00:51:52,477 >> PUBLIKUM: Performance. 1156 00:51:52,477 --> 00:51:53,643 DAVID J. MALAN: Performance? 1157 00:51:53,643 --> 00:51:54,567 Hvad mener du? 1158 00:51:54,567 --> 00:52:01,040 >> PUBLIKUM: De indfødte app har mere ydeevne. 1159 00:52:01,040 --> 00:52:03,850 >> DAVID J. MALAN: Så det er sandt, for et par grunde. 1160 00:52:03,850 --> 00:52:05,270 Vi kan forsimpler svaret. 1161 00:52:05,270 --> 00:52:08,061 Og huske vores diskussion af fortolket versus kompilerede sprog. 1162 00:52:08,061 --> 00:52:12,030 Dette er HTML 5, og med det, bare for at være klart, JavaScript-- almindeligvis skrevet 1163 00:52:12,030 --> 00:52:15,880 JS-- og CSS er alle fortolket sprog, 1164 00:52:15,880 --> 00:52:21,020 selvom kun JavaScript er et programmeringssprog. 1165 00:52:21,020 --> 00:52:25,820 >> Og så versus disse, hvor nogle af disse er opgjort, i det mindste disse three-- 1166 00:52:25,820 --> 00:52:29,990 Objective-C, Java og C # - disse, i teorien burde bare være hurtigere. 1167 00:52:29,990 --> 00:52:31,670 Men der er en anden virkelighed for-- 1168 00:52:31,670 --> 00:52:32,440 >> PUBLIKUM: Funktionaliteter? 1169 00:52:32,440 --> 00:52:32,830 >> DAVID J. MALAN: Hvad er det? 1170 00:52:32,830 --> 00:52:34,060 >> Målgruppe: funktionaliteter. 1171 00:52:34,060 --> 00:52:34,570 >> DAVID J. MALAN: Funktionalitet? 1172 00:52:34,570 --> 00:52:35,070 Hvordan det? 1173 00:52:35,070 --> 00:52:37,305 PUBLIKUM: Brug kameraet fra din telefon eller noget. 1174 00:52:37,305 --> 00:52:41,471 Du kan bruge dem med browseren. 1175 00:52:41,471 --> 00:52:42,470 DAVID J. MALAN: Præcis. 1176 00:52:42,470 --> 00:52:43,011 De er sec-- 1177 00:52:43,011 --> 00:52:45,034 PUBLIKUM: [uhørligt] 1178 00:52:45,034 --> 00:52:46,700 DAVID J. MALAN: Det er en anden god en. 1179 00:52:46,700 --> 00:52:49,230 Der er funktioner, der kommer med mobiltelefoner i dag 1180 00:52:49,230 --> 00:52:53,840 som ikke er, ved design, for sikkerhed årsager, tilgængelige for webbrowsere. 1181 00:52:53,840 --> 00:52:56,410 Fordi det ville være slags en uhyggelig ting, hvis bare når 1182 00:52:56,410 --> 00:53:00,710 du besøger google.com, eller cnn.com, eller enhver website.com, 1183 00:53:00,710 --> 00:53:04,490 at denne hjemmeside har magt til at vende på dit kamera, tage et billede af dig, 1184 00:53:04,490 --> 00:53:06,010 og derefter bruge det. 1185 00:53:06,010 --> 00:53:09,280 Men du ønsker ikke en tilfældig hjemmeside at du besøger for første gang 1186 00:53:09,280 --> 00:53:10,690 at have denne evne. 1187 00:53:10,690 --> 00:53:13,460 >> Og så hvad telefon producenter typisk gør 1188 00:53:13,460 --> 00:53:17,230 er de bare nægte adgang til den slags oplysninger 1189 00:53:17,230 --> 00:53:20,650 til en browser, hvilket betyder at du kan ikke gennemføre kameraet. 1190 00:53:20,650 --> 00:53:24,180 Du kan ikke implementere push-meddelelser, de bip, som du får på skærmen 1191 00:53:24,180 --> 00:53:26,120 med korte beskeder. 1192 00:53:26,120 --> 00:53:31,350 Og i virkeligheden, selv GPS er eneste form af slags til rådighed for webbrowsere. 1193 00:53:31,350 --> 00:53:34,140 Hvis du nogensinde har, på en bærbar computer eller på en mobil enhed, 1194 00:53:34,140 --> 00:53:38,770 trukket op noget som måske CNN.com, men også lokale nyheder stationer 1195 00:53:38,770 --> 00:53:43,890 en tendens til at gøre dette, bliver du bedt ofte med en message-- foxnews.com 1196 00:53:43,890 --> 00:53:45,170 ønsker at vide din placering. 1197 00:53:45,170 --> 00:53:46,610 Godkende eller afvise. 1198 00:53:46,610 --> 00:53:52,070 >> Nå, er browseren forsøger at få adgang din GPS-oplysninger fra din telefon. 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 besluttet, at føles Det er en nyttig situation 1201 00:53:57,330 --> 00:53:59,461 vi ønsker Google Maps og andre værktøjer til at arbejde, 1202 00:53:59,461 --> 00:54:02,710 men vi ønsker ikke at krybe folk ud ved blot gør et websted for at gøre dette. 1203 00:54:02,710 --> 00:54:05,934 Så lad os slags mødes halvvejs og bede brugeren. 1204 00:54:05,934 --> 00:54:08,850 Men det er ikke nødvendigvis tilfældet med al hardware, ligesom kameraet 1205 00:54:08,850 --> 00:54:10,680 og med push meddelelser og lignende, 1206 00:54:10,680 --> 00:54:13,650 så du måske nødt til ofrer visse funktioner. 1207 00:54:13,650 --> 00:54:15,100 Men præstationer også. 1208 00:54:15,100 --> 00:54:18,020 Det er blevet mindre mærkbar i dag, måske 1209 00:54:18,020 --> 00:54:22,400 som LTE fangster og hurtigere internet hastigheder på telefoner, 1210 00:54:22,400 --> 00:54:24,110 men du kan slags mærke forskellen. 1211 00:54:24,110 --> 00:54:28,190 Ligesom en webbaseret applikation bare føles langsommere, typisk, 1212 00:54:28,190 --> 00:54:31,100 end en indfødt ansøgning, dels fordi en webbaseret applikation 1213 00:54:31,100 --> 00:54:32,680 per definition er på internettet. 1214 00:54:32,680 --> 00:54:35,610 Det taler til serverne på nettet. 1215 00:54:35,610 --> 00:54:39,590 Og hvis din netværksforbindelse er langsom, selv rulle kan være langsom. 1216 00:54:39,590 --> 00:54:43,710 >> Men en indfødt ansøgning, du har allerede før downloaded-- sandsynligvis 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 i det mindste på forhånd downloadet det i sin helhed 1219 00:54:47,900 --> 00:54:49,640 tidligere, uanset din tilslutning fart- 1220 00:54:49,640 --> 00:54:52,530 og så nu har du alle de bits, at du generelt har brug for. 1221 00:54:52,530 --> 00:54:55,090 Bortset måske nogle data der kommer fra en server. 1222 00:54:55,090 --> 00:54:57,130 >> Så dette er afvejninger her. 1223 00:54:57,130 --> 00:54:59,980 Der er lidt af en mellemvej kompromis, faktisk. 1224 00:54:59,980 --> 00:55:00,907 Og jeg tror du-- 1225 00:55:00,907 --> 00:55:02,895 >> PUBLIKUM: Brug data offline. 1226 00:55:02,895 --> 00:55:06,355 I de indfødte apps, kan du [uhørligt] 1227 00:55:06,355 --> 00:55:07,480 DAVID J. MALAN: Absolut. 1228 00:55:07,480 --> 00:55:09,730 Så der er offline problem, som er virkelig irriterende 1229 00:55:09,730 --> 00:55:13,120 hvis du ikke kan spille nogle spil eller brug noget software bare fordi du er 1230 00:55:13,120 --> 00:55:15,110 i en kælder eller andet sted eller i en elevator. 1231 00:55:15,110 --> 00:55:18,700 En indfødt ansøgning er robust med større sandsynlighed mod denne, 1232 00:55:18,700 --> 00:55:20,990 forudsat du har alle de data, du har brug for lokalt. 1233 00:55:20,990 --> 00:55:22,900 >> Så der er en tredje mulighed her. 1234 00:55:22,900 --> 00:55:30,270 Og lad os trække spektret som native app her og web app her. 1235 00:55:30,270 --> 00:55:32,460 Og hvad der er i midten er noget called-- 1236 00:55:32,460 --> 00:55:35,410 og jeg tror, ​​du måske har brugte ordet før, måske? 1237 00:55:35,410 --> 00:55:37,170 Hybrid ansøgning. 1238 00:55:37,170 --> 00:55:40,980 Og som ordet antyder, det er noget i midten. 1239 00:55:40,980 --> 00:55:46,230 Det er lidt af en web-applikation og det er form for en indfødt ansøgning. 1240 00:55:46,230 --> 00:55:47,690 >> Og hvad betyder det? 1241 00:55:47,690 --> 00:55:51,750 Det viser sig, der er frameworks-- at bruge et udtryk fra earlier-- software 1242 00:55:51,750 --> 00:55:55,860 at andre mennesker har skrevet for hver eneste af disse platforme. 1243 00:55:55,860 --> 00:55:57,500 Disse og endnu andre enheder. 1244 00:55:57,500 --> 00:56:02,390 Faktisk lade mig gå til PhoneGap, som er en sådan ramme, jeg 1245 00:56:02,390 --> 00:56:04,520 tror Adobe ejer nu. 1246 00:56:04,520 --> 00:56:07,830 Lad mig gå til Kom godt i gang. 1247 00:56:07,830 --> 00:56:09,430 Lad os se. 1248 00:56:09,430 --> 00:56:12,450 Se om jeg kan se en liste over værktøjer. 1249 00:56:12,450 --> 00:56:13,150 Hardware. 1250 00:56:13,150 --> 00:56:15,845 Kom godt i gang. 1251 00:56:15,845 --> 00:56:17,570 PhoneGap hardware. 1252 00:56:17,570 --> 00:56:18,672 >> Lad os se. 1253 00:56:18,672 --> 00:56:23,459 PhoneGap hardware adgang. 1254 00:56:23,459 --> 00:56:26,125 Lad mig se, om vi kan finde en lille kortlægge, at de plejede at have. 1255 00:56:26,125 --> 00:56:29,170 1256 00:56:29,170 --> 00:56:31,640 Dette er på en anden lokalitet. 1257 00:56:31,640 --> 00:56:32,525 Er det nyttigt? 1258 00:56:32,525 --> 00:56:33,030 Ingen. 1259 00:56:33,030 --> 00:56:36,330 Det skal nok spilde vores tid. 1260 00:56:36,330 --> 00:56:40,185 PhoneGap hardware. 1261 00:56:40,185 --> 00:56:40,685 Enheder. 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 det. 1265 00:56:49,270 --> 00:56:50,070 >> PhoneGap. 1266 00:56:50,070 --> 00:56:54,964 Lad os gå et sidste kig på denne og se om jeg kan vise dig. 1267 00:56:54,964 --> 00:56:55,630 Kom godt i gang. 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 mobile app. 1272 00:57:03,270 --> 00:57:04,320 Kom nu. 1273 00:57:04,320 --> 00:57:07,220 1274 00:57:07,220 --> 00:57:08,580 De har reorganiseret alt. 1275 00:57:08,580 --> 00:57:09,750 Okay. 1276 00:57:09,750 --> 00:57:11,370 Åh, okay. 1277 00:57:11,370 --> 00:57:12,550 Nå, her går vi. 1278 00:57:12,550 --> 00:57:16,130 Det er ikke alt, oplysende, men dette er hvad jeg var slags på udkig efter. 1279 00:57:16,130 --> 00:57:20,940 >> Så PhoneGap er en ramme, som du kan downloade gratis, som giver dig 1280 00:57:20,940 --> 00:57:22,750 nogle forret kode væsentlige. 1281 00:57:22,750 --> 00:57:26,600 Så noget kode, som de har skrevet der ikke gør meget af noget. 1282 00:57:26,600 --> 00:57:29,610 Men hvad det giver dig væsentlige svarer 1283 00:57:29,610 --> 00:57:34,910 af en ansøgning, der bare sætter en store rektangel på brugerens skærm. 1284 00:57:34,910 --> 00:57:38,040 Det betyder ikke sætte en URL bar, ligesom en browser, ikke sætte en adresse. 1285 00:57:38,040 --> 00:57:39,650 Det bare lægger et stort rektangel. 1286 00:57:39,650 --> 00:57:43,230 Og du konfigurerer denne store rektangel, under emhætten, 1287 00:57:43,230 --> 00:57:50,780 faktisk gå til acme.com, eller måske m.acme.com, for mobile.acme.com, 1288 00:57:50,780 --> 00:57:52,910 men brugeren ikke ved de er på denne adresse. 1289 00:57:52,910 --> 00:57:55,520 Alt, hvad de ser, er den indholdet af websiden. 1290 00:57:55,520 --> 00:57:59,822 >> Men hvad er nice om dette væsen en hybrid app er, at hvad PhoneGap 1291 00:57:59,822 --> 00:58:03,030 og andre selskaber giver dig er de giver dig en lille smule kode 1292 00:58:03,030 --> 00:58:05,760 i Objective-C eller Swift, eller en lille smule af kode i Java, 1293 00:58:05,760 --> 00:58:08,320 eller en lille smule kode i C #, og i det væsentlige, 1294 00:58:08,320 --> 00:58:12,990 alt hvad du skal give er minimalt den adressen på din web-baseret applikation. 1295 00:58:12,990 --> 00:58:15,750 Og så samle dette alle sammen, og du 1296 00:58:15,750 --> 00:58:20,670 har det enten adgang til websted via internettet, 1297 00:58:20,670 --> 00:58:24,060 eller du endda cache en lokal kopi inde i programmet, 1298 00:58:24,060 --> 00:58:28,690 og derefter gemme dig din ansøgning i iPhone-format, Android-telefon 1299 00:58:28,690 --> 00:58:32,030 format, overflade format, eller en række andre enheder. 1300 00:58:32,030 --> 00:58:34,960 >> Du uploader hver af disse versioner til Google Play Store, 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 nu kan du få alle dine publikum hente virkelig en indfødt app, 1303 00:58:41,570 --> 00:58:44,250 omend det meste af koden var skrevet af en anden, 1304 00:58:44,250 --> 00:58:49,090 men indholdet af den native app alle kommer fra, typisk din egen hjemmeside. 1305 00:58:49,090 --> 00:58:53,950 Så du fortsætte med at skrive din hjemmeside i HTML, JavaScript og CSS. 1306 00:58:53,950 --> 00:58:56,400 >> Så hvorfor sløre disse linjer? 1307 00:58:56,400 --> 00:59:00,240 Hvorfor en hybridansøgning der er slags indfødte, men også 1308 00:59:00,240 --> 00:59:02,569 form for webbaseret? 1309 00:59:02,569 --> 00:59:04,610 Hvad er hele pointen med tilføje denne kompleksitet? 1310 00:59:04,610 --> 00:59:07,180 Jeg mener, endda stadig, bare fra kigger gennem denne side, 1311 00:59:07,180 --> 00:59:11,790 Kom godt i gang guide føles det har fået en hel masse trin for mig 1312 00:59:11,790 --> 00:59:13,514 at gøre, før jeg can-- 1313 00:59:13,514 --> 00:59:14,430 PUBLIKUM: Genbrugelighed? 1314 00:59:14,430 --> 00:59:14,960 DAVID J. MALAN: Genbrugelighed? 1315 00:59:14,960 --> 00:59:15,618 Hvad mener du? 1316 00:59:15,618 --> 00:59:16,826 >> PUBLIKUM: Af kildekoden. 1317 00:59:16,826 --> 00:59:19,438 Så den samme kode ville køre på alle de forskellige platforme. 1318 00:59:19,438 --> 00:59:20,313 DAVID J. MALAN: Ja. 1319 00:59:20,313 --> 00:59:21,188 PUBLIKUM: [uhørligt] 1320 00:59:21,188 --> 00:59:23,200 1321 00:59:23,200 --> 00:59:24,200 DAVID J. MALAN: Perfekt. 1322 00:59:24,200 --> 00:59:26,930 Hvis tiden er stram, og hvis du behøver ikke at mange developers-- 1323 00:59:26,930 --> 00:59:28,900 måske har du en udvikler og han eller hun sikkert 1324 00:59:28,900 --> 00:59:31,050 kender ikke alle disse environments-- bestemt ikke godt, 1325 00:59:31,050 --> 00:59:33,341 og bestemt ikke kan program i alle tre samtidigt 1326 00:59:33,341 --> 00:59:35,970 og sende tre produkter i fristen for én, 1327 00:59:35,970 --> 00:59:40,360 du kan få ham eller hende bygge alting i HTML og JavaScript og CSS, 1328 00:59:40,360 --> 00:59:43,260 og derefter lære en lille smule lidt om indfødte apps, 1329 00:59:43,260 --> 00:59:45,930 lige nok til at hente en ramme som denne, 1330 00:59:45,930 --> 00:59:48,750 til derefter uploade dit produkt til alle de forskellige app stores 1331 00:59:48,750 --> 00:59:51,700 så du nu har en indfødt ansøgning. 1332 00:59:51,700 --> 00:59:54,090 >> Så det virker som en win-win, men igen, for at være klar, 1333 00:59:54,090 --> 00:59:56,540 Hvilke potentielle omkostninger eller de fælder? 1334 00:59:56,540 --> 01:00:00,292 1335 01:00:00,292 --> 01:00:01,209 >> PUBLIKUM: Performance? 1336 01:00:01,209 --> 01:00:02,083 DAVID J. MALAN: Ja. 1337 01:00:02,083 --> 01:00:02,959 Ydeevne. 1338 01:00:02,959 --> 01:00:04,250 Det er svært at beskrive verbalt. 1339 01:00:04,250 --> 01:00:07,590 Så hvis du bare tage på tro en mobilapplikation, 1340 01:00:07,590 --> 01:00:11,430 en web-applikation vil typisk udfører langsommere. 1341 01:00:11,430 --> 01:00:16,500 Det ser måske ikke helt rigtigt, fordi i iPhone, og i Android-telefoner, 1342 01:00:16,500 --> 01:00:19,210 og Windows-enheder, der er altid en slags standard udseende 1343 01:00:19,210 --> 01:00:21,780 og føler at alle de knapper og menuer. 1344 01:00:21,780 --> 01:00:25,160 >> Og virksomheder i nettet, kan du prøve at tilnærme disse æstetik 1345 01:00:25,160 --> 01:00:28,329 med biblioteker som Bootstrap, men user-- en klog user-- 1346 01:00:28,329 --> 01:00:30,620 vil vide, at noget er ikke helt lige her. 1347 01:00:30,620 --> 01:00:32,510 Og det er fint, måske det er ikke en big deal. 1348 01:00:32,510 --> 01:00:35,500 Men spørgsmålet ydeevne absolut er en big deal. 1349 01:00:35,500 --> 01:00:39,400 Native applikationer vil være tilbøjelige til bare være meget mere fleksibel og dermed 1350 01:00:39,400 --> 01:00:39,946 bedre. 1351 01:00:39,946 --> 01:00:42,070 Og ja, hvad så kunne være det bedste af begge verdener? 1352 01:00:42,070 --> 01:00:44,584 Hvis du er især en lille selskab eller en lille gruppe, 1353 01:00:44,584 --> 01:00:47,000 du ikke har ressourcer at udvikle en app i parallel 1354 01:00:47,000 --> 01:00:50,480 på alle tre platforme, og helt ærligt, føles som det er en dårlig idé alligevel 1355 01:00:50,480 --> 01:00:53,526 fordi hvis du ruller det ud og om alle tre samtidigt indse, 1356 01:00:53,526 --> 01:00:56,400 vi burde have tilføjet nogle funktioner eller gjort noget anderledes, nu 1357 01:00:56,400 --> 01:00:59,530 du er nødt til at ordne det i tre steder, ikke én. 1358 01:00:59,530 --> 01:01:02,390 Hvad er måske den optimale strategi her samlet, 1359 01:01:02,390 --> 01:01:04,130 hvis ressourcer og tid er stramme? 1360 01:01:04,130 --> 01:01:06,420 >> PUBLIKUM: Bare gør det på iOS. 1361 01:01:06,420 --> 01:01:08,390 >> DAVID J. MALAN: Det er ikke urimeligt. 1362 01:01:08,390 --> 01:01:10,670 iPhones, i det mindste i USA, er super populære. 1363 01:01:10,670 --> 01:01:13,820 Android stadig synes at have dominerende markedsandel, globalt, samlet. 1364 01:01:13,820 --> 01:01:16,740 Så du er ikke nødvendigvis repræsentativt 1365 01:01:16,740 --> 01:01:19,210 af helheden af ​​kloden denne uge. 1366 01:01:19,210 --> 01:01:21,180 Men det er absolut en beslutning. 1367 01:01:21,180 --> 01:01:23,620 Jeg mener, på campus her jeg tror nogle grusomme tal 1368 01:01:23,620 --> 01:01:26,600 eller procentdelen af ​​bachelorstuderende har iPhones og ikke Android-telefoner. 1369 01:01:26,600 --> 01:01:28,490 Men i udlandet, det er form for det modsatte. 1370 01:01:28,490 --> 01:01:30,040 Så du beslutter baseret på din målgruppe. 1371 01:01:30,040 --> 01:01:31,990 Hvordan ved du, hvad din målgruppe har? 1372 01:01:31,990 --> 01:01:34,080 >> Nå, vi lærte et trick i går. 1373 01:01:34,080 --> 01:01:35,060 Du kunne spørge dem. 1374 01:01:35,060 --> 01:01:37,910 Hvis du har et fangenskab publikum du kan sende dem en undersøgelse formular. 1375 01:01:37,910 --> 01:01:39,172 Eller du kan bare gøre hvad? 1376 01:01:39,172 --> 01:01:40,076 >> PUBLIKUM: Google Analytics? 1377 01:01:40,076 --> 01:01:40,680 >> DAVID J. MALAN: Hvad 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 Ja. 1381 01:01:43,750 --> 01:01:46,970 Eller endnu mere slags teknisk, bare se på dine egne webservere logs. 1382 01:01:46,970 --> 01:01:49,100 For hvad sker der hver gang en browser, 1383 01:01:49,100 --> 01:01:51,880 hvorvidt laptop, desktop eller telefon besøge din hjemmeside? 1384 01:01:51,880 --> 01:01:56,847 De sender den HTTP header, som viser dig, hvad browser og OS de bruger. 1385 01:01:56,847 --> 01:02:00,180 Så du kan udlede, med stor sandsynlighed, hvad din demografiske bruger på den måde 1386 01:02:00,180 --> 01:02:01,410 og derefter justere. 1387 01:02:01,410 --> 01:02:03,030 >> Så formoder, det er uacceptabelt. 1388 01:02:03,030 --> 01:02:07,760 Det er slags dårligt for erhvervslivet, hvis Android-brugere kan ikke købe vores widgets. 1389 01:02:07,760 --> 01:02:10,942 >> PUBLIKUM: Uanset om du er vil oplade eller ej? 1390 01:02:10,942 --> 01:02:12,900 DAVID J. MALAN: Om du kommer til at oplade? 1391 01:02:12,900 --> 01:02:14,900 Så OK, du får hvad du betaler for. 1392 01:02:14,900 --> 01:02:18,400 >> PUBLIKUM: Uanset om din app er nok være fri, 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å måske du kunne forrente omkostninger på den måde, eller--? 1395 01:02:21,920 --> 01:02:26,195 >> PUBLIKUM: Jeg læste en undersøgelse, når det sagt flere Apple-brugere betale for apps versus-- 1396 01:02:26,195 --> 01:02:28,320 DAVID J. MALAN: Det er rigtigt fordi de er allerede 1397 01:02:28,320 --> 01:02:29,640 betale mere for deres enheder. 1398 01:02:29,640 --> 01:02:31,295 Så ikke urimeligt en antagelse. 1399 01:02:31,295 --> 01:02:32,170 >> PUBLIKUM: [uhørligt] 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 mere villige til at betale, derefter til helvede med de Android-brugere. 1403 01:02:38,667 --> 01:02:40,500 De er ikke til at betale os noget alligevel. 1404 01:02:40,500 --> 01:02:43,499 Vi kan lige så godt fokusere vores prioriteringer, i det mindste for de første par måneder 1405 01:02:43,499 --> 01:02:44,810 eller et år, på iOS. 1406 01:02:44,810 --> 01:02:46,240 Fuldstændig rimelig. 1407 01:02:46,240 --> 01:02:48,558 Hvad er et mere rummeligt strategi end det? 1408 01:02:48,558 --> 01:02:53,740 1409 01:02:53,740 --> 01:02:54,960 Maybe-- hvad er det? 1410 01:02:54,960 --> 01:02:57,040 >> PUBLIKUM: [uhørligt] 1411 01:02:57,040 --> 01:03:00,142 >> DAVID J. MALAN: En mere expensive-- så måske investere mere in-- gå videre. 1412 01:03:00,142 --> 01:03:00,767 PUBLIKUM: Ja. 1413 01:03:00,767 --> 01:03:02,050 Bare en mobil hjemmeside. 1414 01:03:02,050 --> 01:03:03,966 >> DAVID J. MALAN: Så gør en mobil hjemmeside og ikke 1415 01:03:03,966 --> 01:03:05,440 selv bekymre sig om denne kompleksitet. 1416 01:03:05,440 --> 01:03:07,970 Eller måske en fornuftig strategi, som selv Facebook tog, 1417 01:03:07,970 --> 01:03:10,890 er at starte med en hybrid ansøgning, fordi det ikke er 1418 01:03:10,890 --> 01:03:13,582 at meget sværere at gøre dette end dette. 1419 01:03:13,582 --> 01:03:16,040 Du skal bare nødt til at læse nogle dokumentation og finde ud af hvordan 1420 01:03:16,040 --> 01:03:17,480 at uploade ting til App Store. 1421 01:03:17,480 --> 01:03:19,670 Så måske du starter med dette, således at på dag ét, 1422 01:03:19,670 --> 01:03:21,112 du kan støtte alle dine brugere. 1423 01:03:21,112 --> 01:03:23,570 Og så, ligesom Facebook og andre selskaber har gjort, 1424 01:03:23,570 --> 01:03:25,330 når du har ressourcer, du har de mennesker, 1425 01:03:25,330 --> 01:03:27,660 hvorfor du ikke på ny at gennemføre bare iOS ansøgning. 1426 01:03:27,660 --> 01:03:31,460 Du har stadig noget for alle, selvom det er en ringere oplevelse 1427 01:03:31,460 --> 01:03:33,330 måske, med hybridansøgning. 1428 01:03:33,330 --> 01:03:36,770 Men du kan gradvist rulle ud og udskifte kort sigt 1429 01:03:36,770 --> 01:03:40,280 foranstaltninger for de hybride apps med dine mere native applikationer. 1430 01:03:40,280 --> 01:03:44,090 >> PUBLIKUM: Men med en hybrid app du vil have adgang til mobile funktioner? 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å måske du laver en bevidst beslutning tidligt, 1433 01:03:47,810 --> 01:03:51,930 du kan kun uploade fotos på native iPhone ansøgning om Facebook, 1434 01:03:51,930 --> 01:03:56,060 men ikke på Android ansøgning, oprindeligt, f.eks. 1435 01:03:56,060 --> 01:04:00,600 Og det er lidt af en hvid løgn, fordi web-applikationer har flere begrænsninger 1436 01:04:00,600 --> 01:04:03,620 end hybrid applikationer viser det sig ud, og hvis vi læser dokumentationen 1437 01:04:03,620 --> 01:04:07,260 for PhoneGap og ting som det, folk er kommet op med måder 1438 01:04:07,260 --> 01:04:11,110 at give web-baserede applikationer adgang til kameraet, 1439 01:04:11,110 --> 01:04:13,310 så længe du bruger en hybrid program. 1440 01:04:13,310 --> 01:04:14,214 >> Hvordan kan det fungere? 1441 01:04:14,214 --> 01:04:16,130 Fordi den hybride ansøgning, per definition, 1442 01:04:16,130 --> 01:04:19,600 har lidt af kode i Objective-C, og Swift, og Java, eller i C #, 1443 01:04:19,600 --> 01:04:20,920 det kan få adgang til hardware. 1444 01:04:20,920 --> 01:04:24,590 Ikke nødvendigvis alt, men det kan meget vel 1445 01:04:24,590 --> 01:04:27,310 være tilfældet, at du har nok adgang til at få kameraet, 1446 01:04:27,310 --> 01:04:32,960 selv for Android-platforme, for Eksempelvis ved, at kunstig eksempel. 1447 01:04:32,960 --> 01:04:35,515 >> Andre spørgsmål? 1448 01:04:35,515 --> 01:04:36,279 Okay. 1449 01:04:36,279 --> 01:04:38,070 Hvorfor vi ikke tage vores 15 minutter pause her. 1450 01:04:38,070 --> 01:04:44,060 Vi genoptager på 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