DAVID J. Malan: Dakle, mi smo natrag. Dakle, na visokoj razini tema u ovom trenutku sada je tehnologija hrpe, što nije posebno tehnički izraz, to je više od ulova svega za bilo koju Broj kombinacija tehnologija da bi mogli koristiti za rješavanje problema. A možda najviše dolikuje način za početak da bi se gledati na jezicima jer Stalno zveckanje off hrpu i gotovo svi u prostoriji ima vjerojatno čuli najmanje jedan. A zašto ne pokušamo razlučiti what-- razlikovati te jezike i ukratko govoriti o tome kada bi odabrati jedan nad drugim, kako su vrsta temelja različiti, a naročito kada razgovarate s inženjerima, ili pokušavate odlučiti koga zaposliti, ili što provedba Prijedlog za Greenlight, Kako bi zapravo čine one vrste odluka. Tako ćemo samo izrecitirati neke stvari off. Od jezika ljudi imaju čuli, što dolazi u obzir? C. U redu. OK, C ++. Što je to? PUBLIKA: Python. DAVID J. Malan: Python. Izvrsno. Što drugo? Visual Basic. Čuo sam Javu. Visual Basic-- također poznat kao VB. Java. NET, što je više od ulova sve za ono što je obično C # kao jezik u pitanju. I neka mi spomenuti. Dakle, mi ćemo se vratiti na to. Žao mi je? Žao nam je? PUBLIKA: SQL. DAVID J. Malan: ispočetka? PUBLIKA: SQL. DAVID J. Malan: Oh, SQL. U REDU. SQL. Dakle, mi ćemo se vratiti na that-- zapravo, to je good-- nakon pauze, kao dobro. Što drugo? PUBLIKA: Oracle. DAVID J. Malan: Tako Oracle, a ne jezik. Zapravo oni će koristiti SQL, kao dobro. Tako ćemo staviti da se nakon pauza, kao dobro. I ispričavam se, nešto ovdje? PUBLIKA: Mathematica. DAVID J. Malan: Mathematica? U redu, naravno. I MATLAB je vrsta tamo ponekad. PUBLIKA: R. DAVID J. Malan: R. Idemo ovamo. Fortran. Naravno. Starija škola. Fortran. COBOL. Ja ću izbaciti BASIC. BASIC. Any-- PUBLIKA: MATLAB? DAVID J. Malan: MATLAB. Oh, pobijedio si na njega. Bilo što? Ja mogu misliti na nekoliko drugih. Ja mogu misliti na nekoliko drugih. A što je bio zadnji? PUBLIKA: ASP. DAVID J. Malan: ASP? Da. Active Server Pages. To bi općenito spadaju drugi jezici, ponekad i C #, pa ostavimo da se isključi. No, mi ćemo se vratiti na to za okvire i slično. Još nešto? PHP je popularan. Ruby je drugi. JavaScript, ne treba miješati s Javom, je drugi. To je vrsta mnogo. Dakle, to može biti sigurno velika, kao da je popis već nije, samo za početak da znam gdje početi. I tako na sreću, neka je približiti ovu iz nekoliko kutova. Prvo, neka je pokušati kategorizirati barem neke od tih jezika u dvije široke kante, podsjeća Razgovor smo imali prije pauze, gdje smo razgovarali o sastavljanju, i izvorni kod, i stroj kod, jer to nije kako svi jezici rade. Tako ćemo iščupati nekoliko primjera of-- ili protu-examples-- tom modelu. A onda, zašto ne govoriti o aplikacijama da tim jezicima općenito se koristi za. I iskreno, iako ovo je prilično dug popis, to je samo dio tog popisa koji što bi obično izvući iz ovih dana za rješavanje problema. Neki jezici su noviji od drugih. Određeni jezici više popularan od drugih. Dakle, to nije kao da su takve overwhelming zadatak pred vama prilikom odlučivanja među ti različiti jezici. Tako ćemo to učiniti. Mi smo imali ranije, izvorni kod, i onda smo imali strojni kod. Ups. Pisanje pogrešne riječi. Strojni kod. A imali smo neki proces u Srednji called-- da, prevodilac. Dakle, prevodilac. A ono što je strojni jezik zapravo radi na na kraju će biti vaš stvarni CPU. Drugim riječima, strojni kod, ja znači najniže upute razini da CPU stvarno razumije. Zbrajanje, oduzimanje, premjestiti, spremanje i operacije kao što je to. I tako je to model za ono što je općenito poznat kao sastavio jezika. Možda nije iznenađujuće. Dakle, ovo je model za sastavio jezika. No, ispostavilo se da postoji Druga klasa jezika zove tumačiti languages-- tumačiti languages-- da su malo drugačiji. Pišete u izvorni kod, izvoditi im preko tumača, i da tumač je ono radi na CPU. Drugim riječima, ono što vi ne ispuštamo što, očito? Strojni kod. Nula i one koje CPU Sama u konačnici razumije. Tako je u prvoj inačici i jezici kao što su C, kao što smo vidjeli, što napisati u izvornom kodu to je malo kompliciranih, ali barem to je vrsta Engleski-like i to je barem čitati kada se naviknete na njega. Možete ga pokrenuti kroz prevodilac i izvan ste dobili, u konačnici, nula i jedinica. To je pojednostavljivanje. Postoje neki drugi koraci u tamo. U stvari, ako ste ikad čuli izraz "zbirni jezik" to je jedan korak prije su nula i jedinica. To je malo više čitati, ali još uvijek prilično kompliciranih. I tako postoji posrednih koraka koji su, u stvari, događa ovdje. Ali izlaz, u konačnici, je ta nula i jedinica. No, u interpretirani svijet, gdje ste jezika koji su tumačili jezici, zapravo preskočiti taj korak. Drugim riječima, kada se napisati Program, samo odmah ga pokrenuti. Vi ne sastaviti i zatim ga pokrenuti, kao što sam učinio prije. Vi samo pisati i pokrenite ga. A ako želite da brzo promijeniti, napravite brzo promijeniti i ponovno ga. Dakle, ne postoji srednji stupanj ovdje. Sada, po programu sam pisao ranije, što je ovaj program "Hello World", što bi moglo razumno wonder-- ili razumno moglo state-- to nije bilo to vrijeme konzumiranje sastaviti moj program. Čini se da su to učinili tek tako. A tu je i grafički verzije prevodiocima. Ja sam koristeći vrlo tajanstveni verziju, ali ti bi mogao pogoditi gumb za reprodukciju i da će zapravo učiniti kompilacija za vas. Ja sam sastavio program, a zatim opet, da ga pokrenuti, samo sam to učiniti. I to izlazi na lijevu tamo "Hello!" To ne čini sve što je težak. No, kada se programi više nego samo jedan, dva, tri, četiri, pet linija duga, što se može uzeti daleko više sekundi za prikupljanje. Ponekad čak i nekoliko minuta ili vrlo malo vremena za sastaviti. Uostalom, neki od Najveće proizvodi svjetski su stvari poput operacijskih sustava, Microsoft Word, Microsoft Excel, što bi moglo biti stotine tisuća ili čak milijune linija koda duge, a oni ne samo odmah izvršiti. Osim toga, na webu, to je postalo moderno za korištenje jednostavno tumačili jezika, dijelom i zbog toga vas može napraviti promjenu kao programer i onda samo odmah učitati stranica preglednik i odmah vidjeti rezultat. I tako HTML, a ne programski jezik, je jezik koji se tumači. A vidjeli smo da je isti učinak jučer. Vi samo učitajte stranicu nakon što promjena u Cloud9 and-- voila-- vidite novi rezultat. Dakle, u čemu je razlika ovdje? U HTML-u, podsjetimo, imali smo otvoreni HTML, otvorena glava, otvorena naslov, blizu naslova, blizu glave, otvoren tijelo, i tako dalje. Imali smo sve ove oznake da smo prilično puno rekao, reci preglednik što učiniti. Hej preglednik, ovdje dolazi HTML stranicu. Hej preglednik, ovdje dolazi naslov. Hej preglednik, ovdje dolazi neki Tekst koji treba biti hrabar. I onda reci suprotno. Hej preglednik, to je to za podebljana tekst. Hej preglednik, to je to za tijelo. I tako dalje. I ono što je browser? Preglednik je samo tumač. To je program koji se netko poput Microsoft ili Google je pisano: čija je svrha u životu je da pročitao jezik, poznat kao HTML, i tumačiti ga. Vrha do dna, s lijeva na desno. I svaki put preglednik vidi otvorenom nosač, naslov, u neposrednoj blizini zagrada, to bi trebalo tumačiti da što znači, oh, da znači trebam staviti ove riječi način ovdje na vrhu preglednika. Dakle, to samo čini ono što kaže HTML kod. Ali nema nula i jedinica. Nema kompilacija. Nisi to učiniti. Preglednik to nije učinio. To jednostavno nije uključen. Dakle, u duhu ovih tijeku teme, danas i jučer, čini se da je divna osobina. Uštedjeli ste svoj kod, a zatim samo ga pokrenuti ili interpretirati. Nema ukoraci. Sigurno postoji trošak? Ne mogu svi biti upsides. Dakle, što bi taj trošak biti? PUBLIKA: Space. DAVID J. Malan: Space. Dakle, sigurno. U sastavio svijetu, imate ne samo originalni izvorni kod, također se stvara i onda vjerojatno štedi stroj code-- nule i ones-- i to je dobio zauzeti neku količinu prostora. Apsolutno. Dakle, to je koštalo više prostora. Da? Publika: preglednici mogu protumačiti drugačije. DAVID J. Malan: preglednici mogu interpretirati drugačije. To je istina. No, nisam siguran da sam ugodno tvrde to je zato što se tumači. To je više samo zato što je provedba jezik da sebi ima nejasnoća. Dakle, nemojmo sasvim potvrdu da jedan, ali dobar predosjećaj. Što drugo može biti cijena koja se plaća? Andrija? PUBLIKA: Ti si kombiniranje dva koraka, pa vas stoga imaju povećanje složenosti, kao dobro. DAVID J. Malan: the complex-- povećanje složenosti gdje? Za koga? PUBLIKA: Dakle, u tumač korak, da ste kombinirajući tumača i prevodilac za samo dovodi do to-- DAVID J. Malan: Ah, u redu. Ironično, to je vjerojatno malo jednostavniji za provedbu tumača, iako se čini da prinos pozitivnih strana ovog praktičnost. Pa možda i istina. Ali to vrsta ovisi, ja bih, na jeziku te o tome kako su otišli o njegovu provedbu. Tu može biti puno više složenosti, Zapravo, u prevodilac, samo zato što moraju ići od nešto tako visokoj razini da nešto tako niske razine. No, dobra misao. Dakle, drugim riječima, sastavio program kada je uključen u ove nula i jedinica, završi na jeziku da CPU govori, dok je u ovoj strani Svijet, program što ste napisali, kod koji ste napisali, zapravo nikad dobiva pretvorena u stvarni jezik računalo ne govori. Na nula i jedinica. Ona ostaje u izvornom, više ljudi prijateljski, više čitati jezik. Dakle, što bi moglo biti implikacija tamo, a ne ako to zaista smetaju konvertiranjem Program na samom jeziku da temeljni računalo govori? PUBLIKA: možda nije nešto razumjeti? DAVID J. Malan: Moć Ne razumijem nešto. I to se može claim-- ako ga nisu razumjeli nešto, to je bug ili nedostatak od značajka u tumača. Da bi se više greška nego trošak. PUBLIKA: Imate pristup izvornom kodu? DAVID J. Malan: Postoji dobra. Dakle, downside je da se ovdje si Čini se da imaju pristup. Vi, krajnji korisnik, može činiti imati pristup izvornom kodu. I to nije uvijek točno. Ali, to je istina u Slučaj JavaScript, koje ćemo pogledati nakon pauze danas, što je tumačiti programski jezik koji ste napisali u izvornom kodu. Ali to izvorni kod dobiva prenose s poslužitelja u preglednik i radi u ljudskoj pregledniku. Dakle, ovdje je samo mogao otvoriti prozor, kao što sam radila u Chromeu, i gledati na to, kao što smo sami Pogledao je jučer Google. To može izgledati malo nerazumljivo, ali je tu. Dakle, to je apsolutno jedna cijena plaćena. PUBLIKA: Izvedba hit? DAVID J. Malan: Da. I to je drugi neki problem. Tu je izvedba hit. Zato što su ove srednji čovjek, koji je i sam je program, između vas i procesor, za razliku od samo hranjenja tih sirovo nula i jedinica u CPU, tu je izvedba hit koji vas uzmi sa interpretativnom jeziku. Tako da, proizvoljno, program koji bi mogli uzeti jednu sekundu pokrenuti na računalu ili na jedan minute za rad na računalu ovdje može potrajati 10 sekundi ili 10 minuta za izvođenje na računalu ovdje. To obično ne će biti da mnogo difference-- faktor 10-- zato što postoji optimizacije možete učiniti. No, to je gotovo uvijek sporije. Sada, druga strana na to briga da, dobro računala, svaki 12 do 18 months-- prema Mooreov zakon, tako da speak-- samo dobivanje brže i brže. Imam više i više prostora na disku. Imam sve više i više RAM-a. Tko je zaista stalo? I to je neka vrsta razuman argument. Doista, jedan od razloga Zato možemo tolerirati sporije tumačiti jezika je zbog toga mi ljudi stvarno ne primijetiti. Računala imaju dobivši tek tako prokleto brzo. Dok natrag u dan, posebno kada hardver mnogo je više ograničena, što je manje od svega, to je puno skuplje tako da je sve skuplje, pa onda ti stvarno želio istisnuti koliko performansi kao što ste mogli. No, to zahtijeva pisanje na niže razine, ako hoćete, s sastavio jezika. Tako da ne iskoristiti ovu izvedbu hit. Ali općenito, pozitivnih strana Čini se da to vrijedi ovih dana. Pa, osim za Pitanje intelektualnog vlasništva. Ta vrsta čitljivost koda, mi ćemo vratiti se kad gledamo JavaScript. Tako ćemo pokušati kategorizirati barem neke od njih. Dakle, među sastavio jezika, će imati C, C ++, rod, sorta, Java, Iako je malo Iznimno, za Razlozi ću vam pokazati u samo jednom trenutku. C # bi se na ovom popisu. Mi ćemo gledati na više od samo Što je više modernih jezika. U redu. A to se čini kao dosta tamo. Dok na ovoj strani ograde, bismo mogli imati JavaScript i Python, i PHP i Ruby. I je li to dovoljno za novije one? To se osjeća kao puno za sada. U REDU. A onda dot dot dot, jer popis je beskrajan. A u stvari, ako želimo da se samo dobiti osjećaj učinimo, Wikipedia, sastavio jezika. Ja sam guessing da možemo dobiti daleko više iscrpan popis. Dakle, ovdje mi ići. Dakle, ovdje je mnogo više iscrpan popis. A ja sam se nadao da će netko pogoditi D kao jezik, jer da previše ne postoji, ali su se zaustavili kod D Čini se. Iako postoje zapravo može biti E. Oh, zapravo, to bi trebalo biti na listi ovih dana. Swift je zapravo jezik koji je Apple izumio koja se sada koristi, sve Dakle, u iPhone razvoj. No, mi ćemo se vratiti da je s naše rasprave od mobitel u samo malo, kao dobro. Dakle, Swift, kao dobro. A onda, ako idemo u tumačiti language-- tumačiti language-- onda evo još više lista, kao dobro. Dakle, ako ste samo google i pogledati na Wikipediji za te, vidjet ćete sve vrste jezika. No, svrha, za danas stvarno, samo svodi na možda ovo Pitanje intelektualnog vlasništva i čitljivost krajnji korisnik i performansi, je još neki problem, kao dobro. Dakle, među tim jezicima, daj da vidim ako mi može dati samo su neki uzorak jezika. Mi ne želimo ići preko svi jezici u nedogled. Jeste li se ikad pitali što je određeni jezik izgleda? To smo vidjeli maloprije. Zašto ne uzeti nekoliko od sadrže zahtjeve. Tko želi vidjeti što drugi jezik izgleda? Da. PUBLIKA: Java. DAVID J. Malan: Java. U redu. Dakle idemo na Javi. I samo da vam dati sample-- možemo napisati sve to van, ali to će biti brže samo da pogledajte tuđe uzorak koda. U redu. Dakle, ovo je dobar primjer? Ups. U REDU. Dakle, ovdje je Java verzija Program sam napisao ranije, "Hello World". Dakle, Java, često ćete vidjeti "klase." ključne riječi Tada ćete vidjeti neke naziv nakon toga. Vidjet ćete vitičastim zagradama kao što smo vidjeli prije, a ponekad idu na Ista linija, ponekad druge linije, to je vrsta osobnog odluke. Vidjet ćete ključne riječi poput "Javna", "statična", "praznina". Ali nismo vidjeli "glavni". "Glavni" je općenito naziv zadane funkcije ili zadani komad koda koji dobiva se izvoditi u programu. "Niz." Što podrazumijevamo pod string ranije? Ja ga koristiti vrsta ležerno. Niz je što? Riječ. To je kao niz znakova. Pojedini likovi, natrag natrag na leđa, obično u nizu, kao što smo razgovarali. A u stvari, vidi ovu sintaksu ovdje su dvije uglate zagrade? To znači, hej računalo, ovdje dolazi niz žice. Trg nosač zapis obično se koristi za označavanje to. A onda vjerojatno možete uzeti guess-- ono to je istaknuo komad koda vjerojatno učiniti? PUBLIKA: Izlaz? DAVID J. Malan: Da. Ona ispisuje nešto na ekranu. Dakle, "sustav" je neka vrsta pozivanje na računalu. "Out", znači da je vaše računalo je izlaz ili zaslon. Dakle, "system.out.print ln" vjerojatno znači? "Ln". Ispis linija koja programera kao što su da očito čarolija neke riječi iz u cijelosti i uzeti kratice s drugim riječima. No, "ln" je linija, tako da otisak linija. Tako da ispisuje "Hello World! ", A nakon nove linije. Dakle, to je to. No, Java je što će Poziv objektno-orijentirani. I doista, samo da bi se dobila Nekoliko drugih definicija tamo da bi mogli vidi, općenito, ne postoji mnoge različite vrste jezika, ali najčešće su proceduralne ili imperativni jezika. Tu su funkcionalni jezika, koja ne znači da su drugi nefunkcionalan. A tu je i objektno-orijentirani jezik. A to je možda najbolji kategorizacija većinu jezika da li bi ikada odlučite za neku vrstu za tipični komercijalni projekt. To bi bilo previše, Mislim, rupe štakora ići dolje, pokušati objasniti razne razlike. Ali su se jezici vidjeli smo na taj način far-- C je procesna ili imperativ jezik. U novije vrijeme je izumio jezici imaju tendenciju da se, ispričavam se, objektno-orijentirani, što znači oni imaju i druge značajke na njih. Mogu li to objasniti na ovaj način? Recimo čak i ne ide dolje. Objektno-orijentirani sredstva možete implement-- možete oblikovati u stvarnom svijetu malo učinkovitije. Čovječanstvo, tijekom vremena, je shvatio, wow, bilo bi lijepo da moj jezik imali tu značajku ili taj lik. I to je razlog zašto smo tako mnogo jezika u svijetu. Razumni ljudi, pametni ljudi slažu ili ne slažu i uvijek na neki način dolaze zajedno na razvijanje novih jezika sve zajedno. Slučaj u točki. Apple izumio Swift u nade vjerojatno sniženje bar za iPhone razvoj, jer prethodni language-- nazivaju Cilj-C, koji je imao također biti na našoj listi here-- bila je mnogo kompliciranih i još mnogo teže omotati svoje mišljenje oko. I kao i programiranje postaje nedvojbeno više pristupačan i šire usvojen od strane ljudi, pa čak manje tehnički je goal-- to je vrlo hrabar cilj pokušati smanjiti barijere za ulazak čineći sami jezici lakše da biste započeli s, ali ne manje moćan nužno. I jedan i drugi jezik. Zašto ne pogledati nešto kao Python, što je vrlo u modi ovih dana. Piton. Primjer programa. Da vidimo. "Pozdrav svijetu" jezika. Napravimo to. "Pozdrav svijete." Da vidimo je li to daje nas lijep primjer. U REDU. Dakle, ovo je zapravo vrsta zabave. Dakle, ako ste ikada google "Hello World", koji događa da se jedan od prvih programa ikad napisan u modernom jeziku, samo kao dokaz koncepta, možete vidjeti sve vrste implementacija ovo. Neki od tih jezika Nisam ni čuo. Ali možete see-- idemo na Basic, jednom sam saznao prije nekoliko godina, u dijelu. To je zabavno jezik, jer vas morala, kao i programer, broj sve svoje linije. Ne razliku od onoga što sam bio radite kada sam pisao pseudokod na žutoj dokumenta ranije za binarno pretraživanje, za traženje telefonskog imenika. I tako, ako ste htjeli ići na drugoj liniji, ti bi doslovno tip, ide do 10, ili ići do 20 godina. A ako pišete linije, Konvencija je činiti, to je linija 10, to je linija 20, ovo je linija 30, 40, ništa između, time dajući sebi malo prostora Ako se odlučite, čekaj malo, Trebao sam dodao neke Morseov kod negdje. Još uvijek je imao neku vrstu devet šansi za stisnuti da se između programa prije nego što je morao ručno ponovo numerirati sve. Dakle, to je vrsta ono što mislim kad kažem svijet je došao gore s novim značajkama. Negdje usput netko shvatio, Bože, ovo je glupo. Ovo je samo stvaranje raditi za programera. Dakle, on ili ona samo vrsta izgrađen novi sloj na vrhu da tako da ne morate brinuti o tome što crta brojevi kodu je zapravo na. Dakle, kada možete odabrati jedan jezik ili neki drugi? Pa, što od njih jezicima te imaju tendenciju koji će čuti o većini u svoj vlastiti svijet ovih dana? Recimo padajući Objective-C previše. PUBLIKA: C #. DAVID J. Malan: C #. Pa neka mi boju. Da li mi imamo drugu boju negdje? Dakle, C #. A što ti znaš o C #? Sve proljeće na pamet? PUBLIKA: To je programski jezik. DAVID J. Malan: To je programski jezik. U REDU. To je istina. Dakle, govorimo o C #. C # najčešće se koriste u Windows okruženja, pa ako ste pisanje Microsoftov softver za Windows, C # je vrlo često koristi, da li je za desktop softver, ili čak i telefon softver na Windows telefonima, ako ste imali one, ili na webu, čak i previše. A u stvari, možda Kareem u navedenom ASP ranije? Dakle, tu je i njih stvari se nazivaju okviri, koje možemo uvesti proširenjem. Okviri, kao što su ASP. Stalci za aktivne stranice poslužitelja. A to je kod i način programiranja da općenito olakšava za pisanje web aplikacija temeljenih. Drugim riječima, to bi bilo super, super neugodno napisati website u jeziku C koji smo vidjeli, zato što će morati koristiti print + F, ti bi tu ključnu riječ "Glavni" i vitičastim zagradama. Puno kompliciranih sintakse i pristup za provedbu nešto što je prilično složena. Web-stranica. I tako drugi jezici su se razvili da bi takve stvari lakše. A s druge strane, ljudi su se sa okvirima, nešto alata koje možete koristiti kako bi ga čak i lakše pisati web stranice. Tako, na primjer, kako bi se to puno konkretniji, neka mi se otvori samo tekstualne datoteke za trenutak. A možda sjetiti jučer da mi je nešto kao, to je web stranica. HTML. Zatvori HTML. Pusti me preskočiti glavu i Upravo to tijelo ovdje. Pretpostavimo da želim pisanje nije "Hello World" ali "Zdravo David", gdje je David je naziv trenutno prijavljenog korisnika. Ono nešto slično ASP će učiniti, ili JSP-- što je Java poslužitelja pages-- ili bilo koji broj drugih okvira je da oni nisu jezici, per se. Oni su baš kao i dodatni softver koji vam će instalirati u svoj okoliš samo da bi se lakše programirati. Tako, na primjer, umjesto da morate učiniti nešto poput "Halo, printf (" David ")" ili nešto što je vrsta co-mingling-- vrsta kod koje smo vidjeli before-- što će učiniti nešto mnogo jednostavnije, poput "name%." I tako ti okviri, kao ASP-- i ja ne sjećam se ako sam uzimajući sintaksa taman za ASP. JSP je little-- je ovo u redu? Tako je s ASP, ovo je vrsta posebnog sintakse da su neki programeri odlučili to bi moglo pomoći ljudima. A ja mogu izraziti više jezgrovito rezerviranih mjesta, na primjer. Kao i stavite vrijednost ovdje, gdje ovaj naziv vrijednost nije N-A-M-e, to je neka vrijednost pohranjena tamo. Dakle, "ime", u ovom kontekstu, bismo nazvati varijablu. Algebra ima varijabli kao što X i y i z. Programeri koriste varijable koje su više opisne od x, y i z, tipično. Dakle, "ime" će doslovno biti neka vrsta memorije spremnika za tako nešto D-A-V-I-D, za moje ime, ili tko ostalo je prijavljen na web stranici. I tako je to vrsta praktičnost ste dobili s određenim sredinama. Dakle, C # i nešto poput ASP bi vrlo uobičajeno se koristi u Windows svijetu da li za desktop softver ili web server, pogotovo ako vaši poslužitelji su pak Microsoft Windows i Microsoft IIS-- ili Internet Information Server, ako dobijem akronim redu- što je Microsoftov web poslužitelja. Dakle, što drugim jezicima su ljudi upoznati s, ili ste čuli više nego često ne? PUBLIKA: Znam da Pythona vrsta popularan [nečujan]. DAVID J. Malan: Vrlo popularna. Dakle, Python ovdje se koristi vrlo često u znanstvenim programima ili podacima znanost, gdje imate puno podataka koji želite analizirati i želite koristiti programski jezik za to. R bi uobičajeno mogu koristiti za koje kao i, u statističkom smislu. No, Python ima toliko značajke ugrađene u. Toliko dodatnih knjižnice, kao što ljudi kažu. Knjižnice su samo zbirke koda koji drugi ljudi napisao je da možete koristiti tako da tebe ne moraju izmisliti one kotače. I tako Python je vrlo često koristi u podacima znanstvenih aplikacija. No, to je također vrlo često koristi u web aplikacijama. Možete provesti dinamičan web stranice koristeći Python. I dinamičke web stranice, sam znači ne samo statički sadržaj kao što smo stvorili jučer, po samo teško kodiranje na latinskom tekstu i druge takve stvari, nego sposobnost Za prijavu, sposobnost za kupnju nešto, sposobnost da se provjeriti s kolica ili slično. Sve to zahtijeva dinamičnost i vas treba neki jezik kao jedan od njih. PUBLIKA: Dakle, nema Python ima vlastitu proširenje, slično kao što su [nečujan] DAVID J. Malan: To čini. Tako je u svijetu Python, Django je vrlo popularan okvir za Python. WSGI je još jedan mehanizam koji je vrsta razlikuje od toga ali slični u duhu. To je dodatak koji vam omogućuje pokrenuti Python koda na poslužitelju. Postoji other-- da. Dakle, to ćemo zvati okvire. I to je malo o zlouporabi. To je više od tehnologije web poslužitelja. No, mi ćemo i dalje ostane jednostavan i staviti to u ovom stupcu svejedno. U REDU. WSGI. WSGI. Još stvar-- i zapravo, neka ja potez koji bi vlastitu kolonu, jer bih vikati na sebe što sam stavljajući ih u isti kantu. Stavimo to u server osobine, recimo. To nije tehnički pojam. Dakle, ovdje bismo mogli biti WSGI. Tu je CGI, što je stariji tehnika za posluživanje do jezika kao što su Perl ili PHP ili neki drugi. Opet, ja sam spomenuo ove uvjete ne toliko da ih na neki način okorio, ali tako da ako vidite im je nešto jednostavno google pročitati više. Nema pravi sok na neke od tih stvari. No, vratimo se na jezike. Razgovarali smo o C #, Python. Što još možete koristiti za Web programiranje ovih dana? Idemo se fokusirati na to i dalje. PUBLIKA: PHP. DAVID J. Malan: PHP. I neka je vratiti u taj jedan. Dakle, PHP je vrlo često koristi. PHP sklon dobiti loš rap. Ona je počela kao jezik implementiran od strane ljudi koji možda nisu bili nužno najbolji jezik dizajnera. I tako da možete čitati sve vrste članaka online o tome kako je loše PHP je. I na žalost, to je manifestacija, u dijelu, za samo vjerske rasprave da izbacivati ​​među programerima. A to je nešto vrijedi imajući u vidu, iz poslovne perspektive, da to je vrlo lako za tehničke osobe da se sve radi sa svojim mišljenja o nekim stvarima. I to ne znači nužno da je jedan vikao najglasnije ili najjači, najljući mišljenje je u pravu. Mnogo puta, to stvarno Samo ne smeta. I tako ljudi samo tvrde god vlastite predrasude ili udobnost zone. I tako trebali držati to na umu prilikom izrade odluka, koja je upravo zato što netko kaže ovo je pravi jezik posao, da bi moglo biti istina, ali isto tako može biti samo to je Pravo jezik unutar vlastite vještine postaviti ili zone udobnosti. Što nije loše, ali treba shvatiti da bi moglo biti neke kontekst tamo. Postoje neki objektivno pogrešne izjave, kao što je C pogrešan jezik za korištenje ovih dana za provedbu web stranice skoro uvijek. Ali to nije nerazumno reći da je bilo koji od ovih su u krivu kada smo kružili do sada. PHP je prošla mnoge verzije. Dakle, jezici imaju tendenciju da imaju verziju brojevi povezani s njima. PHP je do, mislim, verzija 7 i sada, pa to je bio oko za neko vrijeme. I kao jezici dobiti noviji, oni često dobiti nove značajke. Ali morate biti svjesni toga jer ako je vaš website je proveden u verziji 7 PHP, ali koju pokušavate pokrenuti svoje web stranice, ili možda ste ustupljeni razvoj kodu da je netko drugi, a oni mail to vama ili ga poslati na vas a govori se ovdje staviti ovo na svoj web poslužitelj, Ako vaš web poslužitelj je nekoliko godine outdated-- da li je svoj vlastiti server ili web host-- ona ne može zapravo raditi. Dakle, to su vrste stvari koje je netko treba biti svjestan prilikom nadogradnje site ili ona provodi po prvi put. Čuo sam JavaScript ranije. Dakle JavaScript je zanimljiva jedan, što je općenito strani klijenta, kao što ćemo vidjeti nakon pauze, koja znači da radi na korisnikovom pregledniku. Ali, također možete pokrenuti JavaScript ovih dana koristeći nešto što se zove Node.js, gdje Node.js je mehanizam za trčanje JavaScript kôd strani poslužitelja, umjesto da koristi Python, ili PHP, ili drugih sličnih jezika. JavaScript je posebno dobro prilagođen chat aplikacija i stvarnom vremenu aplikacija, a PHP nije velika jezik za provedbu nešto kao chat server, gdje korisnici ostati povezan s njim stalno. PHP je više od me posjeti jednom, vratiti rezultat, a zatim još jednu vezu neke sekundi ili minuta od sada. Dok Node.js i JavaScripta može biti koristi više za postojane veze. Ostali jezici koje sumnjate obično se koristi za web stvarima? PUBLIKA: Biste jQuery biti okvir? DAVID J. Malan: Dobro pitanje. Ni. Nazvao bih jQuery biblioteku, gdje je opet knjižnica je samo hrpa koda da netko drugi ima Zapisano je da je općenito rješava neke probleme koji čini, nadam se, jednostavnije za vas učiniti vaš posao. I neka mi to jedan primjer to u kontekstu webu. U kontekstu lamele ima taj jezik, JavaScript, da ćemo vidjeti kasnije, pri čemu vas Moglo bi se reći nešto poput učinimo "Document.getElementById". A što sam ga nazvati jučer? Prvo, mislim da je bio jedinstveni ID sam dao na element koji je izgledao ovako. "P id =" prvi ">", a zatim smo imali poput "Lorem ipsum", i tako dalje. Dakle, ako pišem program u JavaScript nekako manipulirati, mijenjati web stranice koje smo Igrali su jučer, Ja bih iskoristiti ovu Istaknuta linija koda doći u uglatim isječak HTML sa stranice, da određeni čvor, kako ćemo ga nazvati. Međutim, u jQuery, umjesto pisanja to što je sirovo JavaScript code-- Upravo iz kutije, to je kako ti pisati it-- umjesto toga će samo reći, "#prvi." To je ekvivalent. I tako se temelji samo na ovaj vrlo Arcane primjer, ono što je možda je argument za korištenje jQuery? Zašto bi programer koristiti knjižnicu kao jQuery, na temelju ovog izoliranog primjer, možda? PUBLIKA: Manje kod. DAVID J. Malan: Da. To je manje kod. To je samo brže tipkati. Kontrapunkt je da izgleda strašnije. Vi stvarno ne mogu čitati s lijeva na desno. U stvari, jer to je uglavnom interpunkcije sada umjesto stvarne riječi, Mogu vrsta zaključiti da "Document.getElementById" dobiva element iz dokumenta po svojoj ID. Ja stvarno mogu koristiti takva mnemotehnika ovog stvar ovdje. Tako da je trade off. Tu je sofisticiranost koja dolazi često s pomoću knjižnice, osobito kao jQuery. No, stvarnost je jQuery ima oblik od postalo de facto standard, tako da gotovo svatko to dana koji piše JavaScript kôd koristi jQuery ili nešto kao što je to, i više ne piše takva preopširan izrazi kao to, jer opet, čovječanstvo saznaje, wow, to je bilo svojevrsni je propuštena prilika kako bi naš život lakšim. Dakle, ljudi bi im život lakšim. Dobro pitanje. Ostali jezici uzeti u obzir. Rekao bih da među ova Lista Ruby je vrlo popularna. I tako u svijetu Ruby, tu je okvir zvani šina, koji je vrlo popularan. Dakle, Ruby on Rails je obično se koristi izraz. Također, u ovom svijetu, neka me Krug Java za web stvarima, gdje u svijetu Jave možda imate JSP ili Java Servleta, što je uobičajena tehnologija. A to je samo opet načini korištenja da je jezik u poslužiteljskom okruženju. Dakle, što to znači? Ako imate fizički poslužitelja, što bi doslovno preuzeti web-poslužitelj softver i instalirati ga na takav način da imate podršku za jednog od ti okviri, s kojim se mogao je, pak, koristiti jednu ili više od tih jezika. A u stvarnosti, ako ste se prijavili za kao što je web host ili neke od oblaka Usluge razgovarali smo o jučer, često stvari samo dolazi s konfiguracija stroja za vas. Ne treba to postaviti ručno. Ali ako jeste, to je mjesto gdje je uloga od administratora sustava, da tako kažemo, dolazi u igru. On ili ona će zapravo učiniti ova vrsta stvari za vas, ili tzv webmaster Često će to učiniti za vas. U redu. Bilo kakva pitanja o nekim od ovih ovdje? Ili prilike u sve pitati o jezicima? Okviri? Onda neka me upoznati Samo jedna knjižnica To je također vrlo čest ovih dana. Ovaj popis bi mogao ići na beskonačno. I ova knjižnica je vrsta počinju da padaju u nemilost. Prošlo je oko. To je popularizirao Twitter za neko vrijeme. I sada puno web stranice, puno programere ga koristiti. No, nove stvari dolaze van i dolaze zajedno. No, dopustite mi da vam dati osjećaj što to znači da koristite knjižnicu. Pa opet, JavaScript vrlo popularan jezik. CSS ili Cascading Style Sheets, razgovarali smo o jučer. To je, također, je sveprisutan. Nitko ne čini web stranice danas bez korištenja HTML i CSS minimalno. Ali to nije uvijek lako učiniti određene stvari. I tako me pustiti da getbootstrap.com. Ups. To nije način na koji čarolija. Getbootstrap.com, što će me dovesti na odredišnu stranicu za ove knjižnice. Tako su velikodušno nazvati sami okvir koji je vrsta vrsta fer, ali ja još uvijek bih ga nazvati više knjižnica nego okvira. No, to su samo sporan semantike. Pusti me u svoje CSS karticu i Pusti me da se nešto ovako. Tako se sjetiti što naši obrasci pogleda kao i jučer na Cloud9? Bilo je prilično ružno. Tipke stare škole. Mislim da je gumb za bilo sivo od zadano. I sve je bilo stvarno formatiran sasvim messily. Dakle, ako želite da vaše web obrasce izgledati Malo nicer-- neka mi zumirati ovdje. I ljepše sam zapravo samo znači vrlo nitpicky estetiku. Dakle primijetiti kako je e-mail box ima ima zaobljeni pravokutni uglovi na njega. Dakle, to je malo čišće tamo. Obavijest da je riječ email je tamo dok sam početi tipkati i onda to ide dalje. Dakle, to je lijepo malo lice. Obavijest o tome kako stvar je vrsta užaren lijepo, što neke od ove vas dobiti besplatno iz vašeg preglednika, ali neki od toga je i knjižnice, kod koji drugi ljudi imaju Zapisano je da ti ovo dati. Nešto kao ovo daje mi moju zaporku. Ova tipka je malo više seksi nego zadano. Jako puno u modi upravo sada. Otkako iOS 7 ili učini, svijet je stečen vrlo ravna, dok je u svijetu prije imali puno pad sjene, puno refleksija na ikone. Slično kao u odjevnoj svijetu, tu je modni trendovi koji dolaze i odlaze. Sada je sve ravno na vaš telefon. U stvari, tipke na iPhone sada su samo plave linkove. Nema se često čak i kružne tipke. Dakle, to su samo stvari da ulaziti i izlaziti Voguea, pa to je, kako se moglo čine više moderan izgleda web obrasca. Tipke. Dakle Bootstrap ima puno lijepih gumba. Dakle, ako želite plave tipke, zeleni gumbi, plava, narančasta, crvena. Bootstrap olakšava raditi te stvari. To su vrste stvari da bi mogao apsolutno učinili jučer sa CSS i HTML, ali to je samo bol u vratu. I tako, umjesto što Bootstrap bi da učinite nešto ovako. Ako želite button-- ispada ovo je HTML tag nismo koristili yesterday-- i želite da izgleda kao što je ovaj zeleni gumb, što doslovno samo dati ga klase, što smo učinili govoriti o jučer, o "btn btn-uspjeh." Zašto te riječi? Twitter, autori Bootstrap, došao s tim riječima. Mogli su pozvani im sve što požele. No, ono što dobivate je netko drugi na Twitteru, u ovom slučaju, je shvatio kako ti napraviti Gumb izgledaju lijepo i čisto i zelena. Oni su pakirani se da funkcionalnost u CSS klasu, pod nazivom "btn" i "btn-uspjeh", tako da je bilo tko od nas može Sada ga koristiti čak i bez razmišljanja o tome ono. Tako su sažeto daleko pojam zeleni gumb tako da ne morate brinuti o tome provedbi ga sami. Mi zapravo može usredotočiti na provedbu stvari od interesa za nas. Ako dođite ovamo. Poruke o pogrešci na ekranu. Ponekad želite malu poruku da se pojavi na vrhu preglednika. Svako od nas mogao učiniti s nekim truda, nakon jučerašnjeg sat, ali zašto bi ti smetaju? To je tako nezanimljiv estetski detalj. Recimo stoje na ramena Bootstrap i neka nam stvari kao što je ovaj, gdje smo doslovno, da se crveni okvir, samo morati napraviti stavak Oznaka s klase of-- žao. "BG-opasnost" da će nam dati ovo crvenkasto okvir. Sada idemo na više zanimljivih stvari. Ako sam se vratiti na vrh ovu stranicu i otići na komponente, Sada je svijet dobiva više zanimljiv. Na primjer, vrlo česta je padajući izbornici kao što je ovaj. Ovo će biti apsolutno Bol provesti. I to nije bilo tako dugo prije da mi programera bi za provedbu tih vrste jelovnika od nule. Ali to je tako česta paradigma da knjižnice poput Bootstrap samo vam dati mogućnost da napravite padajući izbornik daleko, daleko lakše. Ne postoji jedan način da to učinite, ali ako sam pročitao dokumentaciju Ja bih vidjeti da, OK, ja bi trebao koristiti to HTML, ako želim padajući izbornik da se ponaša kao da je. Slično tome, idemo na gumb padajući. Dakle, to je čak i ljubitelj. Ako želim to gledati kao gumb ali da je malo trokut znači Trebao kliknite na njega i dobiti ovaj izbornik, ovaj koristi jezik zove JavaScript. I svi smo mogli provesti ovo JavaScript. Ali opet, ovo je kolo ne želite da se domisliti. Vi samo želite da ga skinu polica knjižnica za to. Idemo na nešto kao što je napredak barova. Dakle, nešto kao što je to vrsta cool. Ako ste ikada vidjeli napredak Bar se kreće preko ekrana, provedbu koji se često je samo ikona vrti. U stvari, baš kao i na stranu, neka da odem u Ajax-- što je to? Ajax info? Ups. Ajaxinfo. Dopustite mi da zapamtite adresu. Idemo tamo. Dakle, ako ste ikada vidjeli neke animacije dok se stranica učitava ili razmišljanja, ili spremanja, ili stvaranje nešto, vidjeti takve animacije što su ove. Pa pogledajmo nešto kao što je ovaj ovdje, i neka je odabrati prvi plan boju zeleno, što se osjeća neka vrsta prijateljski. Mogu li kliknite na ovaj? Dođite jedan. U REDU. Mi ćemo samo ići s crvenom, jer to je ono što ste uzimajući. Dakle, ovdje smo ga. Dakle, ako ste ikada vidjeli na ekranu, pri čemu je odjednom se pojavi, a zatim iznenada nestaje, što je to što je provedbu toga? Pa, to je samo GIF. G-I-F. A to je animirani file, što samo znači to je kao stara škola stripa. Postoji samo hrpa drugačije okviri koji dolaze [mucanje] i samo ponavlja. I to je stvaranju iluzija pokreta. Dakle, čim se stranica učinjeno utovara ili radi nešto, Što programer učiniti? Pa, on ili ona samo prikriva ovu sliku. Dakle, sve je traka napretka je vrsta poput filma koji gledate. Ti si neka vrsta nesvjesni činjenice da to nije zapravo radi ništa, to je samo kreće. A onda, kada se to radi napreduje, oni samo to sakriti ili ga isključiti. I to je sve čarolija što se događa tamo. Bootstrap vam daje nešto malo ljubitelj, pri čemu možete zapravo vidi postotak kao što ide, ali je to ipak samo vrsta jednostavne animacije. Pogledajmo neke konačna složenijih primjera ovdje. Nešto kao modalni. Se bilo tko znati što je modalna je? Prozor modalni općenito onaj koji je trebao preuzeti kontrolu nad prvom planu i spriječiti radite bilo što drugo. To je vrsta prisiljava korisnika pozornost na sredini ekrana, zaključavanje ih se, u pravilu, za sve ostalo. Dakle, ako sam pokrenuti ovu demonstraciju, na Zaslon će općenito postaju sive. Pa, kako ćemo učiniti sivo? Pa, vjerojatno samo promijenila boju pozadine kao što smo učinili jučer ili tako nešto. Možda je preklapanje da polu-transparentni. A sada primijetiti možete učiniti Sviđaju stvari kao što je ovaj. Dakle, ako ste ikada kliknuti na gumb i želite malo iskočiti da se pojavi, možeš to napraviti. I tako je stalo all-- da? PUBLIKA: Tako je s Bootstrap, da bi ga ugraditi, to je kao jednostavan kao kao i jučer smo učinili stranicu CSS stilove? DAVID J. Malan: Doista. Stvarno dobro pitanje. Pusti me da se početak rada. I da. Sve što trebate učiniti kako bi se Korištenje Bootstrap je u biti kopija i zalijepite te tri duge redove kod u vrhu svoju web page-- glava vaše page-- a ti si gore i trčanje. A tu je i različite načine obavljanja to, ali ovo bi bilo najjednostavnije. Dakle, ono što je korisno o svemu ovome? Pa, ako niste toliko implementator website ali vi ga pokušavate dizajn, ili ako želite dati nekome sa žica okvira dijagramima, da tako kažemo, Ili samo umjetnika prijevoda što želite učiniti, ja to dan, često će ići na licu mjesta kao što Bootstrap, gdje ako sam želite provesti something-- kao što je nedavno na kampusu htjeli smo provesti web-based alat za navigaciju Harvard katalog, naravno, što ga čini lakšim za studente za pregledavanje kroz tečajeve i dodati tečajeve Popis za kupnju, da tako kažemo, na neki način odlučiti što oni su htjeli uzeti. Pokušavao sam zamisliti ja, što su sastojci bi želimo koristiti za izgradnju ovo? Što bi korisničko sučelje biti? I samo gleda kroz site kao ova ili drugih sličnih knjižnica stranice, možete dobiti inspiraciju, jer wow, Mogu koristiti ovaj widget i widget, i ovaj widget. I onda stvarno što programer počne učiniti, posebno u ove dane u ovom moderniji svijet web programiranje, je programiranje je sve oko povezivanja stvari zajedno. Sortiraj uzimanje ovaj off polici, ovo s polica, ovaj off polici, a ti kao pametna jedan povezati sve te točkice, ali u konačnici izgraditi nešto tako ponovno stojeći na ramenima druge, tako da ne troše mjesečno Uvođenjem glupo padajući izbornik, koji je zapravo teško učiniti ako što želite da rade na Chrome, i IE i Firefox, i bilo Broj ostalih preglednika. To je razlog zašto postoji ova bogata komercijalni i open source softver industrije, kao dobro. PUBLIKA: Dakle, nema Bootstrap dobiti ažuriran i morate zatim ažurirati svoje veze? DAVID J. Malan: To čini. Pa, da, tako je. Bootstrap je trenutno u verziji 3.3.6. I općenito što bi do-- to je zapravo vrijedno spomena. Tu je ono što je općenito poznat kao semantički verzije Sustav u svijetu. Nije svatko to čini. Ali, ako ste vidjeli brojeve verzija koji su u obliku x.y.z-- tako na primjer, prva verzija programa može biti 1.0.0. Ili, ako je to vrlo, vrlo beta ili čak alfa status, što znači korištenje na vlastitu odgovornost, to nije stvarno spreman za premijera vremena, možda čak i početi 0.0.1 ili neka takva klasifikacija. Ali ako program počinje u verziji 1,0, ili ekvivalentno 1.0.0, obično, što je čest ovih days-- iako ne omnipresent-- je ako tvrtka ili pojedini programer popravci neki bug u nekom komadu softvera koji stvarno Bio je to bug, čiji je korekcija ne bi trebala utjecaj na vas na all-- to ne mijenja ponašanje programski, to samo popravlja nešto da ne radi properly-- što bi obično ažuriranje z vrijednost tamo. Što znači da netko poput Kareem mogao jednostavno otići u svoju web stranicu, slijepo promijeniti broj verzije od 1.0.0 do 1.0.1, osim što, brod je, te u teoriji, ne moraju brinuti da on samo slomljen njegov website zbog neki nedostatak funkcionalnosti, jer je izbio nešto drugo. U međuvremenu, ako sam programer ili neka tvrtka su napraviti neke značajne Promjena koja dodaje funkcionalnost, Možda nam se ažurirati 1.1.0 jer sam zapravo promjeni ponašanja u knjižnici. Dajem ti možda više funkcionalnosti. Na kraju, ako su se zapravo iz temelja mijenjati softver tako mnogo toga što će se slomiti mnogo korisnici web stranice ili aplikacije, onda sam dužan, u ovom modelu, kako bi nadograditi veliki broj verzije također, što je razbijanje promjena. Drugim riječima, možda ću imati Obustavljena podrška za one kapi dolje izbornika. Dakle, ako ste nadograditi na 2.0, na pola Vaša web stranica može prestati raditi. I to je neka vrsta signala zajednici kao na ono što je sudjeluje u izradi nadogradnju. Dobra prilika za podizanje. Ostala pitanja? U redu. Pa neka je pogledati u jednom finalu tema u ovom segmentu programiranja tehnologije dimnjaka, naime odnose na mobitel. Tako je u svijetu mobitela danas što have-- i iPad, a površine, i sve one vrste od devices-- imate puno izbora kada je u pitanju provođenje prijava ili web stranicu za mobilni uređaji svoga kupca. Dakle, samo konstatirati očiti, možda ovih dana, što su platforme za razvijati u mobilnom prostoru? Što uređaji možda želite podršku s aplikacijom ili web stranicu? PUBLIKA: Apple. DAVID J. Malan: U redu. Tako da Apple uređaje. Dakle, to znači da iPhone, i to znači iPad, a možda i iPod. Što drugo? Olivier? PUBLIKA: Android. DAVID J. Malan: Android. U REDU. Tako Android telefone Android tablete, Android Market još je Messier because-- i čak i Apple postaje neuredna. Dok jednom davno iPhone je određene veličine, i iPad je određene veličine, i iPod je određene veličine, sada imamo iPad Mini, a tanka djeca i iPhone 6 Plus i 6. To postaje u neredu. To postaje Android svijet. A to kažem s vrstom valjanje moje oči, jer od razvojnog programera perspektive, to je bol u vratu kada je nemate Steve Jobs " Vizija apsolutnom kontrolom preko svih tih specifikacija. Apple još uvijek radi, jer oni su oni grade hardver. No, to je lijepa stvar, ako Ja sam softver razvijen, samo znam da je moj iPhone uvijek ide da se ova velika, jer to znači da ja uvijek znam koliko zaslon nekretnina imam. Dakle, ako želim staviti ikonu u gornjem lijevom kutu, to će biti u točno isto staviti na svaku kupca uređaja. No, u svijetu iPhone 6s i iPhone 6 Pluses iu svijetu Androida telefon, to je sve više karti. I tako to čini teže programa stvari, posebno korisnička sučelja, jer sada morate početi uređenje Vaše korisničko sučelje relativno, a ne apsolutno. A isto je istina o preglednicima, i stolna računala, i laptop za godina zbog tebe, naravno, imaju različite veličine zaslona. Što drugo? Možda ćete morati površina, kao iz Microsofta. Možda have-- PUBLIKA: Windows telefon. DAVID J. Malan: Što je to? PUBLIKA: Windows telefon. DAVID J. Malan: Da. Tako da Windows telefone još uvijek može naći. Vrsta vrste BlackBerrys, ali oni i dalje pokušavati. I onda grozdove drugim uređajima. Dakle, za najveći dio, neka je kažu to su one voditi brigu o ovom trenutku. Sigurno je da Apple stvari, svakako Android stvari, a među Windows, kao što je na površini tablete Čini se da lov na prilično dobro. I tako među tim uređajima, Ako želite razvaljajte, recimo, mobilni prisutnost za Vašu Tvrtka, što vrste dizajnerske odluke moraš napraviti? Pa, mi već rekao u Apple svijetu, ima najmanje dva jezika koji se obično koriste. Jedan je bio pozvan što? PUBLIKA: Objective-C. DAVID J. Malan: Da. Dakle, Objective-C, što je stariji. To je ujedno i jezik koji mnogi Mac aplikacije i dalje su napisane u. Tada je drugi noviji bio? PUBLIKA: Swift. DAVID J. Malan: Swift. A oni su vrsta dva znati impresionirati ljude. Tada se u svijetu Android, što jezik ne Android korištenje? PUBLIKA: C #? PUBLIKA: Java. DAVID J. Malan: Java je jezik "du jour". U sustavu Windows svijetu, sigurno, reći ćemo da C # u tom slučaju. Dakle, to je već neka vrsta neugodno, jer ono što je takeaway za posao vlasnik ili netko tko je upravo želi razvaljajte mobilni prisutnost? Kao, dovraga? Kao, ako želim podržati prilično široka baza korisnika, Moram napisati, čini se, tri zasebna aplikacija. Jedan na jedan od tih jezika, jednom u Javi, jedan u C #. A čak i ako želim funkcionalnost biti identični, to ne smeta. Još uvijek je potrebno koristiti drugačiji jezika, jer Apple i Microsoft, i Google će svu podršku različitih okruženja. I to je bio izazov za godina. Natrag u dan, kad ljudi koriste za kupnju softvera u računalnoj trgovini u smanjiti zamotan kutije, što bi bilo na posegnuti za Mac polici, ili for-- Možda je ovo vrlo mali Mac shelf-- ili veći Windows polica i kupiti neki softver. I vrlo često, nije bilo ni ništa za vas na Mac polici. Zašto? Pa, tvrtke odlučio, ako 90% u svijetu, 95% svijeta ima računala, zašto se zamarati ni provedbu stvari na Mac OS? Kao aside-- ukupno digression-- zašto je to da Mac izgleda tako neosjetljiv na viruse, a crvi i sigurnosnih prijetnji? Je li Apple bolji na ovo? Bolje na čuvanje računala sigurna? PUBLIKA: Manji publika? DAVID J. Malan: To je Vjerojatno je veći zalogaj za njega. Tako su mnogi korisnici Mac računala ima dugo tvrdili, oh, koristite Mac, vi ćete biti imun na viruse i crvi i sve te stvari koji su dugo mučila računala. To bi moglo biti zbog jabuka ima bolje programere a oni pišu bolji softver, ili Operativni sustav je bolje dizajniran. Možda, ali vjerojatno ne. To je vjerojatno da kada ste 12-year-old, ili 30 nešto vrsta sjedi kod kuće pisanja zlonamjernog softvera za preuzimanje svijet, ti si idući u ići poslije mnogo veća ciljana publika. 95% svijeta koji bi mogao se sustavom Windows ili neki njihove inačice. Tako da je malo na obje strane. No, da njihove kreditne, Apple, prema mojim saznanjima, nije stvarno se krišom kao sigurniji, jer ste samo pozivaju dramu ako što bi tu tvrdnju, rekao bih. U redu. Bez previše daleko dolje da, kako ćemo ovo riješiti? Imate li kupiti ili ne morate plati tri različite ljude da razviju Vaše aplikacije? Da li odabrati jedan nad drugim? Što bi trebao voditi svoje misleći ovdje misliš? Kareem? Ne. Netko drugi. PUBLIKA: Samo se s hardverom. DAVID J. Malan: Dođite s hardverom? Kako to misliš? PUBLIKA: Za okruženje. [NEČUJAN] DAVID J. Malan: Dakle, to je istina. Ali vaši klijenti, U međuvremenu, možda ima iPhone, oni mogu imati Android telefone, oni možda tablete napravljene od strane Microsofta. Pa kako imate mobilnu strategiju za sve ove različite korisnicima? Čini se da, ako to košta, recimo 1000 $ da bi iPhone aplikacija, to se događa vas koštati 2000 $ da bi iPhone aplikacija i Android aplikacija ili 3000 $ također podržava Windows uređaje kao dobro. To je vjerojatno prilično nepotpuno, a možda čak i ne da postoji linearna ovisnost kao što je to. PUBLIKA: Ako želite imati aplikaciju ili Ne možete imati odgovarajući web stranicu. DAVID J. Malan: Dobro. PUBLIKA: Ili možete imati nativnu aplikaciju. DAVID J. Malan: Da. Dakle, u svom tom kontekstu ovdje smo govorili o tome ljudi bi se nazvati izvornih aplikacija. To je aplikacija koje su napisane na materinjem jeziku tog uređaja. Dakle, izvorni Objective-C ili Swift kod, ili u Javi, ili C #. Što znači kada ste preuzeli, neka je kažu Snapchat, popularni program, ili prilikom preuzimanja Facebook za telefon, preuzimate bilo verzija napisana za vaš iPhone, ili pisano za svoj android telefon, ili pisani za svoju površinu. Ali postoji alternativa. Kao što je Olivier je aludirao, zapravo možete koristiti HTML 5 umjesto toga, koristeći ono što se naziva web prijava, pri čemu jednostavno provesti svoj mobilni prisutnost i bilo funkcionalnost. Što mislim pod mobilnog prisutnosti? Kao svoju web stranicu koja ima svoj blog kontakt informacije, popis svih svoje proizvode, možda ima u kupovinu kola, možda prodaju stvari kroz njega. Bez obzira na vaš zahtjev, te provesti ga, a ne u Objective-C, ili Swift, ili Java ili C #, ali u HTML-u 5, koji je bio jezik koji je izgledao na jučer, sa JavaScript i CSS. A što je lijepo o onima tri je da ih pokrenuti, trebate samo ono komad softvera? PUBLIKA: Web preglednik. DAVID J. Malan: Web preglednik. A najbolje znam, sve je to Uređaji dolaze s web preglednicima, tako da korisnik ne mora instalirati nešto posebno. Tako da samo mogu reći svoje publika, vaši klijenti, ići na acme.com u svom preglednik i samo ćete imaju web based iskustvo u koji još uvijek ispunjava ekran, ali ne morate brinuti o svim ti troškovi i sve ove kompleksnosti. No, sigurno je idući da se ulov ovdje, zar ne? Pogotovo ako sam naglasiti da je prije par godina, Prva verzija mobilnih aplikacija Facebook je uglavnom HTML 5 aplikacija. I oni su, više Nedavno, reimplemented ga u svojim drugim aplikacijama. Pa zašto ne bi li Odmah želim reći, dobro, očito ćemo to učiniti? Ono što bi moglo skriveni troškovi biti? PUBLIKA: izvedba. DAVID J. Malan: Nastup? Kako to misliš? PUBLIKA: Izvorna aplikacija ima bolje performanse. DAVID J. Malan: Tako da je istina, za nekoliko razloga. Možemo uprostiti odgovor. I sjećam našu raspravu o tumačiti u odnosu sastavio jezika. To je HTML 5 i uz to, za svaki slučaj Jasno, JavaScript-- obično pisani JS-- i CSS su svi interpretirana jezika, makar JavaScript je programski jezik. I tako u odnosu na njih, a neke od njih su sastavljeni, barem ovi three-- Objective-C, Java i C # - tih, u teoriji, samo treba biti brži. No, tu je druga stvarnost for-- PUBLIKA: Funkcionalnosti? DAVID J. Malan: Što je to? Publika: funkcionalnosti. DAVID J. Malan: Funkcionalnost? Kako to? PUBLIKA: Pomoću kamere off na telefon ili nešto slično. Možete koristiti one s preglednikom. DAVID J. Malan: Upravo tako. Oni sec-- PUBLIKA: [nečujan] DAVID J. Malan: To je još jedna dobra. Postoji značajke koje dolaze s mobilnim telefonima danas koje nisu, po dizajnu, za sigurnost Razlozi koje su dostupne na web preglednicima. Budući da će to biti neka vrsta grozan stvar ako baš kad posjetite google.com ili cnn.com, ili bilo website.com, da je web stranica ima moć pretvoriti na fotoaparatu, uzeti sliku od vas, a zatim ga koristiti. Ali ti ne bi želite slučajan web stranice da posjetite za vrlo prvi put da se taj sposobnost. I što telefon Proizvođači obično rade se oni samo zabraniti pristup za tu vrstu informacija u preglednik, što vam znači ne može provesti fotoaparat. Ne možete provesti push obavijesti, se ne oglasi koje ste dobili na zaslonu s kratkim porukama. A u stvari, čak i GPS je jedina vrsta od vrsta dostupan na web preglednicima. Ako ste ikada, na laptop ili na mobilnom uređaju, izvukao se nešto slično možda CNN.com, ali i lokalne vijesti stanice imaju tendenciju da to učinite, od vas se traži često s message-- foxnews.com želi znati vašu lokaciju. Odobriti ili odbiti. Pa, preglednik pokušava pristupiti Vaš GPS informacije s vašeg telefona. No, na svu sreću Microsoft, i Apple i Google su odlučili da se osjeća kao to je korisno situacija, želimo Google Maps i drugi alati za rad, ali mi ne želimo da se uvlače ljude samo po omogućujući bilo koju web stranicu za to. Tako ćemo na neki način susreću na pola puta i brz korisnik. Ali to nije nužno slučaj sa svim hardverom, kao što su kamere i sa pritiskom obavijesti i slično, pa možda morati žrtvovati određene značajke. No, izvedba previše. To je sve manje vidljiv i danas, možda kao LTE hvata na i brže internet brzine na telefonima, ali možete vrsta osjetiti razliku. Kao web aplikacijom samo osjeća sporije, u pravilu, od native aplikacija, djelomično jer web aplikacijom po definiciji je na internetu. To je u razgovoru s poslužitelja na webu. A ako niste povezani s mrežom sporo, čak i pomicanje može biti spor. No, rodom aplikacija, morate već unaprijed downloaded-- vjerojatno kad ste bili kod kuće iz trgovine aplikacija, ili barem prije skinuti ona u cijelosti ranije, bez obzira na veza speed-- pa sada imate sve od bitova koje obično trebaju. Osim možda nekih podataka koji dolazi s poslužitelja. Dakle, to su ustupci ovdje. Postoji vrsta sredini kompromis, u stvari. I mislim you-- PUBLIKA: Koristite offline podataka. U izvornim aplikacijama, možete [nečujan] DAVID J. Malan: Apsolutno. Dakle, tu je offline problem, što je stvarno neugodno ako ne može igrati neku igru ​​ili uporabu neki softver samo zato što ste u podrumu negdje ili liftom. Izvorna aplikacija je elastičan s većom vjerojatnošću protiv toga, uz pretpostavku da su svi Podaci koje je potrebno lokalno. Dakle, postoji i treća opcija ovdje. I neka je skrenuti spektar kako Izvorna aplikacija ovdje i web aplikacija ovdje. A što je u sredini nešto called-- i mislim da bi mogli imati upotrijebio riječ prije, možda? Hibrid aplikacija. I kao što je riječ podrazumijeva, to je nešto u sredini. To je vrsta web aplikacije i to je vrsta native aplikacija. A što to znači? Ispada postoje frameworks-- koristiti pojam od earlier-- softvera da su drugi ljudi zapisano za svaki od tih platformi. Ove i još drugih uređaja. U stvari, pustite me da PhoneGap, što je jedan takav okvir koji sam Vjerujem Adobe posjeduje sada. Pusti me da se početak rada. Da vidimo. Vidjeti ako ja mogu vidjeti popis alata. Hardver. Početak rada. PhoneGap hardvera. Da vidimo. PhoneGap pristupa hardveru. Da vidim da li možemo naći malo grafikon koji su imale. To je na drugom mjestu. Je li to korisno? Ne. To će gubiti svoje vrijeme tamo. PhoneGap hardvera. Uređaji. API uređaja. Ne, oni su ga preselili. PhoneGap. Idemo jedan, posljednji pogled na ovo i vidjeti ako ja mogu vam pokazati. Početak rada. Instalacija PhoneGap. Instalirajte mobilnu aplikaciju. Ajde. Oni su reorganizirali sve. U redu. Oh, u redu. Pa, ovdje mi ići. To nije sve što je rasvijetliti, ali to je ono što je vrsta tražite. Dakle PhoneGap je okvir koji vas možete preuzeti besplatno koji vam daje neki starter kod, u biti. Tako su neki kod koji su pisani to ne čine gotovo ništa. Ali ono što ti daje bitno je ekvivalent aplikacije koja samo stavlja veliki pravokutnik na korisnikovom zaslonu. To ne stavi bar na URL-a, poput preglednik, ne stavi adresu. To samo stavlja veliki pravokutnik. A ti konfigurirati ovaj veliki pravokutnik, ispod haube, zapravo ići na acme.com, ili možda m.acme.com za mobile.acme.com, ali korisnik ne zna oni su na toj adresi. Sve što vidim je Sadržaji na web stranici. No, ono što je lijepo o ovom biću hibridni app je da je ono što PhoneGap i druge tvrtke daju vam je oni dajući vam malo koda u Objective-C ili Swift, ili malo koda u Javi, ili malo koda u C #, i bitno, sve što morate osigurati minimalno Adresa vašeg web aplikacija. I onda snop ovo sve zajedno, a vi imaju ga ni pristupiti vašim stranica putem interneta, ili čak predmemorija lokalna kopirati u primjeni, a zatim spremite aplikaciju u iPhone formatu, Android telefon formatu, površina ili formata bilo koji broj drugih uređaja. Prenosite svaki od tih verzija Google Play Store, u App Storeu, na Windows Store, i tako dalje. A sada, možete imati sve svoje publika preuzeti uistinu izvorni aplikaciju, iako je većina koda je napisao netko drugi, ali sadržaj te nativnu aplikaciju sve dolaze iz, u pravilu, svoj vlastiti website. Tako da i dalje pisati svoje web stranice u HTML, JavaScript i CSS. Pa zašto zamućenje ove retke? Zašto hibridni aplikaciju to je vrsta porijeklom, ali i vrsta web based? Što je cijela točka dodajući tu složenost? Mislim, čak i dalje, samo iz Bacimo li pogled preko ove stranice, Vodič za početak rada se osjeća kao to je dobio puno koraka za mene učiniti prije nego što sam can-- PUBLIKA: višekratnog? DAVID J. Malan: višekratnog? Kako to misliš? PUBLIKA: Od izvornog koda. Dakle, isti broj će se prikazivati ​​na sve različite platforme. DAVID J. Malan: Da. PUBLIKA: [nečujan] DAVID J. Malan: Savršeno. Ako vrijeme je zbijeno, a ako ne moraju da mnogi developers-- Možda imate jedan programer i on ili ona sigurno ne znam sve te environments-- sigurno nije dobro, i sigurno ne mogu programirati u sve tri istovremeno i brod tri proizvoda u vrijeme dopušteno za jednu, možete ga imate ili ju izgraditi sve u HTML i JavaScript i CSS, a zatim naučiti maleni malo malo o izvornim aplikacijama, samo dovoljno za preuzimanje okvir kao što je ovaj, onda uploadati svoj proizvod sve od raznih trgovina aplikacija tako da sada imate native aplikacija. Tako da se čini kao win-win, ali opet, da bude jasno, Koje su moguće troškove ili su problemi navedeni? PUBLIKA: izvedba? DAVID J. Malan: Da. Izvođenje. Teško je opisati verbalno. Dakle, ako ste upravo se na vjera mobilna aplikacija web aplikacija će obično obavljaju sporije. To ne može izgledati sasvim u redu, jer je u iPhone, au Android telefone, i Windows uređaje, tu je uvijek neka vrsta zadani izgled i osjećam se sve od gumbi i izbornici. I tvrtke u webu, možete pokušati približiti one estetike s knjižnicama kao što Bootstrap, ali user-- razboritu user-- će znati da je nešto što baš i ne ovdje. I to je u redu, možda to nije velika stvar. No, pitanje performanse Apsolutno je velika stvar. Izvorne aplikacije imaju tendenciju da će upravo biti puno više razumijevanja i stoga bolje. I tako, što je onda moglo biti najbolje od oba svijeta? Ako ste posebno mala društvo ili mala grupa, nemate resurse razviti aplikaciju u paraleli na sve tri platforme, a iskreno, osjeća kao da je to loša ideja ionako jer ako ga razvaljati i na sve troje istovremeno ostvariti, trebali smo dodali neke značajke ili učiniti nešto drugačije, sad morate ga popraviti u tri mjesta, a ne jedan. Što je možda i optimalan Strategija ovdje u ukupnom poretku, ako su resursi i vrijeme su čvrsto? PUBLIKA: Samo to učiniti na iOS-u. DAVID J. Malan: To nije nerazuman. iPhonea, barem u SAD su super popularni. Android i dalje izgleda kao da ima dominantan tržišni udio, globalno, u ukupnom poretku. Tako da se ne nužno predstavnik od cjeline svijeta ovog tjedna. Ali to je apsolutno jedno rješenje. Mislim, na kampusu Ovdje sam mislim da neki grozan broj ili postotak dodiplomskog imaju iPhone, a ne Android telefone. Ali u inozemstvu, to je vrsta suprotno. Tako da se odlučite na temelju svoje publike. Kako ćete znati što je vaša publika ima? Pa, kako smo naučili trik jučer. Možete ih pitati. Ako imate publika sama možete im poslati obrazac ankete. Ili se samo mogao napraviti što? PUBLIKA: Google Analytics? DAVID J. Malan: Što je to? PUBLIKA: Google Analytics. DAVID J. Malan: Google Analytics. Da. Ili čak i više vrsta tehnički, samo pogledajte svoje vlastite web poslužitelja prijavljuje. Zato što će se dogoditi svaki put preglednik, da li laptop, desktop ili Telefon posjete Vašu web stranicu? Oni su poslati da HTTP zaglavlja koja prikazuje ti ono preglednika i operativnog sustava upotrebljavaju. Dakle, može se zaključiti, s velikom vjerojatnošću, što je vaš demografski koristi na taj način a zatim prilagoditi. Dakle, pretpostavljam da je to neprihvatljivo. To je neka vrsta loše za posao, ako Korisnici Androida ne mogu kupiti naše widgete. PUBLIKA: Bilo da ste neće naplatiti ili ne? DAVID J. Malan: Bilo ti ćeš naplatiti? Pa OK, da dobijete ono što plaćate. PUBLIKA: Da li je vaša aplikacija će biti slobodna ili da li je to gonna-- DAVID J. Malan: U redu. Dakle, možda bi mogao nadoknaditi Troškovi koji način, or--? PUBLIKA: Čitam studiju nakon što je rekao više Apple korisnici plaćaju za aplikacije versus-- DAVID J. Malan: To je istina jer oni su već plaćati više za svoje mobilne uređaje. Dakle, nije nerazuman pretpostavka. PUBLIKA: [nečujan] DAVID J. Malan: U redu. Dakle, ako su spremni platiti, onda kvragu s korisnicima Android. Oni ne ide plati nam ništa ionako. Mi možda i fokusirati svoje prioritete, barem za prvih nekoliko mjeseci ili godinu dana, na iOS-u. Totalno razumno. Što je više inclusive strategija od toga? Maybe-- što je to? PUBLIKA: [nečujan] DAVID J. Malan: Više expensive-- pa možda više ulagati in-- ići naprijed. PUBLIKA: Da. Samo mobilna web-lokacija. DAVID J. Malan: Znači napraviti mobilni web stranice, a ne čak i brinuti o ovoj složenosti. Ili možda razumna strategija, koji čak Facebook uzeo, je početi s hibrid prijava jer to nije da je mnogo teže učiniti od toga. Vi samo morati pročitati neke dokumentacija i shvatiti kako uploadati stvari za App Store. Dakle, možda možete početi s to, tako da na jedan dan, možete podržati sve svoje korisnike. I onda, baš kao što su Facebook i druge tvrtke su učinili, kada imate resurse, imate ljude, zašto ne ponovno provesti samo iOS aplikacija. Još uvijek imate nešto za svakoga, iako je inferioran iskustvo možda sa hibridnim primjene. No, postupno može razvaljati i zamijeniti svoj kratkoročni mjere hibridnih aplikacija s Vaši više izvornih aplikacija. PUBLIKA: Ali uz hibrid Aplikacija imat će pristup mobilnim značajkama? DAVID J. Malan: Ne nužno. Dakle, možda se napravi svjesna odluka rano, možete prenijeti samo fotografije na rodom iPhone aplikacija za Facebook, ali ne na aplikacije za Android, početku, na primjer. A to je malo bijele laži, jer Web aplikacije imaju više ograničenja od hibridnih aplikacija ispada van, a ako čitamo dokumentaciju za PhoneGap i stvari kao što je to, ljudi su se s načinima dati web aplikacija temeljenih na Pristup kameri, tako dugo dok upotrebljavate hibrid aplikacija. Kako to rade? Zbog hibrida prijava, po definiciji, ima malo kod u Objective-C, i Swift i Java ili u C #, može pristupiti hardver. Ne nužno sve, ali to bi moglo jako dobro se dogoditi da imate dosta pristup da biste dobili kameru, čak i za Android platforme, za Primjerice, u tom neprirodan primjer. Bilo koja druga pitanja? U redu. Zašto ne uzmemo naša 15 minuta pauze ovdje. Mi ćemo nastaviti po tri sa završnim pogledajte web programiranje, baze podataka, i JavaScript.