DAVID J. MALAN: Also sind wir zurück. So der High-Level Thema im Moment jetzt Stapeln ist die Technologie, die nicht ein besonders technischer Begriff, es ist eher ein Fang alles für jede Anzahl von Kombinationen von Technologien dass Sie vielleicht verwenden, um Probleme zu lösen. Und vielleicht die passende Weise zu starten wäre an Sprachen zu suchen, da Ich halte Rasseln eine ganze Reihe aus und die meisten jeder im Raum hat wahrscheinlich mindestens eine davon gehört. Und so, warum wir nicht versuchen, zu unterscheiden what-- diese Sprachen unterscheiden und sprechen kurz über, wenn Sie es Wählen Sie einen über den anderen, wie sie sind Art grundlegend verschieden, und insbesondere wenn Sie mit den Ingenieuren chatten, oder versuchen, wem zu entscheiden, zu mieten, oder welche Implementierung Vorschlag grünes Licht, wie würden Sie tatsächlich machen diese Art von Entscheidungen. Also lassen Sie uns einfach ein paar Dinge rattern. Von den Sprachen Menschen hörte, was in den Sinn kommt? C. OK. OK, C ++. Was ist das? PUBLIKUM: Python. DAVID J. MALAN: Python. Ausgezeichnet. Was sonst? Visual Basic. Ich habe gehört, Java. Visuelle Basic-- auch bekannt als VB. Java. .NET, Die eher ein Haken ist, alle für das, was in der Regel C # als Sprache fraglich. Und lassen Sie mich erwähnen, dass. Also werden wir darauf zurückkommen. Es tut mir Leid? Es tut uns leid? PUBLIKUM: SQL. DAVID J. MALAN: Scratch? PUBLIKUM: SQL. DAVID J. MALAN: Oh, SQL. OK. SQL. Also werden wir wieder kommen eigentlich zu dass--, es ist good-- nach der Pause auch. Was sonst? PUBLIKUM: Oracle. Also: DAVID J. MALAN Oracle, keine Sprache. Eigentlich hätte sie SQL als auch nutzen. Lassen Sie uns so setzen, dass nach der Bruch als auch. Und sorry, etwas hier? PUBLIKUM: Mathematica. DAVID J. MALAN: Mathematica? OK sicher. Und MATLAB ist eine Art manchmal dort. PUBLIKUM: R. DAVID J. MALAN: R. Lass uns hier gehen. Fortran. Sicher. Ältere Schule. Fortran. COBOL. Ich werde BASIC heraus werfen. BASIC. Irgendein-- PUBLIKUM: MATLAB? DAVID J. MALAN: MATLAB. Oh, schlagen Sie zu. Etwas? Ich kann von ein paar andere denken. Ich kann von ein paar andere denken. Und was war das letzte? PUBLIKUM: ASP. DAVID J. MALAN: ASP? Ja. Active Server Pages. Das würde im Allgemeinen fallen unter andere Sprachen, manchmal C #, so lassen wir das ab. Aber wir werden darauf zurückkommen für Gerüste und so. Noch etwas? PHP ist sehr beliebt. Ruby ist eine andere. JavaScript, um nicht zu verwechseln mit Java, ist eine andere. Das ist irgendwie eine Menge. So kann es sicherlich überwältigend sein, als ob die Liste nicht bereits geschehen ist, gerade beginnen zu wissen, wo Sie beginnen. Und so glücklich, lassen Sie uns Ansatz, um dies von einigen Winkeln. Lassen Sie uns zuerst versuchen zu kategorisieren zumindest einige dieser Sprachen in zwei große Eimer, erinnert an das Gespräch, das wir vor Pause hatte, wo wir sprachen über das Kompilieren, und der Quellcode und der Maschinencode, denn das ist es nicht, wie alle Sprachen arbeiten. Also werden wir ein paar Beispiele auszureißen von-- oder Gegen examples-- zu diesem Modell. Und dann tun, warum nicht wir reden über die Anwendungen dass diese Sprachen werden verwendet. Und ehrlich gesagt, auch wenn Dies ist eine ziemlich lange Liste, es ist nur eine Teilmenge dieser Liste, die Sie würde in der Regel aus diesen Tagen ziehen Probleme lösen. Bestimmte Sprachen neuer sind als andere. Bestimmte Sprachen sind beliebter als andere. So ist es nicht wie Sie solche haben eine überwältigende Aufgabe, bevor Sie bei der Entscheidung, unter diese verschiedenen Sprachen. Also lassen Sie uns dies tun. Wir hatten früher, Quellcode, und dann hatten wir Maschinencode. Hoppla. Das Schreiben der falsche Wort. Maschinensprache. Und wir hatten einen Prozess in der Mitte called-- ja, den Compiler. So ist der Compiler. Und was die Maschinencode tatsächlich läuft am Ende auf wird Ihre tatsächliche CPU sein. In anderen Worten, durch Maschinencode, I bedeuten den niedrigsten Niveau Anweisungen dass eine CPU tatsächlich versteht. Addition, Subtraktion, verschieben, speichern und Operationen wie die. Und so ist dies das Modell für das, was als kompilierte Sprachen allgemein bekannt. Vielleicht nicht überraschend. Das ist also das Modell für kompilierte Sprachen. Aber es stellt sich dort die aus eine andere Klasse von Sprachen genannt interpretiert languages-- interpretiert languages-- das sind etwas anders. Sie schreiben im Quellcode, laufen sie durch einen Dolmetscher, und dass Interpreter Was läuft auf der CPU. Mit anderen Worten: Was tun Sie nicht emit ist, was offenbar? Maschinensprache. Die Nullen und Einsen, die die CPU selbst versteht schließlich. Also in dieser ersten Version und Sprachen wie C, wie wir gesehen haben, schreiben Sie im Quellcode das ist ein wenig obskur, aber zumindest ist es ein bisschen Englisch-like und es ist zumindest lesbar sobald man sich daran gewöhnen. Sie führen es durch einen Compiler und aus Sie erhalten schließlich Nullen und Einsen. Dass eine zu starke Vereinfachung. Es gibt einige andere Schritte drin. In der Tat haben, wenn Sie jemals gehört, der Begriff "Assemblersprache" das ist ein Schritt vor die Nullen und Einsen. Das ist ein wenig mehr lesbar, aber immer noch ziemlich obskur. Und so gibt es Zwischenschritte Das sind in der Tat, denn hier los. Aber die Ausgabe letztendlich ist diese Nullen und Einsen. Aber in der interpretierten Welt, wo Sie Sprachen, die interpretiert werden Sprachen, überspringen Sie tatsächlich diesen Schritt. Mit anderen Worten, wenn Sie schreiben ein Programm, die Sie gerade sofort auszuführen. Sie kompilieren es nicht und führen Sie es dann, wie vorher. Sie schreiben es und führen Sie es. Und wenn Sie wollen einen schnellen Wechsel zu machen, Ihnen eine schnelle Änderung vornehmen und es erneut ausführen. So gibt es keine hier mittlere Stufe. Nun, für das Programm schrieb ich früher, das war das "Hallo Welt" Programm, Sie vernünftigerweise wonder-- oder vernünftigerweise state-- das war nicht, dass die Zeit raubend mein Programm zu kompilieren. Es scheint, es einfach so getan zu haben. Und es gibt graphische Versionen von Compilern. Ich verwende eine sehr obskure Version, aber man könnte eine Play-Taste getroffen und das wäre eigentlich tun die Zusammenstellung für Sie. Ich habe das Programm kompiliert und dann wieder, es laufen zu lassen, das tue ich dies nur. Und es gibt dort auf der linken Seite, "Hallo!" Das scheint nicht so belastend. Aber wenn Sie Ihre Programme sind mehr als nur eine, zwei, drei, vier, fünf Zeilen lang, kann es nehmen weit mehr Sekunden zu kompilieren. Manchmal sogar Minuten oder ziemlich viel Zeit zu kompilieren. Schließlich sind einige der weltgrößten Produkte sind Dinge wie Betriebssysteme, Microsoft Word, Microsoft Excel, was könnte Hunderttausende sein oder sogar Millionen von Codezeilen lang, und die nicht nur sofort auszuführen. Außerdem auf dem Netz, ist es Mode geworden zu verwenden einfach interpretierte Sprachen, zum Teil, weil Sie machen eine Änderung als Entwickler können und dann einfach sofort nachladen die Browser-Seite und sehen sofort das Ergebnis. Und so HTML, während nicht eine Programmiersprache, ist eine Sprache, die interpretiert wird. Und wir sahen, dass die gleiche Wirkung gestern. Sie laden Sie einfach die Seite nach der Herstellung eine Änderung in der Cloud9 und- voila-- sehen Sie ein neues Ergebnis. Also, was ist der Unterschied hier? In HTML, Rückruf, wir hatten offene HTML, offene Kopf, Open-Titel, in der Nähe Titel, nahe Kopf, offenen Körper, und so weiter. Wir hatten all diese Tags, die wir ziemlich viel gesagt, geben dem Browser zu tun, was. Hey Browser, hier kommt eine HTML-Seite. Hey-Browser, hier kommt der Titel. Hey Browser, hier kommt einige Text, der fett sein sollte. Und dann sagen Sie das Gegenteil. Hey-Browser, ist, dass es für die fett Text. Hey-Browser, das ist es für den Körper. Und so weiter. Und was ist ein Browser? Ein Browser ist nur ein Dolmetscher. Es ist ein Programm, dass jemand wie Microsoft oder Google hat geschrieben, deren Zweck im Leben ist, Lesen Sie die Sprache, bekannt als HTML, und interpretieren. Von oben nach unten, von links nach rechts. Und jedes Mal, sieht der Browser geöffnet Klammer, Titel, Klammer zu, es sollte, dass interpretieren dahin, oh, dass bedeutet, sollte ich diese Worte auszudrücken hier oben an der Spitze des Browsers. Also es tut genau das, was der HTML-Code sagt. Aber es gibt keine Nullen und Einsen. Es gibt keine Kompilierung. Sie tat es nicht. Der Browser hat es nicht getan. Es ist einfach nicht beteiligt. Also im Geiste dieser laufenden Themen, gestern und heute, das scheint ein wunderbares Merkmal zu sein. Sie Ihren Code speichern und dann führen Sie es einfach oder interpretieren. Es gibt keine Zwischenschritte. Sicherlich gibt es eine Kosten? Kann nicht alle upsides sein. So was könnte das kosten? PUBLIKUM: Space. DAVID J. MALAN: Space. So sicher. In der kompilierten Welt, haben Sie nicht nur die Original-Quellcode, Sie sind auch die Schaffung und dann vermutlich Speichern die Maschine code-- die Nullen und ones-- und das ist bekam eine gewisse Menge an Platz einnehmen. Absolut. So ist es kostet Sie mehr Platz. Ja? PUBLIKUM: Browser könnte anders interpretieren. DAVID J. MALAN: Browser könnte interpretieren es anders. Das ist wahr. Aber ich bin nicht sicher, ich bin komfortabel behaupten das ist, weil es interpretiert wird. Das ist mehr, nur weil es eine Implementierung eines Sprach daß selbst hat Mehrdeutigkeiten. Lassen Sie uns also nicht ganz bestätigen dass man, aber gute Ahnung. Was sonst könnte der Preis zu zahlen? Andrew? PUBLIKUM: Sie kombinieren zwei Schritte, so dass Sie deshalb auch haben die Komplexität zu erhöhen. DAVID J. MALAN: Die complex-- die Zunahme der Komplexität, wo? Für wen? PUBLIKUM: Also, in dem Dolmetscher Schritt sind die Kombination Sie den Dolmetscher und Compiler für gerade im Vorfeld zu-- DAVID J. MALAN: Ah, OK. Ironischerweise ist es wahrscheinlich ein wenig einfacher, den Interpreter zu implementieren, obwohl es scheint, zu Ausbeute upsides dieser Bequemlichkeit. So möglicherweise wahr. Aber es hängt von Art, ich würde sagen, auf der Sprache und darüber, wie sie gingen über ihre Durchführung. Es kann viel mehr Komplexität sein, tatsächlich, in dem Compiler, nur weil man aus gehen müssen etwas so hohem Niveau zu etwas so niedrigem Niveau. Aber ein guter Gedanke. Also anders gesagt, ein übersetztes Programm, wenn in diese Nullen und Einsen verwandelt, endet in der Sprache nach oben dass die CPU spricht, wohingegen in dieser Seite der Welt, haben Sie das Programm geschrieben, der Code, den Sie haben, geschrieben eigentlich nie wird in die eigentliche Sprache umgewandelt der Computer spricht. Die Nullen und Einsen. Es bleibt in der ursprünglichen, menschlicher freundlich, lesbarer Sprache. Also, was könnte die Implikation sein da, wenn Sie nicht wirklich stört das Umwandeln Ihrer Programm der sehr Sprache dass die zugrunde liegende Computer spricht? PUBLIKUM: Might nicht etwas verstehen? DAVID J. MALAN: Might verstehen nicht etwas. Und das kann claim-- wenn es nicht verstanden etwas, das ist ein Fehler oder Mangel von Feature im Interpreter. Also das wäre mehr ein Fehler, als eine Kosten. PUBLIKUM: Sie haben Zugriff auf den Quellcode? DAVID J. MALAN: Es gibt eine gute. Also hier ein Nachteil ist, dass Sie scheint Zugriff haben. Sie, den Endverbraucher, könnte scheinen Zugriff auf den Quellcode. Und das ist nicht immer wahr. Aber es ist wahr in der Bei JavaScript, was wir schauen nach der Bruch heute, die ist eine Programmiersprache interpretiert dass Sie im Quellcode schreiben. Aber dass der Quellcode wird übertragen von Ihrem Server an den Browser und läuft in den Browser des Menschen. So, hier konnte sie öffnen Sie einfach die Fenster, wie ich habe in Chrome getan, und schauen Sie es, wie wir uns warf einen Blick auf gestern mit Google. Es könnte ein wenig aussehen unverständlich, aber es ist da. Also das ist absolut ein Preis bezahlt. PUBLIKUM: Performance-Hit? DAVID J. MALAN: Ja. Und das ist die andere Biggie. Es gibt ein Performance-Einbußen. Denn Sie haben diese Mitte des Menschen, der sich ist ein Programm, zwischen Ihnen und die CPU, im Gegensatz nur diese Roh-Fütterung Nullen und Einsen in die CPU, gibt es eine Performance-Einbußen, dass Sie nehmen mit einer interpretierten Sprache. So dass, willkürlich ein Programm das könnte dauern 1 Sekunde für die Ausführung auf einem Computer oder einem Minute auf einem Computer ausführen können hier, vielleicht nehmen 10 Sekunden oder 10 Minuten auf einem Computer laufen hier. Es ist im Allgemeinen nicht zu sein, dass viel eines difference-- Faktor 10-- weil es Optimierungen Sie tun können. Aber es ist fast immer langsamer. Nun ist die Kehrseite dieser Sorge auch Computer, ist, dass alle 12 bis 18 months-- nach Moores Gesetz, so zu speak-- werden immer nur schneller und schneller. Ich habe mehr und mehr Speicherplatz. Ich habe mehr und mehr RAM. Wen interessiert das schon? Und das ist irgendwie ein vernünftiges Argument. Tatsächlich ist einer der Gründe, warum können wir langsamer tolerieren interpretierte Sprachen, weil wir Menschen bemerken nicht wirklich. Die Computer haben nur so verdammt schnell geworden. Während zurück in den Tag, vor allem wenn die Hardware war viel mehr eingeschränkt, Sie hatten weniger von allem, es war viel teurer so kostet alles mehr, auch dann Sie wollte wirklich Squeeze-out so viel Leistung wie Sie konnten. Aber das erforderliche Schreiben an ein niedrigerer Ebene, wenn man so will, mit einer kompilierten Sprache. So haben Sie diese Leistung Schlag nehmen. Aber in der Regel die upsides scheinen in diesen Tagen wert, es zu sein. Nun, mit Ausnahme der geistiges Eigentum Problem. Diese Art der Lesbarkeit des Codes, werden wir zurückkommen, wenn wir in JavaScript aussehen. So wollen wir versuchen, zu kategorisieren wenigstens einige von diesen. So unter den kompilierten Sprachen, wir hätte C, C ++, ein bisschen, sorta, Java, obwohl es ein bisschen eine Ausnahme, für Gründe, warum ich Sie nur einen Augenblick in zeigen. C # würde auf dieser Liste sein. Wir werden uns nur auf mehr sehen die moderneren Sprachen. Gut. Und das scheint viel da wie. Während auf dieser Seite des Zauns, wir könnten JavaScript und Python, und PHP und Ruby. Und das ist genug für die neueren? Das fühlt sich an wie viel für den Moment. OK. Und dann Punkt Punkt Punkt, da die Liste ist endlos. Und in der Tat, wenn wir wollen einfach nur bekommen ein Gefühl von this-- Wikipedia, kompilierten Sprachen. Ich schätze, dass wir eine bekommen weit mehr erschöpfende Liste. Auf geht's. Also hier ist eine viel erschöpfende Liste. Und ich hatte gehofft, jemand würde vermuten, D als eine Sprache zu, weil das vorhanden ist, aber sie hielten an D würde es scheinen. Obwohl es eigentlich könnte ein E. sein Oh, eigentlich sollte dies in diesen Tagen auf der Liste sein. Swift ist eigentlich ein Sprache, dass Apple erfunden Das ist jetzt verwendet wird, zunehmend so, in iPhone Entwicklung. Aber wir kommen wieder zu dass wir mit unserer Diskussion als auch in nur ein wenig mobil. So Swift als auch. Und dann, wenn wir gehen zu interpretiert language-- language-- dann ist hier interpretiert eine noch längere Liste als auch. Also, wenn Sie nur Google und Blick auf Wikipedia für diese, Sie werden alle möglichen Sprachen zu sehen. Aber der Zweck ist, für heute wirklich, nur läuft darauf hinaus, vielleicht diese nach unten Frage des geistigen Eigentums und Lesbarkeit durch den Endbenutzer und Leistung, ist eine andere als gut Biggie. So unter diesen Sprachen, lassen Sie mich sehen, ob wir Ihnen geben kann nur einige Beispiel von Sprachen. Wir wollen nicht durch zu gehen, alle Sprachen endlos. Haben Sie sich jemals gefragt, was für ein bestimmte Sprache aussieht? Wir haben vor einem Augenblick zu sehen. Warum nehmen wir nicht ein paar von Feature-Requests. Wer möchte, was zu sehen andere Sprache aussieht? Ja. PUBLIKUM: Java. DAVID J. MALAN: Java. Gut. Lassen Sie uns also auf Java gehen. Und nur, um Ihnen eine Probe-- Wir könnten alle diese aus, schreiben aber es wäre nur schneller Blick auf Beispielcode jemand anderes. Gut. So ist dies ein gutes Beispiel? Hoppla. OK. So, hier ist die Java-Version von Programm, das ich schrieb früher, "Hallo Welt." So Java, werden Sie oft siehe das Stichwort "Klasse." Dann werden Sie einen Namen danach zu sehen. Sie werden geschweifte Klammern sehen wie wir sahen vor, und manchmal gehen sie auf die gleiche Linie, manchmal auch andere Linien, es ist irgendwie eine persönliche Entscheidung. Sie werden sehen, wie Schlüsselwörter "Public", "statisch", "Nichts." Aber wir haben sehen "main". "Main" ist in der Regel der Name der Standardfunktion oder der Standard-Stück Code, wird in einem Programm ausführen. "String". Was haben wir von String früher bedeuten? Früher habe ich es irgendwie beiläufig. Ein String ist, was? Ein Wort. Es ist wie eine Folge von Zeichen. Einzelne Zeichen, zurück zu Rücken an Rücken, in der Regel in einem Array, wie wir haben diskutiert. Und in der Tat sehen diese Syntax Hier sind die beiden in eckigen Klammern? Das heißt, hey Computer, hier kommt ein Array von Strings. Die eckige Klammer-Notation allgemein verwendet, dass zu bezeichnen. Und dann können Sie wahrscheinlich nehmen Sie ein guess-- was bedeutet dies hervorgehoben Stück Code wahrscheinlich tun? PUBLIKUM: Der Ausgang? DAVID J. MALAN: Ja. Er druckt etwas auf den Bildschirm. So "System" ist eine Art von Bezug auf Ihren Computer. "Out" bedeutet, dass Ihr Computer Ausgang oder den Bildschirm. So "System.out.print ln" wohl bedeutet? "Ln". Druckleitung, die Programmierer wie scheinbar ein paar Worte buchstabieren in ihrer Gesamtheit und nehmen Verknüpfungen mit anderen Wörtern. Aber "ln" ist Linie, so Druckzeile. So ist es druckt "Hallo World! "Durch eine neue Linie gefolgt. So, das war es. Aber Java ist, was sie Anruf objektorientiert. Und in der Tat, nur zu geben, paar andere Definitionen dort, dass Sie vielleicht siehe im Allgemeinen dort gibt viele verschiedene Arten von Sprachen, aber die am häufigsten Sprachen sind verfahrens- oder zwingend notwendig. Es gibt funktionelle Sprachen, die nicht der Fall ist bedeuten, dass andere nicht funktionsfähig sind. Und dann ist da objektorientierten Sprachen. Und dies ist vielleicht der beste Kategorisierung der meisten Sprachen dass Sie jemals für Art wählen eines typischen kommerziellen Projekt. Das wäre zu viel, Ich denke, von einer Ratte Loch zu gehen, um zu versuchen, zu erklären, die verschiedenen Unterschiede. Aber die Sprachen wir haben also far-- C gesehen ist eine prozedurale oder ein imperative Sprache. In jüngster Zeit erfunden Sprachen neigen, sorry zu sein, objektorientiert, was bedeutet, sie haben andere Funktionen zu ihnen. Kann ich es auf diese Weise zu erklären? Lassen Sie uns nicht einmal dort unten gehen. Objektorientierte Mittel Sie können implement-- Sie können die reale Welt modellieren ein wenig effektiv. Die Menschheit, im Laufe der Zeit, herausgefunden hat, wow, es wäre, wenn meine Sprache schön diese Funktion hatte oder diese Funktion. Und das ist, warum wir so haben viele Sprachen der Welt. Vernünftige Leute, smart Menschen, zustimmen oder nicht zustimmen und immer kommen Art zusammen auf Entwicklung alle zusammen, um neue Sprachen. Case in point. Apple-erfunden Swift in Hoffnungen vermutlich senken die Bar zu iPhone-Entwicklung, weil die vorherige language-- Objective-C genannt, was könnte auch auf unserer Liste sein hier-- war viel mehr obskure und viel härter um seinen Geist zu wickeln. Und wie die Programmierung immer wohl zugänglicher und im Großen und Ganzen von den Menschen angenommen sogar weniger technische, die goal-- es ist ein sehr tapferer Ziel zu versuchen, die Eintrittsbarriere senken, indem sie die Sprachen selbst einfacher, mit zu beginnen, aber nicht weniger mächtig unbedingt. Und noch eine andere Sprache. Warum nehmen wir nicht einen Blick an so etwas wie Python, die sehr in Mode ist in diesen Tagen. Python. Beispielprogramm. Mal schauen. "Hallo Welt" Sprachen. Lass uns das machen. "Hallo Welt." Mal sehen, ob das gibt uns ein schönes Beispiel. OK. Also das ist eigentlich ganz lustig. Also, wenn Sie jemals google "Hallo Welt", die passiert eine der ersten Programme zu sein jemals in einer modernen Sprache geschrieben, nur als Proof of Concept, können Sie sehen, alle möglichen Implementierungen davon. Einige dieser Sprachen Ich habe nicht einmal gehört. Aber man kann das auf Basis gehen see-- lassen, die, die ich vor Jahren gelernt, teilweise. Das war ein Spaß Sprache, weil Sie musste, wie der Programmierer, die Anzahl alle Ihre Leitungen. Nicht anders als was ich tun, wenn ich schrieb Pseudo-Code auf dem gelben Dokument früher für binäre Suche, für ein Telefonbuch zu suchen. Und so, wenn man wollte gehen auf eine andere Linie, Sie würden buchstäblich geben, gehen bis 10, oder gehen Sie zu 20. Und wenn Sie schreiben Linien, die Konvention war zu tun, das ist die Leitung 10, Diese Linie 20 ist, ist diese Linie 30, 40, dazwischen gibt es nichts, geben damit sich etwas Raum wenn Sie sich entscheiden, eine Minute warten, Ich sollte einige hinzugefügt haben mehr Code irgendwo. Sie hatte immer noch Art von neun Chancen quetschen, dass zwischen Ihrem Programm bevor Sie manuell musste nummerieren alles. Also das ist eine Art, was ich meine wenn ich die Welt sagen hat kommen mit neuen Funktionen. Irgendwo auf dem Weg jemand realisiert, Junge das ist dumm. Dies ist nur zu schaffen Arbeit für den Programmierer. So er oder sie nur eine Art gebaut eine neue Schicht oben auf, dass so dass Sie sich keine Sorgen zu machen über das, was Zeilennummern Code tatsächlich eingeschaltet ist. Also, wenn Sie sich dazu entscheiden könnten eine Sprache oder eine andere? Nun, welche davon Sprachen tun Sie neigen dazu, zu hören, über die am meisten Ihre eigene Welt in diesen Tagen? Lassen Sie uns zu Objective-C Dropdown. PUBLIKUM: C #. DAVID J. MALAN: C #. Also lassen Sie mich Farbe. Haben wir unsere anderen Farbe irgendwo haben? So C #. Und was wissen Sie über C #? Alles, was in den Sinn? PUBLIKUM: Es ist eine Programmiersprache. DAVID J. MALAN: Es ist ein Programmiersprache. OK. Das ist wahr. Also reden wir über C #. C # neigt dazu verwendet werden, in Windows-Umgebungen also, wenn Sie das Schreiben von Microsoft-Software für Windows ist C # sehr häufig verwendet, ob es für Desktop-Software oder sogar Telefon-Software auf Windows-Handys, wenn Sie diejenigen gehabt haben, oder im Internet sogar zu. Und in der Tat, vielleicht Kareem genannten ASP früher? Also gibt es auch diese Dinge genannt Rahmen, die wir durch die Erweiterung vorstellen. Frameworks, wie ASP. Steht für Active Server Pages. Und das ist Code und eine Möglichkeit der Programmierung das macht es im Allgemeinen einfacher Web-basierte Anwendungen zu schreiben. Mit anderen Worten, es wäre super, Super ärgerlich, eine Website zu schreiben in der Sprache C, dass Wir haben gesehen, weil Sie würden print + F zu verwenden, Sie würden dieses Schlüsselwort verwenden müssen "Main" und die geschweiften Klammern. Viele obskure Syntax und Ansatz zu implementieren etwas, das ziemlich komplex ist. Eine Web-Seite. Und so anderen Sprachen haben sich weiterentwickelt so etwas leichter zu machen. Und wiederum haben die Menschen kommen mit Rahmen, eine Art von Werkzeugen dass Sie, dass es machen verwenden noch einfacher Web-Seiten zu schreiben. So zum Beispiel, zu machen dies viel konkreter, lassen Sie mich öffnen, nur ein Textdatei für einen Moment. Und Sie könnten gestern erinnern dass wir etwas gesagt wie, das ist eine Web-Seite. HTML. Schließen HTML. Lassen Sie mich den Kopf überspringen und nur tun, um den Körper hier. Nehmen wir an, ich wollte Schreiben Sie nicht "Hallo Welt" aber "Hallo David," wo David ist die Name des aktuell angemeldeten Benutzers. Was etwas wie ASP tun wird, oder JSP-- die Java-Server pages-- oder eine beliebige Anzahl von anderen Frameworks ist sie per se nicht Sprachen sind. Sie sind genau wie zusätzliche Software, die Sie würde installieren in Ihre Umgebung dass nur machen es einfacher zu programmieren. So zum Beispiel, anstatt zu tun haben, so etwas wie "Hallo, printf (" David ")" oder etwas, das ist Art von Co-mingling-- die Art von Code, den wir gesehen haben before-- Sie würde etwas viel einfacher machen, wie "name%." Und so sind diese Rahmenbedingungen, wie ASP-- und ich kann mich nicht erinnern, ob ich immer die Syntax genau das Richtige für ASP. JSP ist ein little-- dies richtig ist? Also mit ASP, das ist Art eine spezielle Syntax dass einige Entwickler haben sich entschieden, Dies könnte dazu beitragen, die Menschen aus. Und ich kann kurz und bündig auszudrücken Platzhalter, zum Beispiel. setzen wie hier einen Wert, wo dieser Wert Name ist nicht N-A-M-E, es ist etwas Wert in dort gespeichert. So "Name", in diesem Zusammenhang, wir würden eine Variable nennen. Algebra hat Variablen wie x und y, und z. Programmierer verwenden Variablen, die sind mehr beschreibend als x, y und z, typisch. So "name" würde buchstäblich eine Art sein Speicherbehälter für so etwas wie D-A-V-I-D, für meinen Namen, oder wer auch immer sonst wird in der Website angemeldet. Und so ist dies die Art von Komfort Sie bekommen mit bestimmten Umgebungen. So C # und so etwas wie ASP würde sehr üblicherweise in einer Windows-Welt verwendet werden, ob für seine Desktop Software oder Web-Server, vor allem, wenn Ihre Server sind wiederum Microsoft Windows und Microsoft IIS-- oder Internet Information Server, wenn ich das Akronym bekommen right-- Das ist Microsofts Web-Server. Also, was andere Sprachen sind Leute kennen, oder haben Sie schon gehört von mehr als oft nicht? PUBLIKUM: Ich weiß, dass Python Art eines beliebten [unverständlich]. DAVID J. MALAN: Sehr beliebt. So Python hier wird sehr häufig verwendet, in wissenschaftlichen Anwendungen oder Daten Wissenschaft, wo Sie eine Menge haben von Daten, die Sie analysieren möchten und Sie wollen ein zu verwenden Programmiersprache dafür. R könnte die üblicherweise für die verwendet werden Auch in einem statistischen Zusammenhang. Aber Python hat so viele Features eingebaut. So viele zusätzliche Bibliotheken, wie die Leute sagen. Bibliotheken sind nur Sammlungen von Code, dass andere Menschen schrieb, dass Sie so, dass Sie verwenden können, müssen nicht jene Räder neu erfinden. Und so ist Python sehr häufig in Daten-Science-Anwendungen eingesetzt. Aber es ist auch sehr häufig in Web-Anwendungen eingesetzt. Sie können ein dynamisches implementieren Website mit Python. Und durch dynamische Website, ich bedeutet nicht nur statische Inhalte wie wir erstellt gestern, von nur harte Kodierung im lateinischen Text und andere solche Dinge, sondern die Fähigkeit, anmelden, kaufen die Fähigkeit, etwas, die Fähigkeit zu überprüfen mit Ihrem Einkaufswagen, oder dergleichen. All das erfordert Dynamik und Sie müssen einige Sprache wie eine von ihnen. PUBLIKUM: So hat Python haben ihre eigenen Erweiterung ähnlich wie [unverständlich] DAVID J. MALAN: Es tut. So in der Welt der Python, Django ist ein sehr beliebter Rahmen für Python. WSGI ist ein weiterer Mechanismus, der ist Art verschieden ist aber im Geiste. Es ist ein Add-on, mit dem Sie Python-Code auf einem Server ausgeführt werden. Es gibt other-- ja. So werden diese wir Rahmenbedingungen nennen. Und es ist ein bisschen von einem Missbrauch. Dies ist eher ein Web-Server-Technologie. Aber wir werden es einfach zu halten und setzen es in dieser Spalte dennoch. OK. WSGI. WSGI. Ein weiterer thing-- und tatsächlich lassen mich zu bewegen, dass seine eigene Spalte, denn ich würde mich schreien für sie in der gleichen Eimer setzen. Setzen wir dies in Server Funktionen, lassen Sie uns sagen. Das ist kein technischer Begriff. So, hier könnten wir WSGI sein. Es gibt CGI, das ist ein älteres Technik für Sprachen serviert wie Perl oder PHP, oder einige andere. Auch hier habe ich diese Begriffe erwähnt nicht so sehr, sie Art von Raufaser zu, aber so, dass, wenn Sie sehen, sie ist es etwas Sie google einfach mehr lesen. Es gibt keinen wirklichen Saft um einige dieser Dinge. Aber lassen Sie uns auf die Sprachen zurückgehen. Wir sprachen über C #, Python. Was sonst könnten Sie verwenden für Web-Programmierung in diesen Tagen? Konzentrieren wir uns auf das immer noch. PUBLIKUM: PHP. DAVID J. MALAN: PHP. Und lassen Sie uns wieder auf, dass ein. So PHP ist sehr häufig verwendet. PHP neigt dazu, einen schlechten Ruf zu bekommen. Es begann als eine Sprache umgesetzt von Leuten, die vielleicht nicht unbedingt waren die besten Sprachdesigner. Und so können Sie alle Arten von lesen Artikel online darüber, wie schlecht PHP ist. Und das ist leider eine Manifestation, zum Teil, nur die religiösen Debatten dass unter Programmierern ausbrechen. Und das ist etwas, Wert im Auge behalten, aus betriebswirtschaftlicher Sicht, dass es ist sehr einfach für technische Menschen bekommen alle arbeiteten mit ihren Meinungen über bestimmte Dinge. Und es bedeutet nicht unbedingt, dass die eine schreien am lautesten oder mit dem stärksten, angriest Meinung ist richtig. Eine Menge Zeit, es ist wirklich nur keine Rolle spielt. Und so sind die Menschen nur streiten was auch immer ihre eigenen Vorurteile oder Komfortzonen sind. Und so sollten Sie halten dass im Sinn, als zu machen eine Entscheidung, dass nur weil jemand sagt, dies ist die richtige Sprache für die Aufgabe, das könnte wahr sein, aber es könnte auch einfach sein, es ist die richtige Sprache innerhalb ihrer eigenen Fähigkeiten gesetzt oder Komfortzone. Welche ist nicht schlecht, aber Sie sollten erkennen, dass es vielleicht einige Kontext da sein. Es gibt einige objektiv falsche Angaben, wie C die falsche Sprache zu bedienen in diesen Tagen für die Durchführung Websites fast immer. Aber es ist nicht unvernünftig zu sagen, dass diese alle falsch sind, dass wir so weit eingekreist haben. PHP hat viele Versionen gegangen. So neigen Sprachen Version zu haben Zahlen mit ihnen verbunden sind. PHP ist bis, glaube ich, Version 7 jetzt, so ist es schon seit geraumer Zeit. Und wie Sprachen erhalten neuere, sie bekommen oft neue Funktionen. Aber man muss darauf achten, diese denn wenn Ihre Website hat in der Version 7 von PHP implementiert, aber Sie versuchen, Ihre Website zu laufen, oder vielleicht ausgelagert haben Sie die Entwicklung des Codes an jemand anderen und sie versenden es Ihnen oder senden es Ihnen und sie sagen, hier, setzen diese auf Ihrem Webserver, wenn Ihr Web-Server ist ein paar Jahre outdated--, ob es Ihrem eigenen Server oder einen Web-host-- es könnte nicht wirklich laufen. Das sind also die Arten der Dinge, dass jemand muss darauf achten, bei der Aktualisierung einer Website oder es zum ersten Mal implementiert. Ich habe gehört, JavaScript früher. So ist JavaScript eine interessante dadurch, dass es im Allgemeinen Client-Seite, wie wir sehen werden nach der Pause, die bedeutet es, in den Browser des Benutzers ausgeführt wird. Sie können aber auch laufen JavaScript in diesen Tagen mit so etwas genannt Node.js, wo Node.js ist ein Mechanismus zur laufenden JavaScript-Code Server-Seite, anstelle der Verwendung von Python, oder PHP oder andere solche Sprachen. JavaScript ist besonders gut geeignet Chat-Anwendungen und Echtzeit Anwendungen, während PHP kein großer ist Sprache für etwas Umsetzung wie ein Chat-Server, wo die Nutzer bleiben ständig mit diesem verbunden. PHP ist eher ein Besuch mich einmal, erhalten ein Ergebnis zurück, und dann einen anderen Link klicken einige Sekunden oder Minuten ab jetzt. Während Node.js und JavaScript kann sein mehr für persistente Verbindungen verwendet. Andere Sprachen, die Sie vermuten, werden häufig für Web-Material verwendet? PUBLIKUM: Würde jQuery ein Rahmen sein? DAVID J. MALAN: Gute Frage. Weder. Ich würde nennen jQuery eine Bibliothek, wo eine Bibliothek wieder ist nur ein Haufen von Code dass jemand anderes hat geschrieben, dass im Allgemeinen löst einige Probleme, die hoffentlich erlaubt es, leichter für Sie, Ihre Arbeit zu tun. Und lassen Sie mich tun ein Beispiel Diese im Rahmen der Bahn. Im Rahmen der Bahn gibt es Diese Sprache, JavaScript, dass wir später sehen, wobei Sie könnte sagen, so etwas wie this-- "Document.getElementById." Und was nenne ich es gestern? Erstens glaube ich, war die eindeutige ID Ich habe zu einem Element, das so aussah. "P id =" first ">" und dann hatten wir wie "Lorem Ipsum", und so weiter. Also, wenn ich schrieben ein Programm in JavaScript, um irgendwie zu manipulieren, ändern die Webseiten, die wir mit gestern spielten, Ich würde verwenden diese markierte Codezeile dass bestimmte HTML-Snippet zu bekommen von meiner Seite, dass bestimmte Knoten, wie wir es nennen. Doch in jQuery, statt zu schreiben diese, die roh JavaScript code-- ist gerade aus der Box, das ist, wie Sie schreiben es-- Sie stattdessen einfach sagen würde, "#zuerst." Das entspricht. Und so basiert nur auf diesem arkanen Beispiel, was vielleicht ist das Argument jQuery für den Einsatz? Warum verwenden würde ein Entwickler eine Bibliothek wie jQuery, basierend auf diesem Einzelbeispiel, vielleicht? PUBLIKUM: Weniger Code. DAVID J. MALAN: Ja. Es ist weniger Code. Es ist einfach schneller tippen. Der Kontrapunkt ist dass es aussieht erschreckender. Man kann nicht wirklich lesen Sie es links nach rechts. In der Tat, denn es ist vor allem Interpunktion jetzt anstelle der tatsächlichen Worte, Ich kann Art ableiten davon "Document.getElementById" bekommt ein Element, das aus dem Dokument durch seine ID. Ich kann wirklich nicht so verwenden Mnemotechnik von dieser Sache hier. So ist es ein Kompromiss. Es gibt eine Raffinesse, die kommt oft mit Bibliotheken, insbesondere wie jQuery. Aber die Realität ist jQuery hat Art von sich zu einem De-facto-Standard, so dass fast jeder diese Tage, die JavaScript-Code schreibt nutzt jQuery oder etwas wie sie, und nicht mehr schreibt eine solche ausführliche Ausdrücke wie dies, weil wieder die Menschheit hat gelernt, wow, das war Art eine verpasste Gelegenheit unser Leben einfacher zu machen. So Menschen machen ihr Leben einfacher. Gute Frage. Andere Sprachen zu berücksichtigen. Ich würde unter diesen sagen Liste Ruby ist sehr beliebt. Und so in der Welt der Rubin, gibt es einen Rahmen genannt Rails, die sehr beliebt ist. So Ruby on Rails ist ein häufig verwendete Ausdruck. Auch in dieser Welt, lassen Sie mich Kreis Java für Web-Zeug, wo in der Welt von Java Sie könnten JSP oder Java Servlets, die eine gemeinsame Technologie. Und das ist nur wieder Möglichkeiten der Verwendung von dass die Sprache in einer Server-Umgebung. Also, was bedeutet das? Wenn Sie eine physische haben Server, würden Sie buchstäblich Laden Sie die Web-Server-Software und installieren so dass Sie Unterstützung haben für eine der diese Frameworks, mit dem Sie wiederum ein verwenden könnte, oder mehrere dieser Sprachen. Und in Wirklichkeit, wenn Sie sich für wie ein Web-Host oder ein Teil der Wolke Dienstleistungen, die wir sprachen gestern, oft das Zeug kommt nur mit der Maschine Konfiguration für Sie. Sie müssen nicht manuell einzurichten. Aber wenn Sie getan haben, das ist, wo die Rolle von Systemadministrator, so zu sprechen, kommt ins Spiel. Er oder sie würde tatsächlich tun diese Art von Material für Sie, oder die sogenannte Webmaster würde für Sie oft tun. Gut. Irgendwelche Fragen zu einigen dieser hier? Oder irgendwelche Chancen auf alles um Sprachen zu fragen? Frameworks? Dann lassen Sie mich nur eine andere Bibliothek das ist auch in diesen Tagen sehr häufig. Diese Liste könnte unendlich weitergehen. Und diese Bibliothek ist eine Art Start in Ungnade zu fallen. Es ist herum gewesen. Es wurde populär durch Twittern für einige Zeit. Und jetzt viele Websites, viele Entwickler nutzen es. Aber neue Dinge kommen entlang und kommen. Aber lassen Sie mich nur einen Sinn geben was es bedeutet, eine Bibliothek zu verwenden. Also noch einmal, JavaScript ist eine sehr beliebte Sprache. CSS oder Cascading Style Sheets, wir sprachen über gestern. Auch das, ist allgegenwärtig. Niemand macht eine Webseite heute ohne Verwendung von HTML und CSS minimal. Aber es ist nicht immer einfach, zu tun, bestimmte Dinge. Und so lassen Sie mich zu getbootstrap.com gehen. Hoppla. Das ist nicht, wie wir buchstabieren. Getbootstrap.com, die wird mich führen auf die Zielseite für diese Bibliothek. So sie großzügig nennen selbst ein Rahmen, der ist eine Art Art Fair, aber ich würde es immer noch nennen mehr einer Bibliothek als ein Rahmen. Aber das sind nur diskutierbar Semantik. Lassen Sie mich auf ihre CSS Tab gehen und lassen Sie mich so zu etwas gehen. So erinnern, was unsere Formen sah wie gestern auf Cloud9? Es war ziemlich hässlich. Alte Schule Tasten. Ich denke, die Taste war grau von Standard. Und alles war wirklich ganz messily formatiert. Also, wenn Sie Ihre Web-Formulare aussehen soll ein wenig nicer-- lassen Sie mich hier zoomen. Und schöner ich wirklich nur bedeuten sehr pingelig Ästhetik. So bemerken, wie die E-Mail-Box dort hat eine abgerundete rechteckige Ecken zu. So ist es ein wenig sauberer da. Beachten Sie, dass das Wort E-Mail gibt es, bis ich die Eingabe beginnen und dann geht es weg. Also das ist ein nettes kleines Feature. Art Beachten Sie, wie die Sache ist, einige dieser hübsch leuchtenden, die erhalten kostenlos von Ihrem Browser, aber einige dieser ist auch Bibliotheken, Code, dass andere Leute haben geschrieben, die Ihnen diese. Etwas wie das gibt mir mein Passwort. Diese Schaltfläche ist ein wenig sexier als die Standard. Sehr viel im Moment im Trend. Seit iOS 7 oder so, die Welt hat sich sehr flach geworden, während die Welt zuvor viele Schlagschatten, viele von Reflexionen über Symbole. Ähnlich wie in der Kleidung Welt, gibt es Modetrends, die kommen und gehen. Jetzt ist alles flach auf Ihrem Handy. In der Tat, Tasten auf der iPhone sind jetzt nur noch blauen Links. Es kommt nicht oft sogar kreisförmige Tasten. So sind diese Dinge nur dass ein und aus gehen der Mode, und so ist dies, wie könnte man machen eine modernere aussehende Web-Formular. Buttons. So hat Bootstrap viele hübsche Knöpfe. Also, wenn Sie wollen, blauen Tasten, grüne Knöpfe, blau, orange, rot. Bootstrap erleichtert diese Dinge zu tun. Dies sind die Arten von Dingen dass man konnte absolut haben gestern mit CSS gemacht und mit HTML, aber es ist nur ein Schmerz im Nacken. Und so statt, was Bootstrap würde haben Sie tun, ist so etwas. Wenn Sie ein button-- wollen stellt sich heraus, diese ist ein HTML-Tag wir nicht yesterday-- nicht genutzt und Sie wollen es aussehen wie diese grüne Taste, Sie buchstäblich es nur eine Klasse geben, was wir auch taten gestern sprechen, von "btn btn-Erfolg." Warum diese Worte? Twitter, die Autoren von Bootstrap, kam mit diesen Worten auf. Sie hätten genannt ihnen, was sie wollen. Aber was Sie bekommen, jetzt ist jemand anderes auf Twitter, in diesem Fall, hat herausgefunden, wie man eine machen Sie Knopf schauen schön und sauber und grün. Sie verpackt auf diese Funktionalität in einer CSS-Klasse, genannt "BTN" und "BTN-Erfolg", so dass jeder von uns kann verwenden Sie es jetzt, ohne auch nur darüber nachzudenken, es. So haben sie abstrahiert die Vorstellung von einem grünen Knopf also müssen wir kümmern uns nicht um Umsetzung es uns. Wir können tatsächlich konzentrieren sich auf die Umsetzung Dinge für uns von Interesse. Wenn wir blättern hier unten. Fehlermeldungen auf dem Bildschirm. Manchmal möchte man eine kleine Nachricht auf dem oberen Rand des Browsers angezeigt wird. Jeder von uns könnte dies mit einigen Anstrengung, nach dem gestrigen Lektion, aber warum sollten Sie sich die Mühe? Das ist so ein uninteressantes ästhetisches Detail. Lassen Sie uns stehen auf der Schultern der Bootstrap und lassen Sie sie uns Dinge wie diese, wo wir buchstäblich ein rotes Feld zu bekommen, nur müssen einen Absatz tun Tag mit einer Klasse von-- sorry. "Bg-Gefahr" würde uns geben diese rötliche Box statt. Lassen Sie uns nun auf dem Sprung mehr interessante Dinge. Wenn ich wieder an die Spitze Diese Seite und gehen Sie auf Komponenten, jetzt wird die Welt noch interessanter. Zum Beispiel ist sehr häufig Drop-Down-Menüs wie diese. Dies wäre ein absolutes Schmerz zu implementieren. Und es war nicht so lange vor, dass wir Programmierer müssten diese zu implementieren Arten von Menüs von Grund auf neu. Aber es ist ein solches gemeinsames Paradigma dass Bibliotheken wie Bootstrap geben Sie nur die Möglichkeit, eine zu machen Drop-Down-Menü weit, weit leichter. Es gibt keine eine Möglichkeit, es zu tun, aber wenn ich lesen Sie die Dokumentation Ich würde sehen, dass, OK, sollte ich dies HTML, wenn ich ein Dropdown-Menü möchten dass verhält sich ähnlich. In ähnlicher Weise lassen Sie uns auf Taste nach unten gehen fallen. So ist dies auch ausgefallenere. Wenn ich dies wie ein Knopf aussehen wollen aber das kleine Dreieck bedeutet Ich sollte darauf klicken und nutzen Sie dieses Menü, das ist eine Sprache namens JavaScript verwenden. Und wir könnten alle implementieren dies in JavaScript. Aber noch einmal, das ist ein Rad Sie wollen nicht neu zu erfinden. Sie wollen einfach nur, sie nehmen ab die Regal-Bibliothek für diese. Lassen Sie uns gehen, um etwas wie Fortschrittsbalken. So etwas wie das ist irgendwie cool. Wenn Sie schon einmal einen Fortschritt gesehen Bar über den Bildschirm bewegen, Umsetzung dass oft ist nur ein sich drehendes Symbol. In der Tat, nur so nebenbei, lassen gehen mir zu Ajax-- was ist es? Ajax Informationen? Hoppla. Ajaxinfo. Lassen Sie mich die Adresse erinnern. Da gehen wir. Also, wenn Sie jemals einige Animation gesehen während die Seite geladen wird, oder denken, oder zu speichern, oder etwas zu schaffen, Sie sehen könnten solche Animationen wie diese. Lassen Sie uns also etwas betrachten wie diese hier, und lassen Sie uns wählen Sie eine Vordergrundfarbe grün, was irgendwie freundlich fühlt. Kann ich diese anklicke? Komm schon. OK. Wir werden einfach mit roten gehen, weil das ist, was wir bekommen. Also hier haben wir es. Also, wenn Sie dies jemals gesehen habe auf einem Bildschirm, wodurch plötzlich scheint es, und dann plötzlich verschwindet, was es das ist, die Umsetzung das? Nun, dies ist nur ein GIF. G-I-F. Und dies ist eine animierte Datei, die nur bedeutet, es ist wie ein alter Schule Comic. Es gibt nur eine Reihe von verschiedenen Frames, die gehen [STOTTER] und nur zu wiederholen. Und es ist die Schaffung der Illusion von Bewegung. So sobald eine Seite durchgeführt wird Laden oder etwas zu tun, Was macht ein Programmierer? Nun, er oder sie nur versteckt das Bild. Also alles, ein Fortschrittsbalken ist Art ist wie ein Film, den Sie sich gerade anschauen. Sie sind eine Art blind gegenüber der Tatsache, dass es nicht wirklich etwas zu tun, es bewegt sich nur. Und dann, wenn es fertig ist voran, sie verstecken es nur oder deaktivieren. Und das ist die ganze Magie das geht dort. Bootstrap gibt Ihnen etwas ein wenig schicker, wobei man kann tatsächlich sehen einen Prozentsatz wie es geht, aber es ist zu einfach irgendwie eine einfache Animation. Schauen wir uns einige letzte aussehen komplexere Beispiele hier. So etwas wie ein modal. Weiß jemand, was ein modal ist? Ein modales Fenster ist in der Regel ein, die angeblich Steuerung des Vordergrunds zu nehmen und verhindern, dass Sie etwas anderes zu tun. Es zwingt Art des Benutzers Aufmerksamkeit auf die Mitte des Bildschirms, Verriegelungs sie aus, typischerweise von allem anderen. Also, wenn ich diese Demo zu starten, die Bildschirm wird in der Regel grau. Nun, wie machen wir es grau? Nun, wir wahrscheinlich nur die Hintergrundfarbe geändert wie wir gestern oder etwas ähnliches. Vielleicht ist es ein Overlay dass semi-transparent. Und bemerken Sie jetzt tun können Phantasie Dinge wie diese. Also, wenn Sie jemals auf eine Schaltfläche klicken und wollen ein wenig Pop heraus zu erscheinen, Das kannst du machen. Und so kümmert sich die über all-- ja? PUBLIKUM: Also mit Bootstrap, um es aufgenommen, so einfach ist es so wie gestern wir haben die CSS-Stile Seite? DAVID J. MALAN: In der Tat. Wirklich gute Frage. Lassen Sie mich gehen zu Erste Schritte. Und ja. Alles, was Sie haben zu tun, um zu Verwendung Bootstrap ist im Wesentlichen kopieren und fügen Sie diese drei langen Reihen Code in die Spitze der eigenen Web-page-- der Kopf Ihres page-- und du bist und läuft. Und es gibt verschiedene Möglichkeiten, zu tun , aber dies würde die einfachste sein. Also, was ist hilfreich, über all dies? Nun, wenn Sie nicht so viel das implementierende Objekt einer Webseite aber Sie versuchen, es zu entwerfen, oder Sie wollen, dass jemand zur Verfügung zu stellen mit Drahtrahmenpläne, so zu sprechen, oder einfach nur Künstler Interpretationen dessen, was Sie wollen zu tun, ich, um diese Tag, gehen oft auf eine Website wie Bootstrap, wo, wenn ich wollen something-- zu implementieren wie vor kurzem auf dem Campus Wir wollten zu implementieren ein Web-basiertes Tool für die Navigation Harvard Kurskatalog, wodurch es einfacher für Studenten durch Kurse zu durchsuchen und fügen Sie Kurse Einkaufsliste, so zu sprechen, Art zu entscheiden, was sie wollten zu nehmen. Ich habe versucht, für sich vorzustellen, selbst, welche Zutaten würde wir wollen, dass diese zu bauen, zu bedienen? Was wäre der Benutzeroberfläche wie? Und wenn man nur durch eine Seite wie diese oder andere solche Bibliothek Websites, Sie können sich inspirieren lassen, weil wow, Ich kann dieses Widget verwenden und dieses Widget, und Widget. Und dann wirklich, was der Programmierer beginnt in diesen Tagen zu tun, vor allem in dieser modernere Welt der Web-Programmierung, Programmierung ist zunehmend über Dinge zusammen Verdrahtung. Sortieren dies der Einnahme aus dem Regal, dies aus dem Regal, aus diesem das Regal, und da Sie der Schlaue alle diese Punkte zu verbinden, aber letztlich etwas zu bauen, indem wieder auf den Schultern der anderen stehen, so dass Sie nicht verbringen einen Monat eine dumme Drop-Down-Menü Umsetzung die tatsächlich schwer zu tun, wenn Sie wollen, dass es auf Chrome zu arbeiten, und IE und Firefox, und jede Reihe von anderen Browsern. Aus diesem Grund gibt es diese reich kommerzielle und Open-Source-Software Industrie als auch. PUBLIKUM: So erhalten hat Bootstrap aktualisiert und Sie müssen dann Ihre Links aktualisieren? DAVID J. MALAN: Es tut. Nun ja, es tut. Bootstrap ist derzeit in der Version 3.3.6. Und in der Regel, was man do-- das ist eigentlich erwähnenswert. Es ist das, was in der Regel als semantisches Versions bekannt System der Welt. Nicht jeder tut dies. Aber, wenn Sie Versionsnummern gesehen , die von der Form x.y.z-- so zum Beispiel die erste Version von einem Programm könnte 1.0.0 sein. Oder wenn es ist sehr, sehr Beta oder auch Alpha-Status, die Nutzung bedeutet, auf eigene Gefahr, ist es nicht wirklich bereit für die Prime Time, Sie vielleicht sogar 0.0.1 starten oder eine solche Bezeichnung. Aber wenn Software beginnt bei Version 1,0 oder äquivalent 1.0.0, typisch, was ist üblich, diese days-- wenn auch nicht omnipresent-- ist wenn ein Unternehmen oder eine einzelne Programmierer Fixes einige Fehler in irgendeinem Stück Software, die wirklich war ein Bug, Korrektur dessen sollte nicht Auswirkungen, die Sie bei all-- es nicht ändert das Verhalten des Programms, behebt es nur etwas, dass nicht funktioniert properly-- Sie würde in der Regel aktualisiert dort die z-Wert. Was bedeutet, jemanden wie Kareem einfach in seine Webseite gehen konnte, blindlings die Versionsnummer ändern von 1.0.0 bis 1.0.1, speichern, versenden es, und in der Theorie, nicht zu haben Sorge, dass er gerade kaputt ist seine Website wegen einige Mangel an Funktionalität, denn etwas anderes brach. Inzwischen, wenn ich die Programmierer oder einige Unternehmen waren einige bedeutende machen Änderung, die Funktionalität hinzufügt, Ich könnte aktualisieren uns tatsächlich 1.1.0, weil ich bin Ändern des Verhaltens der Bibliothek. Ich gebe Ihnen vielleicht mehr Funktionalität. Schließlich waren, wenn ich tatsächlich grundsätzlich die Software ändern, so viel, dass es viele brechen Benutzer-Websites oder Anwendungen, dann verpflichtet, ich bin in diesem Modell zu Upgrade die Hauptversionsnummer zu, die eine unterbrechende Änderung. Mit anderen Worten, könnte ich habe Auslauf Unterstützung für die Tropfen Down-Menü. Wenn Sie also auf 2,0 zu aktualisieren, die Hälfte könnte Ihre Website aufhören zu arbeiten. Und das ist eine Art von Signal an die Gemeinde als zu dem, was beteiligt ein Upgrade zu machen. Eine gute Gelegenheit, zu erhöhen. Andere Fragen? Gut. Nun lassen Sie uns einen Blick auf eine endgültige Thema in diesem Segment der Programmierung von Technologie-Stacks, nämlich auf mobile bezogen. So in der Welt der Mobiltelefone heute Sie have-- und iPads, und Oberflächen, und all diese Arten von devices-- Sie haben viele Möglichkeiten, wenn es kommt auf die Umsetzung eine Anwendung oder eine Website für Ihre Kunden mobile Geräte. Also nur zu erklären, die offensichtlich, vielleicht in diesen Tagen, was sind die Plattformen für im mobilen Bereich zu entwickeln? Welche Geräte können Sie wollen unterstützen mit Ihrer Anwendung oder Website? PUBLIKUM: Apfel. DAVID J. MALAN: OK. So Apple-Geräte. Das heißt also, dass das iPhone, und dass bedeutet, iPad, und vielleicht sogar iPod. Was sonst? Olivier? PUBLIKUM: Android. DAVID J. MALAN: Android. OK. So Android-Handys, Android Tabletten, die Android-Markt ist sogar messier because-- und auch von Apple wird immer chaotisch. Während es war einmal iPhone war eine gewisse Größe, und iPad war eine gewisse Größe, und iPod war eine gewisse Größe, jetzt wir haben iPad Minis, und die dünne diejenigen, und das iPhone 6 Plus und 6. Es ist immer ein Chaos. Es ist immer der Android Welt. Und das sage ich mit einer Art Roll meine Augen, weil von einem Entwickler Sicht ist es ein Schmerzen im Nacken, wenn Sie haben Steve Jobs nicht ' Vision der absoluten Kontrolle über all diese Spezifikationen. Apple-tut immer noch, weil sie diejenigen, die Hardware zu bauen. Aber es ist eine schöne Sache, wenn Ich bin ein Software-Entwickler, nur wissen, dass mein iPhone ist immer was los diese groß zu sein, weil das bedeutet, dass ich immer wissen, wie viel Bildschirm Immobilien die ich habe. Also, wenn ich will ein Symbol zu setzen in der oberen linken Ecke, es wird in der exakt gleichen zu sein Platz auf jedem Gerät des einzelnen Kunden. Aber in der Welt der iPhone 6s und iPhone 6 Pluses und in der Welt der Android Telefone, es ist alles über die Karte. Und so macht es zu Programm härter Dinge, vor allem Benutzerschnittstellen, denn jetzt müssen Sie beginnen Arrangieren Ihre Benutzeroberflächen relativ, nicht absolut. Und das gleiche ist auf Browsern wahr gewesen, und Desktop-PCs und Laptops für Jahre weil Sie, natürlich, haben unterschiedliche Bildschirmgrößen. Was sonst? Sie könnten Oberflächen haben, wie von Microsoft. Vielleicht hast du-- PUBLIKUM: Windows Phone. DAVID J. MALAN: Was ist das? PUBLIKUM: Windows Phone. DAVID J. MALAN: Ja. So Fenster Telefone können noch gefunden werden. Art der Art von Blackberrys, aber sie immer wieder versuchen. Und dann Trauben von anderen Geräten. So zum größten Teil, lassen Sie uns sagen diese diejenigen sind, Pflege im Moment über. Gewiß ist die Apple-Zeug, sicherlich das Android-Zeug, und unter Windows wie Oberfläche Tabletten scheinen ziemlich gut zu fangen auf. Und so unter diesen Geräten, wenn Sie ausrollen wollen, sagen wir mal, eine mobile Präsenz für Ihr Unternehmen, welche Arten von Design-Entscheidungen müssen Sie machen? Nun, wir schon gesagt, in der Apple-Welt, es gibt mindestens zwei Sprachen Das sind typischerweise verwendet. Einer war, was genannt wird? PUBLIKUM: Objective-C. DAVID J. MALAN: Ja. So Objective-C, das ist die ältere. Es ist auch die Sprache, dass viele Mac Anwendungen werden in noch geschrieben. Dann wird die andere neuere war? PUBLIKUM: Swift. DAVID J. MALAN: Swift. Und das sind die Art von zwei zu wissen, Leute zu beeindrucken. Dann in der Android Welt, Welche Sprache ist Android verwenden? PUBLIKUM: C #? PUBLIKUM: Java. DAVID J. MALAN: Java ist die Sprache von "du jour." In der Windows-Welt, sicher, wir werden C # in diesem Fall sagen. So ist bereits diese Art von ärgerlich, weil das, was ist das Essen zum Mitnehmen für ein Geschäft Eigentümer oder jemand, der nur will eine mobile Präsenz ausrollen? Wie, verdammt noch mal? Wie, wenn ich will, zu unterstützen eine ziemlich breite Benutzerbasis, Ich habe zu schreiben, wie es scheint, drei separate Anwendungen. Eine in einer dieser Sprachen, ein in Java, eine in C #. Und selbst wenn ich will, um die Funktionalität identisch zu sein, ist es gleichgültig. Ich muss immer noch anders zu verwenden, Sprachen, weil Apple und Microsoft, und Google alle Unterstützung verschiedenen Umgebungen. Und dies ist eine Herausforderung seit Jahren. Zurück in den Tag, wenn Menschen verwendet Software kaufen in einem Computergeschäft in eingeschrumpft Boxen, Sie würden entweder zu erreichen für den Mac Regal, oder for-- vielleicht diesen sehr kleinen Mac shelf-- oder die größeren Windows-Regal und einige Software kaufen. Und sehr oft, war es nicht einmal alles für Sie auf dem Mac Regal. Warum? Nun, Unternehmen beschlossen, wenn 90% der Welt, 95% der Welt hat PCs, warum einmal die Mühe, Umsetzung Dinge auf Mac OS? Als aside-- insgesamt digression--, warum es dass Mac so unempfindlich gegen Viren scheint, und Würmer und Sicherheitsbedrohungen? Ist Apple besser auf das? Besser zu halten Computer sicher? PUBLIKUM: Kleinere Publikum? DAVID J. MALAN: Das ist wahrscheinlich das größere Bit zu. So sind die vielen Nutzer von Macs lange behauptet, oh, einen Mac, Sie werden auf Viren immun sein, und Würmer und all diese Dinge das haben lange PCs geplagt. Das könnte sein, weil Apple hat eine bessere Programmierer und sie schreiben bessere Software, oder die Betriebssystem wurde besser entwickelt. Vielleicht, aber wahrscheinlich nicht. Es ist wahrscheinlich, dass, wenn du bist eine 12-jährige oder 30 etwas Art von zu Hause schriftlich sitzen bösartiger Software zu übernehmen, die Welt, wirst du gehen nach die viel größere Zielgruppe. Die 95% der Welt, die Macht werden unter Windows oder einige Varianten davon. Also gibt es ein wenig auf beiden Seiten. Aber um ihre Kredit, Apfel, meines Wissens, hat sich nicht wirklich angekündigt als sicherer, da Sie einladen nur Drama, wenn Sie das von sich behaupten, würde ich denken. Gut. Ohne zu weit nach unten bekommen dass, wie lösen wir das? Müssen Sie Sie kaufen oder haben zahlen drei verschiedene Menschen zu entwickeln, Ihre Anwendungen? Haben Sie einen über den anderen wählen? Was sollte führen Sie Ihre Denken hier denken Sie? Kareem? Nee. Jemand anderes. PUBLIKUM: Nur mit der Hardware kommen. DAVID J. MALAN: mit der Hardware kommen? Was meinen Sie? PUBLIKUM: Für die Umwelt. [UNVERSTÄNDLICH] DAVID J. MALAN: Also das ist wahr. Aber Ihre Kunden, mittlerweile könnte iPhones haben, sie könnten Android-Handys haben, sie Möglicherweise müssen von Microsoft gemacht Tabletten. Also, wie haben Sie eine mobile Strategie für alle diese verschiedenen Benutzern? Es scheint, dass, wenn es kostet, sagen wir mal $ 1.000, ein iPhone zu machen Anwendung, es wird Kosten Sie $ 2.000 zu machen eine iPhone-Anwendung und ein Android-Anwendung, oder $ 3000 auch als auch Windows-Geräte unterstützen. Das ist wahrscheinlich ein ziemlich Untertreibung, und es könnte nicht einmal eine lineare Beziehung so sein. PUBLIKUM: Wenn Sie möchten, eine App zu haben oder nicht, können Sie ansprechende Website. DAVID J. MALAN: Gut. PUBLIKUM: Sie können auch eine native App haben. DAVID J. MALAN: Ja. Also in diesem Zusammenhang alle hier, Wir haben darüber gesprochen, was Leute nennen würde native Anwendungen. Dh Anwendungen, die geschrieben werden, in der Muttersprache des jeweiligen Geräts. So nativen Objective-C oder Swift Code oder in Java oder in C #. Was bedeutet das, wenn Sie den Download starten, lassen sagen Snapchat, eine beliebte Anwendung, oder, wenn Sie den Download starten Facebook für ein Telefon, Sie sind das Herunterladen entweder die Version für Ihr iPhone geschrieben, oder für Ihr Android-Handy geschrieben, oder für Ihre Oberfläche geschrieben. Jedoch gibt es eine Alternative. Als Olivier spielte auf, Sie können tatsächlich HTML verwenden 5 stattdessen mit, was ein Web genannt Anwendung, wobei Sie einfach implementieren Ihre mobile Präsenz und jede Funktionalität. Was meine ich durch mobile Präsenz? Wie Sie Ihre Website, hat Ihr Kontaktinformationen, eine Liste aller vielleicht Ihre Produkte, hat es einen Einkaufs Wagen, vielleicht verkaufen Sie die Dinge durch. Was auch immer Ihre Anwendung ist, können Sie umzusetzen, nicht in Objective-C, oder Swift, oder Java oder C #, aber in HTML 5, die Sprache, die wir war aussah gestern, mit JavaScript und CSS. Und was ist schön, mit denen, drei, dass sie laufen soll, Sie müssen genau das, was Stück Software? PUBLIKUM: Ein Web-Browser. DAVID J. MALAN: Ein Web-Browser. Und das Beste weiß ich, alle diese Geräte mit Web-Browser, so hat der Benutzer nicht zu haben installieren etwas Besonderes. So kann man einfach sagen, Ihre Publikum, Ihre Kunden, Geh zu acme.com in Ihrem Browser und Sie werden nur haben eine Web-basierte Erfahrung dass nach wie vor den Bildschirm ausfüllt, aber Sie müssen sich nicht um alle kümmern von Diese Kosten und all dieser Komplexität. Aber sicher es geht werden hier einen Haken, nicht wahr? Vor allem, wenn ich darauf hin, dass vor ein paar Jahren, die erste Version von Facebook mobile Anwendung war eine HTML-5-Anwendung meist. Und sie haben, mehr vor kurzem neu implementiert es in ihren anderen Anwendungen. Also warum sollte man nicht sofort möchte sagen, Nun, natürlich werden wir dies tun? Was könnte sein, die versteckten Kosten? PUBLIKUM: Leistung. DAVID J. MALAN: Leistung? Wie meinst Du das? PUBLIKUM: Die native App hat mehr Leistung. DAVID J. MALAN: Also das ist wahr ist, für eine Reihe von Gründen. Wir können die Antwort vereinfachen. Und erinnern an unsere Diskussion über im Vergleich zu kompilierten Sprachen interpretiert. Dies ist HTML 5 und damit nur um klar, JavaScript-- häufig geschrieben JS-- und CSS sind alle interpretierte Sprachen, obwohl nur JavaScript ist eine Programmiersprache. Und so im Vergleich zu diesen, die einige dieser mindestens zusammengestellt, diese three-- Objective-C, Java und C # - diese, in der Theorie sollte nur schneller sein. Aber es gibt noch eine andere Realität for-- PUBLIKUM: Funktionalitäten? DAVID J. MALAN: Was ist das? PUBLIKUM: Funktionalitäten. DAVID J. MALAN: Funktionalität? Wie das? PUBLIKUM: Verwenden Sie die Kamera Sie Ihr Telefon oder so etwas. Sie können die mit dem Browser. DAVID J. MALAN: Genau. Sie sind sec-- PUBLIKUM: [unverständlich] DAVID J. MALAN: Das ist eine andere gute. Es gibt Funktionen, die kommen mit Mobiltelefonen heute , die nicht durch Design, für die Sicherheit Gründe, zugänglich zu Web-Browsern. Da wäre es eine Art sein eine gruselige Sache, wenn gerade dann, wenn Sie besuchen google.com oder cnn.com oder jede website.com, dass die Website hat die Macht zu drehen auf der Kamera, ein Bild von dir nehmen, und verwenden Sie es dann. Aber Sie würden nicht eine zufällige Website wollen dass Sie zum ersten Mal besuchen diese Fähigkeit haben. Und was Telefon Hersteller typischerweise tun wird sie leugnen nur Zugang auf diese Art von Informationen zu einem Browser, bedeutet, die Sie kann die Kamera nicht implementieren. Sie können keine Push-Benachrichtigungen zu implementieren, die Töne, die Sie auf Ihrem Bildschirm erhalten mit kurzen Nachrichten. Und in der Tat ist sogar nur GPS Art der Art von auf dem Web-Browser zur Verfügung. Wenn Sie schon einmal auf einem Laptop oder auf einem mobilen Gerät, zog etwas wie vielleicht cnn.com, sondern auch lokale Nachrichtensender neigen dazu, dies zu tun, Sie werden aufgefordert, oft mit einem message-- foxnews.com möchte Ihren Standort kennen. Genehmigen oder zu verweigern. Nun, der Browser versucht, den Zugriff auf Ihre GPS-Daten vom Telefon. Aber zum Glück Microsoft, und Apple und Google haben beschlossen, dass fühlt sich an wie es ist eine nützliche Situation, wir wollen, Google Maps und andere Werkzeuge zu arbeiten, aber wir wollen nicht, dass Menschen zu kriechen von nur einer Website ermöglicht, dies zu tun. Lassen Sie uns also eine Art treffen auf halber Strecke und den Benutzer auffordern. Aber das ist nicht unbedingt der Fall, mit allen Hardware, wie die Kamera und mit Push Benachrichtigungen und dergleichen, so müssen Sie möglicherweise opfern bestimmte Funktionen. Aber die Leistung auch. Es wird immer weniger heute spürbar, vielleicht wie LTE fängt auf und schneller Internet-Geschwindigkeiten auf Handys, Sie können jedoch Art den Unterschied spüren. Wie eine Web-basierte Anwendung fühlt sich einfach langsamer, in der Regel, als eine native Anwendung, zum Teil weil eine Web-basierte Anwendung per Definition im Internet. Es spricht zu den Servern im Internet. Und wenn Ihre Netzwerkverbindung langsam, Scrollen sogar möglicherweise langsam. Aber eine native Anwendung, haben Sie bereits vorge downloaded-- wahrscheinlich wenn Sie zu Hause aus dem App Store, oder Sie zumindest vorab heruntergeladen es in seiner Gesamtheit früher, was auch immer Ihre Verbindungsgeschwindigkeit-- und so, jetzt haben Sie alle die Bits, die Sie in der Regel benötigen. Außer vielleicht einige Daten das kommt von einem Server. Das sind also Kompromisse hier. Es ist so eine Art Mittel Kompromiss, in der Tat. Und ich denke, Sie-- PUBLIKUM: Verwenden Sie die Daten offline. In den nativen Anwendungen, können Sie [unverständlich] DAVID J. MALAN: Auf jeden Fall. So gibt es die Offline-Ausgabe, Das ist wirklich ärgerlich, wenn Sie nicht irgendein Spiel oder Anwendung spielen einige Software, nur weil du bist in einem Keller irgendwo oder in einem Aufzug. Eine native Anwendung ist elastisch mit höherer Wahrscheinlichkeit dagegen, vorausgesetzt, Sie haben alle die Daten müssen Sie vor Ort. So gibt es eine dritte Option hier. Und lassen Sie uns das Spektrum ziehen, wie native App hier und Web-App hier. Und was ist in der Mitte etwas ist called-- und ich denke, Sie haben könnten das Wort vor, vielleicht? Hybrid-Anwendung. Und wie das Wort sagt, es ist etwas in der Mitte. Es ist eine Art von Web-Anwendung und es ist eine Art einer nativen Anwendung. Und was bedeutet das? Es stellt sich heraus gibt es frameworks-- einen Begriff aus earlier-- Software zu verwenden, dass andere Leute geschrieben haben, für jede dieser Plattformen. Diese und noch andere Geräte. In der Tat, lassen Sie mich zu PhoneGap gehen, das ist ein solcher Rahmen, dass ich glauben Adobe jetzt besitzt. Lassen Sie mich gehen zu Erste Schritte. Mal schauen. Sehen Sie, wenn ich eine Liste von Tools zu sehen. Hardware. Anfangen. PhoneGap-Hardware. Mal schauen. PhoneGap Zugriff auf die Hardware. Lassen Sie mich sehen, ob wir etwas finden Diagramm, das sie haben, verwendet. Dies ist auf einer anderen Website. Ist das sinnvoll? Nein. Das wird es verschwenden unsere Zeit. PhoneGap-Hardware. Geräte. Geräte-API. Nein, sie haben es verschoben. PhoneGap. Lassen Sie uns einen letzten Blick auf diese gehen und sehen, ob ich Ihnen zeigen kann. Anfangen. Installieren Sie PhoneGap. Installieren Sie Handy-App. Komm schon. Sie haben alles neu organisiert. Gut. Oh, alles klar. Nun, hier gehen wir. Das ist nicht alles, was aufschlussreich, aber das ist, was ich war irgendwie suchen. So ist PhoneGap ein Framework, das Sie können kostenlos herunterladen, die Sie gibt einige Starter-Code, im Wesentlichen. So einige Code, die sie geschrieben haben, das macht nicht viel von allem. Aber was gibt es Ihnen im wesentlichen das Äquivalent einer Anwendung, die eine gerechte legt großes Rechteck auf dem Bildschirm des Benutzers. Es muss nicht eine URL-Leiste setzen, wie ein Browser, stellen keine Adresse. Es setzt nur ein großes Rechteck. Und Sie konfigurieren, dass diese große Rechteck, unter der Haube, zu gehen, tatsächlich zu acme.com, oder vielleicht m.acme.com, für mobile.acme.com, aber der Benutzer nicht weiß, sie sind an dieser Adresse. Alles, was sie sehen, ist die Inhalt der Webseite. Aber was ist schön, diesen Wesen eine Hybrid-App ist das, was PhoneGap und andere Unternehmen geben Ihnen ist sie geben Sie ein wenig Code in Objective-C oder Swift, oder ein bisschen von Code in Java, oder ein bisschen von Code in C # und im Wesentlichen, alles, was Sie zu bieten haben, ist minimal die Adresse Ihrer Web-basierte Anwendung. Und dann bündeln Sie diese alle zusammen und Sie haben sie entweder Zugriff auf Ihre Website über das Internet, oder Sie cachen sogar eine lokale Kopieren Sie in der Anwendung, und dann speichern Sie Ihre Anwendung in iPhone Format, Android-Handy Format, Oberflächenformat oder Eine beliebige Anzahl von anderen Geräten. Sie laden jede dieser Versionen zum Google Play Store, in den App Store, um die Windows Store, und so weiter. Und jetzt können Sie alle haben Ihre Publikum herunterladen wirklich eine native App, wenn auch die meisten der Code war geschrieben von jemand anderem, aber der Inhalt dieser native App alle kommen aus, in der Regel, Ihre eigene Website. So können Sie auch weiterhin Ihre Website zu schreiben in HTML, JavaScript und CSS. Warum also diese Linien verwischen? Warum ein Hybrid-Anwendung haben das ist irgendwie heimisch, sondern auch Art von Web-basierten? Was ist der Sinn von Hinzufügen dieser Komplexität? Ich meine, sogar noch, gerade aus Blick über diese Seite, die Erste Schritte fühlt sich an wie es ist für mich eine ganze Menge von Schritten bekam zu tun, bevor ich can-- PUBLIKUM: Reusability? DAVID J. MALAN: Reusability? Was meinen Sie? PUBLIKUM: Von den Quellcode. So würde der gleiche Code laufen auf all die verschiedenen Plattformen. DAVID J. MALAN: Ja. PUBLIKUM: [unverständlich] DAVID J. MALAN: Perfect. Wenn die Zeit knapp ist und wenn Sie nicht haben, dass viele developers-- Vielleicht haben Sie ein Entwickler und er oder sie sicherlich weiß nicht, alle diese environments-- sicherlich nicht gut, und kann sicherlich nicht Programm in allen drei gleichzeitig und Schiff drei Produkte in die Zeit für einen erlaubt, Sie können ihn haben oder ihr alles bauen in HTML und JavaScript und CSS, und lernen dann eine winzig kleine wenig über native Anwendungen, gerade genug zum Download ein Rahmen wie diese, laden, um dann Ihr Produkt alle die verschiedenen App-Stores so dass Sie jetzt haben, eine native Anwendung. Damit scheint wie eine Win-Win, aber auch hier klar zu sein, Was sind die möglichen Kosten oder die gotchas? PUBLIKUM: Leistung? DAVID J. MALAN: Ja. Performance. Es ist schwer, verbal zu beschreiben. Also, wenn Sie nur übernehmen Glaube ist eine mobile Anwendung, eine Webanwendung typischerweise ausführen langsamer. Es ist vielleicht nicht ganz richtig angezeigt werden, weil in iPhone und in Android-Handys, und Windows-Geräte, gibt es immer eine Art Standard-Look und fühlen sich an alle die Tasten und die Menüs. Und Unternehmen im Web, können versuchen, jene Ästhetik anzunähern mit Bibliotheken wie Bootstrap, aber die user-- eine kluge user-- zu wissen, wird das etwas ist nicht ganz richtig hier. Und das ist in Ordnung, vielleicht das ist keine große Sache. Aber die Performance-Problem absolut ist eine große Sache. Native Anwendungen sind in der Regel nur zu viel schneller reagieren und deshalb besser. Und ja, was dann sein könnte das Beste aus beiden Welten? Wenn Sie vor allem eine kleine Unternehmen oder eine kleine Gruppe, Sie haben nicht die Ressourcen, eine App parallel zu entwickeln, auf allen drei Plattformen, und ehrlich gesagt, fühlt sich an wie das eine schlechte Idee ist sowieso denn wenn man es ausrollen und auf alle drei gleichzeitig zu realisieren, wir sollten einige Features hinzugefügt haben oder etwas anders gemacht, jetzt Sie beheben müssen es in drei Plätze, nicht ein. Was ist vielleicht die optimale Strategie hier insgesamt, wenn Ressourcen und Zeit sind eng? PUBLIKUM: Tun Sie es einfach auf iOS. DAVID J. MALAN: Das ist nicht unvernünftig. iPhones, zumindest in der USA, sind super beliebt. Android scheint immer noch dominant zu haben Marktanteil, weltweit insgesamt. Sie sind also nicht unbedingt repräsentativ der Gesamtheit der in dieser Woche Globus. Aber das ist absolut eine Entscheidung. Ich meine, auf dem Campus hier I denken einige atrocious Zahl oder der Prozentsatz der Studenten haben iPhones und Android-Handys nicht. Aber im Ausland, ist es irgendwie das Gegenteil. Deshalb entscheiden Sie sich auf Ihr Publikum basiert. Woher wissen Sie, was Ihr Publikum hat? Nun, wir gelernt, ein Trick gestern. Man könnte sie fragen. Wenn Sie ein aufmerksames Publikum Sie können sie eine Umfrage Form senden. Oder Sie könnten nur das tun, was? PUBLIKUM: Google Analytics? DAVID J. MALAN: Was ist das? PUBLIKUM: Google Analytics. DAVID J. MALAN: Google Analytics. Ja. Oder noch Art von technisch, nur Blick auf Ihre eigenen Web-Server-Logs. Denn das, was passiert, jedes Mal, wenn ein Browser, ob Laptop, Desktop oder Telefon Ihre Website besuchen? Sie senden, dass die HTTP-Header, die zeigt, Sie, was Browser und OS sie verwenden. So kann man folgern, mit hoher Wahrscheinlichkeit, was Ihre demografischen nutzt auf diese Weise und dann anpassen. Also vermute, das ist nicht akzeptabel. Das ist irgendwie schlecht für das Geschäft, wenn Android-Nutzer können unsere Widgets nicht kaufen. PUBLIKUM: Egal, ob Sie Gonna aufladen oder nicht? DAVID J. MALAN: Ob Sie gehen zu berechnen? So OK, Sie bekommen, was Sie bezahlen. PUBLIKUM: Ob Ihre Anwendung ist Gonna frei sein, oder ob es sich um gonna-- DAVID J. MALAN: OK. Vielleicht könnten Sie schöpfen Kosten, die Art und Weise, oder--? PUBLIKUM: las ich eine Studie einmal, dass die mehr Apple-Nutzer zahlen für Apps versus-- DAVID J. MALAN: Das stimmt weil sie bereits zahlen mehr für ihre Geräte. Also nicht unvernünftig eine Vermutung. PUBLIKUM: [unverständlich] DAVID J. MALAN: OK. Also, wenn sie sind eher bereit, zu zahlen, dann zur Hölle mit den Android-Nutzer. Sie gehen nicht auf zahlen uns sowieso nichts. Wir könnten auch unsere Prioritäten konzentrieren, zumindest in den ersten paar Monaten oder ein Jahr, auf iOS. Völlig in Ordnung. Was ist ein integrativer Strategie als das? Maybe-- was ist das? PUBLIKUM: [unverständlich] DAVID J. MALAN: Eine expensive-- so vielleicht mehr investieren voraus in-- gehen. PUBLIKUM: Ja. Nur eine mobile Website. DAVID J. MALAN: a So tun mobile Website und nicht sogar Sorgen um diese Komplexität. Oder vielleicht eine vernünftige Strategie, die auch Facebook nahm, ist mit einem Hybrid-Start Anwendung, weil es nicht ist dass es sehr viel schwieriger als das, dies zu tun. Sie müssen nur einige lesen Dokumentation und herauszufinden, wie Dinge in den App Store zu laden. Vielleicht beginnen Sie mit dies so, dass am ersten Tag, Sie können alle Benutzer unterstützen. Und dann, genau wie Facebook und andere Unternehmen getan haben, wenn Sie haben die Ressourcen, Sie haben die Menschen, warum gehst du nicht neu implementieren nur die iOS-Anwendung. Sie haben noch etwas für jeden Geschmack, obwohl es eine minderwertige Erfahrung vielleicht mit der Hybrid-Anwendung. Aber Sie können nach und nach ausrollen und ersetzen Sie Ihre kurzfristigen Maßnahmen der Hybrid-Anwendungen mit Ihre mehr native Anwendungen. PUBLIKUM: Aber mit einem Hybrid-App, die Sie wird der Zugang zu mobilen Funktionen haben? DAVID J. MALAN: Nicht unbedingt. Vielleicht machen Sie eine früh bewusste Entscheidung, Sie können nur Fotos auf den Upload native iPhone-Anwendung für Facebook, aber nicht auf der Android-Anwendung, zunächst beispielsweise. Und das ist ein bisschen eine Notlüge, weil Web-Anwendungen haben mehr Einschränkungen als Hybridanwendungen stellt sich , und wenn wir lesen Sie die Dokumentation für PhoneGap und Dinge wie sie, Menschen mit Möglichkeiten einfallen lassen zu geben, Web-basierte Anwendungen Zugriff auf die Kamera, so lange, wie Sie verwenden eine Hybrid-Anwendung. Wie funktioniert das? Da das Hybrid Anwendung per definitionem hat ein Stück Code in Objective-C, und Swift, und Java oder in C #, es kann auf die Hardware zugreifen. Nicht unbedingt alles, aber es könnte sehr gut der Fall sein, die Sie haben genug Zugang die Kamera zu bekommen, auch für Android-Plattformen, für So in diesem erfundene Beispiel. Weitere Fragen? Gut. Warum nehmen wir nicht unsere Pause von 15 Minuten hier. Wir werden mit einem Finale in drei wieder aufnehmen Blick auf Web-Programmierung, Datenbanken, und Javascript.