DAVID J. Humala: Nii oleme tagasi. Nii kõrgel tasemel teema hetkel nüüd on tehnoloogia korstnad, mis ei ole Eriti tehniline termin, see on rohkem saagi kõik mingil kombinatsioonide arv tehnoloogiad et sa võiksid kasutada, et lahendada probleeme. Ja võib-olla kõige paigaldamise võimalus alustada oleks vaadata keeles, kuna Hoian surmamise terve hulk ja kõige kõik ruumis on ilmselt kuulnud vähemalt üks. Ja miks me ei püüa eristada what-- eristada neid keeli ja põgusalt juttu, kui sa oleks vali üks teiste üle, kuidas nad omamoodi fundamentaalselt erinev, ja eriti kui sa vestled, insenerid, või nad püüavad otsustada, keda palgata, või mida rakendamine ettepaneku GreenLighti kuidas oleks tegelikult teha sellist liiki otsuseid. Nii saab lihtsalt vurama mõned asjad ära. Keelte inimesed kuulnud, mida pähe tuleb? C. OK. OK, C ++. Mis see on? Publik: Python. DAVID J. Humala: Python. Suurepärane. Mida veel? Visual Basic. Kuulsin Java. Visual Basic--; teise nimega VB. Java. NET, mis on rohkem saaki kõik mida on tavaliselt C # keelena kõnealune. Ja las ma mainida, et. Nii et me tuleme tagasi selle. Mul on kahju? Kahjuks? Publik: SQL. DAVID J. Humala: Scratch? Publik: SQL. DAVID J. Humala: Oh, SQL. OKEI. SQL. Nii et me tuleme tagasi selle-- tegelikult, see good-- pärast vaheaega samuti. Mida veel? Publik: Oracle. DAVID J. Humala: Nii Oracle, mitte keel. Tegelikult nad kasutavad SQL samuti. Nii paneme, et pärast break samuti. Ja kahju, midagi siin? Publik: Mathematica. DAVID J. Humala: Mathematica? OK, kindlasti. Ja MATLAB on selline seal mõnikord. Publik: R. DAVID J. Humala: R. Lähme siin. FORTRAN. Muidugi. Vanemad kooli. FORTRAN. COBOL. Ma Toss välja BASIC. BASIC. Any-- Publik: MATLAB? DAVID J. Humala: MATLAB. Oh, lunastanud. Midagi? Ma ei mõtle paar teised. Ma ei mõtle mõned teised. Ja mis oli viimane? Publik: ASP. DAVID J. Humala: ASP? Jah. Active Server Pages. See üldiselt ei kuulu teistes keeltes, mõnikord C #, nii, jätame selle kõrvale. Aga tuleme tagasi, et raamistike ja selline. Veel midagi? PHP on populaarne. Ruby on teine. JavaScript, mida ei tohi segi Java, on teine. See on omamoodi palju. Nii et see võib olla kindlasti suur, justkui loetelu ei ole juba, lihtsalt hakata tea, kus sa hakkad. Ja nii õnneks, lähme läheneda sellele mõnest nurgast. Esiteks, proovime kategoriseerida vähemalt mõned neist keeltest kahte suurde ämbrid, meenutab vestlus oli meil enne purunemist, kus me rääkisime koostamisel, ja lähtekoodi, ja masin koodi sest see ei ole, kuidas kõik keeled tööta. Nii me kiskuda mõned näited of-- või counter-examples-- sellele mudelile. Ja siis, miks me ei rääkida rakendused et need keeled kasutatakse üldiselt. Ja ausalt öeldes, kuigi see on päris pikk nimekiri, see on vaid osa sellest nimekirjast, mis siis oleks tavaliselt teha nendel päevadel probleemide lahendamiseks. Teatud keeled on uuemad kui teised. Teatud keeled on populaarsem kui teised. Nii see ei meeldi sul selline tohutu ülesanne enne kui otsustatakse nende hulgast Nende eri keeltes. Nii teeme seda. Meil oli varem, lähtekoodi, ja siis meil oli masin koodi. Oih. Kirjutamine vale sõna. Machine koodi. Ja meil oli mõned protsessi keskel kutsutakse- jaa, koostaja. Nii koostaja. Ja mis masin koodi tegelikult töötab lõpuks saab olema sinu tegelikud CPU. Teisisõnu poolt masinkoodi, I tähenda madalaimale tasemele juhiseid et CPU tegelikult aru. Liitmine, lahutamine, liikuda, salvestada ja toimingud niimoodi. Ja nii on see mudel, mis on üldiselt tuntud koostatud keeles. Võibolla ei ole üllatav. Nii et see on mudel jaoks koostatud keeles. Aga selgub, et tema teist liiki keeles nimetatakse tõlgendada languages-- tõlgendada languages-- mis on veidi erinev. Sa kirjutad lähtekoodi, joosta neid tõlgi kaudu, ja et tõlk on Mis töötab protsessorit. Teisisõnu, mida sa ei EMIT ongi ilmselt? Machine koodi. Nulli ja need, mis CPU ise lõpuks aru saab. Nii see esimene versioon ja keeltes nagu C, nagu nägime, te kirjutate lähtekoodi see on natuke kauge, aga vähemalt see on selline inglise-like ja see on vähemalt loetav kui sa harjud sellega. Sa kestab see läbi tõlkija ja välja saad lõpuks ühtede ja nullide. See järeleandmisi. On teisigi samme seal. Tegelikult, kui olete kunagi kuulnud termin "Assembly" see on üks samm enne nulli ja ones. See natuke paremini arusaadavaks, kuid siiski üsna kauge. Ja nii seal on vaheetapid mis on tegelikult siin toimub. Aga väljundi lõpuks on need ühtede ja nullide. Aga tõlgendada maailmas, kus teil on keeled, mida võib tõlgendada keeles, siis tegelikult vahele selle sammu. Teisisõnu, kui sa kirjutada programmi, siis lihtsalt kohe käivitada. Sa ei kompileerida ja seejärel käivitage see, kui tegin enne. Sa lihtsalt kirjutada ja käivitada. Ja kui sa tahad teha kiire muutus, sa teha kiire muudatus ja uuesti, see. Nii ei ole keskel sammu siin. Nüüd programmi kirjutasin varem, mis oli see "Hello World" programmi Sa võid mõistlikult wonder-- või alust state--, mis ei olnud sel ajal tarbivad koostada oma programmi. Tundub, et on seda teinud just niimoodi. Ja seal on graafiline versioonid koostajad. Ma kasutan väga kauge versioon, aga sa võiksid tabas esitusnupu ja mis tegelikult teevad koostamise eest. Olen koostanud programmi ja seejärel uuesti käivitada, siis ma lihtsalt seda teha. Ja see väljundeid vasakul pool, "Tere!" See ei tundu kõik, mis koormavad. Aga kui teie programmid on rohkem kui üks, kaks, kolm, neli, viis rida pikk, siis saab võttatunduvalt sekundit veel koostamisel. Vahel isegi minuti või üsna natuke aega, et koostada. Lõppude lõpuks, mõned Maailma suurim tooteid On asju, nagu operatsioonisüsteemide Microsoft Word, Microsoft Excel, mis võib olla sadu tuhandeid või isegi miljoneid ridu koodi kaua, ja need ei ole lihtsalt kohe täita. Lisaks veebis, see on muutunud populaarseks kasutada lihtsalt tõlgendada keeles osaliselt, sest sa võib teha muutusi, kui arendaja ja siis lihtsalt kohe uuesti veebilehe ja kohe näha tulemust. Ja nii HTML, samas ei programmeerimiskeel, on keel, mis on tõlgendanud. Ja me nägime, et sama efekti eile. Sa lihtsalt leht uuesti laadida pärast teha muutus Cloud9 Ja-- voila-- näed uut tulemus. Mis vahet on siin? HTML, mäletate, meil oli avatud HTML, avatud pea, avatud pealkiri lähedal pealkiri, tihe pea, avatud keha, ja nii edasi. Meil oli kõik need sildid, et me päris palju öelda, sirvija, mida teha. Hei brauser, siin on HTML-leheküljel. Hei brauser, siin on pealkiri. Hei brauser, siin on mõned teksti, mis peaks olema julge. Ja siis öelda vastupidist. Hei brauser, ongi jaoks rasvases kirjas tekst. Hei brauser, mis on see, et keha. Ja nii edasi. Ja mis on brauser? Brauser on lihtsalt tõlk. See on programm, et keegi nagu Microsoft või Google on kirjutatud, mille eesmärk elus on loe keel, mida tuntakse HTML, ja tõlgendada. Ülevalt alla, vasakult paremale. Ja igal ajal brauseri näeb avatud sulg, pealkiri, sulud lõpevad, see peaks tõlgendama nii, oh, et tähendab, et ma peaks tegema need sõnad viis siin ülaosas brauseri. Nii see lihtsalt teeb mida HTML kood ütleb. Aga seal ei ole ühtede ja nullide. Ei ole koostamine. Sa ei saa seda teha. Brauser ei teinud seda. See lihtsalt ei ole kaasatud. Nii vaimus neid jätkuvat teemasid, täna ja eile mis tundub olevat imeline omadus. Säästate oma koodi ja seejärel lihtsalt kasutada seda või tõlgendada. Ei ole vaheetapid. Kindlasti on oma hind? Ei saa kõik olla tasa. Mis võiks see kulu olla? Publik: Space. DAVID J. Humala: Space. Niisiis, kindlasti. Aastal koostatud maailma, on teil mitte ainult algteksti, siis on ka luua ja siis arvatavasti säästa Masina code-- nullid ja ones-- ja see on sain alustada mõned palju ruumi. Absoluutselt. Nii, et see maksab teile rohkem ruumi. Jah? Publik: Brauserid võiks tõlgendada erinevalt. DAVID J. Humala Brauseril võiks tõlgendavad seda erinevalt. See on tõsi. Aga ma ei ole kindel, et ma olen mugav, väites, Ongi, sest see on tõlgendanud. See on rohkem lihtsalt sellepärast, et see on rakenduseks keel mis iseenesest on ebaselgusi. Nii et ei ole päris kinnitada et üks, kuid hea eelaimus. Mida võiks makstav hind? Andrew? Publik: Sa ühendab kaks sammu, siis seetõttu on üha kasvav keerukus samuti. DAVID J. Humala: complex-- kasv keerukus kus? Kellele? Publik: Niisiis, tõlk samm, sa ühendades tõlk ja kompilaator lihtsalt viivad mina-- DAVID J. Humala: Ah, OK. Irooniline, see on ilmselt vähe lihtsam rakendada tõlk kuigi tundub saagikuse plussid see mugavus. Nii võib-olla tõsi. Aga see omamoodi sõltub, ma ütleks, keelest ja kuidas nad läksid umbes rakendamisel. Ei saa olla palju keerukamaks, tegelikult, kompilaatori, lihtsalt sellepärast, et sa pead minema alates midagi nii kõrgetasemelist midagi nii madala. Aga hea mõte. Nii teisisõnu kompileeritud programmi kui kujunes nende ühtede ja nullide, jõuab keeles et CPU räägib, arvestades, et sellega pool maailma programm olete kirjutanud, kood olete kirjutanud, tegelikult kunagi saab ümber tegelik keel Arvuti räägib. Nulli ja ones. See jääb originaal, inimlikumaks sõbralik, loetavamaks keeles. Mis võiks olla kaudselt seal, kui sa tegelikult ei viitsinud teisendamise programmi väga keeles et aluseks olev arvuti räägib? Publik: pruugi mõista midagi? DAVID J. Humala: Might aru ei saa. Ja see võib claim-- kui see ei mõista midagi, mis on viga või puudus on funktsioon tõlk. Nii et oleks rohkem viga, kui kulu. Publik: Teil on juurdepääs lähtekoodi? DAVID J. Humala: Seal on hea. Nii negatiivne külg on teil Tundub, et on juurdepääs. Sa, lõppkasutaja võib tunduda juurdepääs lähtekoodile. Ja see ei ole alati tõsi. Aga see on tõsi Juhul JavaScript, mis me vaatame pärast pausi täna, mis on tõlgendanud programmeerimiskeele et sa kirjutad lähtekoodi. Aga et lähtekoodi saab üle oma server brauseri ja jookseb inimese brauser. Nii et siin ta võiks lihtsalt avada aken, nagu ma olen teinud Chrome, ja vaadata seda, kui me ise vaatas eile Google. See võib tunduda väike arusaamatu kuid see on olemas. Nii et absoluutselt üks hind, mida makstakse. Publik: Performance hitt? DAVID J. Humala: Jah. Ja see teine ​​Biggie. Seal on jõudluse tabanud. Kuna teil on see keskel mees, kes ise on programm, teie vahel ja CPU, mitte lihtsalt toitmine need toores ühtede ja nullide protsessori, seal on jõudluse tabanud, et sa võtta koos tõlgendada keeles. Selline, et omavoliliselt, programmi mis võib võtta ühe sekundi joosta arvutis või üks minut joosta arvutis siin, võib võtta 10 sekundit või 10 minuti joosta arvutis siin. See on tavaliselt ei kavatse olla, et palju difference-- tegur 10-- sest seal on optimeerimisest, mida saate teha. Aga see on peaaegu alati aeglasem. Nüüd Tagakülg, mis puudutavad on see, et ka arvutid, iga 12 18 months-- järgi Moore'i seadus, nii et speak-- on lihtsalt saada kiiremini ja kiiremini. Mul on rohkem ruumi. Mul on rohkem RAM. Kes tõesti hoolib? Ja see on selline mõistlik argument. Tõepoolest, üks põhjustest miks me ei talu aeglasem tõlgendada keelte sest meil inimestel tõesti ei märka. Arvutid on saanud lihtsalt nii paganama kiire. Arvestades juba järgmisel päeval, eriti kui riistvara oli palju piiranud, sul oli vähem kõike, see oli palju kallim nii et kõik on kallim, ka siis sa tõesti tahtsid tehtult nii palju jõudlust kui võiks. Aga mida nõutakse kirjalikult madalama taseme, kui soovite, koos koostatud keeles. Nii et sa ei võta seda jõudluse tabanud. Aga üldiselt, tasa Tundub, et seda väärt nendel päevadel. Noh, välja arvatud intellektuaalse omandi küsimus. Sedasorti loetavuse kood, jagame tagasi tulla, kui me vaatame JavaScript. Nii proovime kategoriseerida vähemalt mõned neist. Nii hulgast koostatud keeles, me oleks C, C ++, suht, sorta, Java, kuigi see on natuke erand, sest põhjusi, miks ma näitan teile vaid hetkeks. C # oleks selles nimekirjas. Me vaatame rohkem just rohkem kaasaegsete keelte. Hästi. Ja see tundub palju seal. Arvestades, et see pool tara, meil oleks JavaScript ja Python, ja PHP, ja Ruby. Ja see, et piisavalt uuemate ones? See tundub palju nüüd. OKEI. Ja siis dot dot dot, Kuna nimekiri on lõputu. Ja tegelikult, kui me tahame lihtsalt tajuksid see-- Wikipedia, koostatud keeles. Olen aim saame palju ammendav loetelu. Nii et siin me läheme. Nii et siin on palju rohkem ammendav loetelu. Ja ma lootsin, et keegi oleks vist D keele sest ka olemas, kuid nad peatunud D tundub. Kuigi võiks tegelikult olla E. Oh, tegelikult peaks see olla nimekirjas nendel päevadel. Swift on tegelikult keeles, et Apple leiutas et nüüd kasutatakse üha enam jah, iPhone arengut. Aga tuleme tagasi et meie arutelu mobiil on natuke ka. Nii Swift samuti. Ja siis, kui me minna tõlgendada language-- tõlgendada language-- siis siin on Veelgi enam nimekirjas ka. Nii et kui sa lihtsalt google ja vaata Wikipedia nende, näete igasuguseid keeli. Aga eesmärk on, täna tõesti, lihtsalt taandub võibolla see intellektuaalomandi küsimus ja loetavust lõppkasutaja poolt ning tulemuslikkuse, on teine ​​Biggie samuti. Nii nende hulgas keeli, las ma vaatan, kas saame teile vaid mõned proovi keeles. Me ei taha läbi minna kõik keeled lõputult. Kas olete kunagi mõelnud, mida Teatud keeles välja näeb? Me ei vaata korraks tagasi. Miks me ei võta paar funktsiooni taotlusi. Kes tahaks näha, mida muus keeles välja näeb? Jah. Publik: Java. DAVID J. Humala: Java. Hästi. Nii lähme Java. Ja just teile sample-- me võiks kirjutada kõik need läbi, kuid see oleks kiirem lihtsalt vaadata kellegi teise proovi kood. Hästi. Nii on see hea näide? Oih. OKEI. Nii et siin on Java versioon Programm kirjutasin varem, "Hello World". Nii Java, siis sageli vaata märksõna "klassi". Siis näete mõne nime pärast seda. Näete looksulg nagu nägime enne, ja mõnikord nad minna Sama joont, mõnikord teistele liinidele, see on selline isiklik otsus. Näete märksõnu nagu "Avalik", "staatiline", "tühine." Aga me ei vaata "peamine." "Main" on üldiselt nimi vaikefunktsioon või vaikimisi patakas kood, mis saab käivitada programmi. "String". Mida me mõtleme string varem? Ma kasutasin seda liiki juhuslikult. String on mis? Sõna. See on nagu märgijada. Individuaalne märki, tagasi seljad, tavaliselt massiivi, nagu me oleme arutanud. Ja tegelikult, vaadake seda süntaksit Siin on kaks nurksulgudes? See tähendab, et hei arvuti, siin kaasas hulgaliselt stringid. Ruudu sulg märke on Tavaliselt tähistatakse seda. Ja siis saab ilmselt võta guess-- mida see esile patakas kood ilmselt teha? Publik: väljund? DAVID J. Humala: Jah. Ta prindib midagi ekraanil. Nii "süsteem" on omamoodi viidates oma arvutisse. "Out" tähendab arvuti väljundi või ekraanil. Nii "System.out.print ln" tähendab ilmselt? "Ln". Prindi rida, mis programmeerijad nagu et ilmselt kirjutada mõned sõnad välja tervikuna ja võtta otseteed teiste sõnadega. Aga "ln" on line, nii print rida. Nii et see prindib "Tere World! ", Millele järgneb uus liin. Nii ongi. Aga Java on kuidas nad kõne objektorienteeritud. Ja tõepoolest, just anda paar muud määratlused seal, et sa võiksid vt Üldiselt on olemas On palju erinevaid keeles, kuid kõige tavalisem on menetlus- või imperatiivsete keeltega. On funktsionaalne tekst, mis ei ole tähenda, et teised ei toimi. Ja siis on objektorienteeritud keeles. Ja see on võib-olla parim kategoriseerimine kõige keeles et teil oleks kunagi valida omamoodi tüüpiline äriprojekt. See oleks liiga palju, Ma arvan, on rott auk minna, seletada erinevate erinevusi. Aga keeltes oleme näinud seega far-- C on menetlustoiming või hädavajalik keeles. Veel hiljuti leiutatud keeled kipuvad olema, kahju, objektorienteeritud, mis tähendab, neil on muid funktsioone neile. Kas ma saan seda seletada niimoodi? Ärme isegi minna sinna. Objekt-orienteeritud vahenditega võite implement-- saab modelleerida reaalses maailmas veidi tõhusamalt. Inimkond on aja jooksul on arvasin, wow, oleks tore, kui mu keel oli see omadus või funktsioon. Ja sellepärast on meil nii palju keeli maailmas. Mõistlikud inimesed, smart inimesed, nõustuda või mitte ja alati omamoodi kokku tulla uute keelte kõik koos. Asjas. Apple leiutas Swift loodab arvatavasti langetamine baari iPhone arengut, sest eelmise language-- nimetatakse Eesmärk-C, mis võiksid Samuti on meie nimekirjas siin-- oli palju kauge ja palju raskem murrab mõlkuma ümber. Ja kui programmeerimine on muutumas väidetavalt kättesaadavamaks ja laiemalt vastu võetud inimesed isegi vähem tehnilist, siis goal-- see on väga vapper eesmärgiks proovida alandada tõkke muutes keeled ise lihtsam alustada, kuid mitte vähem võimas tingimata. Ja üks teine ​​keel. Miks me ei võta pilk kell midagi Python, mis on väga moes nendel päevadel. Python. Proovi programmi. Vaatame. "Hello World" keeles. Teeme ära. "Tere, Maailm." Vaatame, kas see annab meil kena näide. OKEI. Nii et see on tegelikult omamoodi lõbus. Nii et kui sa kunagi google "Hello World", mis juhtub olema üks esimesi programme kunagi kirjutatud kaasaegne keel, niisama tõendi mõiste, näed igasuguseid realisatsioonid käesoleva. Mõned neist keeltest Ma ei ole isegi kuulnud. Aga sa võid see-- lähme Basic, Ühest Õppisin aastat tagasi, osaliselt. See oli lõbus keeles, sest sa pidi, nagu programmeerija, number kõik oma read. Mitte erinevalt olin teeme siis, kui olin kirjalikult pseudokoodi kollasel dokumendi varem Kahendotsingupuu, otsida telefoniraamatust. Ja nii, kui sa tahad minna teise rea, siis oleks sõna otseses mõttes kirjutada, minna kuni 10, või minna 20. Ja kui olete kirjalikult read on Konventsioon oli teha, on see rida 10, See on line 20, see on rida 30, 40, midagi vahepealset, andes ise ruumi kui sa otsustad, oodake minut, Ma oleks pidanud lisanud Morse kusagil. Sa ikka oli omamoodi üheksa võimalust pigistada, et vahel oma programmi Enne tuli käsitsi nummerdada kõik. Nii et see on omamoodi mida ma mõtlen kui ma ütlen, et maailm on tulla uue iseärasusi. Kuskil mööda teed keegi mõistis, poiss on loll. See on lihtsalt luua tööd programmeerija. Nii ta lihtsalt selline ehitatud uus kiht peal, et nii et sa ei pea muretsema mida reanumbritega koodi tegelikult on. Nii et kui oleks valida ühe keele või muu? Noh, mis nende keeli siis kipuvad kuulda enim oma maailma nendel päevadel? Olgem rippmenüüst Eesmärk-C liiga. Publik: C #. DAVID J. Humala: C #. Nii et lubage mul värvi. Kas meil on muid värvi kuskil? Nii C #. Ja mida sa tead C #? Midagi Mõtlen? Publik: See on programmeerimiskeel. DAVID J. Humala: See on programmeerimiskeelt. OKEI. See on tõsi. Nii et me räägime C #. C # kipub olema kasutatud Windows keskkondades, nii et kui sa oled kirjalikult Microsofti tarkvara Windows, C # on väga levinud, kas see on desktop tarkvara või isegi telefoni tarkvara Windows Phone, Kui olete olnud need, või veebis isegi liiga. Ja tegelikult, võibolla Kareem mainitud ASP varem? Nii et ka need asju nimetatakse raamistike kus saame tutvustada laiendamise. Raamistikud, nagu ASP. Kastid Active Server Pages. Ja see on koodi ja viis programmeerimine et üldiselt muudab lihtsamaks kirjutada veebipõhine rakendusi. Teisisõnu, oleks super, super tüütu kirjutada veebilehel keeles C, et me oleme näinud, sest siis oleks kasutada print + F, siis oleks kasutada märksõna "Main" ja looksulg. Palju kauge süntaks ja lähenemist rakendada midagi, mis on üsna keeruline. Veebilehele. Ja nii teistes keeltes on arenenud teha, et selline asi lihtsam. Ja omakorda inimesed on tulla raamidega, omamoodi tööriistad mida saab kasutada, et muuta see isegi lihtsam kirjutada veebilehti. Nii näiteks teha see palju betooni, lase mul avada vaid tekstifaili hetkeks. Ja siis võib meenutada eile et me ütlesime midagi nagu see on veebilehele. HTML. Sule HTML. Lubage mul vahele pea ja just seda keha siin. Oletame, et ma tahtsin ei kirjuta "Hello World" kuid "Tere David", kus David on nimi praegu sisse logitud kasutaja. Mida midagi ASP teeme või JSP-- mis on Java server pages-- või mõnel teisel raamistike on nad pole keeles, per se. Nad on lihtsalt nagu täiendavat tarkvara, mida oleks paigaldada oma keskkonda et lihtsalt oleks lihtsam programmeerida. Nii näiteks, mitte tegema midagi "tere, printf (" David ")" või midagi, mis on Selline koostöö mingling-- selline kood oleme näinud before-- siis oleks midagi palju lihtsam, nagu "nimi%." Ja nii need raamistikud, nagu ASP-- ja ma ei mäleta, kas ma saan süntaks just ASP. JSP on little-- on see õige? Nii ASP, see on omamoodi eriline süntaks et mõned arendajad on otsustanud See võib aidata inimesi. Ja ma ei saa väljendada rohkem lühidalt kohatäitjaid, näiteks. Nagu pane väärtus siin, kus Selle väärtuse nimi ei ole N-A-M-E, see on mingi väärtus salvestatakse seal. Nii "nimi" tähendab selles kontekstis, me kutsuksime varieeruv. Algebra on muutujad nagu x ja y ja z. Programmeerijad kasutavad muutujaid, mis on kuvailevampia kui x, y ja z, tavaliselt. Nii "nimi" sõna otseses mõttes olla mingi mälu konteinerisse midagi D-A-V-I-D, minu nimi või kes iganes teine ​​sisse loginud kodulehel. Ja nii see on selline mugavuse saate koos teatud keskkondades. Nii C # ja midagi ASP oleks väga tavaliselt kasutatakse Windows maailma, kas oma töölaual tarkvara või veebiserver, eriti kui teie serverid on omakorda Microsoft Windows ja Microsoft IIS-- või Internet Information Server, kui ma saan akronüüm right-- mis on Microsofti veebiserver. Nii et mida teistes keeltes on inimesed tunnevad, või olete kuulnud sagedamini kui mitte? Publik: ma tean, et Pythoni selline populaarne [kuuldamatu]. DAVID J. Humala: Väga populaarne. Nii Python siin kasutatakse väga sageli teaduse rakenduste või andmete teaduse, kus sul on palju andmete, mida soovite analüüsida ja sa soovid kasutada programmeerimiskeele ta. R võib tavaliselt kasutatakse selle samuti, statistilises kontekstis. Aga Python on nii palju funktsioone ehitatud. Nii palju täiendavaid raamatukogud, kui inimesed ütlevad. Raamatukogud on vaid kogud kood, mis teised inimesed kirjutas, mida saab kasutada nii, et sa ei pea jalgratast nendele ratastele. Ja nii Python on väga sageli kasutatud andmed teaduse rakendusi. Aga see on ka väga sageli kasutatud veebirakendusi. Võite rakendada dünaamilist veebisait kasutab Python. Ja dünaamiline veebileht, ma tähenda mitte ainult staatilise sisu nagu me lõime eile, mida lihtsalt raske kodeerimise Ladina teksti ja muud sellised asjad, vaid pigem võime sisse logida, võime osta midagi, võime kontrollida oma ostukärud, vms. Kõik see nõuab dünaamikat ja te vajan keele kui üks nendest. Publik: Nii ei Python on oma laiendus, mis on sarnane meeldi [kuuldamatu] DAVID J. Humala: ta teeb. Nii maailmas Python Django on väga populaarne raamistik Python. WSGI on teine ​​mehhanism, mis on omamoodi erinev sellest kuid sarnase sisuga. See on add-on, mis võimaldab teil joosta Pythoni kood serveris. Seal other-- jah. Nii need me nimetame raamistikud. Ja see on natuke kuritarvitamist. See on rohkem veebiserver tehnoloogia. Aga me hoida lihtsa ja panna see selles veerus sellegipoolest. OKEI. WSGI. WSGI. Teine asi-- ja tegelikult, las mul liikuda, et enda veerus sest ma kisa iseendale panemist sama ämber. Paneme selle serverisse funktsioone, oletame. See ei ole tehniline mõiste. Nii et siin me võiksime olla WSGI. Seal CGI, mis on vanem tehnika teenindavad up keeles nagu Perl või PHP või mõned teised. Jällegi, ma olen mainitud need mõisted mitte niivõrd mingi sünnipärane neid, kuid nii, et kui sa näed Nende jaoks on midagi sa lihtsalt google lugeda rohkem. Ei ole päris mahl mõned neist asjadest. Aga lähme tagasi keeles. Rääkisime C #, Python. Mida võiks mida kasutad Web Programming nendel päevadel? Olgem keskenduda, et ikka. Publik: PHP. DAVID J. Humala: PHP. Ja olgem tagasi tulla, et üks. Nii PHP on väga levinud. PHP kipub saada halb rap. See alustas keele rakendatud poolt inimesed, kes võibolla ei pruugi parim keel disainerid. Ja nii saate lugeda igasuguseid esemeid online, kui halb PHP on. Ja kahjuks on see ilming, osaliselt vaid religioosne arutelud et purskama hulgast programmeerijad. Ja see on midagi Tasub meeles pidada, ärilisest vaatenurgast, et see on väga lihtne tehnilise inimesed saada kõik töötas kuni oma arvamusi teatud asju. Ja see ei tähenda tingimata et üks karjuma valju või tugevaima, vihasemaid arvamus on õige. Palju kordi, see tõesti lihtsalt ei loe. Ja nii inimesed lihtsalt väites iganes oma kalduvusi või mugavust tsoonid on. Ja nii siis peaks hoidma Seda silmas pidades tegemisel otsuse, et just sest keegi ütleb see on õige keel töö, mis võib olla tõsi, kuid samuti lihtsalt olla see on õige keele jooksul oma oskusi määrata või mugavuse tsooni. Mis ei ole halb, aga sa peaksid mõistma et võib esineda mõningaid kontekstis on. Leidub objektiivselt vale avaldused, nagu C on vales keeles kasutada nendel päevadel rakendamise veebilehed peaaegu alati. Aga see ei ole mõistlik öelda, et mõni neist on vale, et me oleme ringiga siiani. PHP on läbi käinud mitmeid versioone. Nii keeled kipuvad olema versiooni numbrid nendega. PHP on kuni Arvan, versioon 7 nüüd, nii on see olnud juba üsna pikka aega. Ja kui keeled saada uuemat, nad sageli saada uusi funktsioone. Aga sa pead olema teadlik sellest sest kui teie veebisait on olnud rakendatakse versioon 7 PHP kuid üritad käivitada oma veebilehel, või äkki olete tellida arengut koodi keegi teine ​​ja nad post see teile või saata teile ja nad ütlevad, siin, pane see veebiserver, Kui teie veebiserver on mõne aastat outdated-- kas see on oma server või veebilehe host-- see ei pruugi reaalselt sõita. Nii et need on erinevaid asju, mida keegi peab olema teadlik kui ümberehitamise saidi või rakendatakse seda esimest korda. Kuulsin JavaScript varem. Nii JavaScript on huvitav üks asjaolu, et see on üldiselt kliendi poolel, kui näeme pärast vaheaega, mis tähendab see jookseb kasutaja brauser. Aga sa võid ka käivitada JavaScript nendel päevadel kasutades midagi, mida nimetatakse Node.js, kus Node.js on mehhanism töötab JavaScripti koodi serveri poolel, kasutamise asemel Python või PHP või muid selliseid keeli. JavaScript sobib eriti hästi chat rakendusi ja reaalajas rakendusi, samas PHP ei ole suur keele rakendamise midagi nagu chat server, kus kasutajad peatada ühendatud seda pidevalt. PHP on rohkem mulle külla kord, saada tagasi tulemusena ja seejärel klõpsake teise lingi mõned sekundi või minuti pärast. Arvestades Node.js ja JavaScript olla kasutatakse rohkem püsivaid ühendusi. Muud keeled, mida te kahtlustate kasutatakse tavaliselt veebivärk? Publik: Kas jQuery olema raamistik? DAVID J. Humala: Hea küsimus. Kumbki. Ma kutsuksin jQuery raamatukogu, kus jälle raamatukogu on lihtsalt hunnik koodi et keegi teine ​​on kirjutatud, et üldiselt lahendab probleeme, mis muudab loodetavasti lihtsam kus saab teha oma tööd. Ja las ma teha üks näide Käesoleva kontekstis veebis. Seoses veebis seal Selle keele, JavaScript, et me näeme hiljem, mille sa Võib öelda midagi sellist see-- "Document.getElementById." Ja mida ma nimetan seda eile? Esiteks, ma arvan, oli unikaalne ID Andsin to element, mis nägi välja selline. "P id =" esimene ">" ja siis meil oli nagu "Lorem Ipsum" jne. Nii kui ma kirjutan programmi JavaScript kuidagi manipuleerida, muuta veebilehti, et me mängisid eile Tahaksin kasutada seda Märgitud rida koodi saada, et eriti HTML-i minu leheküljel, et eriti sõlme, nagu me nimetame seda. Kuid jQuery, selle asemel, et kirjalikult see, mis on toores JavaScript code-- lihtsalt karbist välja, see on, kuidas sa kirjuta see-- siis oleks selle asemel lihtsalt öelda, "#first." See on samaväärne. Ja nii põhineb ainult sellel väga kauge näide, mida võib-olla on argument kasutades jQuery? Miks arendaja kasutada raamatukogu, nagu jQuery, põhinevad isoleeritud näiteks ehk? Publik: Vähem koodi. DAVID J. Humala: Jah. See on vähem koodi. See on lihtsalt kiirem kirjutada. Kontrapunkti on et see näeb välja muutunud ohtlikumaks. Sa ei saa tõesti lugeda vasakult paremale. Tegelikult, kuna see on enamasti kirjavahemärkide nüüd asemel tegelikud sõnad, Ma ei omamoodi järeldada, et "Document.getElementById" saab elementi dokument selle ID. Ma tõesti ei kasuta ühtegi sellist lühendit selle asja siin. Nii et see on kompromiss. Seal on rafineeritumalt, et tegemist tihti kasutad teeke, eriti nagu jQuery. Kuid reaalsus on jQuery on selline on saanud de facto standardiks, nii et peaaegu igaüks neist päeva, kes kirjutab JavaScripti koodi kasutab jQuery või midagi nagu see, ja enam kirjutab Sellisel lobise väljendeid nagu seda, sest jällegi inimlikkus on õppinud, wow, see oli omamoodi võimalus mööda et muuta meie elu kergemaks. Nii inimestel muuta oma elu lihtsamaks. Hea küsimus. Teised keeled kaaluda. Ütleksin hulgast see nimekirja Ruby on üsna populaarne. Ja nii maailma Ruby, seal on raamistik nimetatakse rööpad, mis on väga populaarne. Nii Ruby on Rails on levinud väljend. Ka selles maailmas, lase mind ringi Java veebivärk, kus maailmas Java sa oleks võinud JSP või Java Servlets, mis on sama tehnoloogia. Ja see on lihtsalt jälle kasutamise viisid et keel on server keskkonnas. Mida see tähendab? Kui sul on füüsilise server, siis oleks sõna otseses mõttes lae veebiserveri tarkvara ja paigaldada see nii et sul on toetus ühe nende raamistike, kellega võiks omakorda kasutada ühte või rohkem neist keeltest. Ja tegelikult, kui sa sisse logida nagu veebi või mõne pilve teenuseid me rääkisime eilse, sageli asjad lihtsalt kaasas masina konfiguratsiooni jaoks. Sa ei pea selle üles käsitsi. Aga kui sa tegid, see on koht, kus rolli süsteemiadministraator, nii et rääkida, hakkavad. Ta oleks tegelikult teha selline värk teil, või nn webmaster Tihti seda sinu eest teha. Hästi. Kõik küsimused on mõned neist siin? Või mis tahes võimaluste kõik küsida keeles? Raamistike? Siis lubage mul tutvustada lihtsalt üks teiste raamatukogu see on ka väga levinud nendel päevadel. Seda nimekirja võiks jätkata lõputult. Ja see raamatukogu on selline hakanud kukkuda kasuks. See on olnud umbes. Tehti tuntuks Vidistama mõnda aega. Ja nüüd on palju veebisaite, palju arendajad kasutada. Kuid uued asjad tulevad välja ja sealt mööda. Aga lubage mul anda teile tunne mida see tähendab kasutada raamatukogu. Nii jälle, et JavaScript on väga populaarne keeles. CSS või Kaskaadlaadistik, me rääkisime eile. Ka see on kõikjal. Keegi teeb veebilehe täna ilma HTML ja CSS minimaalselt. Kuid see ei ole alati lihtne teha teatud asju. Ja nii ma lähen, et getbootstrap.com. Oih. See ei ole, kuidas me õigekirja. Getbootstrap.com, mis kõik viib mind koduleheks selle raamatukogu. Nii nad lahkelt helistada ise raamistik, mis On selline omamoodi õiglane, aga ma ikkagi seda nimetada mitme raamatukogu kui raamistikku. Aga need on vaid vaieldav semantika. Lubage mul minna oma CSS sakk ja lase mul minna midagi sellist. Nii meenutada, mida meie vormides nägi nagu eile Cloud9? See oli päris kole. Vana kooli nupud. Ma arvan, et nupp oli hall poolt vaikimisi. Ja kõik oli tõesti vormindatud üsna räpakalt. Seega, kui soovite oma veebivormidel vaadata natuke nicer-- lase mul suumimiseks siin. Ja kenamaks ma tõesti lihtsalt tähenda väga nitpicky esteetika. Nii märgata, kuidas e-posti kasti seal on ümar ristkülikukujuline nurgad ta. Nii et see on veidi puhtam seal. Pange tähele, et sõna e-posti on olemas, kuni ma hakake kirjutama ja siis läheb ära. Nii et see kena väike funktsioon. Pane tähele, kuidas asi on selline hõõguv kenasti, mis osa sellest teile saada tasuta brauseri kuid mõned on see ka raamatukogud, kood, et teised inimesed on kirjutatud, et teile seda. Midagi sellist annab mulle minu parool. See nupp on veidi seksikam kui vaikimisi. Väga moes praegu. Sellest ajast peale iOS 7 või nii, siis Maailm on saanud väga lame, arvestades, et maailma enne oli palju langevarjud, palju mõtteid ikoonid. Palju nagu rõivaste maailma seal on mood, mis tulevad ja lähevad. Nüüd on kõik tasane telefoni. Tegelikult nuppe iPhone on nüüd vaid sinistele. Seal ei ole sageli isegi ümmarguse nupud. Nii et need on lihtsalt asjad mis lähevad sisse ja välja moes, ja nii see on, kuidas sa võiksid teha moodsam vaadates veebivormi. Nupud. Nii Bootstrap on palju päris nupud. Seega, kui soovite sinine nuppude roheline nuppe, sinine, oranž, punane. Bootstrap muudab lihtsamaks neid asju teha. Need on asju et sa võiksid absoluutselt teinud eile CSS ja HTML, kuid see on lihtsalt tüütu. Ja nii et selle asemel, mida Bootstrap oleks on sul on midagi sellist. Kui soovite button-- osutub see on HTML tag me ei kasutanud yesterday-- ja sa tahad seda näha niimoodi rohelist nuppu, sa sõna otseses mõttes lihtsalt anna see klass, mis me tegime rääkida eile ning "btn btn-edu." Miks need sõnad? Twitter autorid Bootstrap, tulid need sõnad. Nad oleks võinud nimetada neile midagi nad tahavad. Aga mida sa saada praegu keegi teine ​​Twitter, sel juhul on aru saanud, kuidas sa teha nupp vaadata kena ja puhas ja roheline. Nad on pakendatud kuni selle funktsionaalsus a CSS klass, mida nimetatakse "btn" ja "btn-edu," nii, et keegi meist ei nüüd kasutada ilma isegi mõelda seda. Nii nad on ammutatud ära mõiste roheline nupp nii et me ei pea hooli rakendatakse seda ise. Me võime tegelikult keskenduda rakendamisel asju huvitab meid. Kui me keri siin. Veateateid ekraanile. Vahel võib tekkida väike sõnum ilmuma peal brauseris. Keegi meist võiks seda teha mõned jõupingutusi, pärast eilses, aga miks sa vaeva? See on selline ebahuvitav esteetiline detail. Olgem seista õlgadele Bootstrap ja lasta neil meile asjad niimoodi, kus me sõna otseses mõttes, et saada punane kast, lihtsalt pead tegema lõikes silt klassi of-- kahju. "BG-oht" annaks meile See punakas kasti asemel. Nüüd minna muud huvitavat. Kui ma lähen tagasi algusse Sellel leheküljel ja minna komponendid, nüüd maailma asi muutub põnevamaks. Näiteks väga levinud on pudotusvalikkoja niimoodi. See oleks absoluutne valu rakendada. Ja see ei olnud pikk tagasi, et me programmeerijad oleks rakendada neid liiki menüüd nullist. Aga see on selline ühine paradigma raamatukogud nagu Bootstrap lihtsalt annab teile võime teha rippmenüüst palju, palju kergem. Ei ole üks viis seda teha, aga kui ma loen dokumendid Ma näen, et OK, ma peaks kasutama See HTML, kas ma tahan rippmenüüst mis käitub niimoodi. Samamoodi lähme nuppu rippmenüüst. Nii et see on isegi huviline. Kui ma tahan, et see näeb välja nupp kuid see väike kolmnurk tähendab Ma peaks klõpsama ja saada see menüü, seda kasutab keeles nimetatakse JavaScript. Ja me kõik ellu Seda JavaScript. Aga jälle, see on rool sa ei taha leiutada. Sa tahad võta see ära riiulil raamatukogu eest. Lähme midagi nagu Edenemisribal. Nii midagi sellist on selline lahe. Kui olete kunagi näinud edusamme bar liigub üle ekraani, rakendamisel, mis sageli on lihtsalt ketramine ikoon. Tegelikult, nagu kõrvale, las mul minna Ajax-- mis see on? Ajax info? Oih. Ajaxinfo. Las ma mäletan aadress. Seal me läheme. Nii et kui olete kunagi näinud mõningaid animatsioon samas lehe laadimise või mõtlemine, või salvestamisel või luua midagi, siis Võib näha selliseid animatsioone neid. Nii vaatame midagi nagu see siin, ja olgem valida esiplaani värvi roheline, mis tundub selline sõbralik. Kas ma vajutan seda? Tule üks. OKEI. Me lihtsalt minema punaste, sest see, mida me saada. Nii et siin on meil see. Nii et kui sa oled kunagi näinud seda ekraanil, kusjuures ootamatult selgub, ning seejärel äkki kaob, mis on see, mis on rakendamisel, mis? Noh, see on lihtsalt GIF. G-I-F. Ja see on animeeritud fail, mis tähendab lihtsalt see on nagu vana kooli koomiksiraamat. Seal on lihtsalt hunnik erinevaid raamid, mis lähevad [kogelemine] ja lihtsalt korrata. Ja see loob illusiooni liikumisest. Nii niipea kui leht on tehtud peale- või midagi, Mis ei ole programmeerija teha? Noh, ta lihtsalt peidab selle pildi. Nii et kõik edistymispalkki on selline ning nagu filmi vaatate. Sa oled omamoodi tunne asjaolu et see ei ole tegelikult teeme midagi, see on lihtsalt liigub. Ja siis, kui ta on teinud edeneb, nad lihtsalt peita või välja lülitada. Ja see on kõik magic mis seal toimub. Bootstrap annab teile midagi natuke uhkemat, millega saab tegelikult vaata protsent, sest see läheb, kuid see on ka justkui lihtsa animatsiooni. Vaatame mõned lõplik keerulisem näited siin. Midagi transpordiliikide. Kas keegi teab mis on modaalne on? Transpordiliikide aken on üldiselt üks, mis peaks võtta kontrolli esiplaanil takistada teil midagi muud. See omamoodi sunnib kasutaja tähelepanu ekraani keskel, lukustamist neid tüüpiliselt kõik muu. Nii et kui ma käivitada selle demo on ekraan tavaliselt muutub halliks. Noh, kuidas me oleks hall? Noh, me ilmselt lihtsalt muutunud taustavärvi nagu me tegime eile või midagi sellist. Võib-olla on ülekatte et poolläbipaistev. Ja nüüd märgata, mida saate teha väljamõeldud asjad niimoodi. Nii et kui sa kunagi vajuta nuppu ja tahan natuke pop välja ilmuma, sa võid seda teha. Ja nii, kes hoolib all-- jah? Publik: Nii Bootstrap, saada see sisaldab, see on nii lihtne, nagu eile tegime CSS stiile lehele? DAVID J. Humala: Tõepoolest. Tõesti hea küsimus. Lase mind lahti, et Alustamine. Ning jah. Kõik mida sa pead tegema, et kasutamiseks Bootstrap on sisuliselt kopeerida ja kleepida need kolm õngejadaga kood peal oma veebi page-- pea oma page-- ja sa oled valmis ja töötab. Ja seal on erinevad viise seadmeid, kuid see oleks lihtsaim. Mis siis on kasulik see kõik? Noh, kui sa ei ole nii palju rakendaja veebilehel aga sa üritad kujundada seda, või soovid pakkuda kellelegi traat raami diagrammid, kui nii võib öelda, või lihtsalt kunstniku üleviimised, mida mida sa teha tahad, ma, et see päev, sageli lähevad saidile nagu Bootstrap, kus, kui ma soovivad rakendada midagi-- nagu hiljuti ülikooli tahtsime rakendada veebipõhine töövahend Harvardi muidugi kataloogi lihtsustades üliõpilastele sirvida kursused lisada kursusi ostunimekiri, nii et rääkida, et selline otsustada, mida nad tahtsid võtta. Ma üritasin ette kujutada mina, mida koostisained tahame kasutada ehitada seda? Mida kasutajaliides näeb? Ja just vaadates läbi sivustoni Selle või muude selliste raamatukogu saite, võite saada inspiratsiooni, sest wow, Ma ei kasuta seda vidinat, ja see vidin, ja see vidin. Ja siis tõesti, mida programmeerija hakkab teha, eriti tänapäeval selles rohkem tänapäeva maailmas veebi programmeerimine, programmeerimine on üha umbes juhtmestik asju koos. Omamoodi võtmist riiulilt, See riiulilt, see riiulilt, ja sa on targa ühendada kõik need punktid, kuid lõpuks ehitada midagi, mida veel seistes õlgadele teised, nii et sa ei saa kulutada kuus rakendamisel loll rippmenüüst mis on tegelikult raske teha, kui sa tahad seda tööd Chrome, ja IE, Firefox ja kõik mitmete teiste brauseritega. See on põhjus, miks seal on see rikas äri- ja avatud lähtekoodiga tarkvara tööstuse samuti. Publik: Nii ei Bootstrap saada ajakohastatud ja sa pead siis uuendada oma linke? DAVID J. Humala: ta teeb. Noh, jah, on küll. Bootstrap on praegu versioon 3.3.6. Ja üldiselt, mida sa do-- See on tegelikult väärt mainimist. Seal on, mida on üldiselt tuntud kui semantiline versioonideks süsteem maailmas. Mitte igaüks teeb seda. Aga kui sa oled näinud versiooni numbrid mis on kujul x.y.z-- nii näiteks esimese versiooni programmi võiks 1.0.0. Või kui see on väga, väga beeta või isegi alfa staatuse, mis tähendab kasutamiseks omal riisikol, see ei ole tõesti valmis tippajal, võite ka alustada 0.0.1 või midagi sellist nimetust. Aga kui tarkvara algab versioon 1,0 või samaväärselt 1.0.0, Tavaliselt, mida tavaline, et nendel days-- kuigi mitte omnipresent-- on kui äriühing või üksikute programmeerija parandused mõned bug mõnes tükis tarkvara, mis tõesti oli viga, mille korrigeerimine ei tohiks mõju teile all-- see ei muuda programmi käitumist, see lihtsalt fikseerib midagi et ei töötanud properly-- Reeglina uuendada z väärtus on olemas. Mis tähendab, et keegi nagu Kareem võiks lihtsalt minna oma veebilehel, pimesi muuda versiooninumbrit alates 1.0.0 kuni 1.0.1, välja arvatud see, laev see, ja teoreetiliselt ei pea muretsema, et ta on lihtsalt katki tema kodulehel, sest mõned puudumine funktsionaalsust, sest midagi muud murdis. Vahepeal, kui I programmeerija või mõne firma oli teha mõned olulised muutus, mis lisab funktsionaalsust, Ma võiks uuendada meid 1.1.0 sest ma olen tegelikult käitumise muutmisel raamatukokku. Ma annan teile võibolla rohkem funktsioone. Lõpuks, kui ma tegelikult põhjalikult muuta tarkvara nii palju, et see murdub palju kasutajate veebilehed või rakendusi, siis ma kohustatud selle mudeli, mis uuendada põhiline versiooni number ka mis on breaking muutus. Teisisõnu, ma võib-olla Lõpetatud toetust nendele tilk menüüst. Nii et kui teil uuendada 2.0, pool oma veebilehel ei pruugi enam töötada. Ja see on omamoodi signaal Ühiskonna kui sellele, mida on tegemisega seotud uuendada. Hea võimalus tõsta. Muud küsimused? Hästi. Noh võtame pilk üks lõplik teema selles segmendis programmeerimine tehnoloogia korstnad, Nimelt on seotud mobiiltelefoni. Nii maailmas mobiiltelefone täna sa have-- ja iPads, ja pinnad, ja kõik need liiki ning devices-- teil on palju valikuid, kui tuleb kasutusele võtta rakendus või veebileht oma kliendi mobiili. Nii lihtsalt nimetama ilmne, võib-olla nendel päevadel, millised on platvormid arendame mobiilne ruumi? Mis seadmed võivad soovid toetada oma app või veebileht? Publik: Apple. DAVID J. Humala: OK. Nii Apple seadmeid. Nii et see tähendab iPhone, ja et tähendab iPad, ja võibolla isegi iPod. Mida veel? Olivier? Publik: Android. DAVID J. Humala: Android. OKEI. Nii Android telefonid, Android tabletid, Android turg On isegi segasem because-- ja isegi Apple on muutumas segaseks. Kui kunagi ammu iPhone oli teatud suuruse, ja iPad oli teatud suuruse, ja iPod oli teatud suuruse, nüüd meil iPad Mini ja õhuke ones, ja iPhone 6 Plus ja 6. See on üha segadus. See on üha Androidi maailmas. Ja ma ütlen seda omamoodi jooksva mu silmad, sest alates arendaja seisukohast, siis on valu kaela, kui sa ei pea Steve Jobs " nägemus absoluutset kontrolli üle kõik need kirjeldused. Apple ikka ei, sest nad on need hoone riistvara. Aga see on kena asi, kui Ma olen tarkvara arendaja, lihtsalt tean, et minu iPhone on alati läheb olema see suur, sest see tähendab, et ma alati tean kui palju ekraani kinnisvara olen. Nii et kui ma tahan panna ikoon üleval vasakus nurgas, see saab olema täpselt sama aseta iga kliendi seade. Aga maailmas iPhone 6s ja iPhone 6 Plussid ja maailma Android Loomulik, et see on kogu kaardil. Ja nii see raskendab programmi asju, eriti kasutajaliidesed, sest nüüd sa pead alustama korraldamine Teie kasutajaliidesed suhteliselt, mitte absoluutselt. Ja samas on tõsi brauserid, ja lauaarvutid ja sülearvutid aastat sest sa muidugi on erinevas suuruses. Mida veel? Sul võib olla pinnad, nagu Microsoft. Sa võid have-- Publik: Windows telefoni. DAVID J. Humala: Mis see on? Publik: Windows telefoni. DAVID J. Humala: Jah. Nii Windows Phone on veel võimalik leida. Kind of omamoodi telefonid, kuid nad üritame. Ja siis kobarad teiste seadmetega. Nii enamasti olgem öelda, need on need hoolivad hetkel. Kindlasti Apple kraami, Kindlasti Android värk, ja vahel Windows, nagu pind tabletid Tundub, et kandepinda päris hästi. Ja nii nende seas, seadmed, Kui soovite rullima, oletame, mobiilne kohalolekut oma Ettevõte, milliseid disaini otsuseid sa pead tegema? Noh, me juba ütles Apple maailmas seal on vähemalt kaks keeles mida kasutatakse tavaliselt. Üks kutsuti mida? Publik: Eesmärk-C. DAVID J. Humala: Jah. Nii Eesmärk-C, mis on vanem. See on ka keel, et paljud Mac taotlused on veel kirjutatud. Siis teised uuemad üks oli? Publik: Swift. DAVID J. Humala: Swift. Ja need on omamoodi Kahe teada muljet inimesed. Siis Android maailma Mis keeles Android kasutada? Publik: C #? Publik: Java. DAVID J. Humala: Java on keeles "du jour". Windowsi maailmas, kindlasti me öelda, C # sellisel juhul. Nii juba see on selline tüütu, sest see, mida on Buffee äri omanik või keegi, kes lihtsalt tahab rullima mobiiltelefoni olemasolu? Nagu, kurat võtaks? Nagu, kui ma tahan, et toetada üsna lai kasutajaskond, Ma pean kirjutama, tundub, kolm eraldi rakendusi. Üks ühes nendest keeltest, üks Java, üks C #. Ja isegi kui ma tahan funktsionaalsus identne, see ei ole oluline. Ma ikka vaja kasutada erinevaid keeles, sest Apple ja Microsoft, ja Google kõik tugi erinevates keskkondades. Ja see on väljakutse aastaid. Juba järgmisel päeval, kui inimesed kasutasid osta tarkvara arvuti taga kaupluse kahaneb pakitud kastidesse, sa sunnitud kas jõuda Mac riiul, või for-- võibolla see väga väike Mac shelf-- või suurem Windows riiul ja osta mõned tarkvara. Ja väga tihti, ei olnud isegi midagi teile Mac riiulil. Miks? Noh, ettevõtted otsustanud, kui 90% maailma, 95% maailma on arvutid, miks vaeva isegi rakendamisel asju Mac OS? Nagu aside-- kokku digression-- miks see et Mac tundub nii hermeetilised viirused, ja ussid ja turvaohtude? Kas Apple paremini seda? Parem on hoida arvutite turvaline? Publik: Väiksemad publik? DAVID J. Humala: Ongi ilmselt suurem natuke seda. Nii palju kasutajaid Mac on pikka aega väitnud, oh, kasutada Mac, Teil on immuunne viiruste ja usside ja kõik need asjad mis on pikka aega vaevanud arvutid. See võib olla, sest Apple on parem programmeerijad ja nad kirjutavad parema tarkvara või operatsioonisüsteem paremini kavandatud. Võib-olla, kuid ilmselt mitte. See on ilmselt, et kui sa oled 12-aastane või 30 midagi omamoodi istub kodus kirjalikult õelvara üle võtta maailmas, sa lähed, et minna pärast palju suurema sihtrühma. 95% maailma, kes võivad töötab Windows või mõni variante. Nii et natuke mõlemalt poolt. Aga oma krediidi Apple, minu teada ei ole tõesti touted ise nagu oleks turvalisem, sest sa oled lihtsalt kutsudes draama kui teete, et nõue, ma arvan. Hästi. Ilma muutub liiga kaugele et kuidas me lahendada seda? Kas teil on osta või sa pead maksma kolm erinevat inimest arendada oma apps? Kas sa vali üks teiste üle? Mida peaks suunama oma mõtlesin siin sa arvad? Kareem? Nope. Keegi teine. Publik: Tule koos riistvara. DAVID J. Humala: Tule riistvara? Mida sa silmas pead? Publik: Sest keskkonda. [Kuuldamatu] DAVID J. Humala: Nii et see on tõsi. Aga oma klientidele, Vahepeal võib olla iPhone'e, nad võisid Android telefonid, nad võib olla tablettide tehtud Microsoft. Niisiis, kuidas teil on mobiil strateegia Kõigi nende erinevate kasutajate? Tundub, et kui see maksab, oletame $ 1000 teha iPhone taotlus, see läheb teile maksma $ 2000 kuni teha iPhone rakendus ja Android rakendus, või $ 3000 toetada ka Windows seadmed samuti. See on ilmselt üsna väiksemana, ja see ei pruugi isegi olla lineaarne seos niimoodi. Publik: Kui soovid on app või ei, sul võib olla tundlik kodulehel. DAVID J. Humala: Hea. Publik: Või sul võib olla omarakendus. DAVID J. Humala: Jah. Nii kõik selles kontekstis siin oleme rääkinud, mida inimesed kutsuvad native rakendused. See on taotlused, mis on kirjutatud emakeeles selle seadme. Nii native Eesmärk-C või Swift koodi või Java või C #. Mis tähendab, et kui sa alla laadida, olgem öelda Snapchat populaarne rakendus või kui sa alla laadida Facebook telefoni, olete allalaadimine kas versiooni jaoks kirjutatud oma iPhone, või kirjutatud Android telefon, või kirjalikku oma pinnale. Aga on olemas alternatiiv. Nagu Olivier oli vihjates, saab tegelikult kasutada HTML 5 selle asemel, kasutades, mida nimetatakse web rakendus, mille sa lihtsalt rakendada oma mobiiltelefoni olemasolu ja funktsionaalsusega. Mida ma mõtlen mobiiltelefoni olemasolu? Nagu oma kodulehel, et on oma kontaktandmed, loetelu kõigist oma tooteid, võib-olla see on kaubanduskeskused korvi, võibolla müüa asju läbi. Mis iganes on Sinu taotlus on, siis rakendada, mitte eesmärk-C, või Swift, või Java või C #, kuid HTML 5, mis oli keelest me vaatasime eile, JavaScript ja CSS. Ja mis on tore neid kolm on see, et need käima panna, sa pead just see, mida tarkvara? Publik: veebibrauser. DAVID J. Humala: veebibrauser. Ja parim ma tean, kõik need seadmed tulevad koos brausereid, nii et kasutaja ei pea paigaldada midagi erilist. Nii saab lihtsalt öelda oma publiku oma klientidele, mine acme.com oma brauser ja saate lihtsalt on veebipõhine kogemus et ikka täidab ekraani aga sa ei pea muretsema kõik Nende kulude ja kõik see keerukus. Aga kindlasti seal saab olla saagi siin, eks? Eriti kui ma meelde et paar aastat tagasi, kõige esimene versioon Facebook mobiilne rakendus oli peamiselt HTML 5 kohaldamist. Ja neil on rohkem Hiljuti reimplemented see oma teistes rakendustes. Miks peaks mitte kohe taha öelda, noh, muidugi me ei kavatse seda teha? Mis võiks varjatud kulud olla? Publik: Performance. DAVID J. Humala: Performance? Kuidas sa mõtled? Publik: omarakendust on rohkem jõudlust. DAVID J. Humala: Nii et on Tõsi, paar põhjustel. Me ei lihtsustavad vastus. Ja meenutada meie arutelu tõlgendada versus koostatud keeles. See on HTML 5 ja koos sellega lihtsalt olla selge, JavaScript-- tavaliselt kirjutatud JS-- ja CSS kõik tõlgendada keeles kuigi ainult JavaScript on programmeerimiskeel. Ja nii versus need, mis mõned neist koostatakse vähemalt need three-- Eesmärk-C, Java ja C # - need, teoreetiliselt peaks lihtsalt kiirem. Aga seal on teine ​​reaalsus for-- Publik: funktsioonid? DAVID J. Humala: Mis see on? Publik: funktsioonid. DAVID J. Humala: funktsionaalsus? Kuidas nii? Publik: Kasutage kaamerat ära oma telefoni või midagi. Võite kasutada neid koos brauserit. DAVID J. Humala: Täpselt. Nad sec-- Publik: [kuuldamatu] DAVID J. Humala: See on teine ​​hea. Seal on omadused, mis tulevad mobiiltelefonid täna mis ei ole, mida disain, turvalisuse põhjustel kättesaadavad brausereid. Sest see oleks omamoodi jube asi, kui just siis, kui sa külastad google.com või cnn.com või mis tahes website.com, et see veebileht on õigus pöörduda oma kaamera, pildistada sind, ja siis kasuta seda. Aga sa ei taha juhuslikult kodulehel et te külastate jaoks väga esmakordselt on, et võime. Ja mis siis telefon tootjad tavaliselt teha on nad lihtsalt ligi ei pääse et selline teave Brauseri, mis tähendab, et sa ei saa rakendada kaamera. Sa ei saa rakendada tõukemärguannetele piiksud, et saad ekraanile koos lühisõnumeid. Ja tegelikult, isegi GPS on ainult selline on omamoodi kättesaadavaks brausereid. Kui olete kunagi, sülearvuti või mobiilne seade, tõmmata midagi äkki cnn.com, vaid ka kohalikke uudiseid jaamad kipuvad seda teha, teil palutakse sageli koos message-- foxnews.com tahab teada oma asukohta. Rahuldamise või rahuldamata. Noh, brauser üritab pääseda GPS info telefonist. Aga õnneks Microsoft, ja Apple ja Google on otsustanud, et tundub, nagu see on kasulik olukorras, tahame Google Maps ja muid tööriistu tegema, aga me ei taha libiseda inimest lihtsalt võimaldab igal veebilehel seda teha. Nii saab omamoodi kohtuvad pooleldi ja kiire kasutaja. Aga see ei pruugi nii olla kõik riistvara, nagu kaamera ja push teated jms nii et sa võib-olla ohverdada teatud funktsioone. Aga jõudlust liiga. See on üha vähem märgatav tänapäeval, võib-olla nagu LTE saagi ja kiiremaks Interneti kiirused telefonid, kuid võite selline tunne erinevust. Nagu veebipõhine rakendus lihtsalt tundub aeglasem, tavaliselt kui native rakendus, osaliselt sest veebipõhine rakendus definitsiooni järgi on internetis. See räägib serverid veebis. Ja kui teie võrguühendus on aeglane, isegi kerimine võib olla aeglane. Kuid kohalikku rakendust, siis on juba eelnevalt downloaded-- ilmselt kui sa olid kodus App Store'ist, või siis vähemalt eelnevalt allalaetud seda tervikuna varem, sõltumata oma seoses speed-- ja nii nüüd on kõik bitti, et sa tavaliselt vaja. Välja arvatud ehk mõned andmed mis pärineb serveri. Nii et need on kompromissid siin. Seal on selline keskel kompromissi, tegelikult. Ja ma arvan, sina-- Publik: Kasuta andmeid offline. Looduslikus rakendusi, saate [kuuldamatu] DAVID J. Humala: Absoluutselt. Nii et võrguta küsimus, mis on tõesti tüütu kui te ei saa mängida mõnda mängu või kasutamiseks mõned tarkvara lihtsalt sellepärast, et sa oled keldris kusagil või lifti. Algne rakendus on vastupidavam Suurema tõenäosusega vastu, et eeldades, et teil on kõik andmed, mida on vaja kohapeal. Nii on olemas kolmas variant siin. Ja joonistame spektri native app siin ja veebirakendust siin. Ja mis on keskel on midagi nimetaks ja ma arvan, et sa võiksid olla kasutatud sõna enne, äkki? Hübriid taotluse. Ja kui sõna tähendab, see on midagi keskel. See on selline veebirakendus ja see on selline native rakendus. Ja mida see tähendab? Selgub on frameworks-- kasutada terminit earlier-- tarkvara et teised inimesed on kirjutatud iga üks neist platvormid. Need ja veel teistes seadmetes. Tegelikult, las ma minna PhoneGap, mis on üks selline raamistik, et ma usu Adobe omab nüüd. Lase mind lahti, et Alustamine. Vaatame. Vaata, kui ma näen nimekirja tööriistu. Riistvara. Alustamine. PhoneGap riistvara. Vaatame. PhoneGap riistvara juurdepääsu. Las ma vaatan, kui leiame vähe kaardistada, et nad kasutasid on. See on teises kohas. Kas see kasulik? Ei. See on su raisata oma aega seal. PhoneGap riistvara. Devices. Seade API. Ei, nad on liikunud ta. PhoneGap. Lähme viimane pilk selle ja vaata, kas ma näitan sulle. Alustamine. Paigaldage PhoneGap. Paigaldage mobiilirakenduse kaudu. Ole nüüd. Nad on ümber kõik. Hästi. Oh, eks. Noh, siin me läheme. See pole veel kõik, et valgustav, kuid See on see, mida ma mingi otsisin. Nii PhoneGap on raamistik, et sa saab tasuta alla laadida, mis annab teile mõned Alustuskood sisuliselt. Nii mingi kood, et nad on kirjutatud et ei tee palju midagi. Aga mida see annab teile sisuliselt on samaväärne taotluse, et lihtsalt paneb Suur kandiline kasutaja ekraanil. See ei pane URL bar, nagu brauser, ei pane aadress. See lihtsalt paneb suur ristkülik. Ja seadistada see suur ristkülik, all kapuuts, tegelikult minna acme.com, või äkki m.acme.com jaoks mobile.acme.com, kuid kasutaja ei tea nad sellele aadressile. Kõik nad näha, on sisu veebilehel. Aga mis on tore see olend hübriid app on, et mida PhoneGap ja teised ettevõtted, mis annavad teile on nad annavad sulle natuke koodi Objective-C või Swift, või natuke koodi Java, või natuke koodi C # ja sisuliselt kõik mida sa pead andma on minimaalselt aadressi veebipõhine rakendus. Ja siis te kimbus seda kõik koos ja sa on see kas juurdepääsu oma site interneti kaudu, Või isegi cache kohaliku kopeerida rakenduse piires, ja siis salvestada rakenduse iPhone formaadis, Android telefon formaadis, pinna formaadis või suvalise arvu teiste seadmetega. Sa laadida kõik need versioonid Google Play Store, App Store, et Windows Store, ja nii edasi. Ja nüüd, sul võib olla kõik oma publiku laadida tõeliselt native app, kuigi enamik kood oli kirjutatud kellegi teisega, kuid sisu on native app kõik pärit, tavaliselt oma kodulehel. Nii et sa edasi kirjutada oma veebilehel HTML, JavaScript ja CSS. Miks hägu need read? Miks on hübriidtaotluse see on mingi native, vaid ka Selline veebipõhine? Mis mõte Lisades selle keerukus? Ma mõtlen, et isegi veel, just alates põrkav läbi see leht, Alustamine juhend tunne see ju terve hulk samme minu jaoks tegema, enne kui ma can-- Publik: uuestikasutatavus? DAVID J. Humala: uuestikasutatavus? Mida sa silmas pead? Publik: lähtekoodi. Nii sama koodi läheks edasi kõik eri platvormid. DAVID J. Humala: Jah. Publik: [kuuldamatu] DAVID J. Humala: Perfect. Kui aeg on tihe ja kui te ei ole, et paljud developers-- äkki sul on üks arendaja ja ta kindlasti ei tea kõiki neid environments-- kindlasti mitte hästi, ja kindlasti ei saa programmi kõigis kolmes samaaegselt ja laeva kolm toodet aeg, mille jooksul üks, sul võib olla tema ehitada kõike HTML ja JavaScript ja CSS, ja siis õppida tilluke natuke native apps, lihtsalt piisavalt laadida raamistik, nagu see, et siis saata oma toode kõik erinevad app kauplustes nii et nüüd on native rakendus. Nii et tundub, nagu win-win, kuid jällegi, et oleks selge, millised on potentsiaalsed kulusid või gotchas? Publik: Performance? DAVID J. Humala: Jah. Performance. On raske kirjeldada verbaalselt. Nii et kui sa lihtsalt võtta usu mobiilne rakendus, veebirakenduse hakkab tavaliselt täita aeglasemalt. See ei pruugi tundu päris õige, sest iPhone ja Android telefonid, ja Windows seadmeid, seal alati omamoodi vaikimisi välimus ja tunnen, et kõik nupud ja menüüd. Ja ettevõtted veebis, võib proovida ühtlustada need esteetika raamatukogudega nagu Bootstrap, kuid user-- nutikas user-- läheb tean, et midagi ei ole päris õige siin. Ja see on hea, võibolla see ei ole suur asi. Aga tulemuslikkuse küsimus absoluutselt on suur asi. Omarakendused kipuvad lihtsalt palju kiiremini reageerima ning seetõttu parem. Ja nii, mis siis võiks olla parim nii maailmad? Kui oled eriti väike Ettevõte või väike grupp, sa ei ole vahendeid arendada app paralleelselt kõigil kolmel platvormid, ja ausalt öeldes, tundub, et see on halb mõte niikuinii sest kui sa rulli see välja ja kõik kolm korraga mõistma, peaksime lisanud mõned funktsioonid või teha midagi teistmoodi, nüüd sa pead seda parandada ka kolmes kohas, mitte üks. Mis võibolla optimaalse Strateegia siin üldiselt Kui ressursse ja aega on pingeline? Publik: Just do it iOS. DAVID J. Humala: See ei ole mõistlik. iPhones, vähemalt USA, on ülipopulaarne. Android ikka tundub, et on domineeriv turuosa, globaalselt, üldise. Nii et sa ei ole tingimata esindaja on kogu maakera sel nädalal. Aga see on absoluutselt üks otsus. Ma mõtlen, et loengusse siin ma arvan, et mõned metsik number või protsent üliõpilastele on iPhone'i ja mitte Android telefonid. Aga välismaal, see on selline vastupidine. Nii te otsustate põhineb oma publikule. Kuidas sa tead, mida publik on? Noh, me õppisime trikk eile. Sa võid küsida. Kui teil on vangistuses publik võite saata neid uuringu vormi. Või siis võiks lihtsalt teha mida? Publik: Google Analytics? DAVID J. Humala: Mis see on? Publik: Google Analytics. DAVID J. Humala: Google Analytics. Jah. Või veelgi omamoodi tehniliselt, vaid vaata oma veebiserverite palke. Sest see, mis juhtub iga kord, kui brauser, kas sülearvuti, lauaarvuti või telefoni külastada oma koduleheküljel? Nad saadavad HTTP päis, mis näitab teile, mida brauser ja OS nad kasutavad. Nii saab järeldada, suure tõenäosusega, mida teie demograafilise kasutab nii ja siis reguleerida. Nii oletame, et on vastuvõetamatu. See on omamoodi halb äri, kui Android kasutajad ei saa osta meie vidinaid. Publik: Kas olete hakka laadima või mitte? DAVID J. Humala: Kas sa lähed eest? Nii OK, saate, mida te eest maksma. Publik: Kas teie app on su tasuta või kas see on gonna-- DAVID J. Humala: OK. Ehk siis võiks korvata kulusid, mis viis, või--? Publik: Lugesin uuringut kord, et ütlesid rohkem Apple kasutajat maksma apps versus-- DAVID J. Humala: See on tõsi sest nad on juba maksavad rohkem oma seadmeid. Nii ei ole mõistlik oletus. Publik: [kuuldamatu] DAVID J. Humala: OK. Nii et kui nad rohkem valmis maksma, siis põrgusse Android kasutajatele. Nad ei kavatse maksma meile midagi niikuinii. Me võiksime sama hästi keskenduda meie prioriteedid, vähemalt esimese paari kuu jooksul või aastas, iOS. Täiesti mõistlik. Mis kaasavam strateegia kui see? Maybe-- mis see on? Publik: [kuuldamatu] DAVID J. Humala: Rohkem expensive-- et äkki rohkem investeerida in-- minna. Publik: Jah. Just mobiilisivustoonsa. DAVID J. Humala: Nii teha mobiilisivustoonsa mitte isegi muretsema see keerukus. Või äkki mõistlik strateegia, mis isegi Facebook võttis, on alustada hübriidse taotluse, sest see ei ole et palju raskem teha kui see. Sa pead lihtsalt lugeda mõned dokumentatsiooni ja nuputada, kuidas üles laadida asju App Store. Ehk kui alustada Selle, nii et esimesel päeval ja saab toetada kõiki oma kasutajatele. Ja siis, just nagu Facebook ja teised ettevõtted on teinud, kui sul on ressursse, sul on inimesed, miks sa ei uuesti rakendada just iOS rakendus. Teil on veel midagi igaühele, kuigi see on halvem kogemus ehk hübriidratta taotluse. Aga sa võid järk-järgult rullima ja asendada oma lühiajalisi meetmed hübriidi rakendused Sinu rohkem native rakendused. Publik: Aga hübriid app teile on juurdepääs mobiilne funktsioone? DAVID J. Humala: Mitte tingimata. Ehk teete teadlik otsus varakult saab üles laadida ainult fotod native iPhone rakenduse Facebook, kuid mitte Androidi rakendus, esialgu, näiteks. Ja see on natuke hädavale, sest veebirakendused on rohkem piiranguid kui hübriid rakendused selgub välja, ja kui me dokumentatsiooni lugeda jaoks PhoneGap ja asju see, inimesed on tulla kuidas anda veebipõhine rakendusi juurdepääsu kaamera, nii kaua, kui te kasutate hübriid taotluse. Kuidas see toimib? Kuna hübriidi taotluse määratluse järgi on natuke koodi Eesmärk-C, ja Swift ja Java või C #, see pääseb riistvara. Mitte tingimata kõike, kuid see võib väga hästi olla nii, et teil on piisavalt juurdepääsu saada kaamera, isegi Android platvormi jaoks Näiteks, et kunstlik näide. Muid küsimusi? Hästi. Miks me ei võta meie 15-minutiline paus siin. Me jätkamiseks kolm lõpliku vaadata veebi programmeerimine, andmebaasid, ja Javascripti.