DAVID J. Malan: Així que estem de tornada. Pel que l'alt nivell tema en el moment ara és piles de tecnologia, que no és un terme tècnic en especial, que és més d'un calaix de sastre per a qualsevol nombre de combinacions de tecnologies que es pogués utilitzar per resoldre problemes. I potser el més manera adequada de començar seria mirar idiomes des No deixo de recitar un munt i gairebé tothom a la sala té probablement sentit parlar d'almenys un. I per què no intentem distingir què-- distingir idiomes i parlar breument sobre quan ho faria triar un sobre l'altre, la forma en què estan classe de, fonamentalment, diferents i especialment quan s'està conversant amb els enginyers, o tractant de decidir a qui contractar, o el que la implementació proposta de Greenlight, com es faci realitat aquest tipus de decisions. Així que anem a golpetee algunes coses fora. De les llengües que tenen les persones sentit parlar, el que ve a la ment? C. OK. OK, C ++. Què és això? AUDIÈNCIA: Python. DAVID J. Malan: Python. Excel · lent. Què més? Visual Basic. Vaig sentir Java. Visual àlies Basic-- VB. Java. NET, que és més d'un calaix de sastre en general és C # com a llenguatge en qüestió. I permetin-me esmentar això. Així que anem a tornar a això. Ho sento? Ho sento? AUDIÈNCIA: SQL. DAVID J. Malan: El esgarrinxada? AUDIÈNCIA: SQL. DAVID J. Malan: Oh, SQL. D'ACORD. SQL. Així que anem a tornar a quedar realitat, és good-- després del descans també. Què més? AUDIÈNCIA: Oracle. DAVID J. Malan: Així Oracle, no un idioma. En realitat usarien SQL també. Així que anem a posar que després de el descans també. I ho sento, alguna cosa per aquí? AUDIÈNCIA: Mathematica. DAVID J. Malan: Mathematica? D'acord, segur. I MATLAB és una mena de allí a vegades. AUDIÈNCIA: R. DAVID J. Malan: R. Anem a anar per aquí. Fortran. Segur. vella escola. Fortran. COBOL. Vaig a tirar BASIC. BÀSIC. Cap-- AUDIÈNCIA: MATLAB? DAVID J. Malan: MATLAB. Oh, ha avançat. Qualsevol cosa? No puc pensar en un parell dels altres. No puc pensar en alguns altres. I el que va ser l'última? AUDIÈNCIA: ASP. DAVID J. Malan: ASP? Sí. Active Server Pages. Que en general estaria inclosa en altres idiomes, a vegades, C # així que anem a deixar que s'anés. Però anem a tornar a aquest per a marcs i tal. Alguna cosa més? PHP és molt popular. Ruby és una altra. JavaScript, que no s'ha de confondre amb Java, és una altra. Això és una mica molt. Així que pot ser aclaparadora, sens dubte, com si la llista no està ja, només per començar a saber per on començar. I així, afortunadament, anem abordar això des d'uns pocs angles. En primer lloc, tractarem de categoritzar almenys algunes d'aquestes llengües en dos grans cubs, que recorda la conversa que vam tenir abans de les vacances, on parlem sobre la compilació, i el codi font i el codi màquina, perquè això no és com tots els idiomes de treball. Així que anem a arrencar alguns exemples de-- o contra-examples-- a aquest model. I llavors, ¿per què no parlar de les aplicacions que idiomes s'utilitzen generalment per. I, francament, tot i que aquesta és una llista força llarga, és només un subconjunt d'aquesta llista que el més habitual és extreure d'aquests dies per resoldre els problemes. Algunes llengües són més recents que altres. Certes llengües són més populars que altres. Així no és com vostè té tal una tasca aclaparadora abans l'hora de decidir entre aquests diversos idiomes. Així que anem a fer això. Teníem abans, codi font, i després vam codi de màquina. Els xiscles. Escrivint la paraula equivocada. codi màquina. I hem tingut algun procés en el mitjà called-- sí, el compilador. Pel que el compilador. I el que el codi de la màquina en realitat s'executa a l'extrem serà la CPU real. En altres paraules, al codi de màquina, I significa les instruccions del nivell més baix que una CPU en realitat entén. Suma, resta, moure, guardar i operacions per l'estil. I pel que aquest és el model del que és generalment conegut com a llenguatges compilats. Potser no sigui sorprenent. Així que aquest és el model per a llenguatges compilats. Però resulta que hi ha Una altra classe d'idiomes Les Llengües anomenada interpretat Les Llengües interpretat que són lleugerament diferents. S'escriu en el codi font, executar a través d'un intèrpret, i que és intèrpret el que s'executa en la CPU. En altres paraules, el que no ho fa emeten és el que, pel que sembla? codi màquina. Els zeros i uns que la CPU en última instància, en si entén. Així, en aquesta primera versió i llenguatges com C, com hem vist, s'escriu en el codi font això és una mica arcà, però almenys és alguna cosa similar a l'anglès i és almenys llegibles Una vegada que s'acostumi a ella. Que s'executa a través d'un compilador i fora que s'obté, en última instància, zeros i uns. Que una simplificació excessiva. Hi ha alguns altres passos d'allà. De fet, si alguna vegada has sentit el terme "llenguatge assemblador," això és un pas abans els zeros i uns. Que una mica més llegible, però segueix sent bastant arcà. Així que hi ha passos intermedis que són, de fet, passant aquí. Però la sortida, en última instància, és aquests zeros i uns. Però en el interpretar món, on es té idiomes que s'interpreten llengües, en realitat es salti aquest pas. En altres paraules, quan s'escriu una programa, que acaba d'executar-la immediatament. No compila i després executar-lo, com ho feia abans. Que acaba d'escriure i executar-lo. I si vols fer un canvi ràpid, es realitza un canvi ràpid i tornar a executar-lo. Així que no hi ha pas intermedi aquí. Ara, per al programa que he escrit anteriorment, el qual va ser aquest programa "Hello World", vostè pot ser raonablement wonder-- o raonablement podria Estat-- que no era aquest moment consumir per compilar el meu programa. Sembla que ho han fet així. I hi ha gràfica versions de compiladors. Estic usant una versió molt arcà, però vostè podria colpejar un botó de reproducció i això seria fer realitat la compilació per a vostè. He compilat el programa i després de nou, per executar-lo, acabo de fer això. I dóna sortida a l'esquerra allà, "Hola!" Això no sembla tot el onerós. Però quan els seus programes són més d'una, dues, tres, quatre, cinc línies de llarg, que pot portaria molt més segons per compilar. A vegades fins i tot minuts o una mica de temps per compilar. Després de tot, algunes de les majors productes del món són coses com sistemes operatius, Microsoft Word, Microsoft Excel, que pot ser de centenars de milers o fins i tot milions de línies de codi llargues, i els que no ho fan només immediatament executar. D'altra banda, a la web, és posat de moda utilitzar llenguatges interpretats, simplement en part a causa que pot fer un canvi com el desenvolupador i després simplement carregar immediatament la pàgina del navegador i veure immediatament el resultat. I així HTML, encara que no un llenguatge de programació, és un llenguatge que s'interpreta. I vam veure que ahir mateix efecte. Que acaba de carregar la pàgina després de fer un canvi en Cloud9 i- voila-- es veu un nou resultat. Llavors, quin és la diferència aquí? En HTML, el record, vam tenir HTML obert, cap obert, títol obrir, tancar títol, prop del cap, cos obert, i així successivament. Vam tenir totes aquestes etiquetes que ens pràcticament molt Dit això, dir-li al navegador què fer. Hey navegador, aquí ve una pàgina HTML. Hey navegador, aquí ve el títol. Hey navegador, aquí ve una mica text que ha de ser audaç. I després li diu el contrari. Hey navegador, això és tot per al text de negreta. Hey navegador, això és tot pel cos. I així successivament. I així, el que és un navegador? Un navegador és simplement un intèrpret. És un programa que algú com Microsoft o Google ha escrit, el propòsit a la vida és llegir un idioma, conegut com HTML, i interpretar-la. De dalt a baix, d'esquerra a dreta. I cada vegada que el navegador veu obert suport, el títol, el claudàtor de tancament, s'ha d'interpretar que en el sentit de, oh, que vol dir que he de posar aquestes paraules camí aquí a la part superior del navegador. Pel que només fa el que diu el codi HTML. Però no hi ha zeros i uns. No hi ha compilació. No ho va fer. El navegador no ho va fer. Simplement no està involucrat. Així, en l'esperit d'aquests en curs temes, d'avui i d'ahir, que sembla ser una característica meravellosa. Es guarda el codi i després només executar-lo o interpretar-lo. No hi ha passos intermedis. Sens dubte, hi ha un cost? No tots poden ser aspectes positius. Llavors, què podria ser aquest cost? AUDIÈNCIA: Espai. DAVID J. Malan: Espai. Per tant, segur. Al món compilat, vostè té no només el codi font original, També està creant i és de suposar l'estalvi la màquina code-- la zeros i ones-- i això és arribar a prendre fins a una certa quantitat d'espai. Absolutament. Així que li costa més espai. Sí? Públic: Els navegadors podria interpretar de manera diferent. DAVID J. Malan: Navegadors might interpretar d'una altra manera. Això és cert. Però no estic segur que sóc reclamant còmoda això és perquè s'interpreta. Això és més just perquè és una implementació d'un llenguatge que en si té ambigüitats. Així que no és confirmen que un, però un bon pressentiment. Quina altra cosa podria ser el preu pagat? Andrew? AUDIÈNCIA: Vostè està combinant dos passos, de manera que, per tant, tenen cada vegada major complexitat també. DAVID J. Malan: El complex-- l'augment de la complexitat en on? Per aqui? AUDIÈNCIA: Per tant, en l'intèrpret etapa, que està combinant l'intèrpret i el compilador per només condueix A-- DAVID J. Malan: Ah, OK. Irònicament, és probable que sigui una mica més senzill d'implementar l'intèrpret, tot i que semblaria Upside rendiment d'aquesta comoditat. Així que possiblement cert. Però depèn del tipus, em diria que, en el llenguatge i en la forma en què van ser sobre la implementació de la mateixa. No hi pot haver una complexitat molt més gran, en realitat, al compilador, només perquè vostè ha d'anar de una cosa tan alt nivell a alguna cosa de manera de baix nivell. No obstant això, un bon pensament. Així dit d'una altra manera, un programa compilat, quan es converteixen en aquests zeros i uns, acaba en l'idioma que la CPU parla, mentre que en aquest costat de la món, el programa que he escrit, el codi que has escrit, en realitat mai aconsegueix convertit en l'idioma real l'equip parla. Els zeros i uns. Es queda en l'original, més humana , El llenguatge més llegible d'utilitzar. Llavors, ¿quina podria ser la implicació allà, si no ho fa realitat molestar la conversió del seu programa per al mateix llenguatge que l'equip subjacent parla? AUDIÈNCIA: ¿No podria entendre alguna cosa? DAVID J. Malan: Might No entendre alguna cosa. I això pot claim-- si no entenia alguna cosa, que és un error o falta de figurar en l'intèrpret. Pel que hi hauria més de un error que un cost. AUDIÈNCIA: Vostè té accés El codi font? DAVID J. Malan: Hi ha una bona. Pel que un desavantatge aquí és que semblaria tenir accés. Vostè, l'usuari final, que podria semblar tenir accés al codi font. I això no sempre és cert. Però és cert en el cas de JavaScript, el que anem a veure després el descans avui, que és un llenguatge de programació interpretat que s'escriu en el codi font. Però que el codi font es transfereix des del servidor al navegador i s'executa en el navegador de l'ésser humà. Així que aquí només pogués obrir la finestra, com ho he estat fent en Chrome, i mirar-lo, com nosaltres mateixos mirat ahir amb Google. Podria semblar una mica incomprensible però hi és. Així que això és absolutament un preu pagat. AUDIÈNCIA: impacte en el rendiment? DAVID J. Malan: Sí. I aquesta és l'altra és problema. Hi ha un impacte en el rendiment. A causa que té aquest home mitjà, que al seu torn és un programa, entre vostè i la CPU, a diferència que acaba d'alimentar aquests vímets zeros i uns en la CPU, hi ha un impacte en el rendiment que es portar amb un llenguatge interpretat. De tal manera que, arbitràriament, un programa de que podria suposem un Segon per executar-se en un ordinador o una minut per executar en un equip aquí, podria prendre 10 segons o 10 minuts per córrer en un equip aquí. En general, no serà tan molt d'un factor de difference-- 10-- perquè hi ha optimitzacions que es poden fer. Però és gairebé sempre més lent. Ara, l'altra cara d'aquesta preocupació és que, a més ordinadors, cada 12 a 18 mesos-- segons La llei de Moore, pel que speak-- s'acaba d'aconseguir més i més ràpid. Tinc cada vegada més espai en disc. Tinc més i més memòria RAM. A qui li importa? I això és una mena de argument raonable. De fet, una de les raons Per això podem tolerar més lenta llenguatges interpretats, perquè es que els éssers humans no te n'adones. Els equips tenen aconseguit tan rematadament ràpid. Mentre que en el seu dia, especialment quan el maquinari va ser molt més limitat, que tenia menys de tot, que era molt més car així que tot costa més, bé, llavors realment volia esprémer tant el rendiment com pogués. Però la requerida per escrit en un nivell més baix, si es vol, amb un llenguatge compilat. Així ho fa prendre aquest impacte en el rendiment. Però, en general, els aspectes positius semblen valer la pena en aquests dies. Bé, excepte per la tema de la propietat intel·lectual. Aquest tipus de llegibilitat del codi, anem a tornar a quan ens fixem en JavaScript. Així que anem a tractar de categoritzar almenys algunes d'elles. Així, entre els llenguatges compilats, ens tindria C, C ++, una mica, sorta, Java, encara que és una mica d'una excepció, per raons per les quals es va a aparèixer en un moment. C # seria en aquesta llista. Anem a veure més en només els llenguatges més moderns. Tot bé. I això sembla com un munt allà. Mentre que en aquest costat de la tanca, podríem tenir Javascript i Python, i PHP i Ruby. I és que n'hi ha prou els més recents? Que se sent com un munt per ara. D'ACORD. I després dot dot dot, ja que la llista és interminable. I de fet, si volem simplement tenir una idea de això- Viquipèdia llenguatges compilats. Suposo que podem aconseguir una llista molt més exhaustiva. Així que aquí anem. Així que aquí hi ha una llista molt més exhaustiva. I jo estava esperant que algú podria endevinar D com un llenguatge, perquè això també existeix, però es van aturar en D semblaria. Tot i que podria ser en realitat un E. Oh, en realitat, això hauria estar a la llista en aquests dies. Swift és en realitat una idioma que Apple va inventar que s'utilitza ara, cada vegada Per tant, en el desenvolupament de l'iPhone. Però anem a tornar a que amb la nostra discussió de la telefonia mòbil en tan sols una mica també. Així Swift també. I llavors si anem a interpretat language-- language-- interpretat llavors aquí està una llista encara més llarga també. Així que si vostè acaba de Google i buscar a la Wikipedia per aquests, veurà tot tipus d'idiomes. Però l'objectiu és, per avui en realitat, només es redueix a potser això tema de la propietat intel·lectual i la llegibilitat per l'usuari final i per rendiment, és un altre problema ja bé. Així, entre aquests idiomes, veurem si podem donar-li només algunes mostres de les llengües. No volem passar per tots els idiomes sense fi. ¿S'ha preguntat què determinat idioma s'assembla? Sí que vam veure fa un moment. Per què no prenem un parell de la funció de les sol·licituds. A qui li agradaria veure el un altre idioma s'assembla? Sí. AUDIÈNCIA: Java. DAVID J. Malan: Java. Tot bé. Així que anem a Java. I només per donar-li una mostra-- podríem escriure tot això a terme, però seria més ràpid només per miri codi d'exemple d'una altra persona. Tot bé. Llavors això és un bon exemple? Els xiscles. D'ACORD. Així que aquí és la versió Java de la programa que he escrit abans, "Hello World". Així Java, amb freqüència se li veure la "classe." paraula clau A continuació, apareixerà un nom després d'això. veuràs claus com hem vist abans, i de vegades se'n van de la mateixa línia, de vegades altres línies, és una espècie d'una decisió personal. Veuràs com paraules clau "Públic", "estàtica", "buit". Però vam veure "principal". "Principal" és generalment el nom de la funció per defecte o el tros de codi que per defecte s'executi en un programa. "Cadena". Què ens referim amb cordes abans? El vaig utilitzar espècie d'indiferència. Una cadena és el que? Una paraula. És com una seqüència de caràcters. Els caràcters individuals, de nou a esquena amb esquena, generalment en una matriu, com hem discutit. I de fet, veure aquesta sintaxi Aquí, els dos claudàtors? Això vol dir, eh equip, aquí ve una matriu de cadenes. La notació de claudàtors és comunament usat per denotar que. I, llavors probablement pot prendre un guess-- el té això posa en relleu tros de codi, probablement fer? AUDIÈNCIA: La sortida? DAVID J. Malan: Sí. S'imprimeix alguna cosa a la pantalla. Per tant "sistema" és una mena de referència al seu ordinador. "Cap a fora" significa que el seu ordinador de o sortida de la pantalla. Així "En System.out.print" probablement vol dir? "L n". línia d'impressió que com a programadors pel que sembla lletrejar algunes paraules a terme íntegrament i prendre accessos directes amb altres paraules. Però "ln" és la línia, de manera que la línia d'impressió. Per tant, imprimeix "Hola Mundial! ", Seguit d'una nova línia. Així que és això. Però Java és el que van a crida orientat a objectes. I, de fet, només per donar una parell d'altres definicions cal podria vegeu, en general, hi ha molts tipus diferents de idiomes, però els més comuns són llengües de procediment o imperatives. hi ha funcional idiomes, la qual cosa NO vol dir que altres no són funcionals. I després hi llenguatges orientats a objectes. I això és potser el millor categorització de la majoria dels idiomes que alguna vegada triar per espècie d'un projecte comercial típic. Això seria massa, Crec que, pel forat d'una rata a baixar, per tractar d'explicar les diverses diferències. Però els idiomes que hem vist d'aquesta manera far-- C és un procediment o un llenguatge imperatiu. Més recentment inventat llengües tendeixen a ser, ho sento, orientat a objectes, el que significa que tenen altres característiques a ells. Puc explicar-ho d'aquesta manera? Anem ni tan sols anar-hi. mitjans orientats a objectes pot implement-- pot modelar el món real una mica més eficaç. La humanitat, amb el temps, s'ha adonat, guau, seria bo si la meva llengua tingut aquesta funció o aquesta característica. I és per això que tenim fins molts idiomes que existeixen. La gent raonable, intel·ligent les persones, d'acord o no i invariablement espècie de venir junts a el desenvolupament de nous llenguatges tots junts. El cas en qüestió. D'Apple va inventar Swift en l'esperança de baixar presumiblement la barra per al desenvolupament de l'iPhone, perquè el language-- anterior anomenat Objective-C, el que podria També estarà a la nostra llista aquí- era molt més arcà i molt més difícil per embolicar al voltant de la ment d'un. I a mesura que la programació s'està convertint sens dubte més accessible i més àmpliament adoptada per la gent fins i tot menys tècnic, el goal-- que és un objectiu molt valent per intentar baixar la barrera d'entrada al fer els propis idiomes més fàcil per començar amb, però no menys poderosa necessàriament. I un altre idioma. Per què no fem una ullada en una mena Python, la qual cosa és molt de moda en aquests dies. Python. Exemple de programa. Anem a veure. llengües "Hello World". Anem a fer-ho. "Hola món." Ja veurem si això dóna som un bon exemple. D'ACORD. Així que això és en realitat una espècie de diversió. Així que si alguna vegada google "Hola món", que passa a ser un dels primers programes que s'ha escrit en un llenguatge modern, de la mateixa manera que una prova de concepte, es pot veure tot tipus d'implementacions d'aquesta. Alguns d'aquests llenguatges Ni tan sols he sentit parlar. Però es pot veure-- anem a Bàsica, la qual jo vaig aprendre fa anys, en part. Aquest era un llenguatge divertit perquè es hagut de, com el programador, nombre de totes les seves línies. No gaire diferent del que era fent quan estava escrivint pseudocodi en el document groc anteriorment per a la recerca binària, per buscar en una guia telefònica. I així, si volien per anar a una altra línia, Literalment, el tipus, anar a 10, o vagi a 20. I si estàs línies, l'escriptura convenció va ser a fer, aquesta és la línia 10, aquesta és la línia 20, es tracta de la línia 30, 40, sense res entre elles, per tant donant una mica d'habitació si es decideix, espera un minut, Hi hauria d'haver afegit alguna cosa més codi en algun lloc. Que encara tenia una mena de nou possibilitats de premi que enmig del seu programa de abans d'haver de manualment renumerar tot. Així que això és una espècie del que vull dir quan dic que el món ha arribat amb unes noves característiques. En algun moment algú es va adonar, noi això és una estupidesa. Això és només la creació de treballar per al programador. Així que ell o ella només tipus de construcció una nova capa a la part superior d'aquesta de manera que vostè no ha de preocupar sobre el que els números de línia del seu codi és en realitat en. Així que quan vostè pot triar una o altra llengua? Així, quin d'aquests Tendeix idiomes sentir parlar de la major quantitat en el seu propi món en aquests dies? Anem desplegable de Objective-C també. AUDIÈNCIA: C #. DAVID J. Malan: C #. Així que em deixi de color. Tenim el nostre altre color en algun lloc? Així C #. I què sap vostè de C #? primavera res a la ment? PÚBLIC: És un llenguatge de programació. DAVID J. Malan: És una llenguatge de programació. D'ACORD. Això és cert. Així que estem parlant de C #. C # tendeix a ser utilitzat en entorns Windows, així que si vostè està escrivint programari de Microsoft per a Windows, C # s'utilitza amb molta freqüència, ja sigui pel programari de escriptori, o fins i tot el programari del telèfon en els telèfons de Windows, si vostè ha tingut els, o al web, fins i tot massa. I de fet, potser Kareem ASP esmentat abans? Així que hi ha també aquests coses que es diuen marcs, el qual podem introduir per extensió. Marc, com ASP. Suports per a les pàgines de servidor actiu. I això és de codi i una manera de programació que en general fa que sigui més fàcil per escriure aplicacions basades en web. En altres paraules, seria fantàstic, súper molest a escriure una pàgina web en el llenguatge C que que hem vist abans, perquè hauria de fer servir d'impressió + F, vostè hauria de fer servir aquesta paraula clau "Principal" i les claus. Una gran quantitat de sintaxi arcà i l'enfocament per implementar cosa que és força complex. Una pàgina web. I així altres llengües han evolucionat per fer aquest tipus de coses més fàcil. I al seu torn, la gent ha pujat amb marcs de treball, tipus d'eines que pot utilitzar que fer-ho encara més fàcil d'escriure pàgines web. Així, per exemple, per fer això molt més concret, em deixa obrir només una arxiu de text per un moment. I es pot recordar ahir que ens va dir alguna cosa com, això és una pàgina web. HTML. Tancar HTML. Déjame saltar el cap i acaba de fer el cos aquí. Suposem que jo volia escriure no "Hello World" però "Hola David," on David és el nom de l'usuari actualment connectat. Una cosa així com el ASP va a fer, o JSP-- el qual és el servidor de Java o pages-- qualsevol nombre d'altres marcs és que no són llengües, per se. són com programari addicional que i instal·lar en el seu entorn això només fa que sigui més fàcil de programar. Així, per exemple, en lloc d'haver de fer alguna cosa així com "hola, printf (" David ")" o alguna cosa que és tipus de co-mingling-- el tipus de codi que hem vist abans-- que faria alguna cosa molt més simple, com "% name." I pel que aquests marcs, com ASP-- i jo No recordo si m'estic fent la sintaxi correcta per ASP. JSP és un poc-- és això correcte? Així que amb ASP, això és una mena de sintaxi especial que alguns desenvolupadors han decidit això podria ajudar a la gent. I puc expressar de manera més succinta marcadors de posició, per exemple. Igual que posar un valor aquí, on aquest nom valor no és N-A-H-I, que és algun valor emmagatzemat en aquest país. Així que "nom", en aquest context, que anomenaríem una variable. Àlgebra té variables de la mateixa manera que x i y, i z. Els programadors fan servir variables que són més descriptiu que x, i, z, normalment. Així que "nom", literalment, seria una espècie del contenidor de la memòria per a alguna cosa així com D-A-V-em-D, pel meu nom, o qui la resta es registra en el lloc web. I pel que aquest és el tipus de conveniència que s'obté amb certs ambients. Així C # i ASP alguna cosa així com ho faria molt comunament ser utilitzat en un món de Windows, ja sigui per la seva escriptori programari o servidor web, especialment si els servidors són al seu torn que executa Microsoft Windows i Microsoft IIS-- o Internet Information Servidor, si aconsegueixo l'acrònim dreta- que és el lloc web de Microsoft. Llavors, quins altres idiomes són persones familiaritzades amb, o ha sentit parlar de més sovint que no? AUDIÈNCIA: Sé que Python tipus d'un popular [inaudible]. DAVID J. Malan: Molt popular. Així Python aquí s'utilitza molt sovint en aplicacions científiques o dades la ciència, on es té una gran quantitat de les dades que desitja analitzar i desitja utilitzar una llenguatge de programació per a això. R comunament podria ser utilitzat perquè així, en un context estadístic. Però Python té tants característiques incorporades. tants addicional biblioteques, com diuen les persones. Les biblioteques són simplement col·leccions de codi que altres persones va escriure que es pot utilitzar perquè no han de reinventar aquestes rodes. I el que Python és molt comunament utilitzat en aplicacions de les ciències de dades. Però també és molt freqüent utilitzat en aplicacions web. Pot implementar una dinàmica lloc web utilitzant Python. I pel lloc web dinàmic, em significa no només el contingut estàtic com hem creat ahir, per simplement és difícil de codificació en el text llatí i altres coses, sinó més aviat la capacitat d'entrar, la capacitat de comprar alguna cosa, la capacitat per veure amb els seus carrets de la compra, o similars. Tot això requereix dinamisme i es necessitarà algun llenguatge com un d'ells. AUDIÈNCIA: Llavors, Python té el seu propi extensió, de manera similar a com [inaudible] DAVID J. Malan: Ho fa. Pel que en el món de Python, Django és un marc molt popular per Python. WSGI és un altre mecanisme que és tipus de diferent d'aquesta però similar en esperit. És un add-on que permet per a executar codi Python al servidor. Hi ha altre-- si. Així que aquests anomenarem marcs. I és una mica d'un abús. Això és més d'una tecnologia de servidor web. Però cal guardar el simple i posem en aquesta columna, però. D'ACORD. WSGI. WSGI. Una altra cosa-- i, de fet, molt Em moc que a la seva pròpia columna, perquè m'agradaria cridar a mi mateix per posant-los en la mateixa galleda. Anem a posar això al servidor característiques, diguem. Això no és un terme tècnic. Així que aquí podríem ser WSGI. Hi ha CGI, que és una més antiga tècnica perquè serveix idiomes com Perl o PHP, o alguns altres. Un cop més, he esmentat aquests termes no tant per arrelar tipus d'ells, però pel que si veus ells es tracta d'alguna cosa simplement Google per llegir més. No hi ha veritable suc a algunes d'aquestes coses. Però tornem als idiomes. Parlem de C #, Python. Quina altra cosa podria utilitzar per programació d'aquests dies web? Anem a centrar-nos en què encara. AUDIÈNCIA: PHP. DAVID J. Malan: PHP. I tornem a aquesta pregunta. Així que PHP és molt usada. PHP tendeix a tenir una mala reputació. Va començar com un llenguatge implementat per persones que potser no eren necessàriament els millors dissenyadors del llenguatge. I perquè pugui llegir tot tipus de articles en línia del mal que PHP és. I, per desgràcia, això és una manifestació, en part, de només els debats religiosos que esclaten entre els programadors. I això és una cosa val la pena tenir en compte, des d'un punt de vista comercial, que que és molt fàcil per als tècnics per obtenir tots els seus estats, amb la seva opinions sobre certes coses. I no vol dir necessàriament que el que crida més fort o amb el més fort, opinió més enfadat que és correcte. Moltes vegades, el que realment simplement no importa. I així la gent està discutint el seus propis prejudicis o zones de confort són. I pel que ha de mantenir això en ment en fer una decisió, que s'acaba perquè algú diu aquest és el llenguatge adequat per el treball, que podria ser cert, però també que només sigui així és el idioma correcte dins de la seva pròpia habilitat establir o zona de confort. La qual cosa no és dolent, però vostè ha de donar compte que podria haver-hi algun context allà. Hi ha alguns objectivament declaracions equivocades, com C és el llenguatge incorrecte utilitzar en aquests dies per a la implementació de llocs web quasi sempre. Però no és raonable dir que qualsevol d'aquests estan equivocats que hem van guiar fins al moment. PHP ha passat per moltes versions. Així llengües tendeixen a tenir versió números associats amb ells. PHP és fins, crec, ara la versió 7, així que ha estat del voltant durant força temps. I com a llengües aconsegueixen més recent, Sovint es veuen noves característiques. Però cal ser conscients d'aquesta perquè si el vostre lloc ha estat implementat en la versió 7 de PHP, però vostè està intentant executar el seu lloc web, o potser vostè ha externalitzat el desenvolupament del seu codi a una altra persona i que li enviïn a vostè o enviar-lo a vostè i diuen, aquí, va posar això en el seu servidor web, si el seu servidor web és d'uns pocs outdated-- anys si es tracta de el seu propi servidor web o una host-- que en realitat no podria funcionar. Així que aquests són els tipus de les coses que algú cal tenir en compte quan s'actualitza un lloc o la seva aplicació per primera vegada. Vaig sentir JavaScript anterior. Així Javascript és una interessant un en que, en general costat del client, com veurem Després del descans, el qual significa que s'executa en el navegador de l'usuari. Però també es pot executar JavaScript aquests dies usant una cosa anomenada NODE.JS NODE.JS, si és un mecanisme per executar codi JavaScript del costat del servidor, en lloc d'utilitzar Python, o PHP, o altres idiomes. JavaScript està particularment ben adaptat per a aplicacions de xat i en temps real aplicacions, mentre que PHP no és un gran idioma per a l'aplicació d'alguna cosa com un servidor de xat, on els usuaris Estigui connectat a ell constantment. PHP és més d'una visita em un cop, tornar conseqüència, i feu clic en un altre cap passarel·la segons o minuts a partir d'ara. Mentre que NODE.JS i JavaScript pot haver utilitzat més per a les connexions persistents. Altres idiomes que sospita s'utilitzen comunament per a la matèria del web? AUDIÈNCIA: Vols ser un marc jQuery? DAVID J. Malan: Bona pregunta. Cap dels dos. Jo diria jQuery una biblioteca, on de nou una biblioteca és només un munt de codi que algú més té escrit que generalment soluciona alguns problemes que ho fa, és d'esperar, més fàcil perquè vostè pugui fer la seva feina. I m'ho dius a mi fer un exemple de això en el context de la web. En el context de la web hi ha aquest llenguatge, JavaScript, que veurem més endavant, mitjançant el qual es podria dir alguna cosa com això- "Document.getElementById." I què em dic ahir? En primer lloc, crec, va ser l'únic d'identificació que vaig donar a un element que es veia així. "P id =" primera ">" i després vam tenir així com "lorem ipsum", etcètera. Així que si estigués escrivint un programa en JavaScript per a manipular d'alguna manera, canviar les pàgines web que ens estaven jugant amb l'ahir, M'agradaria utilitzar aquesta la línia ressaltada de codi per aconseguir aquest fragment particular d'HTML de la meva pàgina, que node en particular, com l'anomenarem. No obstant això, en jQuery, en lloc d'escriure això, que és code-- JavaScript prima just fora de la caixa, així és com es escriure it-- ha en el seu lloc simplement a dir, "#primer." Això és equivalent. I així, basant-se només en aquest precís exemple arcà, el que potser és l'argument per a l'ús de jQuery? Per què un desenvolupador utilitzar una biblioteca com jQuery, en base a aquest exemple aïllat, potser? AUDIÈNCIA: Menys codi. DAVID J. Malan: Sí. És menys codi. És només més ràpid que escriure. El contrapunt és que s'assembla més aterridor. Realment no es pot llegir d'esquerra a dreta. De fet, a causa que és sobretot de puntuació ara en lloc de paraules reals, Puc inferir quin tipus de "Document.getElementById" rep un element del document per la seva ID. Realment puc utilitzar tal mnemotècnics d'aquesta cosa aquí. Així que és una solució de compromís. Hi ha una sofisticació que ve sovint amb l'ús de biblioteques, especialment com jQuery. Però la realitat és jQuery té una espècie d'esdevenir un estàndard de facto, de manera que gairebé qualsevol persona aquestes dies que escriu codi JavaScript utilitza jQuery o alguna cosa agrada, i ja no escriu a expressions com ara prolixes això, perquè un cop més, la humanitat ha après, wow, això va ser una mena d'oportunitat perduda per llençar una vida més fàcil. Així que els éssers humans fan la seva vida més fàcil. Bona pregunta. Altres idiomes a tenir en compte. Jo diria que enmig d'aquesta Llista de Ruby és bastant popular. I així, en el món de la Ruby, hi ha un marc anomenats carrils, que és molt popular. Així Ruby on Rails és una comunament utilitzat expressió. També en aquest món, em va deixar cercle de Java per a la matèria de la web, on en el món de Java és possible que tingui JSP, o Java Servlets, que és una tecnologia comuna. I això és només un cop més formes d'utilitzar que el llenguatge en un entorn de servidor. Llavors, què vol dir això? Si vostè té un físic servidor, que, literalment, ho faria descarregar el programari de servidor web i instal·lar-lo de forma tal que té el suport d'un aquests marcs, amb el qual es podria, al seu torn, utilitzar una o més d'aquests idiomes. I en realitat, si es subscriu a com un proveïdor d'allotjament web o part del núvol els serveis que parlem d'ahir, sovint la matèria tot just ve amb el la configuració de la màquina per a vostè. No cal instal·lar això manualment. Però si ho fes, aquí és on el paper l'administrador del sistema, per així dir-ho, entra en joc. Ell o ella realment faria aquest tipus de coses per a vostè, o l'anomenat webmaster sovint havia de fer això per a vostè. Tot bé. Teniu alguna pregunta sobre alguns d'aquests aquí? O possibilitats de tots a preguntar sobre idiomes? Marc? A continuació presentaré només una altra biblioteca això és també molt comú en aquests dies. Aquesta llista podria seguir infinitament. I aquesta biblioteca és una mena de començant a caure en desgràcia. Que ha estat present. Va ser popularitzat per Twitter des de fa algun temps. I ara un munt de llocs web, molts desenvolupadors utilitzen. Però les coses estan arribant nous i arribant al llarg. Però permetin-me donar-los un sentit del que significa utilitzar una biblioteca. Així que de nou, JavaScript és un llenguatge molt popular. CSS o Cascading Style Sheets, parlem d'ahir. Això, també, és omnipresent. Ningú fa una pàgina web avui en dia sense l'ús de HTML i CSS mínimament. Però no sempre és fàcil per fer certes coses. I així em va deixar anar a getbootstrap.com. Els xiscles. Això no és com escrivim. Getbootstrap.com, que em va a portar a la pàgina de destinació per a aquesta biblioteca. Pel que generosament diuen a si mateixos un marc, que és una espècie d'espècie de fira, però m'agradaria tornar a cridar més d'una biblioteca d'un marc. Però aquests són simplement semàntica discutibles. Déjame anar a la seva fitxa i CSS vull anar a alguna cosa com això. Així que recorden el que veien els nostres formularis com ahir a Cloud9? Va ser bastant lleig. botons de la vella escola. Crec que el botó era gris per predeterminat. I tot estava molt format molt desordenadament. Així que si vostè vol que els seus formularis web per cercar una mica nicer-- em va deixar el zoom aquí. I per més agradable que en realitat només significa una estètica molt primmirada. Així notar com la casella de correu electrònic no té unes cantonades arrodonides rectangulars a ella. Així que és una mica més net allà. Cal notar que la paraula de correu electrònic és allà fins que comenci a escriure i després se'n va. Així que aquesta és una característica poc agradable. Observi com la cosa és una mena de brillant molt bé, que alguna cosa d'això es obtenir de forma gratuïta des del seu navegador, però alguna cosa d'això és també biblioteques, codi que altres persones tenen escrit que li dóna això. Alguna cosa com això em dóna la contrasenya. Aquest botó és una mica més atractiu que el predeterminat. Molt en voga en aquest moment. Des iOS 7 o menys, la món s'ha tornat molt plana, mentre que el món tenia abans un munt d'ombres, un munt de reflexions sobre les icones. Igual que en el món de la roba, hi ha tendències de la moda que van i vénen. Ara tot és pla en el seu telèfon. De fet, botons de la seva iPhone són ara només enllaços blaus. No hi ha sovint fins i tot botons circulars. Així que aquests són només coses d'entrar i sortir de vestir de moda, de manera que aquesta és la forma en que podria fer que un formulari web més modern. Botons. Així Bootstrap té un munt de botons bonics. Així que si vols botons de color blau, botons de color verd, blau, taronja, vermell. Bootstrap fa que sigui més fàcil per fer aquestes coses. Aquests són el tipus de coses que malgrat tot va poder han fet ahir amb CSS i amb HTML, però és només un dolor al coll. I així, en canvi, el que faria Bootstrap tens que fas és una cosa com això. Si vols un button-- Resulta que aquest és una etiqueta HTML que no fem servir yesterday-- i vostè vol que es vegi com aquest botó verd, que, literalment, només li donen una classe, la qual cosa ens va fer parlar ahir, de "btn btn-èxit". Per què aquestes paraules? Twitter, els autors de Bootstrap, va arribar amb aquestes paraules. Podrien haver anomenat elles el que vulguin. Però el que està rebent ara és una altra persona a Twitter, en aquest cas, ha descobert com es fa un botó d'un aspecte agradable i net i verd. Es envasen fins que la funcionalitat en una classe CSS, anomenat "Bot" i "btn-èxit", pel que qualsevol de nosaltres pot ara la fan servir sense pensar ella. Pel que han abstret la noció d'un botó verd així que no hem de preocupar l'aplicació de nosaltres mateixos. De fet, podem centrar-se en l'aplicació coses d'interès per a nosaltres. Si ens desplacem fins aquí. Missatges d'error a la pantalla. De vegades vols un petit missatge a aparèixer a la part superior del navegador. Qualsevol de nosaltres podria fer això amb una mica de esforç, després de la lliçó d'ahir, però ¿per què molestar? Això és una mica interessant tals detall estètic. Posem-nos dempeus al espatlles de Bootstrap i deixar que ells ens donen coses com aquesta, en el qual, literalment, per obtenir un quadre vermell, només cal fer un paràgraf etiqueta amb una classe de-- ho sento. "Bg-perill" ens donaria aquesta caixa vermellós al seu lloc. Ara anirem a la coses més interessants. Si torno a anar a la part superior de aquesta pàgina i vagi a Components, Ara el món es torna més interessant. Per exemple, és molt comú menús desplegables com aquest. Això seria un absolut dolor d'implementar. I no va ser tan llarg fa que nosaltres els programadors hauria de posar en pràctica aquests tipus de menús a partir de zero. Però és un paradigma comú que les biblioteques com Bootstrap només li donarà la possibilitat de fer una del menú desplegable molt, molt més fàcilment. No hi ha una manera de fer-ho, però si llegeixo la documentació M'agradaria veure que, bé, jo hauria d'utilitzar aquest codi HTML si vull un menú desplegable que es comporta d'aquesta manera. De la mateixa manera, anirem al botó desplegable. Així que això és encara més elegant. Si jo vull que això sembli un botó però vol dir que petit triangle Hauria de fer clic i obtenir aquest menú, és l'ús d'un llenguatge anomenat JavaScript. I tot el que podíem posar en pràctica això en JavaScript. Però, de nou, això és una roda no vol reinventar. L'únic que vol treure-se'l la biblioteca prestatge per això. Anem a alguna cosa com barres de progrés. Així que alguna cosa com això és una mena de fresc. Si alguna vegada has vist un progrés movent-se per la pantalla de barres, l'aplicació d'aquesta freqüència és només una icona que gira. De fet, igual que un a part, i molt Me'n vaig a la Ajax-- què és? Dades d'Ajax? Els xiscles. Ajaxinfo. Que recordi la direcció. Allà anem. Així que si alguna vegada has vist alguna cosa d'animació mentre que la pàgina es carrega, o pensant, o l'estalvi, o la creació d'alguna cosa, podria veure animacions com aquestes. Així que anem a veure alguna cosa com aquest aquí, i anem a triar un color de primer pla verd, que se sent tipus d'ambient. Puc fer clic això? Ve un. D'ACORD. Només haurem d'anar amb vermell perquè això és el que estem aconseguint. Així que aquí el tenim. Així que si alguna vegada has vist això en una pantalla, pel que de cop i volta apareix i després de cop i volta desapareix, el que és el que és l'aplicació d'aquesta? Bé, això és només un GIF. G-I-F. I aquesta és una animada presentar, que només significa és com un llibre d'historietes de la vella escola. Hi ha només un munt de diferents trames que es van [] El tartamudeig i repetint. I està creant la il·lusió de moviment. Així que tan aviat com una pàgina es realitza carregar o fer alguna cosa, Què fa un programador? Bé, ell o ella simplement amaga aquesta imatge. Així que tot és una barra de progrés és una espècie de com una pel·lícula que està veient. Ets una mena de aliè al fet que no és realment fer res, és només moviment. I després, quan es fa avançar, simplement oculten o apagar-lo. I això és tota la màgia el que està passant allà. Bootstrap li dóna cosa una mica més luxós, pel que en realitat es pot veure un percentatge que va, però també és només una espècie d'una animació simple. Vegem alguns definitiva exemples més complexos aquí. Una cosa així com un referent. Algú sap el que és un modal és? Una finestra modal és generalment un que se suposa per prendre el control del primer pla i li impedeix fer qualsevol altra cosa. D'alguna manera obliga l'usuari de atenció a la meitat de la pantalla, privant-los, generalment, de tota la resta. Així que si poso en marxa aquesta demostració, la la pantalla en general convertit en gris. Doncs bé, com podem fer que Gray? Bé, és probable que simplement canviat el color de fons com ho vam fer ahir o alguna cosa aixi. Potser és una superposició que semi-transparent. I ara nota que pot fer coses de luxe com aquest. Així que si alguna vegada es fa clic a un botó i vol una mica de pop a terme a aparèixer, vostè pot fer això. I pel que es preocupa per sobretot-- si? AUDIÈNCIA: Així, amb Bootstrap, per aconseguir que incorpora, és tan simple com que va ser ahir vam fer la pàgina d'estils CSS? DAVID J. Malan: En efecte. Molt bona pregunta. Déjame anar a Començament. I si. Tot el que té a veure amb la finalitat de l'ús de rutina de càrrega és essencialment còpia i enganxar aquests tres llargues files de codi a la part superior de la seva pròpia web page-- la capçalera de la seva page-- i ja està en marxa i funcionant. I hi ha diferents maneres de fer , Però això seria la més senzilla. Així que el que és molt útil sobre tot això? Bé, si vostè no és molt l'executor d'un lloc web sinó que està tractant de dissenyar-lo, o desitja donar a algú amb els diagrames d'estructura de filferro, per així dir-ho, o simplement lliuraments de l'artista del que que vol fer, jo, a aquest dia, sovint va a anar a un lloc com Bootstrap, on si desitgi implementar alguna cosa-- com recentment al campus volíem posar en pràctica una eina basada en web per navegar catàleg de cursos de la Universitat d'Harvard, pel que és fàcil per als estudiants per navegar a través de cursos i afegir a cursos llista de la compra, per així dir-ho, al tipus de decidir què volien prendre. Jo estava tractant d'imaginar per a mi mateix, el que faria ingredients volem utilitzar per construir això? Com seria la interfície d'usuari serà? I amb només mirar a través d'un lloc com aquest o altres llocs de biblioteques, es pot obtenir inspiració, perquè wow, Puc utilitzar aquest giny, i aquest giny, i aquest giny. I llavors realment ho el programador comença fer, especialment en aquests dies en aquesta més modern món de la programació web, és la programació és cada vegada sobre el cablejat de les coses juntes. Una mena de prendre aquest fora de la plataforma, aquesta fora de la plataforma, aquesta fora de la plataforma, i sent l'intel·ligent per connectar tots aquests punts, però en última instància per construir una cosa nova de peu sobre les espatlles dels altres, de manera que vostè no gasta un mes la implementació d'una caiguda estúpida menú desplegable, que en realitat és difícil de fer si vostè vol que funcioni en Chrome, i l'IE i Firefox, i qualsevol nombre d'altres navegadors. Això és per què existeix aquesta rica programari de codi obert i comercial la indústria també. AUDIÈNCIA: Llavors, Bootstrap s'actualitza i llavors vostè ha de actualitzar els seus enllaços? DAVID J. Malan: Ho fa. Bé, sí, ho fa. Bootstrap és actualment a la versió 3.3.6. I en general el que es pot fer-- això és en realitat val la pena esmentar. No és el que és en general conegut com a control de versions semàntica sistema en el món. No tothom fa això. Però si vostè ha vist els números de versió que són de la forma x.y.z-- Així, per exemple, la primera versió d'un programa podria ser 1.0.0. O si és molt, molt beta, o fins i tot l'estat alfa, el que significa l'ús al seu propi risc, no és realment llest per al prime time, que fins i tot podria començar 0.0.1 o alguna altra designació. Però si el programari s'inicia en la versió 1,0, o equivalentment 1.0.0, en general, el que és comú en aquests days-- encara que no és omnipresent-- si una empresa o un correccions programador individual algun error en alguna peça de programari que realment va ser un error, la correcció no hauria que impacte a sobretot-- no canvia el comportament del programa, només corregeix una mica que no estava funcionant properly-- ho faria normalment actualitzar el valor de z allà. El que vol dir que algú com Kareem simplement podria entrar a la seva pàgina web, cegament canviar el número de versió a partir de 1.0.0 a 1.0.1, el guarda, el vam enviar, i, en teoria, no ha de preocupar-se que acaba de trencar la seva pàgina web a causa certa falta de funcionalitat, perquè alguna cosa més es va trencar. Mentrestant, si la programador o una mica de companyia anaven a fer alguna cosa significativa canvi que augmenta la funcionalitat, Jo podria actualitzar a nosaltres 1.1.0 perquè estic realment canviar el comportament de la biblioteca. Et vaig a donar potser més funcionalitat. Finalment, si hagués de realment fonamentalment canviar el programari per tant que es trencarà molts usuaris en llocs web o aplicacions, llavors jo estic obligat, en aquest model, a actualitzar el número de versió principal també, que és un canvi d'última hora. En altres paraules, podria tenir va deixar d'oferir suport per a aquells gota al menú desplegable. Així que si s'actualitza a 2.0, la meitat el seu lloc web pot deixar de funcionar. I això és una espècie de senyal a la comunitat en quant al que és per presentar una actualització. Una bona oportunitat per recaptar. Altres preguntes? Tot bé. Així que anem a fer una ullada a una última tema en aquest segment de la programació de piles de tecnologia, és a dir, en relació amb el mòbil. Pel que en el món dels telèfons mòbils d'avui que tener-- i iPads, i les superfícies, i tots aquests tipus de devices-- vostè té una gran quantitat d'opcions a l'hora es tracta d'implementar una aplicació o un lloc web per dispositius mòbils dels seus clients. Així que per a indicar el òbvies, potser en aquests dies, ¿Quines són les plataformes a desenvolupar en l'espai mòbil? Què dispositius molts de vosaltres voleu donar suport amb la seva aplicació o lloc web? AUDIÈNCIA: Apple. DAVID J. Malan: OK. Pel que els dispositius d'Apple. Pel que significa iPhone, i que significa iPad, i potser fins i tot l'iPod. Què més? Olivier? AUDIÈNCIA: Android. DAVID J. Malan: Android. D'ACORD. Així que els telèfons Android, Android comprimits, el mercat Android és encara més desordenat i porque-- Fins i tot Apple s'està convertint desordenat. Mentre que en un altre temps iPhone era una certa grandària, i l'iPad era una certa grandària, i iPod era una certa grandària, ara tenim Minis iPad, i la prima estimats, i l'iPhone 6 i 6 Plus. S'està convertint en un embolic. S'està convertint en el món Android. I dic això amb una mena de balanceig els meus ulls perquè a partir d'un desenvolupador punt de vista, es tracta d'una dolor al coll quan vostè no té Steve Jobs visió d'un control absolut sobre la totalitat d'aquestes especificacions. Apple encara ho fa perquè són els que construeixen el maquinari. Però és una cosa bona, si Sóc un desenvolupador de programari, que acaba de saber que el meu iPhone sempre va de ser així de gran, perquè això vol dir que sempre sé la quantitat d'espai en pantalla que tinc. Així que si vull posar una icona a la cantonada superior esquerra, que va a estar en la mateixa exacta col·locar en el dispositiu de cada client. Però en el món de l'iPhone 6s i iPhone 6 Avantatges i en el món d'Android Els telèfons, que està per tot el mapa. I pel que fa que sigui més difícil de programa coses, especialment les interfícies d'usuari, perquè ara cal començar a distribuir les seves interfícies d'usuari relativament, no absolutament. I el mateix ha estat cert en els navegadors, i equips de sobretaula i portàtils d'anys perquè, per descomptat, tenen diferents mides de pantalla. Què més? És possible que tingui superfícies, com el de Microsoft. És possible que tener-- AUDIÈNCIA: telèfon amb Windows. DAVID J. Malan: Què és això? AUDIÈNCIA: telèfon amb Windows. DAVID J. Malan: Sí. Pel que els telèfons Windows encara es poden trobar. Tipus d'espècie de BlackBerrys, però ells segueixen tractant. I després raïms d'altres dispositius. Així que en la seva major part, anem a diuen aquests són els que es preocupen pel moment. Certament les coses d'Apple, sens dubte la matèria Android, i entre els de Windows, com rajoles de superfície sembla estar calant força bé. I així entre aquests dispositius, si desitja desplegar, diguem, una presència mòbil per a la seva companyia, que tipus de decisions de disseny Què has de fer? Bé, ja vam dir en el món Apple, hi ha almenys dues llengües que s'utilitzen normalment. Un es deia què? AUDIÈNCIA: Objective-C. DAVID J. Malan: Sí. Així Objective-C, que és la més gran. És també la llengua que molts Mac aplicacions encara estan escrits en. Després va ser l'altre més recent? AUDIÈNCIA: Swift. DAVID J. Malan: Swift. I aquest és el tipus de 2 per saber per impressionar a la gent. Després, en el món Android, Quin idioma fan servir Android? AUDIÈNCIA: C #? AUDIÈNCIA: Java. DAVID J. Malan: Java és el llenguatge de "du jour". En el món de Windows, segur, direm C # en aquest cas. Així que ja això és una espècie de molest, perquè el que és el menjar per emportar perquè una empresa propietari o algú que acaba vol desplegar una presència mòbil? Igual que, maleïda sigui? Igual que, si vull donar suport 1 bastant àmplia base d'usuaris, He de escriure, pel que sembla, tres aplicacions separades. Un cadascuna d'aquestes llengües, un en Java, un a C #. I fins i tot si vull que la funcionalitat ser idèntic, no importa. Encara he de utilitzar diferents idiomes, ja que Apple i Microsoft, Google i tot el suport diferents ambients. I això ha estat un repte durant anys. De tornada en el dia, quan la gent utilitza per comprar el programari en una botiga d'informàtica a reduir caixes embolicades, vostè haurà de o bé per arribar a la plataforma Mac, o potser això para-- molt petit Mac shelf-- o de la plataforma de Windows més gran i comprar algun programari. I molt sovint, no hi havia ni tan sols res per a vostè a la plataforma Mac. Per què? Doncs bé, les empreses decideixen si el 90% del món, 95% del món té PC, per què molestar tan sols la implementació de les coses en Mac OS? A manera d'un total aside-- Per què és digression-- que Mac sembla tan impermeable a virus, i cucs i amenaces a la seguretat? Apple és millor en això? Millors per mantenir els equips assegurances? AUDIÈNCIA: audiència més petita? DAVID J. Malan: Això és probablement el poc més gran a la mateixa. Així que els nombrosos usuaris de Mac tenen sempre va afirmar, oh, fer servir un Mac, podràs immune als virus, i cucs, i totes aquestes coses que han assotat als PC. Això podria ser degut a que Apple té millors programadors i escriuen millor programari, o la sistema operatiu va ser dissenyat millor. Potser, però probablement no. És probable que quan estàs un nen de 12 anys d'edat, o un 30 alguna cosa espècie que se senti a casa escrivint programari maliciós per fer-se càrrec el món, aniràs després el públic objectiu molt més gran. El 95% del món que podia executar Windows o algun variants de la mateixa. Així que hi ha una mica de totes dues parts. Però al seu crèdit, Apple, que jo sàpiga, en realitat no ha promocionat a si mateixos com més segur, ja que només està convidant el drama si fer aquesta afirmació, jo crec. Tot bé. Sense entrar massa lluny que, com resolem això? ¿Ha de comprar o fer el que ha de pagar tres persones diferents per desenvolupar les seves aplicacions? Es poden escollir un sobre l'altre? El que hauria de guiar la seva Aquestes reflexions es creu vostè? Kareem? Nop. Algu altre. AUDIÈNCIA: Només ha de venir amb el maquinari. DAVID J. Malan: Vine amb el maquinari? Que vols dir? PÚBLIC: Per al medi ambient. [Inaudible] DAVID J. Malan: Així que és cert. Però els seus clients, per la seva banda, podria tenir iPhones, que podrien tenir els telèfons Android, que podria tenir tauletes fetes per Microsoft. Llavors, vostè té una estratègia mòbil per a tots aquests diferents usuaris? Semblaria que si costa, diguem $ 1.000 a fer un iPhone aplicació, que va costarà $ 2.000 a fer una aplicació per a iPhone i un aplicació d'Android, o $ 3000 per donar suport també els dispositius Windows també. Això és probablement tota una eufemisme, i no podria fins i tot haver-hi una relació lineal així. AUDIÈNCIA: Si vostè vol tenir una aplicació o No, pot fer que el lloc web de resposta. DAVID J. Malan: Bé. AUDIÈNCIA: O bé, pot tenir una aplicació nativa. DAVID J. Malan: Sí. Així que en tot aquest context aquí, hem estat parlant sobre el la gent diria aplicacions natives. És a dir que aplicacions escrites en l'idioma natiu d'aquest dispositiu. Així nativa d'Objective-C o Swift codi, o en Java o en C #. El que vol dir que quan es descarrega, anem a Snapchat a dir, una popular aplicació, o quan es descarrega Facebook com un telèfon, que la descàrrega o bé el versió escrita per al seu iPhone, o escrita per al telèfon Android, o escrita per a la seva superfície. No obstant això, hi ha una alternativa. Com Olivier estava al·ludint, en realitat es pot fer servir HTML 5 en canvi, l'ús del que s'anomena una web aplicació, de manera que simplement implementar la seva presència mòbil i cap funcionalitat. Què vull dir amb presència mòbil? Igual que el seu lloc web que té el seu informació de contacte, una llista de tots seus productes, potser té un carret carro, potser vostè ven coses a través d'ell. Sigui quina sigui la seva aplicació és, vostè posar-ho en pràctica, no en Objective-C, o Swift, o Java o C #, però en HTML 5, que era la llengua que ens espera en el dia d'ahir, amb JavaScript i CSS. I el que és bo dels 3 és que per executar ells, que necessita només el peça de programari? PÚBLIC: Un navegador web. DAVID J. Malan: Un navegador web. I el millor que saben, tots aquests dispositius vénen amb els navegadors web, per la qual cosa l'usuari no ha de tenir instal·lar alguna cosa especial. Pel que només pot dir-li al seu audiència, els seus clients, anar a acme.com en el seu navegador i vostè acaba tenir una experiència basada en la web que encara ocupa tota la pantalla, però vostè no ha de preocupar de tots aquests costos i tota aquesta complexitat. Però segurament no va per ser un reforç aquí, oi? Especialment si assenyalo que fa un parell d'anys, la primera versió de l'aplicació mòbil de Facebook era principalment una aplicació HTML 5. I tenen, més Recentment, es reimplementat en les seves altres aplicacions. Així que per què no et immediatament vull dir, així, òbviament, farem això? Quins podrien ser els costos ocults? AUDIÈNCIA: Rendiment. DAVID J. Malan: Rendiment? Què vols dir? AUDIÈNCIA: L'aplicació nativa té un major rendiment. DAVID J. Malan: Així que és cert, per un parell de raons. Podem simplificar la resposta. I recordar la nostra discussió de interpretat en comparació amb els llenguatges compilats. Aquest és l'HTML 5 i, amb ella, només per estar clar, JavaScript-- comunament escrit JS-- i CSS són tots llenguatges interpretats, encara que només el JavaScript és un llenguatge de programació. I així davant d'aquests, que alguns d'aquests es compilen, almenys aquests tres-- Objective-C, Java i C # - aquests, en teoria, hauria de ser només més ràpid. Però hi ha una altra realitat para-- AUDIÈNCIA: Funcionalitats? DAVID J. Malan: Què és això? Públic: funcionalitats. DAVID J. Malan: Funcionalitat? Com és això? AUDIÈNCIA: Utilitzeu la càmera fora del seu telèfon o alguna cosa així. Podeu utilitzar els que tenen el navegador. DAVID J. Malan: Exactament. estan sec-- AUDIÈNCIA: [inaudible] DAVID J. Malan: Aquesta és una altra bona. Hi ha característiques que vénen amb els telèfons mòbils d'avui que no són, per disseny, per a la seguretat raons, accessibles als navegadors web. A causa de que seria una espècie de una cosa esgarrifosa si just quan vostè visita google.com, o cnn.com, o qualsevol website.com, que aquest lloc té el poder de convertir en la seva càmera, fer una foto de vostè, i després usar-lo. Però vostè no vol un lloc web a l'atzar que visita per primera vegada tenir aquesta capacitat. I així el que el telèfon fabricants solen fer se'ls denega l'accés a a aquest tipus d'informació a un navegador, el que significa que no es pot aplicar la càmera. No es pot posar en pràctica les notificacions push, els xiulets que s'obté a la pantalla amb missatges curts. I de fet, fins i tot GPS és única classe del tipus de disposició dels navegadors web. Si alguna vegada, en un ordinador portàtil o en un dispositiu mòbil, aixecat una mena potser CNN.com, sinó també a les estacions de notícies locals tendeixen a fer això, se li demanarà sovint amb un mensaje-foxnews.com vol saber la seva ubicació. Aprovar o denegar. Doncs bé, el navegador intenta accedir la seva informació GPS des del telèfon. Però, per sort Microsoft, i Apple, i Google han decidit que se sent com que és una situació útil, volem Google Maps i altres eines per treballar, però no volem que la gent a arrossegar cap a fora amb només permeti a qualsevol lloc web per fer això. Així que anem espècie de meet a meitat de camí i demanar a l'usuari. Però això no és necessàriament el cas amb tot el maquinari, com la càmera i amb push notificacions i similars, per la qual cosa pot ser que hagi de sacrificar certes característiques. Però el rendiment també. S'està convertint en menys notable avui dia, potser com es diu la LTE i més ràpid en les velocitats d'Internet en els telèfons, però es pot tipus de sentir la diferència. Com una aplicació basada en web només se sent més lenta, generalment, que una aplicació nativa, en part a causa que una aplicació basada en web per definició està a l'Internet. S'està parlant amb els servidors de la web. I si la seva connexió a la xarxa és lent, fins i tot desplaçament podria ser lent. No obstant això, una aplicació nativa, que té ja pre-downloaded-- probablement quan era a casa des de la botiga d'aplicacions, o almenys pre-descarregat en la seva totalitat anterior, sigui quina sigui la seva speed-- connexió i pel que ara té tota la bits que en general necessita. Excepte potser algunes dades que prové d'un servidor. Així que aquestes són les compensacions aquí. Hi ha una espècie de mitja compromís, de fet. I crec que usted-- AUDIÈNCIA: Utilitzeu la connexió de dades. En les aplicacions natives, que pugui [inaudible] DAVID J. Malan: Per descomptat. Així està el tema fora de línia, que és realment molest si no es pot jugar algun joc o l'ús alguns programes simplement perquè ets en un soterrani en algun lloc o en un ascensor. Una aplicació nativa és resilient amb major probabilitat en contra que, suposant que té tota la dades que necessita a nivell local. Així que hi ha una tercera opció aquí. I anem a dibuixar l'espectre aplicació nativa aquí i aplicació web aquí. I el que és en el medi és una cosa called-- i crec que és possible que tingui s'utilitza la paraula abans, potser? aplicació híbrida. I com la paraula ho indica, és alguna cosa en el medi. És una espècie d'una aplicació web i és una espècie d'una aplicació nativa. I què vol dir això? Resulta que no són frameworks-- per utilitzar un terme pel programari abans els he parlat que altres persones han escrit per a cadascuna d'aquestes plataformes. Aquests i encara altres dispositius. De fet, em va deixar anar a PhoneGap, que és un d'aquests marcs que Adobe creu que posseeix ara. Déjame anar a Començament. Anem a veure. A veure si puc veure una llista d'eines. Hardware. Començant. PhoneGap maquinari. Anem a veure. PhoneGap accés al maquinari. A veure si podem trobar una mica gràfic que solien tenir. Això és en un altre lloc. És això útil? No. Això va a perdre el temps allà. PhoneGap maquinari. Dispositius. API dispositiu. No, s'han mogut. PhoneGap. Anem un últim cop d'ull a aquest i veure si et puc mostrar. Començant. Instal·lar PhoneGap. Instal·lar aplicació mòbil. Vinga. Han reorganitzat tot. Tot bé. Oh, està bé. Doncs bé, aquí anem. Això no és tot el que aclaridor, però això és el que jo estava una mica buscant. Així PhoneGap és un marc que es es pot descarregar de forma gratuïta que li brinda un codi d'arrencada, essencialment. Així que una mica de codi que han escrit això no fa molt de res. Però el que li dóna essencialment és l'equivalent d'una aplicació que només posa un gran rectangle a la pantalla de l'usuari. No posa una barra d'URL, com una navegador, no posa una adreça. Només posa un gran rectangle. I configura així de gran rectangle, sota de la campana, per anar realment a acme.com, o potser m.acme.com, per mobile.acme.com, però l'usuari no sap que estan en aquesta direcció. Tot el que veuen és la contingut de la pàgina web. Però el millor d'aquest ésser una aplicació híbrida és que el que PhoneGap i altres empreses estan donant vostè és que t'estan donant una mica de codi en Objective-C o Swift, o una mica de codi en Java, o una mica de codi en C #, i essencialment, tot el que ha d'oferir és mínimament la direcció de la seva aplicació basada en web. I després ho combines això tots junts i es tenir-lo o bé accedir a la seva lloc a través d'Internet, o fins i tot emmagatzemar en memòria cau local copiar dins de l'aplicació, a continuació, guardar la seva sol·licitud en format iPhone, telèfon Android format, el format de la superfície, o qualsevol nombre d'altres dispositius. Puges cadascuna d'aquestes versions a la botiga de Google Play, a l'App Store, a la Windows Store, i així successivament. I ara, vostè pot tenir la totalitat del seu audiències descàrrega realment una aplicació nativa, encara que la major part del codi va ser escrit per una altra persona, però el contingut d'aquesta aplicació nativa de tot provenir d', en general, el seu propi lloc web. Així continua escrivint el seu lloc web en HTML, JavaScript i CSS. Llavors, per difuminar aquestes línies? Per què tenir una aplicació híbrida que és una espècie de natural, sinó també tipus de tela basa? Què és tot el punt de l'addició d'aquesta complexitat? És a dir, tot i així, només de mirant a través d'aquesta pàgina, la Guia d'introducció se sent com que té un munt de passos per a mi fer abans de can-- AUDIÈNCIA: Reutilització? DAVID J. Malan: Reutilització? Que vols dir? AUDIÈNCIA: del codi font. Així mateix codi s'executaria en totes les diferents plataformes. DAVID J. Malan: Sí. AUDIÈNCIA: [inaudible] DAVID J. Malan: perfecte. Si el temps és escàs i si no tenen aquesta quantitat de developers-- potser vostè té un desenvolupador i ell o ella sens dubte no coneix tots aquests environments-- després, no així, i certament no pot programar en les tres simultàniament i enviar els productes en tres El temps permès per a un, vostè pot tenir ell o ella construir tot en HTML i JavaScript i CSS, i després aprendre una mica petita poc sobre les aplicacions natives, només prou per descarregar un marc d'aquest tipus, a continuació, carregar el producte a totes les diverses botigues d'aplicacions de manera que ara té una aplicació nativa. De manera que sembla com un guanyar-guanyar, però una vegada més, per ser clars, ¿Quines són les possibilitats costos o les trampes? AUDIÈNCIA: Rendiment? DAVID J. Malan: Sí. Rendiment. És difícil de descriure verbalment. Així que si només es tenen en la fe d'una aplicació mòbil, una aplicació web solen dur a terme més lentament. Potser no sembla del tot bé, perquè en l'iPhone, i en els telèfons Android, i els dispositius de Windows, hi ha sempre una espècie d'aspecte predeterminat i sentir a tot el els botons i els menús. I empreses a la web, es poden tractar per aproximar-se a aquestes estètiques amb les biblioteques com Som-hi, però el user-- 1 user-- astut es va a saber que alguna cosa que no està del tot bé aquí. I això està bé, potser això no és un gran problema. Però el problema de rendiment absolutament és un gran problema. Les aplicacions natives tendiran a poc ser molt més sensible i, per tant, millor. I així, el que llavors podria ser el millor d'ambdós mons? Si vostè és especialment una petita empresa o un petit grup, vostè no té els recursos per desenvolupar una aplicació en paral·lel en les tres plataformes, i francament, se sent com que és una mala idea de totes maneres perquè si surt cap a fora i en es donen compte dels tres al mateix temps, hauríem d'haver afegit algunes característiques o fet alguna cosa diferent, ara vostè ha de fixar en 3 llocs, no un. El que és potser l'òptim estratègia aquí en general, si els recursos i el temps són molt ajustats? PÚBLIC: Només fes-ho a IOS. DAVID J. Malan: Això no és irraonable. iPhones, almenys en el Estats Units, són molt populars. Android encara sembla tenir dominant quota de mercat, a nivell mundial, en general. El que no està necessàriament representatius de la totalitat del globus aquesta setmana. Però això és absolutament una decisió. És a dir, al campus aquí pensar en algun nombre atroç o el percentatge d'estudiants universitaris tenen iPhones i telèfons Android no. Sinó a l'estranger, és una espècie del contrari. Així de decidir sobre la base de la seva audiència. Com sap el que té el seu públic? Bé, hem après un truc d'ahir. Se'ls pot preguntar. Si vostè té un públic captiu vostè pot enviar un formulari d'enquesta. O vostè podria fer què? AUDIÈNCIA: Google Analytics? DAVID J. Malan: Què és això? AUDIÈNCIA: Google Analytics. DAVID J. Malan: Google Analytics. Sí. O fins i tot més classe de vista tècnic, simplement mirar els seus propis servidors web logs. Perquè el que passa cada vegada que un navegador, ja sigui portàtil, d'escriptori o telèfon visitar el seu lloc web? Envien aquesta capçalera HTTP que espectacles el navegador i sistema operatiu que utilitzeu. Així que vostè pot inferir, amb alta probabilitat, qual cosa la seva demogràfica està usant d'aquesta manera i després ajustar. Així que suposo que això és inacceptable. En certa manera és dolent per al negoci si Els usuaris d'Android no poden comprar els nostres widgets. AUDIÈNCIA: Ja sigui que estigui va a carregar o no? DAVID J. Malan: Si cobraràs? Així que bé, s'obté el que es paga. AUDIÈNCIA: Ja sigui que la seva aplicació va ser lliure o si es tracta d'gonna-- DAVID J. Malan: OK. Així que potser vostè podria recuperar els costos d'aquesta manera, o-? AUDIÈNCIA: vaig llegir un estudi, un cop dit això més usuaris d'Apple a pagar per aplicacions versus-- DAVID J. Malan: Això és cert degut a que ja estan pagar més pels seus dispositius. Per tant, no és desgavellat una suposició. AUDIÈNCIA: [inaudible] DAVID J. Malan: OK. Així que si estan més disposats a pagar, a continuació, al diable amb els usuaris d'Android. Ells no van a pagar-nos res de totes maneres. També podríem enfocar les nostres prioritats, almenys durant els primers mesos o un any, en IOS. Totalment raonable. Què és una més inclusiva estratègia que això? Maybe-- què és això? AUDIÈNCIA: [inaudible] DAVID J. Malan: Una més expensive-- així que potser invertir més en-- seguir endavant. AUDIÈNCIA: Sí. Només un lloc web per a mòbils. DAVID J. Malan: Així que fer una lloc web per a mòbils i no fins i tot preocupar d'aquesta complexitat. O potser una estratègia raonable, Facebook, que fins i tot va portar, és començar amb un híbrid aplicació, ja que no és molt més difícil de fer això que això. Només cal llegir alguns documentació i esbrinar com per pujar coses a l'App Store. Així que potser es comença amb això, de manera que el primer dia, vostè pot donar suport a tots els seus usuaris. I llavors, igual que Facebook i altres empreses han fet, quan es té els recursos, vostè té la gent, ¿Per què no tornar a implementar només l'aplicació de iOS. Vostè encara té alguna cosa per a tots, tot i que és una experiència inferior potser, amb l'aplicació híbrid. Però es pot gradual implantació de les i reemplaçar el curt termini mesures de les aplicacions híbrides amb les seves aplicacions més natius. AUDIÈNCIA: Però amb una aplicació híbrida que tindrà accés a les funcions mòbils? DAVID J. Malan: No necessàriament. Així que potser vostè fa una conscient de decisions des del principi, només es poden carregar fotos al aplicació per al iPhone per Facebook, però no en l'aplicació per Android, inicialment, per exemple. I això és una mica d'una mentida blanca, perquè aplicacions web tenen més restriccions d'aplicacions híbrides resulta a terme, i si llegim la documentació per PhoneGap i coses com que, les persones han arribat amb formes per donar aplicacions basades en web l'accés a la càmera, sempre i quan s'està utilitzant una aplicació d'híbrid. Com funciona això? A causa de que l'híbrid aplicació, per definició, té una mica de codi en Objective-C, i Swift, i Java oa C #, es pot accedir al maquinari. No necessàriament tot, però podria molt bé donar-se el cas que vostè té suficient per aconseguir l'accés a la càmera, fins i tot per a les plataformes Android, per exemple, en aquest exemple artificial. Alguna altra pregunta? Tot bé. Per què no prenem la nostra 15 minuts de descans aquí. Reprendrem a les tres amb una final mirar la programació web, bases de dades, i Javascript.