David J. MALAN: Deci, ne-am întors. Astfel încât nivelul înalt subiect în acest moment acum este stive de tehnologie, care nu este un termen deosebit de tehnic, este mai mult de o captura toate pentru orice Numărul de combinații de tehnologii că s-ar putea folosi pentru a rezolva probleme. Și, probabil, cel mai mult modalitate de montare pentru a începe ar fi să se uite la limbi, deoarece Tot zăngănit de pe un întreg buchet și mai toată lumea din cameră are probabil auzit de cel puțin unul. Și, așa că de ce nu încercăm să distingem what-- distinge aceste limbi și vorbesc pe scurt despre momentele când ar fi alege una peste alta, modul în care acestea sunt un fel de fundamental diferite, și mai ales atunci când sunteți pe chat cu ingineri, sau încercarea de a decide cine să angajeze, sau ce punerea în aplicare propunere Greenlight cum v-ar face de fapt aceste tipuri de decizii. Așa că hai să zornăie doar câteva lucruri off. Dintre limbile au oamenii auzit, ce vine în minte? C. OK. OK, C ++. Ce e aia? AUDIENTA: Python. David J. MALAN: Python. Excelent. Ce altceva? Visual Basic. Am auzit Java. Visual a.k.a. Basic-- VB. Java. NET, care este mai mult de o captura toate pentru ceea ce este, de obicei, C # ca limbă în cauză. Și lasă-mă să menționez asta. Așa că vom reveni la asta. Imi pare rau? Ne pare rău? AUDIENTA: SQL. David J. MALAN: Scratch? AUDIENTA: SQL. David J. MALAN: Oh, SQL. O.K. SQL. Așa că vom reveni la that-- de fapt, este good-- după pauză, de asemenea. Ce altceva? AUDIENTA: Oracle. David J. MALAN: Deci Oracle, nu o limbă. De fapt, s-ar folosi SQL, de asemenea. Deci să punem asta după pauză, de asemenea. Și îmi pare rău, ceva aici? AUDIENTA: Mathematica. David J. MALAN: Mathematica? OK sigur. Și MATLAB este un fel de pe acolo, uneori. AUDIENTA: R. David J. MALAN: R. Să mergem aici. Fortran. Sigur. școală mai în vârstă. Fortran. COBOL. O să arunc afară de bază. DE BAZĂ. Orice-- AUDIENTA: MATLAB? David J. MALAN: MATLAB. Oh, te-a bătut să-l. Orice? Mă pot gândi la un cuplu de alții. Mă pot gândi la alte câteva. Și ce a fost ultimul? AUDIENTA: ASP. David J. MALAN: ASP? Da. Paginile de server active. Că, în general, s-ar cădea sub alte limbi, uneori C #, așa că hai să lăsăm asta off. Dar ne vom întoarce la asta pentru cadre și astfel. Altceva? PHP este popular. Ruby este o alta. JavaScript, care nu trebuie confundat Java, este o alta. E cam mult. Astfel că poate fi cu siguranță copleșitoare, ca și în cazul în care lista nu este deja, doar pentru a începe să știe de unde începe. Și așa din fericire, să acest lucru se apropie de la câteva unghiuri. În primul rând, să încercăm să clasifice cel puțin unele dintre aceste limbi în două găleți largi, amintind de conversația am avut înainte de pauză, în cazul în care am vorbit despre compilarea, și codul sursă, și cod mașină, pentru că nu e cum toate limbile funcționează. Deci, vom smulge câteva exemple de-- sau contra-examples-- acelui model. Și apoi, de ce nu ne vorbesc despre aplicațiile că aceste limbi sunt utilizate în general pentru. Și, sincer, chiar dacă aceasta este o listă destul de lungă, este doar un subset al acestei liste, care v-ar trage în mod obișnuit de la aceste zile pentru a rezolva problemele. Anumite limbi sunt mai noi decât altele. Anumite limbi sunt mai popular decât altele. Așa că nu e ca și cum ai o astfel o sarcină copleșitoare înainte de a atunci când se decide între aceste diferite limbi. Așa că hai să facem acest lucru. Am avut mai devreme, codul sursă, și apoi am avut cod mașină. Hopa. Scris cuvântul greșit. cod mașină. Si am avut ceva de proces, în mijloc called-- da, compilator. Așa că compilator. Și ce codul mașină de fapt, ruleaza pe, în cele din urmă va fi procesorul real. Cu alte cuvinte, prin cod mașină, am înseamnă cele mai mici instrucțiuni de nivel că un procesor de fapt o înțelege. Adunare, scădere, mișcare, salvați și operații de genul asta. Și, astfel încât acesta este modelul pentru ceea ce este în general, cunoscut sub numele de limbi compilate. Poate că nu este surprinzător. Deci, acesta este modelul pentru limbajele compilate. Dar se pare că nu există o altă clasă de limbi numita interpretat languages-- interpretat în languages-- care sunt ușor diferite. Vă scrie în codul sursă, executați -le prin intermediul unui interpret, și că este interpret ce ruleaza pe CPU. Cu alte cuvinte, ceea ce nu EMIT este ceea ce, aparent? cod mașină. Zerouri și cele pe care CPU se înțelege în cele din urmă. Deci, în această primă versiune și limbaje cum ar fi C, așa cum am văzut, scrieți în codul sursă asta e un pic Arcane, dar cel puțin este un fel de englez-like și este cel puțin ușor de citit odată ce te obișnuiești cu el. Ai alerga printr-un compilator și afară veți obține, în cele din urmă, zero-uri si altele. Că o suprasimplificare. Există unele alte etape acolo. De fapt, dacă ai auzit vreodată termenul "limbaj de asamblare" Acesta este un pas inainte zerouri și cele. Că un pic mai ușor de citit, dar încă destul de obscură. Și așa există pași intermediari care sunt, de fapt, se întâmplă aici. Dar de ieșire, în cele din urmă, este aceste zerouri și cele. Dar în interpretat mondială, în cazul în care aveți limbi care sunt interpretate limbi, de fapt, tu sari peste acest pas. Cu alte cuvinte, atunci când scrie program, pur și simplu rulați-l imediat. Tu nu-l compila și apoi rulați-l, așa cum am făcut-o mai înainte. Trebuie doar sa-l scrie și rulați-l. Iar dacă vrei să faci o schimbare rapidă, a face o schimbare rapidă și rulați din nou l. Deci, nu există nici un pas de mijloc aici. Acum, pentru programul am scris mai devreme, care a fost acest "Hello World", program, s-ar putea în mod rezonabil wonder-- sau s-ar putea în mod rezonabil state-- care nu a fost acel moment consumatoare de a compila programul meu. Se pare să-l fi făcut la fel ca asta. Și nu există grafic versiuni de compilatoare. Sunt folosind o versiune foarte Arcane, dar ai putea lovi un buton de redare și că s-ar face de fapt compilarea pentru tine. Am compilat programul și apoi din nou, să-l rula, eu fac doar asta. Și se emite la stânga acolo, "Buna ziua!" Asta nu pare tot oneroase. Dar, atunci când programele sunt mai mult decât unul, doi, trei, patru, cinci linii lungi, se poate ia mult mai multe secunde pentru a compila. Uneori, chiar minute sau destul de un pic de timp pentru a compila. La urma urmei, unele Cele mai mari produse din lume sunt lucruri cum ar fi sistemele de operare, Microsoft Word, Microsoft Excel, care ar putea fi sute de mii sau chiar milioane de linii de cod lung, și cei care nu fac doar executa imediat. Mai mult decât atât, pe web, este devenit la modă pentru a utiliza limbi pur și simplu interpretate, în parte pentru că tu poate face o schimbare ca dezvoltator și apoi pur și simplu reîncărcați imediat pagina de browser și a se vedea imediat rezultatul. Și așa HTML, în timp ce nu un limbaj de programare, este un limbaj care este interpretat. Și am văzut că același efect ieri. Pur si simplu reîncărcați pagina după efectuarea o schimbare în Cloud9 si-- voila-- vedeți un nou rezultat. Deci, ce este diferența aici? In HTML, amintesc, am avut HTML deschis, cap deschis, din titlu deschis, aproape din titlu, cap de închidere, caroserie deschisă, și așa mai departe. Am avut toate aceste tag-uri pe care le destul mult mai spus, spune browser-ul ce să facă. Hei browser-ul, aici vine o pagina HTML. Hei browser-ul, aici vine titlul. Hei browser-ul, aici vine unele text care ar trebui să fie îndrăzneț. Și apoi îți spun contrariul. Hei browser-ul, asta-i pentru textul bold. Hei browser-ul, asta este pentru corp. Si asa mai departe. Și ce este un browser? Un browser este doar un interpret. Este un program pe care cineva ca Microsoft sau Google a scris, al cărui scop în viață este acela de a citește o limbă, cunoscut sub numele de HTML, și interpreta. Sus în jos, la stânga la dreapta. Și, în orice moment browser-ul vede deschis paranteză, din titlu, aproape placuta, ar trebui să interpreteze în sensul, oh, că înseamnă ar trebui să pun aceste cuvinte mod până aici, în partea de sus a browser-ului. Așa că pur și simplu face ceea ce spune codul HTML. Dar nu există zerouri și cele. Nu există nici o compilare. Nu l-ai făcut. Browser-ul nu a făcut-o. Doar că nu e implicat. Deci, în spiritul acestor în curs de desfășurare subiecte, azi si ieri, care pare a fi o caracteristică minunat. Vă salvați codul și apoi pur și simplu rulați-l sau interpreta-l. Nu sunt pași intermediari. Cu siguranță există un cost? Nu pot fi toate upsides. Deci, ce ar putea fi acel cost cu o schimbare? AUDIENTA: Spațiu. David J. MALAN: Spațiu. Atât de sigur. În lumea compilate, aveți nu numai codul sursă original, sunteți, de asemenea, crearea și apoi, probabil, de economisire aparatul code-- zero-uri și ones-- și asta trebuie să ia o anumită cantitate de spațiu. Absolut. Așa că te-a costa mai mult spațiu. Da? Audiența: browsere să poată fi interpreta în mod diferit. David J. Malan: browsere să poată fi o interpretează în mod diferit. Asta e adevarat. Dar eu nu sunt sigur că sunt susținând confortabil asta pentru ca e interpretat. Asta e mai mult doar pentru că este o punere în aplicare a unei limbi că ea însăși are ambiguități. Așa că hai să nu destul confirma că unul, dar bănuială bună. Ce altceva ar putea fi prețul plătit? Andrew? AUDIENTA: Tu Combinăm doi pași, așa că, prin urmare, au complexitate tot mai mare, de asemenea. David J. MALAN: a complex-- creșterea complexității în cazul în care? Pentru cine? Audiența: Deci, în interpret pas, sunteți care combină interpretul și compilator doar pentru a condus sa-- David J. MALAN: Ah, OK. În mod ironic, este, probabil, un pic mai simplu să pună în aplicare interpretul, chiar dacă s-ar părea upsides randament de acest confort. Așa că, eventual, adevărat. Dar este un fel de depinde, eu s-ar spune, în limba precum și modul în care s-au dus cu privire la punerea în aplicare a acestuia. Nu poate fi mult mai mare complexitate, de fapt, în compilator, doar pentru că trebuie să mergi la ceva atât de mare nivel la ceva așa nivel scăzut. Dar un gând bun. Așa că a pus un alt mod, un program compilat, când sa transformat în aceste zero-uri și altele, se termină în limba că procesorul vorbește, întrucât, în această parte a mondială, programul care le-ați scris, codul care le-ați scris, de fapt, niciodată se transformă în limba actuală calculatorul vorbește. Zerouri și cele. Rămâne în original, mai uman , Limbaj mai ușor de citit prietenos. Deci, ce ar putea fi implicațiile acolo, nu și dacă faci de fapt deranja conversia ta program de foarte limba că computerul de bază vorbește? AUDIENTA: nu Might înțelege ceva? David J. MALAN: Might nu înțelege ceva. Și asta poate claim-- în cazul în care nu au înțeles ceva, e un bug sau lipsa de caracteristică în interpret. Așa că ar fi mai mult o greșeală decât un cost. AUDIENTA: Aveți acces la codul sursă? David J. MALAN: E una bună. Deci, un dezavantaj aici este de tine S-ar părea să aibă acces. Tu, utilizatorul final ar putea părea au acces la codul sursă. Și asta nu e întotdeauna adevărat. Dar, este adevărat în caz JavaScript, care ne vom uita la după ruptura de astăzi, care este un limbaj de programare interpretat pe care scrie în codul sursă. Dar că codul sursă este transferat de la serverul la browser și se execută în browser-ul al omului. Deci, aici ar putea deschide doar fereastră, așa cum am făcut în Chrome, si uita-te la ea, așa cum ne se uită la ieri cu Google. S-ar putea să arate un pic de neînțeles, dar este acolo. Deci asta este absolut un preț plătit. Audiența: lovit de performanță? David J. MALAN: Da. Și asta e celălalt Biggie. E o performanță lovit. Pentru că aveți această om de mijloc, care se este un program, între tine și CPU, spre deosebire la doar hrănire aceste prime zero-uri și cele în CPU, există un hit de performanță care se să ia cu un limbaj interpretat. Astfel încât, în mod arbitrar, un program care ar putea dura o secundă pentru a rula pe un computer sau unul minut pentru a rula pe un calculator aici, s-ar putea dura 10 secunde sau 10 minute pentru a rula pe un calculator aici. În general nu va fi că o mare parte a unui factor difference-- de 10-- pentru că există optimizări poți face. Dar este aproape întotdeauna mai lent. Acum, flip parte la care se referă este că, bine calculatoare, fiecare 12 la 18 months-- în conformitate cu Legea lui Moore, astfel încât să speak-- sunt doar obtinerea mai repede și mai repede. Am mai mult și mai mult spațiu pe disc. Am mai mult și mai mult RAM. Care într-adevăr îi pasă? Și asta e un fel de argument rezonabil. Într-adevăr, unul dintre motivele de ce putem tolera mai lent limbi interpretată se datorează faptului că noi, oamenii nu observa cu adevărat. Calculatoarele au ajuns atât de repede darn. Întrucât, din nou în a doua zi, mai ales atunci când hardware-ul a fost mult mai constrânsă, ai avut mai puțin de tot, a fost mult mai scump astfel încât totul costa mai mult, bine atunci ai vrut într-adevăr să stoarce la fel de mult ca și performanță ai putea. Dar acest lucru este necesar, la scris, un nivel inferior, dacă va fi, cu un limbaj compilat. Astfel încât să nu luați această performanță lovit. Dar, în general, a upsides par a fi în valoare de ea in aceste zile. Ei bine, cu excepția problemă de proprietate intelectuală. La fel de citire din cod, noi vom vin înapoi atunci când ne uităm la JavaScript. Așa că hai să încercăm să clasifice cel puțin câteva dintre acestea. Așa că printre limbile compilate, noi ar fi C, C ++, cam, sorta, Java, deși este un pic de excepție, Din motive vă voi arăta într-un moment. C # ar fi pe această listă. Ne vom uita la mai multe la doar limbile mai moderne. In regula. Si care pare ca o multime acolo. Întrucât, în această parte a gardului, am putea avea JavaScript și Python, și PHP, și Ruby. Și este de ajuns pentru cele mai recente? Care se simte ca o multime de acum. O.K. Și apoi dot dot dot, din moment ce lista este fără sfârșit. Și, de fapt, dacă vrem să doar obține un sentiment de astea-- Wikipedia, limbajele compilate. Cred că putem obține un listă mult mai exhaustivă. Deci, aici vom merge. Deci, aici este o listă mult mai exhaustivă. Și am fost în speranța că cineva ar ghici D ca o limbă, pentru că prea există, dar s-au oprit la D s-ar părea. Cu toate că s-ar putea fi de fapt un E. Oh, de fapt, acest lucru ar trebui să fie pe lista de aceste zile. Swift este de fapt un limba pe care Apple a inventat care este folosit acum, din ce în ce astfel încât, în dezvoltarea iPhone. Dar ne vom întoarce la că, odată cu discuția noastră de telefonie mobilă în doar un pic la fel de bine. Asa ca Swift, de asemenea. Și apoi, dacă vom merge la interpretat în language-- a interpretat language-- atunci e aici o listă chiar mai mult, de asemenea. Deci, dacă tu google și uita-te pe Wikipedia pentru acestea, veți vedea tot felul de limbi. Dar scopul este, pentru ziua de azi într-adevăr, doar se reduce la acest lucru, poate, eliberarea de proprietate intelectuală și lizibilitatea de către utilizatorul final și performanță, este un alt Biggie, de asemenea. Așa că printre aceste limbi, lasă-mă să văd dacă putem da doar câteva eșantion de limbi. Noi nu vrem să treacă prin toate limbile. nesfârșit V-ați întrebat vreodată ce anumită limbă arată? Am făcut vedem acum un moment. De ce nu avem un cuplu caracteristicii de cereri. Cine ar dori să vadă ce altă limbă arată? Da. AUDIENTA: Java. David J. MALAN: Java. In regula. Așa că hai să mergem la Java. Și ca să-ți dau un sample-- am putea scrie toate astea, dar ar fi mai rapid doar pentru a uita-te la codul de probă altcuiva. In regula. Deci asta un exemplu bun? Hopa. O.K. Deci, aici este versiunea Java Programul am scris mai devreme, "Hello World". Așa că Java, de multe ori te vei a se vedea "clasa." cuvinte cheie Apoi, veți vedea unele nume după asta. O să vezi acolade așa cum am văzut mai înainte, și, uneori, ei merg pe aceeași linie, uneori, alte linii, este un fel de o decizie personală. Vei vedea cuvinte cheie, cum ar fi "Public", "static", "vid". Dar noi am văzut pe "principal". "Principal" este, în general numele funcției implicite sau bucată implicit de cod care se execută într-un program de. "Şir." Ce-înțelegem prin șir mai devreme? Am folosit-un fel de întâmplare. Un șir de caractere este ceea ce? Un cuvant. Este ca o secvență de caractere. caractere individuale, înapoi la spate în spate, de obicei, într-o matrice, așa cum am discutat. Și, de fapt, a se vedea această sintaxă aici, cele două paranteze pătrate? Asta înseamnă că, hei calculator, aici vine o serie de siruri de caractere. Notația colțarul pătrat este utilizate în mod obișnuit pentru a indica acest lucru. Și, atunci puteți, probabil, să ia o ce ghicesc face acest lucru evidențiat bucată de cod, probabil, nu? AUDIENTA: Ieșirea? David J. MALAN: Da. Se imprimă ceva pe ecran. Deci, "sistem" este un fel de trimitere la computer. "Out" înseamnă calculatorul dumneavoastră ieșire sau ecranul. Deci, "ln System.out.print" înseamnă, probabil? "Ln". linie de imprimare care programatori cum ar fi să scrie câteva cuvinte aparent afară în integralitatea lor și să ia acceleratori cu alte cuvinte. Dar, "ln" este linia, astfel încât linia de imprimare. Deci, se imprimă "Bună ziua World! ", Urmată de o nouă linie. Deci asta este. Dar, Java este ceea ce ei vor apel orientat pe obiect. Și într-adevăr, doar pentru a da un alte câteva definiții acolo pe care le-ar putea a se vedea, în general, acolo Sunt multe tipuri diferite de limbi, dar cele mai frecvente sunt limbaje procedurale sau imperative. Există, sunt funcționale limbi, care nu înseamnă că alții sunt nefunctional. Și apoi există limbaje orientate obiect. Și acest lucru este, probabil, cel mai bun clasificarea cele mai multe limbi pe care le-ar alege vreodată pentru sortare a unui proiect comercial tipic. Acest lucru ar fi prea mult, Cred că, din gaura unui sobolan pentru a merge în jos, pentru a încerca să explice diversele diferențe. Dar limbile am văzut, astfel, far-- C este o procedură sau o limbaj imperativ. Mai recent inventat limbi tind să fie, îmi pare rău, orientate-obiect, ceea ce înseamnă ei au alte caracteristici pentru a le. Pot să-l explic în acest fel? Să nu merge chiar acolo jos. mijloace orientate obiect aveți posibilitatea să implement-- puteți modela lumea reală un pic mai eficient. Omenirea, în timp, a dat seama, wow, ar fi frumos dacă limba mea a avut această caracteristică sau acea caracteristică. Și de aceea avem atât de multe limbi din lume. persoane rezonabile, inteligente oameni, sunt de acord sau nu sunt de acord și invariabil, un fel de vin împreună dezvoltarea de noi limbi toate împreună. Caz elocvent. Apple a inventat Swift speranța de scădere probabil bara pentru dezvoltarea iPhone, deoarece language-- precedent numita Objective-C, ceea ce ar putea fi, de asemenea, pe lista noastră de aici-- a fost mult mai obscură și mult mai mai greu să-și încheie mintea cuiva în jurul valorii. Și, ca și programarea devine, fără îndoială, mai accesibile și mai pe larg adoptată de oameni chiar mai puțin tehnic, goal-- este un obiectiv foarte curajos pentru a încerca să coborâți bariera la intrarea pe piață prin limbile în sine mai ușor pentru a începe cu, dar nu mai puțin puternic, în mod necesar. Și într-o altă limbă. De ce nu ne aruncăm o privire la ceva de genul Python, care este foarte mult în vogă în aceste zile. Piton. Programul de probă. Sa vedem. "Hello World" limbi. Sa o facem. "Salut Lume." Hai să vedem dacă acest lucru dă ne un exemplu frumos. O.K. Deci, acest lucru este de fapt un fel de distractiv. Așa că, dacă ai Google vreodată "Hello World", care se întâmplă să fie una dintre primele programe scris vreodată într-o limbă modernă, la fel ca și o dovadă a conceptului, puteți vedea tot felul de implementari ale acestui. Unele dintre aceste limbi Nici nu am auzit. Dar vă puteți see-- să mergem la bază, cel care am învățat cu ani în urmă, în parte. Aceasta a fost o limbă distractiv, deoarece vă a trebuit să, în calitate de programator, numărul toate liniile. Nu spre deosebire de ceea ce am fost când am făcut a fost scris pseudocod pe documentul galben mai devreme pentru căutare binară, pentru căutarea unei cărți de telefon. Și așa, dacă ai vrut pentru a merge la o altă linie, trebuie să tastați literalmente, du-te la 10, sau du-te la 20. Iar dacă ne scrieți linii pentru convenție a fost de a face, acest lucru este linia 10, aceasta este linia de 20, aceasta este linia 30, 40, cu nimic între ele, astfel oferindu-vă unele cameră dacă vă decideți, așteptați un minut, Ar fi trebuit adăugat unele mai mult cod undeva. Încă mai avut un fel de nouă șanse de a stoarce că între programul înainte de a trebuit să manual renumerota totul. Deci, acest lucru este un fel de ceea ce vreau să spun când eu spun că lumea a venit cu o caracteristici noi. Undeva de-a lungul drum cineva a realizat, băiatul e prost. Acest lucru este doar crearea lucra pentru programator. Deci, el sau ea doar un fel de construit un nou strat pe partea de sus a acestei astfel încât nu trebuie să vă faceți griji despre ce numere linia cod este, de fapt. Deci, atunci când s-ar putea să alegeți o limbă sau alta? Ei bine, care dintre acestea limbi străine aveți tendința să aud despre cel mai mult în propria lume în aceste zile? Hai să lăsăm jos Obiectiv-C, de asemenea. AUDIENTA: C #. David J. MALAN: C #. Așa că lasă-mă de culoare. Avem altă culoare noastră undeva? Așa că C #. Și ce știi despre C #? Orice primăvară în minte? AUDIENTA: Este un limbaj de programare. David J. MALAN: Este un limbaj de programare. O.K. Asta e adevarat. Așa că vorbim despre C #. C # tinde să fie utilizate în mediile Windows, așa că, dacă sunteți scris software-ul Microsoft pentru Windows, C # este utilizat foarte frecvent, indiferent dacă este vorba de software-ul desktop, sau chiar și software-ul de telefon de pe telefoanele Windows, dacă ați avut cele, sau pe web, chiar prea. Și, de fapt, poate Kareem ASP menționat mai devreme? Deci, există, de asemenea, aceste lucruri numite cadre, pe care o putem introduce prin extensie. Cadrele, cum ar fi ASP. Standuri pentru pagini de server activ. Și acest lucru este cod și o modalitate de programare că, în general, face mai ușor pentru a scrie aplicatii bazate pe web. Cu alte cuvinte, ar fi super, super-enervant pentru a scrie un site în limba C, care le-am văzut înainte, pentru că v-ar trebui să utilizați de imprimare + F, v-ar trebui să utilizați acel cuvânt cheie "Principal" și acolade. O mulțime de sintaxă arcan și să pună în aplicare abordarea ceva care este destul de complex. O pagină web. Și, astfel încât alte limbi au evoluat pentru a face acest tip de lucru mai ușor. Și, la rândul său, oamenii au venit cu cadre, un fel de instrumente pe care le puteți utiliza care fac chiar mai ușor de a scrie pagini web. Deci, de exemplu, pentru a face acest beton mult mai mult, lasă-mă să deschid doar un fișier text pentru un moment. Si s-ar putea aminti ieri că am spus ceva cum ar fi, aceasta este o pagină web. HTML. Închide HTML. Lasă-mă să săriți peste cap și fac doar corpul aici. Să presupunem că am vrut să a scrie nu "Hello World", dar "Bună ziua David", unde David este numele celui conectat în prezent utilizator. Ce ceva de genul ASP va face, sau JSP-- care este serverul Java pages-- sau orice număr de alte cadre este că nu sunt limbi, per se. Sunt la fel ca software-ul suplimentar pe care ar instala în mediul pe care tocmai l face mai ușor de programat. Deci, de exemplu, mai degrabă decât trebuie să facă ceva de genul "Bună ziua, printf (" David ")" sau ceva de genul asta un fel de co-mingling-- tipul de cod care le-am văzut before-- v-ar face ceva mult mai simplu, cum ar fi "numele%." Și, astfel încât aceste cadre, cum ar fi ASP-- și eu Nu-mi amintesc dacă am obține sintaxa doar dreptul pentru ASP. JSP este un little-- este acest drept? Deci, cu ASP, acest lucru este un fel de sintaxă specială că unii dezvoltatori au decis acest lucru ar putea ajuta oamenii. Si eu pot exprima mai succint Substituenți, de exemplu. Ca si pune o valoare aici, în cazul în care acest nume de valoare nu este N-A-M-E, este o anumită valoare stocată acolo. Deci, "nume", în acest context, am putea numi o variabilă. Algebră are variabile cum ar fi x și y, și z. Programatorii folosesc variabile care sunt mai descriptiv decât x, y și z, în mod tipic. Deci, "nume" ar fi literalmente un fel de containere de memorie pentru ceva de genul D-A-V-I-D, pentru numele meu, sau oricine altfel este conectat la site-ul web. Și, astfel încât acesta este un fel de comoditate te cu anumite medii. Așa că C # și ceva de genul ASP ar fi foarte în mod obișnuit să fie utilizate într-o lume pentru Windows, fie pentru desktop-ul său software-ul sau un server de web, mai ales în cazul în care serverele sunt la rândul lor, care rulează Microsoft Windows și Microsoft IIS-- sau Internet Information Server, dacă am obține acronimul right-- care este serverul de web al Microsoft. Deci, ce alte limbi sunt oameni familiarizați cu, sau ați auzit mai des decât nu? AUDIENTA: Știu că lui Python un fel de populare [inaudibil]. David J. MALAN: Foarte popular. Așa că Python aici este folosit foarte des în aplicații științifice sau date știință, în cazul în care aveți o mulțime de date pe care doriți să le analizați și doriți să utilizați un limbaj de programare pentru ea. R ar putea fi utilizate în mod obișnuit pentru această precum și, într-un context statistic. Dar, Python are asa de multe Caracteristici construite în. Deci, de multe suplimentare biblioteci, după cum spun oamenii. Bibliotecile sunt doar colecții de cod pe care alte persoane a scris că puteți utiliza, astfel încât să nu trebuie să reinventeze aceste roți. Și așa Python este foarte frecvent utilizate în aplicații de știință de date. Dar este, de asemenea, foarte frecvent utilizate în aplicații web. Puteți implementa o dinamică site-ul folosind Python. Și, prin site-ul dinamic, am înseamnă conținut nu doar static cum am creat ieri, de doar greu de codificare în textul latin și alte astfel de lucruri, ci mai degrabă capacitatea pentru a vă conecta, capacitatea de a cumpăra ceva, capacitatea de a verifica cărucioare de cumpărături, sau altele asemenea. Toate acestea necesită dinamism și vă au nevoie de o anumită limbă ca unul dintre acestea. AUDIENTA: Deci, are propria sa Python extensie, similar ca in [inaudibil] David J. MALAN: Face. Deci, în lumea Python, Django este un cadru foarte popular pentru Python. WSGI este un alt mecanism care este un fel de diferit de acesta dar similare în spirit. Este un add-on care vă permite pentru a rula cod Python pe un server. Nu e other-- da. Deci, acestea vom numi cadre. Și este un pic de un abuz. Aceasta este mai mult de o tehnologie de server web. Dar vom păstra simplu și a pus ea în această coloană, totuși. O.K. WSGI. WSGI. O altă thing-- și de fapt, să mă muta că la coloana proprie, pentru că aș țipa la mine pentru punându-le în aceeași găleată. Să punem acest lucru într-un server caracteristici, să zicem. Asta nu e un termen tehnic. Deci, aici am putea fi WSGI. Există CGI, care este o mai veche Tehnica de servire limbaje cum ar fi Perl sau PHP, sau altele. Din nou, am menționat acești termeni nu atât de mult pentru un fel de ei înnăscut, dar, astfel încât, dacă vedeți le este ceva tu google pur și simplu pentru a citi mai mult. Nu există nici un suc de real, la unele dintre aceste lucruri. Dar să ne întoarcem la limbile. Am vorbit despre C #, Python. Ce altceva s-ar putea să utilizați pentru programare web aceste zile? Să ne concentrăm pe asta încă. AUDIENTA: PHP. David J. MALAN: PHP. Și să se întoarcă la asta. Asa ca PHP este utilizat foarte frecvent. PHP are tendința de a obține un rap rău. Totul a început ca o limbă pusă în aplicare de oameni care poate nu au fost neapărat cei mai buni designeri de limbă. Și, astfel încât să puteți citi tot felul de articole online despre cât de rău este PHP. Și, din păcate, acest lucru este o manifestare, în parte, de doar dezbateri religioase care erupe printre programatori. Și acest lucru este ceva merită păstrate în minte, dintr-o perspectivă de afaceri, care este foarte ușor pentru oameni tehnice pentru a obține toate au lucrat cu lor opinii cu privire la anumite lucruri. Si asta nu înseamnă neapărat că cel care țipa cel mai tare sau cu cel mai puternic, Avizul manios are dreptate. O mulțime de ori, într-adevăr pur și simplu nu contează. Și astfel oamenii sunt pur și simplu argumentând orice propriile lor prejudecăți sau zone de confort sunt. Și așa ar trebui să păstreze că, în minte atunci când se face o decizie, care tocmai pentru că cineva spune aceasta este limba potrivita pentru de locuri de muncă, care ar putea fi adevărat, dar, de asemenea, ar putea fi doar ea este cea limba drept în propria lor de calificare set sau zona de confort. Ceea ce nu este rău, dar ar trebui să realizezi că ar putea exista unele context. Există unele obiectiv declarații greșite, cum ar fi C este limba greșită de a utiliza aceste zile, pentru punerea în aplicare a site-uri web aproape intotdeauna. Dar nu este rezonabil să spunem că oricare dintre aceste sunt greșite pe care le-am încercuit până acum. PHP a trecut prin mai multe versiuni. Astfel încât limbile tind să aibă versiunea Numerele asociate cu acestea. PHP este de până la, cred, versiunea 7 acum, asa ca a fost în jur de ceva timp. Și, ca limbi obține mai noi, ei de multe ori caracteristici noi. Dar, trebuie să fie conștient de acest lucru pentru că în cazul în care site-ul dvs. a fost implementat în versiunea 7 a PHP, dar încercați să rulați site-ul dvs., sau poate ai externalizat dezvoltarea codului la altcineva si e-mail să vă sau trimite-l la tine și spun ei, aici, a pus acest lucru pe serverul web, în cazul în care serverul web este câteva ani outdated-- fie că este vorba propriul server sau un host-- web aceasta s-ar putea să nu ruleze de fapt. Deci, acestea sunt tipurile de lucruri pe care cineva trebuie să fie conștient de atunci când modernizarea unui site sau de punere în aplicare pentru prima dată. Am auzit JavaScript mai devreme. Așa că JavaScript este un interesant una în care ea este în general partea de client, după cum vom vedea după pauză, care înseamnă că se execută în browser-ul utilizatorului. Dar, de asemenea, puteți rula JavaScript aceste zile folosind ceva numit Node.js, în cazul în care Node.js este un mecanism de rulare cod JavaScript pe partea de server, în loc de a folosi Python, sau PHP, sau alte astfel de limbi. JavaScript este deosebit de bine adaptate pentru aplicații de chat și în timp real aplicații, în timp ce PHP nu este o mare limbaj pentru punerea în aplicare a ceva ca un server de chat, în cazul în care utilizatorii rămâne conectat la ea în mod constant. PHP este mai mult de o vizită pe mine o dată, pentru a primi înapoi un rezultat, și apoi faceți clic pe un alt link unele secunde sau minute de acum. Întrucât Node.js și JavaScript poate fi folosit mai mult pentru conexiuni persistente. Alte limbi pe care le suspecta sunt frecvent utilizate pentru lucruri de web? AUDIENTA: Ar jQuery fi un cadru? David J. MALAN: Bună întrebare. Nici. Aș numi jQuery o bibliotecă, în cazul în care din nou, o bibliotecă este doar o adunatura de cod că cineva are altcineva în scris că, în general, rezolvă unele probleme pe care o face, sperăm, mai ușor pentru tine să-ți faci treaba. Și să-mi fac un exemplu de acest lucru în contextul web. În contextul web există această limbă, JavaScript, că vom vedea mai târziu, prin care s-ar putea spune ceva de genul astea-- "Document.getElementById." Si ce eu numesc asta ieri? În primul rând, cred că, a fost ID-ul unic am dat la un element care arata ca acest lucru. "P id =" primul ">" și apoi am avut cum ar fi "lorem ipsum", et cetera. Așa că, dacă aș fi scris un program în JavaScript pentru a manipula într-un fel, schimba paginile web pe care le au jucat cu ieri, Mi-ar folosi acest linie de cod evidențiată pentru a obține acel fragment special de HTML de la pagina mea, acel nod special, așa cum o vom numi acum. Cu toate acestea, în jQuery, în loc de a scrie acest lucru, care este code-- JavaScript crud doar din cutie, asta e modul în care scrie it-- v-ar spune în schimb doar, "#primul." Asta e echivalent. Și așa bazat numai pe acest lucru foarte exemplu Arcane, ce poate este argumentul pentru utilizarea jQuery? De ce s-ar folosi un dezvoltator de o bibliotecă cum ar fi jQuery, pe baza acestui exemplu izolat, poate? AUDIENTA: Codul de mai puțin. David J. MALAN: Da. Este mai puțin cod. Este pur și simplu mai rapid de tip. Contrapunctul este că se pare mai înspăimântător. Nu puteți citi într-adevăr la stânga la dreapta. De fapt, pentru că cea mai mare parte punctuație acum, în loc de cuvinte reale, Pot cam deduce că "Document.getElementById" devine un element din documentul prin ID-ul său. Eu chiar nu pot folosi nici un astfel de mnemonice din chestia asta aici. Deci, e un compromis. E o sofisticare care vine de multe ori cu utilizarea bibliotecilor, în special cum ar fi jQuery. Dar realitatea este jQuery are un fel a devenit un standard de facto, astfel încât aproape oricine acestea zile care scrie cod JavaScript foloseste jQuery sau ceva cum ar fi ea, și nu mai scrie o astfel de expresii verbose ca acest lucru, pentru că, din nou, omenirea a învățat, wow, asta a fost un fel de oportunitate ratată pentru a face viața mai ușoară. Așa că oamenii fac viața mai ușoară. Buna intrebare. Alte limbi să ia în considerare. Aș spune că printre acest Lista Ruby este destul de popular. Și astfel, în lumea Ruby, există un cadru numitele sine, care este foarte popular. Așa că Ruby pe șine este o utilizate în mod obișnuit de exprimare. De asemenea, în această lume, lasă-mă cerc Java pentru lucruri de web, în cazul în care, în lumea de Java s-ar putea avea JSP, sau Java Servleturile, care este o tehnologie comună. Și acesta este doar din nou modalități de utilizare această limbă într-un mediu de server. Deci, ce înseamnă asta? Dacă ai un fizic server, ar fi pur și simplu descărcați software-ul de server web și se instalează în așa fel că aveți suport pentru unul dintre aceste cadre, cu care ar putea, la rândul său, utilizați una sau mai multe dintre aceste limbi. Și, în realitate, dacă vă înscrieți pentru ca un web gazdă sau o parte din nor servicii am vorbit ieri, de multe ori lucrurile pur și simplu, vine cu configurația mașinii pentru tine. Nu aveți nevoie pentru a seta asta manual. Dar dacă ai făcut-o, acest lucru este în cazul în care rolul de administrator de sistem, ca să spunem așa, intră în joc. El sau ea ar face de fapt acest tip de lucruri pentru tine, sau așa-numitul webmasterul ar face de multe ori acest lucru pentru tine. In regula. Orice întrebări cu privire la unele dintre acestea aici? Sau orice oportunitate la toate pentru a întreba despre limbi? Cadrele? Atunci lasă-mă să introducă doar o altă bibliotecă care este, de asemenea, foarte frecvente in aceste zile. Lista ar putea continua la infinit. Iar această bibliotecă este un fel de începe să cadă din favoare. A fost în jur. Acesta a fost popularizat de Twitter pentru ceva timp. Și acum o mulțime de site-uri web, o mulțime de dezvoltatori l folosesc. Dar, lucruri noi vin afară și vine de-a lungul. Dar, permiteți-mi să vă dau un sens din ceea ce înseamnă să utilizeze o bibliotecă. Deci, din nou, JavaScript este un limbaj foarte popular. CSS, sau Cascading Style Sheets, am vorbit despre ieri. Că, de asemenea, este omniprezent. Nimeni nu face o pagină web astăzi fără a utiliza HTML si CSS minim. Dar nu este întotdeauna ușor pentru a face anumite lucruri. Și așa lasă-mă să merg la getbootstrap.com. Hopa. Nu așa ne scrie. Getbootstrap.com, care este de gând să mă conducă la pagina de destinație pentru această bibliotecă. Deci, ei numesc generozitate ele însele un cadru, care este un fel de fel de echitabil, dar aș numi în continuare mai mult de o bibliotecă decât un cadru. Dar acestea sunt doar semantica discutabile. Lasă-mă să merg la tab-ul lor CSS și lasă-mă să merg la ceva de genul asta. Așa că amintesc ce sa uitat formele noastre ca ieri pe Cloud9? A fost destul de urât. butoane vechi de școală. Cred că butonul a fost gri de Mod implicit. Și totul a fost într-adevăr formatate destul de messily. Așa că, dacă doriți formularele web să se uite un pic nicer-- lasă-mă mări aici. Si eu mai plăcut cu adevărat doar înseamnă estetica foarte nitpicky. Așa că observați cum se are cutia de e-mail rotunjit colțuri dreptunghiulare ea. Deci, e un pic mai curat acolo. Observați că e-mailul de cuvânt este acolo până când am început să tastați și apoi dispare. Deci asta este o caracteristică frumos pic. Observați cum lucru este un fel de stralucitoare frumos, pe care o parte din acest lucru obține gratuit de browser-ul dvs., dar o parte din aceasta este, de asemenea, biblioteci, cod care alte persoane au în scris că da asta. Ceva de genul dă-mi parola. Acest buton este un pic mai sexy decât cea Mod implicit. Foarte mult în vogă chiar acum. Încă de când iOS 7 sau cam asa ceva, lumii a devenit foarte plat, întrucât lumea înainte de a avea o mulțime de umbre picătură, o mulțime de reflecții asupra icoanelor. La fel ca în lumea de îmbrăcăminte, exista tendinte de moda, care vin și se duc. Acum totul este plat pe telefon. De fapt, butoanele de pe dvs. de iPhone sunt acum link-uri doar albastru. Nu e de multe ori chiar butoane circulare. Deci, acestea sunt doar lucruri care intră și ies de modă, și astfel încât acesta este modul în care s-ar putea face o formă mai modernă web în căutarea. Butoane. Așa că Bootstrap are o mulțime de butoane destul. Așa că, dacă doriți butoane albastre, butoane verde, albastru, portocaliu, roșu. Bootstrap face mai ușor pentru a face aceste lucruri. Acestea sunt tipurile de lucruri că ai putea absolut s-au făcut, ieri, cu CSS și cu HTML, dar este doar o durere în gât. Și așa în schimb, ceea ce ar fi Bootstrap Trebuie să faci este ceva de genul asta. Dacă doriți ca un button-- se dovedește acest lucru este o etichetă HTML nu am folosit yesterday-- și doriți să se uite cum ar fi acest buton verde, literalmente da doar o clasă, pe care am făcut-o vorbim despre ieri, din "BTN BTN-succes." De ce aceste cuvinte? Twitter, autorii Bootstrap, a venit cu aceste cuvinte. Ele ar putea fi numit le tot ce vor. Dar, ceea ce primesc acum este pe altcineva la Twitter, în acest caz, a dat seama cum se face buton arata frumos și curat și verde. Ei au ambalate în sus că funcționalitatea într-o clasă CSS, numită "BTN" și "BTN-succes", astfel încât oricare dintre noi poate acum folosesc fără măcar să ne gândim aceasta. Deci, ei au abstras departe noțiunea de un buton verde așa că nu trebuie să-i pese pune în aplicare noi înșine. Ne putem concentra de fapt, pe punerea în aplicare lucruri de interes pentru noi. Dacă ne defilați în jos aici. Mesaje de eroare de pe ecran. Uneori doriți un mesaj scurt să apară pe partea de sus a browser-ului. Oricare dintre noi ar putea face acest lucru cu unele efort, după lecția de ieri, dar de ce te deranjează? Asta e un astfel de neinteresantă detaliu estetic. Hai să Stând pe umerii de Bootstrap și ei să ne dea lucruri de genul asta, în cazul în care ne-am literalmente, pentru a obține o cutie roșie, trebuie doar să facă un paragraf tag-ul cu o clasă de-- pare rău. "Bg-pericol", ne-ar da această casetă roșiatică în loc. Acum, să mergem la mai multe lucruri interesante. Dacă mă duc înapoi la partea de sus această pagină și du-te la componente, acum lumea devine mai interesantă. De exemplu, foarte frecvente este drop jos meniuri de genul asta. Acest lucru ar fi absolut durerea de a pune în aplicare. Și nu a fost atât de mult timp în urmă că noi programatori ar trebui să pună în aplicare aceste tipuri de meniuri de la zero. Dar este o astfel de paradigmă comună că bibliotecile ca Bootstrap doar vă oferă posibilitatea de a face o drop jos meniu de departe, mult mai ușor. Nu există nici o modalitate de a face acest lucru, dar dacă am citit documentația Mi-ar vedea că, OK, eu ar trebui să utilizeze acest HTML, dacă vreau un meniu derulant care se comporta ca asta. În mod similar, să mergem la butonul drop jos. Deci, acest lucru este chiar columbofil. Dacă vreau ca acest lucru să arate ca un buton dar acel triunghi mic înseamnă Ar trebui să faceți clic pe ea și a obține acest meniu, acest lucru este folosind un limbaj numit JavaScript. Și, tot ce ne-am putea pune în aplicare acest lucru în JavaScript. Dar, din nou, acest lucru este o roată nu doriți să reinventeze. Vrei doar să-l scoată biblioteca raft pentru acest lucru. Hai să mergem la ceva cum ar fi bare de progres. Așa că ceva de genul acesta este un fel de rece. Dacă ați văzut vreodată un progres bare se deplasează pe ecran, de punere în aplicare care de multe ori este doar o pictogramă de filare. De fapt, la fel ca și o parte, să mă să merg la Ajax-- ce este? Ajax info? Hopa. Ajaxinfo. Permiteți-mi să amintesc adresa. Acolo mergem. Așadar, dacă ai văzut vreodată unele animație în timp ce pagina se încarcă, sau de gândire, sau de economisire, sau crearea de ceva, ar putea vedea animații, cum ar fi acestea. Deci, să ne uităm la ceva ca aceasta de aici, și să aleagă o culoare de prim-plan de verde, care se simte un fel de prietenos. Pot să faceți clic pe acest? Haide. O.K. Vom merge doar cu roșu, deoarece asta e ceea ce ne apropiem. Deci, aici îl avem. Așa că, dacă v-ați văzut vreodată acest lucru pe un ecran, prin care brusc apare și apoi brusc dispare, ceea ce este care este punerea în aplicare ea asta? Ei bine, acest lucru este doar un GIF. G-I-F. Și acest lucru este un animat fișier, care înseamnă doar este ca o carte de benzi desenate vechi școală. Există doar o grămadă de diferite cadre care vor [balbismul] și doar repetarea. Și se dau naștere iluzia mișcării. Așa că, de îndată ce o pagină este făcută de încărcare sau de a face ceva, ce face un programator? Ei bine, el sau ea doar ascunde această imagine. Deci, toate o bară de progres este este un fel de ca un film pe care îl urmăriți. Tu ești un fel de orb la faptul că nu face de fapt nimic, este doar în mișcare. Și apoi, când se face progresează, ei doar ascunde sau opriți-l. Și asta e tot magia care se întâmplă acolo. Bootstrap vă oferă ceva un pic mai arătos prin care puteți de fapt a se vedea un procent ca merge, dar prea este doar un fel o animație simplă. Să ne uităm la un final mai multe exemple complexe aici. Ceva de genul modal. Stie cineva ce modal este? O fereastră modal este, în general una care se presupune să preia controlul asupra informațiilor generate și te împiedică să faci nimic altceva. Într-un fel forțează-ul utilizatorului atenție la mijlocul ecranului, blocare-le, în mod tipic, de orice altceva. Deci, dacă am lansa acest demo, The Ecranul va deveni, în general, de culoare gri. Ei bine, cum o facem gri? Ei bine, noi, probabil, doar a schimbat culoarea de fundal așa cum am făcut-o ieri sau asa ceva. Poate că este o suprapunere că semi-transparent. Și acum observați poți face lucruri fanteziste de genul asta. Așa că, dacă faceți clic vreodată pe un buton și doresc un pic pop-out să apară, Poti sa faci asta. Și așa cui îi pasă de all-- da? AUDIENTA: Deci, cu Bootstrap, să-l încorporat, este la fel de simplu ca și cum ar fi ieri am făcut-o pagina de stiluri CSS? David J. MALAN: Intr-adevar. Într-adevăr bine întrebare. Lasă-mă să merg la Noțiuni de bază. Si da. Tot ce trebuie să faceți pentru a utilizarea Bootstrap este, în esență, să copiați și lipiți aceste trei linii lungi de cod în partea de sus a propriei page-- web șeful tău page-- și tu ești sus și să fie difuzate. Și, există diferite moduri de a face ea, dar acest lucru ar fi mai simplu. Deci, ce este util despre toate astea? Ei bine, dacă nu ești atât de mult practicantul unui site dar tu încerci să-l proiecteze, sau doriți să oferiți cuiva cu diagrame cadru de sârmă, ca să spunem așa, sau predări doar artist a ceea ce vrei să faci, eu, la această zi, va merge de multe ori la un site cum ar fi Bootstrap, în cazul în care, dacă am doresc să pună în aplicare something-- cum ar fi recent în campus am dorit să pună în aplicare un instrument bazat pe web pentru a naviga Catalog de curs de la Harvard, ceea ce face mai ușor pentru studenți pentru a naviga prin cursuri și se adaugă cursuri de la listă de cumpărături, ca să spunem așa, pentru a decide ce fel de au vrut să le ia. Am încercat să ne imaginăm pentru mine, ce ingrediente ar dorim să folosim pentru a construi acest lucru? Care ar fi interfața cu utilizatorul cum ar fi? Și doar în căutarea printr-un site ca acest lucru sau alte astfel de site-uri de bibliotecă, puteți obține inspirație, pentru că wow, Pot folosi acest widget, și acest widget, și acest widget. Și apoi într-adevăr ce programator începe de a face, mai ales în aceste zile, în această lume mai moderne de programare web, este de programare este din ce în ce despre cabluri lucruri împreună. Un fel de a lua acest de pe raft, acest lucru de pe raft, acest lucru de pe raft, și tu fiind cel deștept pentru a conecta toate aceste puncte, dar, în cele din urmă construi ceva de nou în picioare pe umerii altora, astfel încât să nu petreacă o lună de punere în aplicare o picătură prost meniu în jos, care este de fapt greu de făcut dacă pe care doriți să lucrați în Chrome, și IE, și Firefox, precum și orice număr de alte browsere. Acesta este motivul pentru care există acest bogat software-ul sursă comercială și deschisă industrie, de asemenea. AUDIENTA: Deci, nu Bootstrap obține actualizat și trebuie să actualizați apoi link-urile dvs.? David J. MALAN: Face. Ei bine, da, o face. Bootstrap este în prezent la versiunea 3.3.6. Și, în general, ceea ce s-ar do-- acest lucru este de fapt demn de menționat. Nu e ceea ce este în general cunoscut ca un versionare semantic Sistemul din lume. Nu toată lumea face acest lucru. Dar, dacă ați văzut numere de versiune care sunt de forma x.y.z-- astfel încât, de exemplu, prima versiune unui program poate fi 1.0.0. Sau, în cazul în care este foarte, foarte beta, sau chiar starea alfa, ceea ce înseamnă că utilizarea pe propriul risc, nu-i într-adevăr gata pentru prime time, s-ar putea începe chiar 0.0.1 sau a unor astfel de desemnare. Dar, în cazul în care software-ul începe la versiunea 1.0 sau echivalent 1.0.0, de obicei, ceea ce este comun cu acestea days-- deși nu este omnipresent-- în cazul în care o companie sau o remedieri programator individuale unele bug în unele bucata de software care într-adevăr a fost un bug, a cărui corecție nu ar trebui să te impactul la all-- nu se schimba Comportamentul programului, acesta fixează doar ceva care nu a fost de lucru properly-- v-ar tipic actualizarea valorii z acolo. Ceea ce înseamnă că cineva ca Kareem ar putea pur și simplu du-te în site-ul său, schimbați orbește numărul versiunii de la 1.0.0 la 1.0.1, salvați-l, nava, și în teorie, nu trebuie să vă faceți griji că el doar rupt site-ul său, din cauza o oarecare lipsă de funcționalitate, pentru că a rupt ceva. Între timp, dacă eu programator sau o companie au fost de a face unele semnificative schimbare care adaugă funcționalitate, S-ar putea să ne actualiza la 1.1.0 pentru că sunt de fapt schimbarea comportamentului bibliotecii. Îți dau mai multă funcționalitate poate. În cele din urmă, dacă aș fi fost de fapt la schimba fundamental software-ul asa de mult că se va rupe multe utilizatorii site-uri web sau aplicații, atunci eu sunt obligat, în acest model, pentru a upgrade la numărul versiunii majore prea, care este o schimbare de rupere. Cu alte cuvinte, am putea avea sprijin pentru cei care au întrerupt meniurile meniu în jos. Așa că, dacă faci upgrade la 2.0, jumătate site-ul dvs. ar putea să nu mai funcționeze. Și acest lucru este un fel de semnal la comunitate ca la ceea ce este implicat în a face un upgrade. O bună ocazie de a ridica. Alte întrebări? In regula. Ei bine, să aruncăm o privire la una finală subiect în acest segment de programare de stive de tehnologie, și anume legate de telefonie mobilă. Deci, în lumea telefoanelor mobile de astăzi tu have-- și iPad-uri, și suprafețe, și toate aceste tipuri de devices-- aveți o mulțime de opțiuni atunci când este vorba de punere în aplicare o aplicație sau un site web pentru dispozitivele mobile clientului. Deci, doar să se indice evident, poate ca aceste zile, care sunt platforme pentru a pentru a dezvolta în spațiul mobil? Ce dispozitive ar putea să vă doriți să sprijini cu aplicația dvs. sau site-ul? AUDIENTA: Apple. David J. MALAN: OK. Astfel încât dispozitivele Apple. Deci asta înseamnă iPhone, și că înseamnă iPad, și poate chiar iPod. Ce altceva? Olivier? AUDIENTA: Android. David J. MALAN: Android. O.K. telefoane Android Așa că, Android tablete, Android Market este chiar Messier because-- și chiar Apple devine murdar. Întrucât o dată la un moment dat iPhone-ul a fost o anumită dimensiune, și iPad a fost o anumită dimensiune, și iPod a fost o anumită dimensiune, acum avem iPad Minis, și subțire cele, și iPhone 6 Plus și 6. Devine o mizerie. Devine lumea Android. Si eu spun acest lucru cu un fel de rulare ochii mei, pentru că de la un dezvoltator perspectivă, este o dureri în gât atunci când nu ai lui Steve Jobs viziune de control absolut peste toate aceste specificații. Apple a face în continuare, deoarece acestea sunt cele construirea hardware-ul. Dar este un lucru frumos, dacă Sunt un dezvoltator de software, să știe că-mi iPhone-ul este întotdeauna merge să fie atât de mare, deoarece asta înseamnă că știu întotdeauna cât de mult ecran imobiliar am. Așa că, dacă vreau să pun o pictogramă în colțul din stânga sus, ea va fi în exact aceeași așezați pe dispozitiv fiecare client. Dar, în lumea iPhone 6s și iPhone 6 Plusuri și în lumea Android telefoane, este peste tot pe hartă. Și, așa că face mai greu de program de lucruri, în special interfețe pentru utilizator, pentru că acum trebuie să înceapă aranjarea interfețele de utilizator relativ, nu absolut. Și același lucru a fost adevărat în browsere, și desktop-uri și laptop-uri pentru anii pentru că tu, desigur, au diferite dimensiuni de ecran. Ce altceva? S-ar putea avea suprafețe, cum ar fi de la Microsoft. Ai putea avea-- Audiența: telefon Windows. David J. MALAN: Ce-i asta? Audiența: telefon Windows. David J. MALAN: Da. Astfel încât telefoanele Windows pot fi găsite încă. Un fel de fel de BlackBerrys, dar ei încearcă. Și apoi ciorchini de alte dispozitive. Deci, pentru cea mai mare parte, să spun acestea sunt cele să aibă grijă în acest moment. Cu siguranță lucrurile Apple, cu siguranță, lucrurile Android, și printre pentru Windows, cum ar fi tablete de suprafață par să fie prinderea pe destul de bine. Și așa printre aceste dispozitive, dacă doriți să rola afară, să zicem, o prezență mobil dvs. companie, ce tipuri de decizii de proiectare nu trebuie să faci? Ei bine, am spus deja în lume Apple, există cel puțin două limbi care sunt utilizate în mod obișnuit. Unul a fost numit ce? AUDIENTA: Obiectiv-C. David J. MALAN: Da. Deci, Objective-C, care este cea mai veche. Este, de asemenea, limba pe care mulți Mac cererile sunt încă scrise în. Apoi cealaltă noua era? AUDIENTA: Swift. David J. MALAN: Swift. Iar acestea sunt genul de doi să știu pentru a impresiona oameni. Apoi, în lumea Android, ce limbă folosește Android? AUDIENTA: C #? AUDIENTA: Java. David J. MALAN: Java este limba de "du jour". În lume pentru Windows, sigur, vom spune C # în acest caz. Așa că deja acest lucru este un fel de enervant, pentru că ceea ce este MENIUL pentru o afacere proprietar sau de cineva care tocmai vrea să lanseze o prezență mobil? Cum ar fi, la naiba? Ca și, dacă doresc să sprijine o bază de utilizatori destul de larg, Trebuie să scrie, s-ar părea, trei aplicații separate. Una într-una dintre aceste limbi, unul în Java, unul în C #. Și chiar dacă vreau funcționalitatea să fie identice, nu contează. Mai trebuie să folosesc metode diferite limbi pentru că Apple și Microsoft, Google și tot sprijinul medii diferite. Și acest lucru a fost o provocare de ani de zile. Înapoi în ziua, când oamenii folosit pentru a cumpăra software-ul la un magazin de calculatoare în psihiatru cutii împachetate, v-ar trebui să fie ajunge pentru raft Mac, sau for-- poate acest lucru foarte mic Mac shelf-- sau mai mare raft pentru Windows și să cumpere unele software-ul. Și, de foarte multe ori, nu exista nici măcar orice pentru tine pe raft Mac. De ce? Ei bine, companiile au decis dacă 90% din lume, 95% din lume are PC-uri, de ce bate capul punerea în aplicare a lucrurilor pe Mac OS? Ca un aside-- total digression-- de ce este că Mac pare atât impermeabil la viruși, și viermi, și amenințărilor de securitate? Apple este mai bun la asta? O mai bună la păstrarea calculatoarelor sigure? AUDIENCE mai mici? David J. MALAN: Asta probabil pic mai mare pentru el. Astfel încât mulți utilizatori de Mac-uri au lung a susținut, oh, utilizați un Mac, vei fi imun la viruși și viermi, și toate aceste lucruri care au afectat mult timp PC-uri. Asta ar putea fi pentru că Apple are programatori mai bune și scrie mai bine software-ul sau Sistemul de operare a fost mai bine proiectat. Poate, dar probabil că nu. Este probabil ca atunci cand esti un copil de 12 de ani, sau un 30 ceva un fel de a sta la scris acasă software rău intenționat să preia lumea, vei merge după publicul țintă mult mai mare. 95% din lume care ar putea să se execute Windows sau unele variante ale acestora. Deci, există un pic pe ambele părți. Dar, pentru a lor de credit, Apple, la cunoștințele mele, nu are într-adevăr ei înșiși touted ca fiind mai sigure, din moment ce esti invitat doar dramă dacă face această afirmație, aș crede. In regula. Fara a intra prea mult în jos că, cum putem rezolva acest lucru? Nu trebuie să cumpere sau nu trebuie să să plătească trei persoane diferite pentru a dezvolta aplicațiile dvs.? Te iei una peste alta? Ce ar trebui să ghideze gândire aici crezi? Kareem? Nu. Altcineva. AUDIENTA: Vino cu hardware-ul. David J. MALAN: Vino cu hardware-ul? Ce vrei sa spui? AUDIENTA: Pentru mediu inconjurator. [Inaudibil] David J. MALAN: Deci este adevărat. Dar, clienții, între timp, s-ar putea avea iPhone, acestea ar putea avea telefoane Android, ei s-ar putea avea tablete realizate de Microsoft. Deci, cum ai o strategie de telefonie mobilă pentru toți acești utilizatori diferiți? S-ar părea că, dacă acesta costă, să zicem 1.000 $ pentru a face un iPhone cerere, va pentru a te costa $ 2.000 face o aplicație pentru iPhone și un aplicație Android sau $ 3.000 pentru a sprijini, de asemenea, dispozitivele Windows, de asemenea. Asta e, probabil, destul de subestimare, și nu s-ar putea chiar să fie o relație liniară de genul asta. AUDIENTA: Dacă doriți să aveți o aplicație sau nu, puteți avea site-ul receptiv. David J. MALAN: Bine. Audiența: Sau puteți avea o aplicație nativă. David J. MALAN: Da. Deci, în acest context toate aici, am vorbit despre ce oamenii ar numi aplicații native. Aceasta este aplicațiile care sunt scrise în limba nativă a acestui dispozitiv. Asa ca nativ Obiectiv-C sau Swift cod, sau în Java, sau în C #. Ceea ce înseamnă că atunci când descărcați, să spune Snapchat, o aplicație populară, sau atunci când descărcați Facebook pentru un telefon, sunteți descărcarea fie versiune scrisă pentru iPhone, sau scrise pentru telefonul Android, sau scrise pentru suprafața dumneavoastră. Dar, există o alternativă. După cum Olivier a fost aluzie la, puteți folosi de fapt HTML 5 în schimb, folosind ceea ce se numește un web cerere, prin care pur și simplu pune în aplicare prezenta mobil și orice funcționalitate. Ce vreau să spun prin prezența mobil? La fel ca site-ul dvs., care are dumneavoastra informații de contact, o listă a tuturor produsele, poate are un centru comercial coș, poate vinde lucruri prin ea. Indiferent de aplicație este, tu punerea în aplicare a acesteia, nu în Obiectiv-C, sau Swift, sau Java sau C #, dar în HTML 5, care a fost limba ne-am uitat la ieri, cu JavaScript și CSS. Și ce e frumos despre acele trei este că, pentru a le rula, ai nevoie doar de ce bucată de software-ul? AUDIENTA: Un browser web. David J. MALAN: Un browser web. Și, cel mai bun știu, toate acestea dispozitive vin cu browsere web, astfel încât utilizatorul nu a trebuie să instalați ceva special. Deci, vă puteți spune-ta publicul, clienții, du-te la acme.com în Site browser-ul și doar te vei au o experiență bazată pe web care încă umple ecranul, dar nu trebuie să vă faceți griji cu privire la toate aceste costuri și toate această complexitate. Dar, cu siguranță se întâmplă pentru a fi o captură aici, nu? Mai ales dacă subliniez că în urmă cu câțiva ani, prima versiune a aplicații mobile Facebook a fost cea mai mare parte o aplicație HTML 5. Și ei au, mai mult de curând, reimplemented în alte aplicații lor. Deci, de ce nu ar fi doresc imediat să spun, Evident că vom face asta? Care ar putea fi costurile ascunse? AUDIENTA: Performance. David J. MALAN: Performance? Cum vrei să spui? AUDIENTA: aplicația nativă are mai multă performanță. David J. MALAN: Deci, care este adevărat, pentru un cuplu de motive. Noi putem suprasimplificăm răspunsul. Și amintesc discuția noastră interpretat comparativ cu limbajele compilate. Acest lucru este HTML 5 și cu ea, doar pentru a fi clare, JavaScript-- scrise in mod comun JS-- și CSS sunt toate limbi interpretate, chiar dacă numai JavaScript este un limbaj de programare. Și așa, față de acestea, pe care unele dintre acestea sunt compilate, cel puțin aceste three-- Obiectiv-C, Java și C # - acestea, în teorie, ar trebui să fie pur și simplu mai rapid. Dar există o altă realitate for-- AUDIENTA: Funcționalități? David J. MALAN: Ce-i asta? AUDIENCE: Funcționalități. David J. MALAN: Funcționalitate? Cum așa? AUDIENTA: Utilizați camera închideți telefonul sau ceva. Aveți posibilitatea să utilizați cele cu browser-ul. David J. MALAN: Exact. Sunt sec-- AUDIENTA: [inaudibil] David J. MALAN: Acesta este un alt unul bun. Există caracteristici care vin cu telefoanele mobile de azi care nu sunt, prin proiectare, pentru securitate motive, accesibile pentru browsere web. Pentru că ar fi un fel de un lucru înfiorător în cazul în care pur și simplu atunci când accesați google.com, sau cnn.com, sau orice website.com, că site-ul are puterea de a transforma pe camera foto, să ia o imagine de tine, și apoi l utilizați. Dar tu nu ar dori un site web aleator pe care le vizitați pentru prima dată pentru a avea acea capacitate. Și ce telefon Producătorii fac de obicei este pur și simplu neagă accesul la acest tip de informații la un browser, care înseamnă nu se poate pune în aplicare camera. Nu puteți implementa notificări push, emite un sunet pe care le obține pe ecran cu mesaje scurte. Și, de fapt, chiar și GPS-ul este doar un fel de tip disponibile pentru browsere web. Dacă ați vreodată, pe un laptop sau pe un dispozitiv mobil, tras în sus ceva de genul, poate, CNN.com, dar, de asemenea, stații de știri locale au tendința de a face acest lucru, vi se solicită de multe ori cu un message-- foxnews.com vrea să știe locația. Aproba sau refuza. Ei bine, browser-ul încearcă să acceseze informații GPS de la telefon. Dar, din fericire Microsoft, și Apple și Google au decis că se simte ca este o situație utilă, dorim Hărți Google și alte instrumente pentru a lucra, dar noi nu vrem să se strecoare oameni prin care sa permita doar orice site web pentru a face acest lucru. Așa că hai să îndeplinească un fel de la jumătatea drumului și prompt de utilizator. Dar asta nu e neapărat cazul cu toate componentele hardware, cum ar fi camera și cu împingere notificări și altele asemenea, astfel încât s-ar putea să sacrifice anumite caracteristici. Dar performanța prea. Devine mai puțin de remarcat în zilele noastre, probabil ca LTE se prinde și mai rapid viteze de internet pe telefoane, dar poti un fel de simt diferenta. Ca o aplicație bazată pe web doar se simte mai lent, de obicei, decât o aplicație nativă, în parte deoarece o aplicație bazată pe web prin definiție este pe internet. Se vorbește cu serverele de pe web. Și, în cazul în care conexiunea la rețea este lent, chiar și defilare ar putea fi lent. Dar, o aplicație nativă, aveți deja pre-downloaded-- probabil când ai fost acasă din magazinul de aplicații, sau cel puțin pre-descărcat ea în întregime mai devreme, oricare ar fi dvs. de speed-- conexiune și astfel încât acum aveți toate biți care, în general, aveți nevoie. Cu excepția, poate, unele date care vine de la un server. Deci, acestea sunt compromisuri aici. Nu există un fel de mijloc compromis, de fapt. Și cred că Tu-- Audiența: Utilizați date offline. În aplicațiile native, puteți [inaudibil] David J. MALAN: Absolut. Deci, nu există problema offline care este foarte enervant dacă nu poți juca un joc sau de a folosi unele software-ul doar pentru că tu ești într-un subsol undeva sau într-un lift. O aplicație nativă este elastică cu o probabilitate mai mare față de faptul că, presupunând că aveți toate aveți nevoie de date la nivel local. Deci, există oa treia opțiune aici. Și să atragă spectrul ca aplicație nativă aici și aplicație web aici. Și ce e în mijloc este ceva called-- și cred că s-ar putea avea a folosit cuvântul înainte, poate? aplicație hibridă. Și, după cum sugerează cuvântul, este ceva la mijloc. Este un fel de aplicatii web si este un fel de aplicație nativă. Și ce înseamnă asta? Se pare ca sunt frameworks-- de a folosi un termen de la software-ul earlier-- că alte persoane au scris pentru fiecare dintre aceste platforme. Acestea și încă alte dispozitive. De fapt, lasă-mă să merg la PhoneGap, care este un astfel de cadru pe care am cred că Adobe deține acum. Lasă-mă să merg la Noțiuni de bază. Sa vedem. A se vedea dacă pot vedea o listă de instrumente. Hardware. Noțiuni de bază. hardware PhoneGap. Sa vedem. PhoneGap acces hardware. Lasă-mă să văd dacă putem găsi un pic diagramă care au folosit pentru a avea. Acest lucru este pe un alt site. Este acest lucru util? Nu. Asta va pierde timpul nostru acolo. hardware PhoneGap. Dispozitive. Dispozitiv API. Nu, le-am mutat. PhoneGap. Hai să mergem să o ultima privire la acest și a vedea dacă pot să-ți arăt. Noțiuni de bază. PhoneGap instala. Instalați aplicația mobilă. Haide. S-au reorganizat totul. In regula. Oh, bine. Ei bine, aici vom merge. Acest lucru nu este tot ceea ce edificator, dar acest lucru este ceea ce am fost un fel de a căuta. Așa că PhoneGap este un cadru pe care se poate descărca gratuit care vă oferă unele cod starter, în esență. Așa că un cod pe care le-au scris care nu face mult de nimic. Dar, ce îți dă în esență, este echivalentul unei aplicații care pune doar dreptunghi mare pe ecranul utilizatorului. Ea nu pune o bara de adrese URL, cum ar fi un browser-ul, nu pune o adresă. Pur și simplu pune un dreptunghi mare. Și configurați acest mare dreptunghi, sub capota, pentru a merge de fapt, la acme.com, sau poate m.acme.com, pentru mobile.acme.com, dar utilizatorul nu știe acestea sunt la acea adresă. Tot ceea ce văd este conținutul paginii web. Dar ceea ce este frumos despre această ființă o aplicație hibrid este că ceea ce PhoneGap și alte companii sunt oferindu-vă este ei oferindu-vă un pic de cod în Obiectiv-C sau Swift, sau un pic de cod în Java, sau un pic de cod în C #, și în mod esențial, tot ce trebuie să furnizeze este minimal adresa aplicației bazate pe web. Si apoi acest pachet toate împreună și tu au aceasta fie a accesa site-ul prin intermediul internetului, sau chiar tu cache un localnic copiați în cadrul aplicației, și apoi salvați aplicația în format iPhone, telefon Android formatul, formatul de suprafață, sau orice număr de alte dispozitive. Vă încărcați fiecare dintre aceste versiuni Magazin Play Google, la App Store, la Windows Store, și așa mai departe. Și acum, puteți avea toate dvs. publicul descarcă într-adevăr o aplicație nativă, deși cea mai mare parte a codului scris de altcineva, dar conținutul acestei aplicații nativ toate provin de la, de obicei, site-ul tau. Deci, va continua scrierea site-ul dvs. în HTML, JavaScript și CSS. Deci, de ce estompa aceste linii? De ce o aplicație hibridă asta e un fel de nativ, dar, de asemenea, un fel de web bazat? Care este punctul întreaga adăugând această complexitate? Vreau să spun, chiar și încă, doar de la uitându-se prin această pagină, A început ghidul Noțiuni de bază se simte ca ea are o mulțime de pași pentru mine pentru a face înainte de can-- AUDIENTA: Reutilizabilitate? David J. MALAN: Reutilizabilitate? Ce vrei sa spui? AUDIENTA: Din codul sursă. Deci același cod va rula pe toate diferite platforme. David J. MALAN: Da. AUDIENTA: [inaudibil] David J. MALAN: Perfect. În cazul în care timpul este strâns și, dacă nu au că multe developers-- poate aveți un singur dezvoltator și el sau ea cu siguranță nu știe toate acestea environments-- cu siguranță nu este bine, și cu siguranță nu poate program în toate cele trei simultan și nava-trei produse în timpul alocat pentru unul, l poți avea sau ei construi totul în HTML și JavaScript și CSS, și apoi să învețe un pic mai mica bit despre aplicațiile native, suficient doar pentru a descărca un cadru ca aceasta, pentru a încărca apoi produsul dvs. toate magazinele de aplicații diferite astfel încât să aveți acum o aplicație nativă. Astfel că pare a fi un câștig-câștig, dar, din nou, să fie clar, Care sunt potentialele costuri sau gotchas? AUDIENTA: Performanța? David J. MALAN: Da. Performanţă. Este greu de descris verbal. Așa că, dacă pur și simplu te iau pe credință, o aplicație mobilă, o aplicatie web va de obicei efectua mai lent. S-ar putea să nu arata destul de bine, pentru că în iPhone, și în telefoanele Android, și dispozitivele Windows, există întotdeauna un fel de aspect implicit și se simt la cele de mai butoane și meniuri. Și companiile din web, poate încerca de apropiere estetica cu biblioteci, cum ar fi Bootstrap, dar user-- o user-- pătrunzător va ști că ceva nu e destul de bine aici. Și asta e bine, poate că nu e mare lucru. Dar problema de performanță absolut este o afacere mare. aplicatii native vor avea tendința de doar să fie mult mai receptiv și, prin urmare, mai bine. Și așa, atunci ce s-ar putea să fie cel mai bun din ambele lumi? Dacă ești în special o mică companie sau un grup mic, nu au resursele necesare pentru a dezvolta o aplicație în paralel pe toate cele trei platforme, și sincer, se simte ca asta eo idee proastă, oricum pentru că dacă o rola și toate cele trei realizeze simultan, ar fi trebuit adăugat câteva caracteristici sau făcut ceva diferit, acum trebuie să-l fixeze în trei locuri, nu unul singur. Ce-i poate optim strategie aici de ansamblu, în cazul în care resursele și timpul sunt strânse? AUDIENTA: Doar fă-o pe iOS. David J. MALAN: Nu este rezonabil. iPhone, cel puțin în SUA, sunt super populare. Android încă pare să aibă poziție dominantă cota de piață, la nivel global, în ansamblu. Deci tu nu în mod necesar reprezentativ a întregului glob în această săptămână. Dar asta e absolut o decizie. Vreau să spun, în campus aici am cred că unele număr atroce sau un procent de studenți au iPhone și telefoanele Android nu. Dar, în străinătate, e cam opusul. Deci tu decizi bazat pe publicul. De unde știi ce are publicul? Ei bine, am învățat un truc ieri. Ai putea să-i întrebi. Dacă aveți un public captiv le puteți trimite un formular de sondaj. Sau ai putea să faci doar ce? Audiența: Google Analytics? David J. MALAN: Ce-i asta? Audiența: Google Analytics. David J. MALAN: Google Analytics. Da. Sau chiar mai mult un fel de punct de vedere tehnic, doar uita-te la serverele proprii jurnalele web. Pentru că ceea ce se întâmplă de fiecare dată când un browser, dacă laptop, desktop sau telefon vizitati site-ul tau? Ei trimit acel antet HTTP care arată tu ce browser și sistem de operare pe care îl utilizează. Astfel încât să puteți deduce, cu mare probabilitate, ceea ce demografice dvs. utilizează în acest fel și apoi ajustați. Așa că presupun că e inacceptabil. Asta e un fel de rău pentru afaceri, dacă Utilizatorii Android nu pot cumpăra widget-uri noastre. AUDIENTA: Fie că ești O să încărcați sau nu? David J. MALAN: Fie vei încărca? Așa că OK, veți obține ceea ce plătiți pentru. AUDIENTA: Fie că aplicația este să să fie liber sau dacă este gonna-- David J. MALAN: OK. Poate ai putea recupera costuri în acest fel, sau--? AUDIENTA: Am citit un studiu care a spus odată mai mulți utilizatori de Apple să plătească pentru aplicații versus-- David J. MALAN: E adevărat deoarece acestea sunt deja plătind mai mult pentru dispozitivele lor. Deci, nu nerezonabile o presupunere. AUDIENTA: [inaudibil] David J. MALAN: OK. Așa că, dacă acestea sunt mai dispuși să plătească, apoi în iad cu utilizatorii Android. Ei nu vor să ne plătească nimic, oricum. Ne-am putea concentra eforturile pentru prioritățile noastre, cel puțin în primele câteva luni sau un an, pe iOS. Un lucru total rezonabil. Ce este mai cuprinzătoare strategie decât asta? Maybe-- ce-i asta? AUDIENTA: [inaudibil] David J. MALAN: O mai expensive-- deci poate investi mai mult in-- merge mai departe. AUDIENTA: Da. Doar un site mobil. David J. MALAN: Deci un site-ul mobil și nu chiar vă faceți griji cu privire la această complexitate. Sau poate o strategie rezonabilă, care, chiar și pe Facebook a luat, este începe cu un hibrid aplicație, deoarece nu este mult mai greu de făcut acest lucru decât acest lucru. Trebuie doar să citiți câteva documentare și dau seama cum pentru a încărca lucrurile în App Store. Deci, poate începe cu acest lucru, astfel încât în ​​prima zi, vă poate sprijini toți utilizatorii. Și apoi, la fel ca și pe Facebook și alte companii s-au făcut, atunci când aveți resursele, aveți oameni, de ce nu te reimplementați doar aplicația iOS. Încă mai ai ceva pentru toată lumea, chiar dacă este o experiență inferioară probabil, cu aplicația hibrid. Dar vă puteți rula treptat și înlocuiți pe termen scurt dvs. de măsuri ale aplicațiilor hibride cu aplicațiile mai native. AUDIENTA: Dar, cu o aplicatie hibrid tine va avea acces la funcții mobile? David J. MALAN: Nu neapărat. Deci, poate că ai face conștient decizia de timpuriu, puteți încărca numai fotografiile de pe iPhone cerere nativ pentru Facebook, dar nu și pe aplicația Android, inițial, de exemplu. Și asta e un pic de o minciună albă, deoarece aplicatii web au mai multe restricții decât aplicațiile hibride se transformă afară, și dacă am citit documentația pentru PhoneGap și lucruri de genul acesta, oamenii au venit cu moduri pentru a se obține aplicații bazate pe web acces la camera foto, atâta timp cât folosești o aplicație hibridă. Cum funcționează? Deoarece hibridul cerere, prin definiție, are un pic de cod în Obiectiv-C, și Swift, și Java, sau în C #, ea poate avea acces la hardware-ul. Nu neapărat totul, dar s-ar putea foarte bine fi cazul în care aveți suficient de acces pentru a obține aparatul de fotografiat, chiar și pentru platformele Android, pentru de exemplu, în acest exemplu contrived. Orice alte întrebări? In regula. De ce nu luăm nostru 15 minute pauza de aici. Ne vom relua la trei, cu o finală uita-te la programare web, baze de date, și Javascript.