DAVID J. Malan: Donc, nous sommes de retour. Ainsi, le haut niveau sujet au moment présent est empilements de technologie, ce qui est un terme particulièrement technique, il est plus d'un fourre-tout pour tout nombre de combinaisons de technologies que vous pouvez utiliser pour résoudre des problèmes. Et peut-être le plus façon appropriée pour démarrer serait de regarder les langues depuis Je continue à débiter tout un tas et presque tout le monde dans la salle a probablement entendu parler d'au moins un. Et alors pourquoi ne pas essayer de faire la distinction what-- distinguer ces langues et parler brièvement lorsque vous feriez choisir l'un sur l'autre, la façon dont ils sont sorte de fond différentes, et en particulier quand vous discutez avec des ingénieurs, ou d'essayer de décider qui embaucher, ou que la mise en œuvre proposition de Greenlight, comment vous réellement faire ce genre de décisions. Donc, nous allons simplement Rattle certaines choses hors tension. Parmi les langues les gens ont entendu parler, ce qui vient à l'esprit? C. OK. OK, C ++. Qu'est-ce que c'est? AUDIENCE: Python. DAVID J. Malan: Python. Excellent. Quoi d'autre? Visual Basic. J'ai entendu Java. a.k.a. visuel Basic-- VB. Java. .NET, Qui est plus d'un fourre-tout pour ce qui est généralement C # comme langue Dans la question. Et permettez-moi de mentionner que. Donc, nous allons revenir à cela. Je suis désolé? Pardon? AUDIENCE: SQL. DAVID J. Malan: Scratch? AUDIENCE: SQL. DAVID J. Malan: Oh, SQL. D'ACCORD. SQL. Donc, nous allons revenir à that-- effectivement, il est good-- après la pause aussi. Quoi d'autre? AUDIENCE: Oracle. DAVID J. Malan: Donc, Oracle, et non une langue. En fait, ils utilisent SQL ainsi. Mettons donc que, après la pause aussi. Et désolé, quelque chose ici? AUDIENCE: Mathematica. DAVID J. Malan: Mathematica? OK, bien sûr. Et MATLAB est une sorte de là-bas parfois. AUDIENCE: R. DAVID J. Malan: R. Allons ici. Fortran. Sûr. ancienne école. Fortran. COBOL. Je jette sur BASIC. DE BASE. Tout-- AUDIENCE: MATLAB? DAVID J. Malan: MATLAB. Oh, vous battre pour elle. N'importe quoi? Je peux penser à un couple des autres. Je peux penser à quelques autres. Et ce qui était le dernier? AUDIENCE: ASP. DAVID J. Malan: ASP? Ouais. Active server pages. Ce serait généralement tomber sous d'autres langues, parfois C #, alors laissons cela au large. Mais nous reviendrons à cette pour les cadres et autres. Rien d'autre? PHP est populaire. Ruby est une autre. JavaScript, à ne pas confondre avec Java, est une autre. C'est un peu beaucoup. Ainsi, il peut certainement être écrasante, comme si la liste est pas déjà, juste pour commencer à savoir où commencer. Et si heureusement, nous allons aborder la question sous quelques angles. Tout d'abord, nous allons essayer de classer au moins certaines de ces langues en deux grandes seaux, rappelant la conversation que nous avions avant la pause, où nous avons parlé de la compilation, et le code source et le code de la machine, parce que ce n'est pas comment toutes les langues de travail. Donc, nous allons arracher quelques exemples de-- ou contre-exemples-- à ce modèle. Et puis, pourquoi ne pas nous parler des applications que ces langues sont généralement utilisés. Et franchement, même si ceci est une liste assez longue, il est seulement un sous-ensemble de cette liste vous généralement tirer de ces jours Résoudre des problèmes. Certaines langues sont plus récents que d'autres. Certaines langues sont plus populaires que d'autres. Donc, il est pas comme vous avez un tel une tâche écrasante avant au moment de décider entre ces différentes langues. Donc, nous allons le faire. Nous avons eu plus tôt, le code source, et puis nous avons eu le code machine. Whoops. Écrire le mauvais mot. Langage machine. Et nous avons eu un processus dans le milieu called-- ouais, le compilateur. Donc, le compilateur. Et ce que le code de la machine fonctionne en fait sur la fin va être votre CPU réelle. En d'autres termes, par le code de la machine, je dire les instructions de plus bas niveau qu'une unité centrale de traitement comprend en réalité. Addition, soustraction, déplacer, enregistrer, et les opérations de ce genre. Et ceci est le modèle pour ce qui est généralement connu sous le nom des langages compilés. Peut-être pas surprenant. Donc, ceci est le modèle pour les langages compilés. Mais il se trouve qu'il y a une autre classe de langues appelé interprété languages-- interprété languages-- qui sont légèrement différents. Vous écrivez dans le code source, exécutez eux par un interprète, et interprète ce qui fonctionne sur le CPU. En d'autres termes, ce que vous ne emit est ce que, apparemment? Langage machine. Les zéros et les uns que la CPU se comprend finalement. Donc, dans cette première version et langages comme C, comme nous l'avons vu, vous écrivez dans le code source c'est un peu mystérieux, mais au moins il est un peu de l'anglais comme et il est au moins lisible une fois que vous y habituer. Vous exécutez par un compilateur et sur vous obtenez, en fin de compte, zéros et des uns. Qu'un simplisme. Il y a quelques autres étapes de là. En fait, si vous avez jamais entendu le terme «langage d'assemblage," qui est une étape avant les zéros et des uns. Qu'un peu plus lisible, mais encore assez mystérieux. Et donc il y a des étapes intermédiaires qui sont, en fait, va ici. Mais la sortie, en fin de compte, est ces zéros et des uns. Mais dans l'interpréter monde, où vous avez langues qui sont interprétés langues, vous fait sauter cette étape. En d'autres termes, lorsque vous écrivez un programme, vous suffit d'exécuter immédiatement. Vous ne compilez et puis l'exécuter, comme je le faisais avant. Vous venez d'écrire et exécuter. Et si vous voulez faire un changement rapide, vous faites un changement rapide et relancez-le. Donc, il n'y a pas d'étape intermédiaire ici. Maintenant, pour le programme que je l'ai déjà écrit, qui était ce programme "Bonjour tout le monde», vous pourriez raisonnablement wonder-- ou pourrait raisonnablement state-- cela n'a pas été que le temps longs à compiler mon programme. Il semble avoir fait juste comme ça. Et il y a graphique versions de compilateurs. J'utilise une version très obscur, mais vous pouvez appuyer sur un bouton de lecture et ce serait réellement faire la compilation pour vous. J'ai compilé le programme, puis à nouveau, pour l'exécuter, je viens de faire cela. Et il sort à gauche là-bas, "Bonjour!" Cela ne semble pas tout à fait onéreux. Mais quand vos programmes sont plus que seulement un, deux, trois, quatre, cinq lignes, il peut prendre beaucoup plus de secondes à compiler. Parfois, même minutes ou un peu de temps à compiler. Après tout, une partie de la plus grands produits du monde sont des choses comme les systèmes d'exploitation, Microsoft Word, Microsoft Excel, ce qui pourrait être des centaines de milliers ou même des millions de lignes de code long, et ceux qui ne le font pas juste exécuter immédiatement. En outre, sur la bande, il est devenu à la mode à utiliser langues simplement interprétées, en partie parce que vous peut faire un changement en tant que développeur et puis juste recharger immédiatement la page du navigateur et voir immédiatement le résultat. Et HTML, sans un langage de programmation, est une langue qui est interprété. Et nous avons vu que même effet hier. Vous rechargez simplement la page après avoir fait un changement dans Cloud9 et-- voila-- vous voyez un nouveau résultat. Alors, quelle est la différence ici? En HTML, le rappel, nous avions HTML ouvert, tête ouverte, titre ouvert, à proximité titre, proche de tête, corps ouvert, et ainsi de suite. Nous avons eu toutes ces balises que nous assez bien dit, dit le navigateur ce qu'il faut faire. Hey navigateur, voici une page HTML. Hey navigateur, voici le titre. Hey navigateur, voici quelques-uns le texte qui doit être audacieux. Et puis vous dire le contraire. Hey navigateur, voilà pour le texte de gras. Hey navigateur, qui est pour le corps. Et ainsi de suite. Et qu'est-ce qu'un navigateur? Un navigateur est juste un interprète. Il est un programme que quelqu'un comme Microsoft ou Google a écrit, dont le but dans la vie est de lire une langue, connue sous le nom HTML, et l'interpréter. De haut en bas, de gauche à droite. Et chaque fois que le navigateur voit ouvert support, titre, fermer la parenthèse, il devrait interpréter en ce sens, oh, que signifie que je devrais mettre ces mots chemin ici en haut du navigateur. Donc, il fait exactement ce que dit le code HTML. Mais il n'y a pas de zéros et de uns. Il n'y a pas de compilation. Vous ne l'avez pas. Le navigateur ne le faisait pas. Il est tout simplement pas impliqué. Donc, dans l'esprit de ces cours sujets, aujourd'hui et hier, qui semble être une caractéristique merveilleuse. Vous enregistrez votre code, puis il suffit d'exécuter ou interpréter. Il n'y a pas d'étapes intermédiaires. Certes, il y a un coût? Ne peut pas tous être upsides. Alors, que peut-être que le coût? AUDIENCE: Space. DAVID J. Malan: Space. Si sûr. Dans le monde compilé, vous avez non seulement le code source original, vous créez également et puis en enregistrant vraisemblablement la machine code-- la zéros et ones-- et c'est eu à prendre une certaine quantité d'espace. Absolument. Donc, il vous coûte plus d'espace. Ouais? AUDIENCE: Browsers pourrait interpréter différemment. DAVID J. Malan: Browsers might interpréter différemment. C'est vrai. Mais je ne suis pas sûr que je suis confortable prétendant qui est parce qu'il est interprété. C'est plus juste parce qu'il est une mise en oeuvre d'une langue qui lui-même a des ambiguïtés. Donc, il ne faut pas tout à fait confirmer celui-là, mais bon pressentiment. Que pourrait être le prix payé? Andrew? AUDIENCE: Vous combinant deux étapes, de sorte que vous donc ont une complexité croissante aussi bien. DAVID J. Malan: Le complex-- l'augmentation de la complexité où? Pour qui? AUDIENCE: Donc, dans l'interpréteur étape, vous combinez l'interprète et le compilateur pour juste menant to-- DAVID J. Malan: Ah, OK. Ironie du sort, il est sans doute un peu plus simple à mettre en œuvre l'interprète, même si elle semble upsides de rendement de cette commodité. Donc, peut-être vrai. Mais ce genre de fonction, je dirait, sur la langue et sur la façon dont ils sont allés à propos de sa mise en œuvre. Il peut y avoir beaucoup plus de complexité, En fait, dans le compilateur, juste parce que vous devez aller de quelque chose de si haut niveau à quelque chose donc bas niveau. Mais une bonne pensée. Donc, en d'autres termes, un programme compilé, quand transformé en ces zéros et des uns, se retrouve dans la langue que le processeur prend la parole, alors que dans ce côté de la monde, le programme que vous avez écrit, le code que vous avez écrit, jamais réellement est converti dans la langue réelle l'ordinateur parle. Les zéros et des uns. Il reste dans l'original, plus humain friendly langue, plus lisible. Alors, quelle pourrait être l'implication là, si vous n'avez pas réellement la peine de convertir votre programme à la langue très que l'ordinateur sous-jacent parle? AUDIENCE: pourrait ne pas comprendre quelque chose? DAVID J. Malan: Pourrait ne pas comprendre quelque chose. Et cela peut claim-- si elle ne comprenait pas quelque chose, qui est un bug ou le manque de figurer dans l'interpréteur. Donc, ce serait plus de une erreur qu'un coût. AUDIENCE: Vous avez accès le code source? DAVID J. Malan: Il y a un bon. Ainsi, un inconvénient est que vous semblerait avoir accès. Vous, l'utilisateur final, peut sembler avoir accès au code source. Et ce n'est pas toujours vrai. Mais il est vrai dans le cas de JavaScript, que nous allons voir après pause aujourd'hui, le qui est un langage de programmation interprété que vous écrivez dans le code source. Mais que le code source est transféré à partir de votre serveur au navigateur et fonctionne dans le navigateur de l'être humain. Donc, ici, elle pourrait simplement ouvrir la fenêtre, comme je l'ai fait dans Chrome, et regarder, comme nous-mêmes regarda hier avec Google. Il peut sembler un peu incompréhensible mais il est là. Voilà donc absolument un prix payé. AUDIENCE: Performance hit? DAVID J. Malan: Oui. Et c'est l'autre biggie. Il y a une baisse de performance. Parce que vous avez cette homme du milieu, qui lui-même est un programme, entre vous et l'unité centrale, par opposition pour simplement nourrir ces premières zéros et de uns dans l'unité centrale de traitement, il y a une baisse de performance que vous prendre avec un langage interprété. De telle sorte que, de manière arbitraire, un programme cela pourrait prendre un seconde pour fonctionner sur un ordinateur ou un minute pour fonctionner sur un ordinateur ici, pourrait prendre 10 secondes ou 10 minutes pour fonctionner sur un ordinateur ici. Il est généralement ne va pas être que beaucoup d'un facteur de 10-- changé les choses parce qu'il ya optimisations que vous pouvez faire. Mais il est presque toujours plus lent. Maintenant, le revers de la médaille à cette préoccupation est que, bien des ordinateurs, tous les 12 à 18 months-- selon la La loi de Moore, ainsi speak-- sont juste de plus en plus vite. J'ai de plus en plus d'espace disque. J'ai de plus en plus de RAM. Qui se soucie vraiment? Et que ce genre de argument raisonnable. En effet, une des raisons pourquoi nous ne pouvons tolérer plus lent langues interprétées est parce nous, les humains ne remarquerez pas vraiment. Les ordinateurs ont obtenu tellement sacrément rapide. Alors que dans la journée, en particulier lorsque le matériel a été beaucoup plus limitée, vous avez eu moins de tout, il était beaucoup plus cher donc tout coûte plus cher, eh bien vous avez vraiment voulu faire sortir autant les performances que vous pourriez. Mais celle requise par écrit à un niveau inférieur, si vous voulez, avec un langage compilé. Donc, vous ne prenez cette baisse de performance. Mais généralement, les upsides semblent être la peine ces jours-ci. De plus, à l'exception du question de la propriété intellectuelle. Ce genre de lisibilité du code, nous allons revenir quand on regarde JavaScript. Essayons donc de classer au moins quelques-uns de ceux-ci. Donc, parmi les langages compilés, nous aurait C, C ++, un peu, sorta, Java, même si elle est un peu une exception, pour raisons que je vais vous montrer dans un instant. C # serait sur cette liste. Nous allons examiner plus à seulement les langues les plus modernes. D'accord. Et cela semble être beaucoup là-bas. Considérant que, de ce côté de la clôture, nous pourrions avoir JavaScript et Python, et PHP et Ruby. Et est-ce suffisant pour les plus récents? Cela se sent comme beaucoup pour le moment. D'ACCORD. Et puis Dot Dot Dot, puisque la liste est sans fin. Et en effet, si nous voulons juste avoir une idée de this-- Wikipedia, langages compilés. Je devine que nous pouvons obtenir un liste beaucoup plus exhaustive. Alors allons-y. Voici donc une liste beaucoup plus exhaustive. Et j'espérais que quelqu'un deviner D comme langue parce que existe aussi, mais ils se sont arrêtés à D, il semblerait. Bien qu'il puisse effectivement être un E. Oh, en fait, cela devrait être sur la liste de ces jours. Swift est en fait un langue que Apple a inventé qui est maintenant utilisé, de plus en plus ainsi, dans le développement iPhone. Mais nous y reviendrons que notre discussion du mobile en un peu aussi. Alors Swift ainsi. Et puis si nous allons à interprété language-- interprété language-- alors voici une liste encore plus aussi bien. Donc, si vous venez de Google et regardez sur Wikipedia pour ceux-ci, vous verrez toutes sortes de langues. Mais le but est, pour aujourd'hui vraiment, juste se résume à peut-être cette question de la propriété intellectuelle et une lisibilité par l'utilisateur final, et performance, est un autre biggie aussi. Donc, parmi ces langues, permettez-moi de voir si nous pouvons vous donner quelques-uns échantillon de langues. Nous ne voulons pas passer par toutes les langues à l'infini. Avez-vous déjà demandé quel certaine langue ressemble? Nous avons vu il y a un instant. Pourquoi prenons-nous pas un couple des demandes de fonctionnalités. Qui aimerait voir ce que autre langue ressemble? Ouais. AUDIENCE: Java. DAVID J. Malan: Java. D'accord. Donc, nous allons aller à Java. Et juste pour vous donner un sample-- nous pourrions écrire tout cela sur, mais il serait plus rapide juste regarder le code exemple de quelqu'un d'autre. D'accord. Alors est-ce un bon exemple? Whoops. D'ACCORD. Voici donc la version Java de la programme je l'ai écrit plus tôt, "Bonjour tout le monde." Donc, Java, vous aurez souvent voir la «classe». mot-clé Ensuite, vous verrez un nom après. Vous verrez accolades comme nous l'avons vu précédemment, et parfois ils vont sur le même ligne, parfois d'autres lignes, il est une sorte de décision personnelle. Vous verrez des mots clés comme "Public", "statique", "vide". Mais nous avons vu "principale." "Main" est généralement le nom de la fonction par défaut ou le morceau par défaut de code obtient exécuter dans un programme. "Chaîne." Qu'est-ce qu'on entend par chaîne plus tôt? Je l'ai utilisé sorte de désinvolture. Une chaîne est quoi? Un mot. Il est comme une séquence de caractères. Les caractères individuels, de nouveau à dos à dos, habituellement dans un tableau, comme nous en avons discuté. Et en fait, voir cette syntaxe ici, les deux crochets? Cela veut dire, hey ordinateur, ici vient un tableau de chaînes. La notation du support carré est communément utilisé pour indiquer que. Et puis vous pouvez probablement prendre un guess-- ce ce que cela a mis en évidence morceau de code probablement faire? AUDIENCE: La sortie? DAVID J. Malan: Oui. Elle imprime quelque chose à l'écran. Donc, «système» est une sorte de référence à votre ordinateur. "Out" signifie que votre ordinateur de sortie ou l'écran. Donc "ln System.out.print" signifie probablement? "Ln". ligne d'impression qui programmeurs comme épeler apparemment quelques mots sur dans leur ensemble et prennent raccourcis avec d'autres mots. Mais "ln" est la ligne, de sorte que la ligne d'impression. Donc, il affiche "Bonjour World! "Suivi d'une nouvelle ligne. Alors c'est tout. Mais Java est ce qu'ils vont appel orienté objet. Et en effet, juste pour donner un deux autres définitions là que vous pourriez voir, en général, il de nombreux types différents de langues, mais le plus commun sont des langues de procédure ou impératives. Il existe fonctionnel langues, qui ne dire que les autres ne sont pas fonctionnels. Et puis il y a langages orientés objet. Et cela est peut-être le meilleur catégorisation de la plupart des langues que vous jamais choisir de tri d'un projet commercial typique. Ce serait trop, Je pense que, d'un trou de rat pour aller vers le bas, pour essayer d'expliquer les diverses différences. Mais les langues nous avons vu ainsi far-- C est une procédure ou un langage impératif. Plus récemment inventé langues ont tendance à être, désolé, orienté objet, ce qui signifie ils ont d'autres caractéristiques pour eux. Puis-je l'expliquer de cette manière? Disons même pas aller là-bas. des moyens orientés objet vous pouvez implement-- vous pouvez modéliser le monde réel un peu plus efficace. L'humanité, au fil du temps, a compris, wow, ce serait bien si ma langue avait cette fonction ou cette fonctionnalité. Et voilà pourquoi nous avons tant de nombreuses langues dans le monde. Les gens raisonnables, intelligent les gens, d'accord ou non et invariablement sorte de se réunir sur le développement de nouvelles langues tous ensemble. Affaire au point. Apple a inventé Swift dans l'espoir d'abaisser vraisemblablement la barre pour le développement iPhone, parce que la language-- précédente appelé Objective-C, ce qui pourrait être aussi sur notre liste ici-- était beaucoup plus mystérieux et beaucoup plus difficile à envelopper son esprit autour. Et que la programmation devient sans doute plus accessible et plus largement adopté par les gens même moins technique, l'goal-- il est très vaillant objectif d'essayer de abaisser la barrière à l'entrée en faisant les langues elles-mêmes plus facile de démarrer avec, mais non moins puissant nécessairement. Et une autre langue. Pourquoi ne prenons pas un coup d'oeil à quelque chose comme Python, ce qui est très en vogue ces jours-ci. Python. Exemple de programme. Voyons voir. langues "Bonjour tout le monde". Faisons cela. "Bonjour le monde." Voyons voir si cela donne nous un bel exemple. D'ACCORD. Donc, c'est en fait une sorte de plaisir. Donc si jamais vous google "Bonjour tout le monde», qui se trouve être l'un des premiers programmes jamais écrit dans une langue moderne, tout comme une preuve de concept, vous pouvez voir toutes sortes de mises en œuvre de cette. Certaines de ces langues Je l'ai même pas entendu parler. Mais vous pouvez see-- allons à Basic, celui que j'appris il y a quelques années, en partie. Ce fut un langage amusant parce que vous a dû, en tant que programmeur, nombre toutes vos lignes. Pas contrairement à ce que je faire quand je rédigeais pseudocode sur le document jaune plus tôt pour la recherche binaire, pour la recherche d'un annuaire téléphonique. Et donc, si vous vouliez pour aller à une autre ligne, vous littéralement taper, aller à 10, ou aller à 20. Et si vous écrivez des lignes, les convention était de faire, cela est la ligne 10, ceci est la ligne 20, cette ligne est 30, 40, avec rien entre les deux, vous donnant ainsi une certaine marge si vous décidez, attendez une minute, J'aurais ajouté quelques plus de code quelque part. Vous aviez encore sorte de neuf chances de presser que entre votre programme avant que vous deviez manuellement renuméroter tout. Donc, cela est un peu ce que je veux dire quand je dis le monde est venu avec de nouvelles fonctionnalités. Quelque part le long de la façon dont une personne réalisé, garçon cela est stupide. Ceci est juste la création travailler pour le programmeur. Donc, il ou elle juste un peu construit une nouvelle couche au-dessus de cette de sorte que vous ne devez pas vous inquiéter sur ce nombre en ligne votre code est en fait sur. Alors, quand pourriez-vous choisir une langue ou d'une autre? Eh bien, ce qui de ces langues Avez-vous tendance d'entendre parler le plus dans votre propre monde ces jours-ci? Laissons tomber vers le bas Objective-C trop. AUDIENCE: C #. DAVID J. Malan: C #. Permettez-moi donc la couleur. Avons-nous notre autre couleur quelque part? Donc, C #. Et que savez-vous sur C #? Tout printemps à l'esprit? AUDIENCE: Il est un langage de programmation. DAVID J. Malan: Il est un langage de programmation. D'ACCORD. C'est vrai. Nous parlons donc de C #. C # tend à être utilisé dans les environnements Windows, donc si vous écrivez des logiciels Microsoft pour Windows, C # est très couramment utilisé, que ce soit pour les logiciels de bureau, ou même un logiciel de téléphone sur les téléphones Windows, si vous avez eu ceux, ou sur le web même trop. Et en fait, peut-être Kareem susmentionné ASP plus tôt? Donc, il y a aussi ces choses appelées cadres, que nous pouvons introduire par extension. Cadres, comme ASP. Stands pour les pages de serveur actives. Et ceci est le code et un moyen de programmation qui rend généralement plus facile pour écrire des applications basées sur le Web. En d'autres termes, il serait super super-ennuyeux d'écrire un site Web dans le langage C qui nous avons vu auparavant, parce que vous auriez à utiliser print + F, vous auriez à utiliser ce mot-clé «Principal» et les accolades. Beaucoup de syntaxe arcane et l'approche de la mise en œuvre ce qui est assez complexe. Une page web. Et d'autres langues ont évolué de faire ce genre de chose plus facile. Et à son tour, les gens ont mis avec les cadres, sorte d'outils que vous pouvez utiliser que faire encore plus facile à écrire des pages web. Ainsi, par exemple, de faire ce beaucoup plus concret, laissez-moi ouvrir juste un fichier texte pour un moment. Et vous pourriez rappeler hier que nous avons dit quelque chose comme, ceci est une page web. HTML. Fermer HTML. Permettez-moi de sauter la tête et il suffit de faire le corps ici. Supposons que je voulais pas écrire "Bonjour tout le monde," mais «Bonjour David», où David est le nom de l'utilisateur actuellement connecté. Qu'est-ce que quelque chose comme ASP va faire, ou JSP-- qui est le serveur Java pages-- ou un certain nombre d'autres cadres est qu'ils ne sont pas des langues, en soi. Ils sont comme logiciel supplémentaire que vous installerait dans votre environnement qui vient de le rendre plus facile à programmer. Ainsi, par exemple, plutôt que d'avoir à faire quelque chose comme "bonjour, printf (" David ")" ou quelque chose qui est sorte de co-mingling-- le genre de code que nous avons vu before-- vous feriez quelque chose de beaucoup plus simple, comme "name%." Et donc ces cadres, comme ASP-- et je ne me souviens pas si je suis en train de la syntaxe juste pour ASP. JSP est un little-- est ce droit? Donc, avec ASP, cela est une sorte de syntaxe spéciale que certains développeurs ont décidé cela pourrait aider les gens. Et je peux exprimer plus succinctement placeholders, par exemple. Comme mettre une valeur ici, où ce nom de valeur est N-A-M-E, il est une valeur stockée là-dedans. Donc, «nom» dans ce contexte, nous pourrions appeler une variable. Algebra a des variables comme x et y, et z. Les programmeurs utilisent des variables qui sont plus descriptif que x, y et z, typiquement. Donc, "name" serait littéralement une sorte du conteneur de mémoire pour quelque chose comme D-A-V-I-D, pour mon nom, ou celui qui d'autre est connecté sur le site. Et ceci est le genre de commodité vous obtenez avec certains environnements. Donc, C # et quelque chose comme ASP serait très communément utilisé dans un monde Windows, que ce soit pour son bureau un logiciel ou d'un serveur web, surtout si vos serveurs sont à leur tour exécutant Microsoft Windows et Microsoft IIS-- ou Internet Information Server, si je reçois le sigle droite- qui est le serveur Web de Microsoft. Alors, que d'autres langues sont des gens familiers avec, ou avez-vous entendu parler de le plus souvent? AUDIENCE: Je sais que Python une sorte de populaire [Inaudible]. DAVID J. Malan: Très populaire. Donc Python ici est très souvent utilisé dans les applications ou données scientifiques la science, où vous avez beaucoup des données que vous souhaitez analyser et que vous voulez utiliser un langage de programmation pour elle. R peut souvent être utilisé pour que ainsi, dans un contexte statistique. Mais Python a tellement fonctionnalités intégrées. Donc, beaucoup plus bibliothèques, que les gens disent. Les bibliothèques ne sont que des collections de code d'autres personnes écrit que vous pouvez utiliser pour que vous ne pas avoir à réinventer ces roues. Et Python est très souvent utilisé dans les applications des sciences de données. Mais il est aussi très couramment utilisé dans des applications web. Vous pouvez mettre en œuvre une dynamique site web en utilisant Python. Et par site web dynamique, je teneur moyenne non seulement statique comme nous avons créé hier, par juste coder en dur dans le texte latin et autres choses semblables, mais plutôt la capacité connecter, la possibilité d'acheter quelque chose, la possibilité de consulter avec vos chariots, ou analogues. Tout cela exige le dynamisme et vous besoin d'une langue comme l'un de ceux-ci. AUDIENCE: Donc, ne Python son propre extension, semblable à aimer [Inaudible] DAVID J. Malan: Oui. Ainsi, dans le monde de Python, Django est un cadre très populaire pour Python. WSGI est un autre mécanisme qui est sorte de différent de ce mais dans le même esprit. Il est un add-on qui vous permet pour exécuter du code Python sur un serveur. Il y a other-- oui. ceux-ci, nous allons donc appeler des cadres. Et il est un peu d'un abus. Ceci est plus d'une technologie de serveur Web. Mais nous allons garder les choses simples et mettre dans cette colonne quand même. D'ACCORD. WSGI. WSGI. Un autre chose-- et effectivement, laissez me propose que de sa propre colonne, parce que je voudrais crier à moi-même pour les mettre dans le même seau. Mettons cela en serveur caractéristiques, disons. Ce n'est pas un terme technique. Donc, ici, nous pourrions être WSGI. Il y a CGI, qui est un ancien technique pour servir des langues comme Perl ou PHP, ou quelques autres. Encore une fois, je l'ai mentionné ces termes non pas tant pour en quelque sorte les ingrain, mais de telle sorte que si vous voyez eux, il est quelque chose vous google simplement pour en savoir plus. Il n'y a pas de vrai jus à certaines de ces choses. Mais revenons aux langues. Nous avons parlé de C #, Python. Que pourriez-vous utiliser pour la programmation de ces jours web? Concentrons-nous sur ce toujours. AUDIENCE: PHP. DAVID J. Malan: PHP. Et revenons à cette question. Donc, PHP est très couramment utilisé. PHP a tendance à avoir une mauvaise réputation. Il a commencé comme une langue mise en œuvre par des gens qui peut-être ne sont pas nécessairement les meilleurs designers de langue. Et donc vous pouvez lire toutes sortes de articles en ligne sur la façon mauvaise PHP est. Et malheureusement, cela est une manifestation, en partie, de seulement les débats religieux qui éclatent parmi les programmeurs. Et ceci est quelque chose convient de garder à l'esprit, à partir d'un point de vue commercial, que il est très facile pour les personnes techniques pour obtenir tous travaillé avec leur avis sur certaines choses. Et cela ne signifie pas nécessairement que celui de crier le plus fort ou avec le plus fort, opinion Angriest est juste. Un grand nombre de fois, il a vraiment juste n'a pas d'importance. Et pour que les gens sont tout simplement en faisant valoir quelque leurs propres préjugés ou zones de confort sont. Et vous devez garder cela à l'esprit lors de la prise une décision, qui vient parce que quelqu'un dit c'est la bonne langue pour le travail, qui est peut-être vrai, mais aussi pourrait bien que ce soit est le langue de droite au sein de leur propre compétence définir ou zone de confort. Ce qui est pas mal, mais vous devez réaliser qu'il pourrait y avoir un certain contexte là. Il y en a objectivement mauvaises déclarations, comme C est la mauvaise langue à utiliser ces jours-ci pour la mise en œuvre des sites Web presque toujours. Mais il est pas déraisonnable de dire que l'un de ces ont tort que nous avons encerclé jusqu'à présent. PHP est passé par de nombreuses versions. Donc langues ont tendance à avoir la version les numéros qui leur sont associés. PHP est à, je pense, la version 7 maintenant, de sorte qu'il a été autour depuis un certain temps. Et comme langues deviennent plus récente, ils obtiennent souvent de nouvelles fonctionnalités. Mais vous devez être conscient de ce parce que si votre site a été mis en œuvre dans la version 7 de PHP, mais vous essayez de lancer votre site Web, ou peut-être que vous avez externalisé le développement de votre code à quelqu'un d'autre et ils courrier à vous ou vous l'envoyer et ils disent, ici, mis cela sur votre serveur web, si votre serveur web est à quelques années outdated-- que ce soit votre propre serveur ou un host-- web il pourrait ne pas réellement fonctionner. Donc, ce sont les types des choses que quelqu'un doit être conscient de lors de la mise d'un site ou mise en oeuvre pour la première fois. J'ai entendu JavaScript plus tôt. Donc, JavaScript est un intéressant en ce sens qu'elle est globalement côté client, comme nous le verrons après la pause, ce qui signifie qu'il fonctionne dans le navigateur de l'utilisateur. Mais vous pouvez également exécuter JavaScript ces jours en utilisant ce qu'on appelle Node.js, où Node.js est un mécanisme pour la course code JavaScript côté serveur, au lieu d'utiliser Python, ou PHP, ou d'autres langues. JavaScript est particulièrement bien adapté pour les applications de chat et en temps réel applications, alors que PHP est pas un grand langue pour mettre en oeuvre quelque chose comme un serveur de chat, où les utilisateurs rester connecté à constamment. PHP est plus d'une visite me une fois, revenir à la suite, puis cliquez sur un autre lien certains secondes ou minutes à partir de maintenant. Considérant que Node.js et JavaScript peut être utilisé plus pour les connexions persistantes. D'autres langues que vous soupçonnez sont couramment utilisés pour le web des trucs? AUDIENCE: Est-ce que jQuery un cadre? DAVID J. Malan: Bonne question. Ni. Je dirais jQuery une bibliothèque, où à nouveau une bibliothèque est juste un tas de code que quelqu'un d'autre a écrite globalement permet de résoudre certains problèmes en fait, nous l'espérons, plus facile pour vous de faire votre travail. Et laissez-moi faire un exemple de dans le contexte de la nappe. Dans le contexte de la bande, il y a cette langue, JavaScript, que nous le verrons plus loin, par lequel vous pourrait dire quelque chose comme this-- "Document.getElementById." Et qu'est-ce que je l'appelle hier? Premièrement, je pense, était l'ID unique j'ai donné à un élément qui ressemblait à ceci. "P id =" first ">" et puis nous avons eu comme "lorem ipsum," et cetera. Donc, si je devais écrire un programme JavaScript afin de manipuler en quelque sorte, modifier les pages Web que nous jouaient hier, Je voudrais utiliser cette ligne en surbrillance code pour obtenir cet extrait particulier de HTML de ma page, ce noeud particulier, comme nous allons l'appeler. Cependant, dans jQuery, au lieu d'écrire ce qui est cru code-- JavaScript juste hors de la boîte, voilà comment vous écrire it-- vous place juste dire, "#premier." C'est équivalent. Et donc basée uniquement sur ce même exemple arcane, ce qui peut-être est l'argument pour l'utilisation de jQuery? Pourquoi un développeur utilisera une bibliothèque comme jQuery, sur la base de cet exemple isolé, peut-être? AUDIENCE: Moins de code. DAVID J. Malan: Oui. Il est moins de code. Il est juste plus rapide à taper. Le contrepoint est qu'il semble effrayant. Vous ne pouvez pas vraiment lire de gauche à droite. En fait, parce qu'il est surtout ponctuation maintenant au lieu de réels mots, Je peux sorte de déduire que "Document.getElementById" obtient un élément du document par son identifiant. Je ne peux vraiment pas utiliser de tels mnémoniques de cette chose ici. Il est donc un compromis. Il y a une sophistication qui vient souvent avec l'aide des bibliothèques, en particulier comme jQuery. Mais la réalité est jQuery a en quelque sorte de devenir un standard de facto, de telle sorte que presque tout le monde ces jours qui écrivent du code JavaScript utilise jQuery ou quelque chose comme elle, et écrit plus une telle expressions verbeuses que cela, car encore une fois, l'humanité a appris, wow, qui était sorte d'une occasion manquée pour rendre notre vie plus facile. Ainsi, les humains font leur vie plus facile. Bonne question. Autres langues à prendre en compte. Je dirais que parmi ce Liste Ruby est très populaire. Et dans le monde de Ruby, il y a un cadre appelés Rails, ce qui est très populaire. Donc, Ruby on Rails est un couramment utilisé expression. Aussi dans ce monde, laissez-moi cercle Java pour le web stuff, où dans le monde de Java vous pourriez avoir JSP, ou Java Servlets, qui est une technologie commune. Et ceci est seulement encore des façons d'utiliser cette langue dans un environnement de serveur. Qu'est-ce que cela signifie? Si vous avez un physique serveur, vous le feriez littéralement télécharger le logiciel de serveur Web et l'installer de manière que vous avez le soutien de l'un des ces cadres, avec lequel vous pourrait, à son tour, utiliser un ou plusieurs de ces langues. Et en réalité, si vous vous inscrivez comme un hébergeur ou une partie du nuage services dont nous avons parlé hier, souvent l'étoffe vient juste avec le la configuration de la machine pour vous. Vous n'êtes pas obligé de le mettre en place manuellement. Mais si vous avez fait, c'est là le rôle d'administrateur système, pour ainsi dire, entre en jeu. Il ou elle serait réellement faire ce genre de choses pour vous, ou le webmaster soi-disant serait souvent le faire pour vous. D'accord. Une question sur certains d'entre eux ici? Ou toutes les opportunités à tous poser des questions sur les langues? Cadres? Alors permettez-moi de vous présenter juste une autre bibliothèque qui est aussi très courante de nos jours. Cette liste pourrait continuer indéfiniment. Et cette bibliothèque est une sorte de en commençant à tomber en disgrâce. Il a été autour. Il a été popularisé par Twitter pendant un certain temps. Et maintenant beaucoup de sites Web, beaucoup de développeurs utilisent. Mais de nouvelles choses sont à venir sortir et venir le long. Mais permettez-moi de vous donner un sens de ce que cela signifie d'utiliser une bibliothèque. Donc, encore une fois, JavaScript est une langue très populaire. CSS ou Cascading Style Sheets, nous avons parlé hier. Cela aussi est omniprésent. Personne ne fait une page Web aujourd'hui sans utiliser HTML et CSS minimum. Mais il est pas toujours facile de faire certaines choses. Et laissez-moi aller à getbootstrap.com. Whoops. Cela ne veut pas comment nous épeler. Getbootstrap.com, qui va me conduire à la page de destination pour cette bibliothèque. Ils appellent généreusement eux-mêmes un cadre, qui est une sorte de genre de foire, mais je voudrais encore appeler plus d'une bibliothèque d'un cadre. Mais ce sont la sémantique juste défendable. Laissez-moi aller à leur onglet CSS et laissez-moi aller à quelque chose comme ça. Alors rappellent ce que nos formes avaient l'air comme hier sur Cloud9? Il était assez laid. Vieux boutons scolaires. Je pense que le bouton était gris par défaut. Et tout était vraiment formaté assez messily. Donc, si vous voulez que vos formulaires Web à regarder un petit nicer-- permettez-moi de zoom ici. Et plus agréable je vraiment juste signifie l'esthétique très nitpicky. Donc, remarquez comment la boîte de courrier électronique, il a un des coins rectangulaires arrondis à lui. Il est donc un peu plus propre là. Notez que le mot email est là jusqu'à ce que je commence à taper puis elle disparaît. Voilà donc une belle petite fonctionnalité. Remarquez comment la chose est une sorte de incandescent bien, que certains de ce que vous obtenir gratuitement à partir de votre navigateur, mais certains de cela est aussi des bibliothèques, Code que d'autres personnes ont écrit que vous cela donne. Quelque chose comme ça me donne mon mot de passe. Ce bouton est un peu plus sexy que la défaut. Très en vogue en ce moment. Depuis iOS 7 ou plus, la monde a obtenu très plat, alors que le monde avant avait beaucoup d'ombres portées, beaucoup des réflexions sur les icônes. Tout comme dans le monde de l'habillement, il y a des tendances de la mode qui vont et viennent. Maintenant, tout est à plat sur votre téléphone. En fait, les boutons sur votre iPhone sont maintenant simplement des liens bleus. Il n'y a pas souvent même des boutons circulaires. Donc, ce ne sont que des choses qui entrent et sortent de la mode, et donc voici comment vous pourriez faire une forme plus moderne de la recherche web. Boutons. Alors Bootstrap a beaucoup de jolis boutons. Donc, si vous voulez boutons bleus, boutons verts, bleu, orange, rouge. Bootstrap facilite de faire ces choses. Ce sont le genre de choses que vous pourriez absolument ont fait hier avec CSS et HTML, mais il est juste une douleur dans le cou. Et à la place, ce serait Bootstrap avez-vous est quelque chose comme ça. Si vous voulez un button-- tourne cette est une balise HTML que nous n'avons pas utilisé yesterday-- et vous voulez qu'il regarde comme ce bouton vert, vous littéralement juste lui donner une classe, dont nous avons parlé hier, des "btn btn-succès." Pourquoi ces mots? Twitter, les auteurs de Bootstrap, est venu avec ces mots. Ils auraient pu appelé leur tout ce qu'ils veulent. Mais ce que vous obtenez est maintenant quelqu'un d'autre sur Twitter, dans ce cas, a compris comment faites-vous une bouton air agréable et propre et vert. Ils emballés jusqu'à ce que la fonctionnalité dans une classe CSS, appelé "btn" et "btn-succès», de sorte que chacun de nous peut maintenant l'utiliser sans même y penser il. Donc, ils ont soustrait l'écart la notion d'un bouton vert de sorte que nous ne disposons pas de se soucier la mise en œuvre nous-mêmes. Nous pouvons effectivement mettre l'accent sur la mise en œuvre les choses qui nous intéressent. Si nous faisons défiler ici. Messages d'erreur à l'écran. Parfois, vous voulez un petit message à apparaître sur le haut du navigateur. Chacun d'entre nous peut le faire avec une certaine effort, après la leçon d'hier, mais pourquoi prendre la peine? Voilà une telle inintéressante détail esthétique. Levons-nous sur la épaules de Bootstrap et qu'on nous donne des choses comme ça, où nous avons littéralement, d'obtenir une boîte rouge, suffit de faire un paragraphe tag avec une classe de-- désolé. "Bg-danger» nous donnerait cette boîte de rouge à la place. Maintenant, nous allons aller à la des choses plus intéressantes. Si je devais revenir en haut de cette page et aller à des composants, maintenant le monde devient plus intéressant. Par exemple, est très commun menus déroulants comme celui-ci. Ce serait une absolue douleur à mettre en œuvre. Et il n'y a pas si longtemps Il y a que nous programmeurs aurait à mettre en œuvre ces sortes de menus à partir de zéro. Mais il est un paradigme commun que les bibliothèques comme Bootstrap vous donner la possibilité de faire un menu déroulant loin, beaucoup plus facilement. Il n'y a pas une façon de le faire, mais si je lis la documentation Je voyais que, OK, je devrais utiliser ce HTML si je veux un menu déroulant qui se comporte comme ça. De même, nous allons aller à bouton déroulant. Donc, ce qui est encore plus fantaisistes. Si je veux que cela ressemble à un bouton mais cela signifie que petit triangle Je clique dessus et obtenir ce menu, cette est en utilisant un langage appelé JavaScript. Et nous pourrions tous mettre en œuvre ceci en JavaScript. Mais encore une fois, ceci est une roue vous ne voulez pas à réinventer. Vous voulez juste de l'enlever la bibliothèque étagère pour cela. Allons à quelque chose comme les barres de progression. Donc, quelque chose comme ça est plutôt cool. Si vous avez déjà vu un progrès barre se déplaçant à travers l'écran, la mise en œuvre qui, souvent, est juste une icône de filature. En fait, tout comme un côté, laissez moi aller à Ajax-- quel est-il? Ajax infos? Whoops. Ajaxinfo. Permettez-moi de me souviens de l'adresse. Nous y voilà. Donc, si vous avez déjà vu une animation tandis que le chargement, ou de penser, ou de sauvegarder ou de créer quelque chose, vous pourraient voir ces animations que celles-ci. Alors regardons quelque chose comme celui-ci ici, et nous allons choisir une couleur de premier plan vert, qui se sent sorte de sympathique. Puis-je cliquer sur ce? Venez un. D'ACCORD. Nous allons simplement aller avec le rouge parce qui est ce que nous obtenons. Donc, ici, nous l'avons. Donc, si vous avez jamais vu cela sur un écran, de sorte que tout d'un coup, il apparaît alors disparaît tout à coup, ce qui est il est que la mise en œuvre qui? Eh bien, ceci est juste un GIF. G-I-F. Et cela est une animation déposer, ce qui signifie simplement il est comme une bande dessinée vieille école. Il y a juste un tas de différents cadres qui vont [BÉGAIEMENT] et juste répéter. Et cela crée la illusion du mouvement. Donc, dès qu'une page est faite chargement ou faire quelque chose, qu'est-ce qu'un programmeur faire? Eh bien, il ou elle se cache juste cette image. Donc une barre de progression est est une sorte d'aimer un film que vous regardez. Vous êtes en quelque sorte inconscients du fait que ça ne fait rien faire, il est juste en mouvement. Et puis, quand il a fait progresser, ils se cachent juste ou l'éteindre. Et voilà toute la magie ce qui se passe là-bas. Bootstrap vous donne quelque chose d'un peu plus fantaisistes, de sorte que vous pouvez réellement voir un pourcentage comme il va, mais il est aussi juste une sorte d'une animation simple. Regardons quelques-uns finale Des exemples plus complexes ici. Quelque chose comme un modal. Est-ce que quelqu'un sait ce qu'est un modal est? Une fenêtre modale est généralement celui qui est censé de prendre le contrôle de premier plan et vous empêcher de faire quoi que ce soit d'autre. Ce genre de force l'utilisateur de attention au milieu de l'écran, les lock-out, en général, de tout le reste. Donc, si je lance cette démo, le écran deviendra généralement gris. Eh bien, comment pouvons-nous le faisons gris? Eh bien, nous avons probablement juste changer la couleur de fond comme nous l'avons fait hier ou quelque chose comme ça. Peut-être est une superposition que semi-transparent. Et maintenant, remarquez que vous pouvez faire choses de fantaisie aiment. Donc si jamais vous cliquez sur un bouton et que vous voulez un peu de pop out à apparaître, vous pouvez le faire. Et qui se soucie de tous-- ouais? AUDIENCE: Donc, avec Bootstrap, pour l'obtenir incorporé, est aussi simple que comme hier nous avons fait la page des styles CSS? DAVID J. Malan: En effet. Très bonne question. Laissez-moi aller Mise en route. Et oui. Tout ce que vous avez à faire pour utilisation Bootstrap est essentiellement copier et coller ces trois longues lignes de code dans le haut de votre propre page-- web la tête de votre page-- et vous êtes opérationnel. Et il y a différentes façons de faire , mais ce serait la plus simple. Donc, ce qui est utile à propos de tout cela? Eh bien, si vous n'êtes pas tellement l'implémenteur d'un site Web mais vous essayez de concevoir, ou si vous voulez fournir à quelqu'un avec des diagrammes de fil de fer, pour ainsi dire, ou de restitutions simplement artiste de ce vous voulez faire, je, à ce jour, sera souvent aller à un site comme Bootstrap, où, si je veulent mettre en œuvre quelque chose-- comme récemment sur le campus nous avons voulu mettre en œuvre un outil basé sur le Web pour la navigation Le catalogue de cours de Harvard, ce qui rend plus facile pour les étudiants pour parcourir les cours et ajouter des cours à liste d'achats, pour ainsi dire, au genre de décider ce ils voulaient prendre. Je cherchais à imaginer moi-même, ce qui serait des ingrédients nous voulons utiliser pour construire ce? Qu'est-ce que l'interface utilisateur serait comme? Et en regardant à travers un site comme ce ou d'autres sites de bibliothèques, vous pouvez gagner l'inspiration, parce que wow, Je peux utiliser ce widget, et ce widget, et ce widget. Et puis vraiment ce le programmateur commence à faire, surtout en ces jours dans cette monde plus moderne de la programmation web, ce que la programmation est de plus en plus sur le câblage des choses ensemble. Sorte de prendre ce sur l'étagère, cette large du plateau, ce large du plateau, et vous étant une puce pour connecter tous ces points, mais finalement construire quelque chose de nouveau debout sur les épaules des autres, de sorte que vous ne passez pas un mois la mise en œuvre d'une chute stupide menu déroulant, qui est en fait difficile à faire si vous voulez que cela fonctionne sur Chrome, et IE et Firefox, et tout nombre d'autres navigateurs. Ceci est la raison pour laquelle il est aussi riche logiciel commerciaux et open source industrie. AUDIENCE: Donc ne Bootstrap se mis à jour et vous devez mettre à jour alors vos liens? DAVID J. Malan: Oui. Eh bien, oui, il le fait. Bootstrap est actuellement à la version 3.3.6. Et généralement ce que vous do-- c'est en fait digne de mention. Il est ce qui est généralement connu comme un versioning sémantique système dans le monde. Pas tout le monde fait cela. Mais si vous avez vu les numéros de version qui sont de la forme x.y.z-- Ainsi, par exemple, la première version d'un programme pourrait être 1.0.0. Ou si elle est très, très bêta ou même statut alpha, ce qui signifie que l'utilisation à vos propres risques, ce n'est pas vraiment prêt pour prime time, vous pourriez même commencer 0.0.1 ou une telle désignation. Mais si le logiciel commence à la version 1,0, ou de façon équivalente 1.0.0, généralement, ce qui est commun ces days-- mais pas omnipresent-- est si une entreprise ou un corrections de programmeur individuels un bug dans certaines pièces des logiciels qui ont vraiment était un bug, dont la correction ne devrait pas vous impact au tous-- il ne change pas Le comportement du programme, elle fixe juste quelque chose qui ne fonctionnait pas properly-- vous le feriez normalement mettre à jour la valeur de z là. Ce qui signifie que quelqu'un comme Kareem pourrait tout simplement aller dans son site Web, aveuglément changer le numéro de version de 1.0.0 à 1.0.1, l'enregistrer, l'expédier, et, en théorie, sans avoir à vous inquiétez qu'il est juste cassé son site en raison de un certain manque de fonctionnalité, parce que quelque chose a cassé. Pendant ce temps, si je le programmeur ou d'une entreprise étaient de faire un peu significative changement qui ajoute des fonctionnalités, Je pourrais nous mettre à jour 1.1.0 parce que je suis en fait modifier le comportement de la bibliothèque. Je vous donne peut-être plus de fonctionnalités. Enfin, si je devais effectivement changer fondamentalement le logiciel afin bien qu'il va briser beaucoup sites Web ou applications utilisateurs, alors je suis obligé, dans ce modèle, à mettre à jour le numéro de version majeure aussi, ce qui est un changement de rupture. En d'autres termes, je pourrais avoir le support pour ceux qui baisse menu déroulant. Donc, si vous passez à 2.0, la moitié votre site Web peut cesser de fonctionner. Et cela est en quelque sorte un signal à la communauté pour ce qui est impliqué dans la fabrication d'une mise à niveau. Une bonne occasion de soulever. D'autres questions? D'accord. Eh bien, nous allons jeter un oeil à une dernière sujet dans ce segment de la programmation des piles de la technologie, à savoir concernant mobile. Ainsi, dans le monde des téléphones portables aujourd'hui vous have-- et iPads, et des surfaces, et toutes ces sortes de devices-- vous avez beaucoup de choix quand il vient à la mise en œuvre une application ou un site Web pour les appareils mobiles de vos clients. Il suffit donc d'indiquer le évidentes, peut-être ces jours-ci, quelles sont les plates-formes à développer dans l'espace mobile? Quels appareils peut-être vous voulez soutenir avec votre application ou site web? AUDIENCE: Apple. DAVID J. Malan: OK. Ainsi les appareils Apple. Cela signifie donc que l'iPhone, et que signifie iPad, et peut-être même iPod. Quoi d'autre? Olivier? AUDIENCE: Android. DAVID J. Malan: Android. D'ACCORD. téléphones Donc Android, Android comprimés, le marché Android est encore messier because-- et même Apple est de plus en désordre. Considérant que, une fois iPhone était une certaine taille, et iPad était une certaine taille, et l'iPod était une certaine taille, maintenant nous avons iPad Minis, et la mince ceux, et l'iPhone 6 Plus et 6. Il devient un gâchis. Il devient le monde Android. Et je le dis avec sorte de laminage mes yeux parce que de ce développeur point de vue, il est douleur dans le cou quand vous ne disposez pas de Steve Jobs ' vision du contrôle absolu sur l'ensemble de ces spécifications. Apple fait encore parce qu'ils sont ceux de construction du matériel. Mais il est une bonne chose, si Je suis un développeur de logiciels, savoir juste que mon iPhone va toujours être ce grand parce cela signifie que je sais toujours combien écran de l'immobilier dont je dispose. Donc, si je veux mettre une icône dans le coin supérieur gauche, ça va être exactement la même placer sur l'appareil de chaque client. Mais dans le monde de l'iPhone 6s et iPhone 6 Pluses et dans le monde d'Android téléphones, il est partout sur la carte. Et il est donc plus difficile à programmer les choses, en particulier des interfaces utilisateur, parce que maintenant vous devez commencer à organiser vos interfaces relativement, pas l'utilisateur absolument. Et la même chose a été vrai sur les navigateurs, et les ordinateurs de bureau et ordinateurs portables pour les années parce que vous, bien sûr, ont différentes tailles d'écran. Quoi d'autre? Vous pourriez avoir des surfaces, comme à partir de Microsoft. Vous pourriez avoir-- AUDIENCE: Windows phone. DAVID J. Malan: Qu'est-ce que? AUDIENCE: Windows phone. DAVID J. Malan: Oui. Donc, les téléphones Windows peuvent encore être trouvés. Type de genre de BlackBerry, mais ils continuent à essayer. Et puis grappes d'autres dispositifs. Donc, pour la plupart, nous allons dire que ce sont ceux de se soucier pour le moment. Certes, les choses Apple, certainement l'étoffe Android, et parmi Windows, comme des comprimés de surface semble être sur la capture assez bien. Et parmi ces dispositifs, si vous voulez déployer, disons, une présence mobile pour votre entreprise, quels types de décisions de conception avez-vous à faire? Eh bien, nous avons déjà dit dans le monde Apple, il y a au moins deux langues qui sont généralement utilisés. On a été appelé quoi? AUDIENCE: Objective-C. DAVID J. Malan: Oui. Donc, Objective-C, ce qui est le plus ancien. Il est aussi la langue que beaucoup Mac applications sont toujours écrites dans. Ensuite, l'autre plus récente était? AUDIENCE: Swift. DAVID J. Malan: Swift. Et ce sont le genre de deux à savoir pour impressionner les gens. Ensuite, dans le monde Android, quelle langue utiliser Android? AUDIENCE: C #? AUDIENCE: Java. DAVID J. Malan: Java est la langue de "du jour." Dans le monde Windows, bien sûr, nous dirons C # dans ce cas. Donc, déjà présent est une sorte de ennuyeux, parce que ce qui est les plats à emporter pour une entreprise propriétaire ou quelqu'un qui vient veut déployer une présence mobile? Comme, bon sang? Comme, si je veux soutenir une base d'utilisateurs assez large, Je dois écrire, il semblerait, trois demandes distinctes. Un dans une de ces langues, un en Java, un en C #. Et même si je veux la fonctionnalité être identiques, il n'a pas d'importance. Je dois encore utiliser différents langues parce que Apple et Microsoft, et Google tout le soutien environnements différents. Et cela a été un défi pour les années. Retour dans la journée, lorsque les gens utilisés pour acheter des logiciels dans un magasin informatique rétractable boîtes enveloppées, vous devez soit atteindre le plateau Mac, ou pour-- peut-être ce très petit Mac shelf-- ou de la plus grande cote de Windows et acheter certains logiciels. Et très souvent, il n'y avait même pas quoi que ce soit pour vous sur le plateau Mac. Pourquoi? Eh bien, les entreprises ont décidé si 90% du monde, 95% du monde a PC, pourquoi tracassent même la mise en œuvre des choses sur Mac OS? Comme aside-- un total digression-- pourquoi est-il que Mac semble donc imperméable aux virus, et les vers, et les menaces de sécurité? Apple est mieux à ce? Mieux à garder les ordinateurs sécurisés? AUDIENCE: Smaller public? DAVID J. Malan: C'est probablement le plus grand peu à elle. Ainsi, les nombreux utilisateurs de Mac ont longtemps réclamé, oh, utilisez un Mac, vous serez immunisé contre les virus, et les vers et toutes ces choses qui ont longtemps souffert des PC. Cela pourrait être parce que Apple a de meilleurs programmeurs et ils écrivent de meilleurs logiciels, ou système d'exploitation a été mieux conçu. Peut-être, mais probablement pas. Il est probablement que lorsque vous êtes 12 ans, ou 30 quelque chose sorte d'assise à l'écriture de la maison logiciels malveillants de prendre en charge le monde, vous allez aller après beaucoup plus grand public cible. Les 95% du monde qui pourrait exécuter Windows ou d'un des variants de ceux-ci. Donc, il y a un peu des deux côtés. Mais à leur crédit, Apple, à ma connaissance, n'a pas vraiment se vanté comme étant plus sûr, puisque vous êtes juste en invitant le drame si vous faites cette demande, je pense. D'accord. Sans aller trop loin vers le bas que, comment pouvons-nous résoudre ce problème? Avez-vous d'acheter ou vous devez payer trois personnes différentes pour développer vos applications? Êtes-vous en choisir un sur l'autre? Ce qui devrait guider votre pense ici pensez-vous? Kareem? Nan. Quelqu'un d'autre. AUDIENCE: Il suffit de venir avec le matériel. DAVID J. Malan: Venez avec le matériel? Que voulez-vous dire? AUDIENCE: Pour la Environnement. [INAUDIBLE] DAVID J. Malan: Donc, ce qui est vrai. Mais vos clients, quant à lui, pourrait avoir iPhones, ils pourraient avoir des téléphones Android, ils pourrait avoir des comprimés pris par Microsoft. Alors, comment avez-vous une stratégie mobile pour l'ensemble de ces différents utilisateurs? Il semblerait que si cela coûte, disons 1000 $ pour faire un iPhone application, il va vous coûter 2000 $ pour faire une application iPhone et une application Android, ou 3000 $ pour soutenir également les périphériques Windows ainsi. C'est probablement tout à fait une euphémisme, et il pourrait même pas être une relation linéaire comme ça. AUDIENCE: Si vous voulez avoir une application ou pas, vous pouvez avoir le site réactif. DAVID J. Malan: Good. AUDIENCE: Ou vous pouvez avoir une application native. DAVID J. Malan: Oui. Donc, dans l'ensemble ce contexte ici, nous avons parlé de ce que les gens appellent des applications natives. Voilà les applications qui sont écrites dans la langue maternelle de ce dispositif. Donc, natif Objective-C ou Swift code, ou en Java ou en C #. Ce qui signifie que lorsque vous téléchargez, nous allons dire Snapchat, une application populaire, ou lorsque vous téléchargez Facebook pour un téléphone, vous téléchargez soit le version écrite pour votre iPhone, ou écrit pour votre téléphone Android, ou par écrit pour votre surface. Mais il existe une alternative. Comme Olivier faisait allusion, vous pouvez réellement utiliser HTML 5 à la place, en utilisant ce qu'on appelle un web l'application, de sorte que vous avez simplement mettre en œuvre votre présence mobile et aucune fonctionnalité. Qu'est-ce que je veux dire par la présence mobile? Comme votre site Web qui a votre informations de contact, une liste de tous vos produits, peut-être qu'il a un centre commercial panier, peut-être que vous vendez des choses à travers elle. Quelle que soit votre application est, vous mettre en œuvre, et non pas en Objective-C, ou Swift, ou Java ou C #, mais en HTML 5, qui était la langue, nous avons examiné à hier, avec JavaScript et CSS. Et ce qui est agréable au sujet de ceux trois est que pour les faire fonctionner, vous devez juste ce morceau de logiciel? AUDIENCE: Un navigateur web. DAVID J. Malan: Un navigateur web. Et le meilleur, je sais, tous ces appareils sont livrés avec des navigateurs Web, si l'utilisateur n'a pas à installer quelque chose de spécial. Ainsi, vous pouvez simplement dire à votre public, vos clients, aller à acme.com dans votre navigateur et vous aurez juste avoir une expérience basée sur le Web qui remplit encore l'écran, mais vous ne devez pas vous soucier de tous ces coûts et toute cette complexité. Mais sûrement il va être un hic ici, non? Surtout si je signale qu'il ya quelques années, la première version de application mobile de Facebook était la plupart du temps une application HTML 5. Et ils ont, plus récemment, il réimplémenté dans les autres applications. Alors, pourquoi voulez-vous pas immédiatement envie de dire, bien, évidemment, nous allons faire cela? Quelles pourraient être les coûts cachés? AUDIENCE: Performance. DAVID J. Malan: Performance? Qu'est-ce que vous voulez dire? AUDIENCE: L'application native a plus de performance. DAVID J. Malan: Alors qui est vrai, pour un couple de raisons. Nous pouvons schématiser la réponse. Et rappeler notre discussion sur interprété par rapport à des langages compilés. Ceci est HTML 5 et avec elle, juste pour être clair, JavaScript-- couramment écrit JS-- et CSS sont tous langages interprétés, même si seulement JavaScript est un langage de programmation. Et par rapport à ceux-ci, que certains d'entre eux sont compilées, au moins ces three-- Objective-C, Java et C # - ceux-ci, en théorie, devrait juste être plus rapide. Mais il y a une autre réalité pour-- AUDIENCE: Fonctionnalités? DAVID J. Malan: Qu'est-ce que? AUDIENCE: Fonctionnalités. DAVID J. Malan: Fonctionnalité? Comment? AUDIENCE: Utilisez l'appareil photo votre téléphone ou quelque chose. Vous pouvez les utiliser avec le navigateur. DAVID J. Malan: Exactement. Ils sec-- AUDIENCE: [Inaudible] DAVID J. Malan: C'est un autre bon. Il y a des fonctionnalités qui viennent avec les téléphones mobiles d'aujourd'hui qui ne sont pas, par la conception, de la sécurité raisons, accessibles aux navigateurs Web. Parce que ce serait un peu une chose si effrayant juste au moment où vous visitez google.com, ou cnn.com, ou tout website.com, que ce site a le pouvoir de transformer sur votre appareil photo, prendre une photo de vous, et ensuite l'utiliser. Mais vous ne voulez pas un site aléatoire que vous visitez pour la première fois d'avoir cette capacité. Et donc ce téléphone les fabricants font généralement est qu'ils viennent de refuser l'accès à ce genre d'information à un navigateur, ce qui veut dire que vous ne peut pas mettre en œuvre la caméra. Vous ne pouvez pas implémenter les notifications push, les bips que vous obtenez sur votre écran avec des messages courts. Et en fait, même GPS est seul type de sorte à la disposition des navigateurs Web. Si vous avez déjà, sur un ordinateur portable ou sur un appareil mobile, tiré vers le haut quelque chose comme peut-être CNN.com, mais aussi de nouvelles stations locales ont tendance à le faire, vous êtes invité souvent avec un Message-- foxnews.com veut connaître votre position. Approuver ou refuser. Eh bien, le navigateur tente d'accéder vos informations GPS de votre téléphone. Mais heureusement, Microsoft, et Apple et Google ont décidé que se sent comme il est une situation utile, nous voulons Google Maps et d'autres outils pour travailler, mais nous ne voulons pas ramper gens simplement en permettant à tout site Web pour ce faire. Le genre de So let de rencontre à mi-chemin et invite l'utilisateur. Mais ce n'est pas nécessairement le cas avec tout le matériel, comme la caméra et avec push notifications et autres, de sorte que vous pourriez avoir à sacrifier certaines fonctionnalités. Mais la performance aussi. Il devient moins perceptible de nos jours, peut-être LTE et plus rapide sur les captures la vitesse d'Internet sur les téléphones, mais vous pouvez sorte de sentir la différence. Comme une application basée sur le Web se sent juste plus lent, généralement, d'une application native, en partie car une application basée sur le Web est, par définition, sur l'Internet. Il parle aux serveurs sur le web. Et si votre connexion réseau est lent, même le défilement peut être lente. Mais une application native, vous avez déjà pré-downloaded-- probablement quand vous étiez à la maison à partir de l'App Store, ou vous au moins pré-téléchargé dans son intégralité plus tôt, quel que soit votre vitesse de connexion-- et maintenant vous avez toutes les les bits que vous avez besoin en général. Sauf peut-être quelques données qui vient d'un serveur. Donc, ce sont des compromis ici. Il y a une sorte de milieu compromis, en fait. Et je pense que vous-- AUDIENCE: Utilisez les données hors ligne. Dans les applications natives, vous pouvez [Inaudible] DAVID J. Malan: Absolument. Donc, il y a la question de ligne, qui est vraiment ennuyeux si vous ne pouvez pas jouer à un jeu ou à l'utilisation certains logiciels juste parce que vous êtes dans un sous-sol quelque part ou dans un ascenseur. Une application native est élastique avec une probabilité plus élevée contre cela, en supposant que vous avez toutes les les données dont vous avez besoin localement. Donc, il y a une troisième option ici. Et nous allons dessiner le spectre application native ici et application web ici. Et ce qui est dans le milieu est quelque chose called-- et je pense que vous pourriez avoir utilisé le mot avant, peut-être? l'application hybride. Et comme le mot l'indique, il est quelque chose au milieu. Il est en quelque sorte une application web et il est en quelque sorte une application native. Et qu'est-ce que cela signifie? Il se trouve il y a frameworks-- pour utiliser un terme de logiciel heure, à savoir que d'autres personnes ont écrit pour chacun de ces plates-formes. Ces encore et d'autres dispositifs. En fait, laissez-moi aller à PhoneGap, qui est l'un tel cadre que je croire Adobe est maintenant propriétaire. Laissez-moi aller Mise en route. Voyons voir. Voir si je peux voir une liste d'outils. Matériel. Commencer. matériel PhoneGap. Voyons voir. l'accès au matériel PhoneGap. Permettez-moi de voir si nous pouvons trouver un peu chart qu'ils l'habitude d'avoir. Ceci est sur un autre site. Est-ce utile? Non. Ça va perdre notre temps là-bas. matériel PhoneGap. Dispositifs. API de périphérique. Non, ils ont déménagé il. PhoneGap. Allons un dernier regard sur cette et voir si je peux vous montrer. Commencer. Installez PhoneGap. Installez l'application mobile. Allons. Ils ont tout réorganisés. D'accord. Ah très bien. Eh bien, nous y voilà. Ce ne sont pas tout ce qui instructif, mais ceci est ce que je sorte de recherche. Alors PhoneGap est un cadre que vous peuvent télécharger gratuitement qui vous donne un code de démarrage, essentiellement. Donc un peu de code qu'ils ont écrit qui ne fait pas grand-chose. Mais qu'est-ce qu'il vous donne est essentiellement l'équivalent d'une application qui met juste un grand rectangle sur l'écran de l'utilisateur. Il ne met pas une barre d'URL, comme un navigateur, ne met pas une adresse. Il met juste un grand rectangle. Et vous configurez ce grand rectangle, sous le capot, d'aller effectivement à acme.com, ou peut-être m.acme.com, pour mobile.acme.com, mais l'utilisateur ne sait pas ils sont à cette adresse. Tout ce qu'ils voient est le contenu de la page Web. Mais ce qui est bien sur cet être une application hybride est que ce que PhoneGap et d'autres sociétés donnent vous est ils sont en vous donnant un peu de code de en Objective-C ou Swift, ou un peu de code Java, ou un peu de Code en C #, et essentiellement, tout ce que vous devez fournir est minimale à la adresse de votre application web. Et puis vous regroupez ce tous ensemble et vous avoir non plus accéder à votre site via Internet, ou même de mettre en cache local copier dans l'application, et puis vous enregistrez votre application au format iPhone, téléphone Android le format, le format de surface, ou un nombre quelconque d'autres appareils. Vous téléchargez chacune de ces versions le Play Store de Google, à l'App Store, à la De Windows Store, et ainsi de suite. Et maintenant, vous pouvez avoir tous vos publics télécharger vraiment une application native, mais la plupart du code était écrit par quelqu'un d'autre, mais le contenu de cette application native tous viennent, généralement, votre propre site. Donc, vous continuez à écrire votre site Web en HTML, JavaScript et CSS. Alors pourquoi brouiller ces lignes? Pourquoi avoir une application hybride que ce genre d'origine, mais aussi sorte de web basé? Quel est le point entier de l'ajout de cette complexité? Je veux dire, même encore, seulement à partir en regardant à travers cette page, le Guide de démarrage se sent comme il a un tas d'étapes pour moi à faire avant que je can-- AUDIENCE: Réutilisation? DAVID J. Malan: Réutilisation? Que voulez-vous dire? AUDIENCE: Du code source. Donc, le même code serait exécuté sur toutes les différentes plates-formes. DAVID J. Malan: Oui. AUDIENCE: [Inaudible] DAVID J. Malan: Parfait. Si le temps est serré et si vous ne pas avoir que de nombreux developers-- peut-être vous avez un développeur et il ou elle a certainement ne connaît pas tous ces environments-- certainement pas bien, et peut certainement pas le programme dans les trois simultanément et expédier trois produits le délai imparti pour un, vous pouvez l'avoir ou elle tout construire en HTML et JavaScript et CSS, puis apprendre un peu minuscule peu sur les applications natives, juste assez pour télécharger un cadre comme celui-ci, pour ensuite télécharger votre produit à tous les différents magasins d'applications de sorte que vous avez maintenant une application native. Donc, cela semble être un gagnant-gagnant, mais encore une fois, pour être clair, quelles sont les possibilités les coûts ou les pièges? AUDIENCE: Performance? DAVID J. Malan: Oui. Performance. Il est difficile de décrire verbalement. Donc, si vous venez de prendre sur foi une application mobile, une application web sera effectuer généralement plus lentement. Il peut ne pas sembler tout à fait raison, parce que dans l'iPhone, et dans les téléphones Android, et les périphériques Windows, il y a toujours une sorte de regard par défaut et se sentir à tous les les boutons et les menus. Et les entreprises du web, peuvent essayer de rapprocher ces esthétique avec les bibliothèques comme Bootstrap, mais le user-- un user-- astucieux va savoir que quelque chose est pas tout à fait ici. Et c'est bien, peut-être ce n'est pas une grosse affaire. Mais le problème de performances absolument est une grosse affaire. Les applications natives ont tendance à juste être beaucoup plus réactif et donc mieux. Et donc, qu'est-ce donc peut-être le meilleur des deux mondes? Si vous êtes particulièrement une petite entreprise ou un petit groupe, vous ne disposez pas des ressources de développer une application en parallèle sur les trois plates-formes, et franchement, se sent comme c'est une mauvaise idée de toute façon parce que si vous roulez sur et sur réaliser tous les trois en même temps, nous aurions ajouté quelques fonctionnalités ou fait quelque chose différemment, maintenant vous devez fixer dans trois places, pas un seul. Quel est peut-être optimal stratégie globale ici, si les ressources et le temps sont serrés? AUDIENCE: Just do it sur iOS. DAVID J. Malan: Ce n'est pas déraisonnable. iPhones, au moins dans la États-Unis, sommes super populaire. Android semble avoir encore dominante part de marché, à l'échelle mondiale, dans l'ensemble. Donc, vous n'êtes pas nécessairement représentatifs de la totalité du globe cette semaine. Mais c'est absolument une décision. Je veux dire, sur le campus ici, je penser un nombre atroce ou le pourcentage de premier cycle ont iPhones et les téléphones Android pas. Mais à l'étranger, il est un peu le contraire. Vous décidez donc basé sur votre auditoire. Comment savez-vous ce que votre public a? Eh bien, nous avons appris un truc hier. Vous pourriez leur demander. Si vous avez un auditoire captif vous pouvez leur envoyer un formulaire d'enquête. Ou vous pouvez simplement faire quoi? AUDIENCE: Google Analytics? DAVID J. Malan: Qu'est-ce que? AUDIENCE: Google Analytics. DAVID J. Malan: Google Analytics. Ouais. Ou encore plus genre de technique, juste regarder vos propres serveurs web logs. Parce que ce qui se passe à chaque fois qu'un navigateur, si un ordinateur portable, ordinateur de bureau ou téléphone visiter votre site Web? Ils envoient cet en-tête HTTP qui montre vous ce navigateur et OS qu'ils utilisent. Ainsi, vous pouvez déduire, avec une forte probabilité, ce que votre démographique utilise de cette façon puis ajuster. Donc, supposons que est inacceptable. C'est un peu mauvais pour les affaires, si Les utilisateurs d'Android ne peuvent pas acheter nos widgets. AUDIENCE: Que vous soyez va charger ou non? DAVID J. Malan: Que vous allez faire payer? Alors OK, vous obtenez ce que vous payez. AUDIENCE: Que votre application est va être libre ou si elle est gonna-- DAVID J. Malan: OK. Alors peut-être que vous pourriez récupérer les coûts de cette façon, ou--? AUDIENCE: Je lis une étude, une fois que ladite plus les utilisateurs d'Apple paient pour les applications versus-- DAVID J. Malan: Cela est vrai parce qu'ils sont déjà payer plus pour leurs appareils. Donc pas déraisonnable une hypothèse. AUDIENCE: [Inaudible] DAVID J. Malan: OK. Donc, s'ils sont plus disposés à payer, puis à l'enfer avec les utilisateurs d'Android. Ils ne vont pas nous payer quoi que ce soit de toute façon. Nous pourrions aussi bien concentrer nos priorités, au moins pour les premiers mois ou un an, sur iOS. Totalement raisonnable. Qu'est-ce qu'un plus inclusif stratégie que cela? Maybe-- ce qui est qui? AUDIENCE: [Inaudible] DAVID J. Malan: A plus expensive-- alors peut-être investir davantage in-- aller de l'avant. AUDIENCE: Ouais. Juste un site Web mobile. DAVID J. Malan: Donc, faire un site Web mobile et non même vous soucier de cette complexité. Ou peut-être une stratégie raisonnable, qui, même Facebook a pris, est de commencer avec un hybride application, car il est pas que beaucoup plus difficile à faire que cela. Il suffit de lire certains documentation et comprendre comment pour télécharger des choses à l'App Store. Alors peut-être vous commencez avec ce, de sorte que le premier jour, vous pouvez soutenir tous vos utilisateurs. Et puis, tout comme Facebook et d'autres entreprises ont fait, lorsque vous avez les ressources, vous avez les gens, pourquoi ne pas ré-implémenter juste l'application iOS. Vous avez encore quelque chose pour tout le monde, même si elle est une expérience inférieure peut-être avec l'application hybride. Mais vous pouvez progressivement déployer et remplacer votre court terme mesures des applications hybrides avec vos applications natives. AUDIENCE: Mais avec une application hybride vous auront accès aux fonctionnalités mobiles? DAVID J. Malan: Pas nécessairement. Alors peut-être vous faites une consciente décision dès le début, vous ne pouvez télécharger des photos sur le application iPhone native de Facebook, mais pas sur l'application applications, initialement, par exemple. Et c'est un peu un mensonge parce que applications web ont plus de restrictions que les applications hybrides il se , et si on lit la documentation pour PhoneGap et des choses comme ça, les gens ont trouvé des moyens pour donner des applications web l'accès à la caméra, aussi longtemps que vous utilisez une application hybride. Comment ça marche? Étant donné que l'hybride l'application, par définition, a un peu de code en Objective-C, et Swift, et Java ou en C #, il peut accéder au matériel. Pas nécessairement tout, mais il pourrait très bien être le cas que vous avez un accès suffisant pour obtenir l'appareil photo, même pour les plates-formes Android, pour Ainsi, dans cet exemple artificiel. D'autres questions? D'accord. Pourquoi ne prenons pas notre 15 minutes de pause ici. Nous reprendrons à trois avec une finale regarder la programmation web, bases de données, et Javascript.