David J. MALAN: Więc jesteśmy z powrotem. Tak wysokiego poziomu wątek w tej chwili teraz Stosy jest technologia, która nie jest termin, w szczególności technicznych, to bardziej połów wszystkich dla każdego Liczba kombinacji technologii które można wykorzystać do rozwiązywania problemów. I chyba najbardziej Oprawa sposób na rozpoczęcie byłoby spojrzeć na językach od Ciągle wyliczać całą masę a przede wszystkim w pokoju ma Prawdopodobnie słyszałeś co najmniej jednego. A więc dlaczego nie staramy się wyróżnić what-- rozróżnienia tych języków i krótko mówić o tym, kiedy będzie wybrać jeden nad drugim, jak oni rodzaj gruntu inaczej, a zwłaszcza podczas rozmów z inżynierami, lub stara się zdecydować, kogo zatrudnić, albo co implementacja Propozycja Greenlight, jak można rzeczywiście zrobić te rodzaje decyzji. Więc po prostu grzechotka pewne rzeczy off. Z języków ludzie mają Słyszałem o to, co przychodzi do głowy? C. OK. OK, C ++. Co to jest? PUBLICZNOŚCI: Python. David J. MALAN: Python. Doskonały. Co jeszcze? Visual Basic. Słyszałem Java. Wizualne Basic-- a.k.a. VB. Jawa. NET, która jest bardziej połowu wszystkich za to, co zazwyczaj jest C # jako język w pytaniu. I pozwól mi wspomnieć, że. Więc wracamy do tego. Przepraszam? Przepraszam? PUBLICZNOŚCI: SQL. David J. MALAN: Scratch? PUBLICZNOŚCI: SQL. David J. MALAN: Oh, SQL. OK. SQL. Więc wracamy do that-- właściwie to jest dobre-po przerwie, jak również. Co jeszcze? PUBLICZNOŚCI: Oracle. David J. MALAN: Tak Oracle, a nie języka. Właściwie to oni użyć SQL, jak również. Więc postawmy że po przerwa, jak również. I przepraszam, coś tutaj? PUBLICZNOŚCI: Mathematica. David J. MALAN: Mathematica? Dobrze, jasne. I MATLAB jest rodzajem tam czasem. PUBLICZNOŚCI: R. David J. MALAN: R. Chodźmy tutaj. Fortran. Pewnie. Starsze szkoły. Fortran. COBOL. Będę rzucać się podstawowego. PODSTAWOWY. Każdy-- PUBLICZNOŚCI: MATLAB? David J. MALAN: MATLAB. Och, beat do niego. Byle co? Mogę myśleć o paru innych. Mogę myśleć o kilku innych. A jaki był ostatni? PUBLICZNOŚCI: ASP. David J. MALAN: ASP? Tak. Active Server Pages. To na ogół nie są objęte inne języki, czasem C #, więc zostawmy to wyłączyć. Ale wrócimy do tego szkieletowe i takie. Coś jeszcze? PHP jest popularne. Ruby jest inny. JavaScript, którego nie należy mylić Java, jest inny. To trochę dużo. Więc może to być z pewnością przytłaczająca, jakby lista nie jest już wystarczy, aby rozpocząć wiedzieć, gdzie zacząć. I tak szczęście, niech podejść do tego z kilku punktów widzenia. Najpierw spróbujmy kategoryzować co najmniej niektóre z tych języków na dwie wiader, przypominający rozmowa mieliśmy przed przerwą, gdzie rozmawialiśmy o kompilacji i kod źródłowy i kod maszynowy, bo to nie jest, jak Wszystkie języki działać. Więc będziemy zrywać się kilka przykładów of-- lub przeciwnie examples-- tego modelu. A potem, dlaczego nie mówić o zastosowaniach że tych językach na ogół stosuje. I szczerze mówiąc, choć Jest to dość długa lista, to tylko podzbiór tej listy byś zazwyczaj wyciągnąć z tych dni w celu rozwiązania problemów. Niektóre języki są nowsze niż inne. Niektóre języki bardziej popularne niż inne. Więc to nie jest tak, jak masz takie przytłaczające zadanie przed wami przy podejmowaniu decyzji pomiędzy Te różne języki. Więc zróbmy to. Mieliśmy wcześniej, kod źródłowy, a następnie mieliśmy kodu maszynowego. Ups. Pisanie złego słowa. kod maszynowy. I mieliśmy trochę proces w średnim called-- tak, kompilator. Tak kompilator. A co do kodu maszynowego uruchomiona na ostatecznie będzie rzeczywisty procesora. Innymi słowy, według kodu maszynowego i oznaczają instrukcje najniższym poziomie że CPU rzeczywiście rozumie. Dodawanie, odejmowanie, ruch, zapisywanie i operacje takie jak to. A więc to jest model, co jest ogólnie znane jako skompilowanych językach. Być może nie jest zaskoczeniem. Jest to więc model dla skompilowanych językach. Ale okazuje się, istnieje inna klasa języków nazywa interpretować languages-- interpretować languages-- które są nieco inne. Piszesz w kodzie źródłowym, uruchom je za pośrednictwem tłumacza, i że jest interpreter co działa na CPU. Innymi słowy, co nie Emit jest czym, najwyraźniej? kod maszynowy. W zer i jedynek, że procesor Sam ostatecznie rozumie. Więc w tej pierwszej wersji, a Języki takie jak C, jak widzieliśmy, piszesz w kodzie źródłowym to trochę Arcane, ale przynajmniej trochę podobny do angielskiego i to co najmniej czytelne Gdy już do niego przyzwyczaić. Uruchomić go przez kompilator i na zewnątrz masz ostatecznie zer i jedynek. To nadmierne uproszczenie. Istnieje kilka innych kroków tam. W rzeczywistości, jeśli kiedykolwiek słyszał określenie "język asemblera" to jest o jeden krok przed zera i jedynki. To trochę bardziej czytelne, ale nadal dość zaawansowanych. A więc nie ma etapów pośrednich które są w rzeczywistości dzieje. Ale wyjście ostatecznie właśnie te zer i jedynek. Ale w interpretować Świat, gdzie trzeba języków, które są interpretowane Języki, to faktycznie można pominąć ten krok. Innymi słowy, kiedy piszesz Program, po prostu od razu go uruchomić. Nie skompilować i Następnie uruchom go, jak już przedtem. Wystarczy napisać i uruchomić go. A jeśli chcesz zrobić szybkie zmiany, dokonać szybkiej zmiany i uruchom go. Więc nie ma tu średnim krokiem. Teraz w programie pisałem wcześniej, który był program "Hello World", to polubisz racjonalnie wonder-- albo realnie state--, że nie było czasu spożywanie skompilować mój program. Wydaje się to zrobić tak po prostu. I jest graficznym wersje kompilatorów. Używam bardzo tajemnej wersję, ale można trafić przycisk odtwarzania i że faktycznie kompilacja dla Ciebie. Mam skompilowany program, a następnie ponownie, aby go uruchomić, po prostu to zrobić. I wyjść z lewej strony tam, "Hello!" Nie wydaje się to wszystko, co uciążliwe. Ale gdy programy są więcej niż jeden, dwa, trzy, długie cztery, pięć linii, może podjąć znacznie więcej sekund, aby skompilować. Czasem nawet minut albo trochę czasu, aby skompilować. Po tym wszystkim, niektóre Największe produkty świecie Są rzeczy, takie jak systemy operacyjne, Microsoft Word, Microsoft Excel, które mogą mieć setki tysięcy lub nawet miliony linii kodu długich, a te nie tylko natychmiastowego wykonania. Ponadto na stronie internetowej, to stają się modne w użyciu tylko interpretować języki, po części dlatego, że ciebie Można dokonać zmian jako dewelopera a potem po prostu od razu przeładuj strona przeglądarki i natychmiast zobaczyć wynik. I tak, HTML, a nie język programowania, Jest to język, który jest interpretowany. I widzieliśmy, że ten sam efekt wczoraj. Wystarczy odświeżyć stronę po dokonaniu zmiana Cloud9 and-- voila-- pojawi się nowy wynik. Więc jaka jest różnica tutaj? W HTML, przypomnijmy, mieliśmy otwartą HTML, otwarta głowa, otwarta tytuł, blisko tytułu, blisko głowy, otwarte nadwozie, i tak dalej. Mieliśmy wszystkie te znaczniki, które dość dużo powiedziane, poinformować przeglądarkę, co robić. Hej przeglądarka, oto stronę HTML. Hej przeglądarka, oto tytuł. Hej przeglądarka, oto niektóre tekst, który powinien być pogrubione. I wtedy powiesz coś przeciwnego. Hej przeglądarka, to jest to dla pogrubioną czcionką twarzy. Hej przeglądarka, to jest to dla organizmu. I tak dalej. A więc co to jest przeglądarka? Przeglądarka jest tylko tłumaczem. Jest to program, że ktoś taki jak Microsoft i Google napisał, którego celem w życiu jest czytaj języka, znany jako HTML, i zinterpretować go. Od góry do dołu, od lewej do prawej. I za każdym razem przeglądarka widzi otwarte Uchwyt, tytuł, nawiasu zamykającego, należy interpretować, że w ten sposób, oh, które oznacza, że ​​należy umieścić te słowa sposobem tu w górnej części przeglądarki. Więc po prostu robi to, co kod HTML mówi. Ale nie ma zer i jedynek. Nie ma kompilacji. Nie zrobił tego. Przeglądarka nie zrobił. To nie tylko zaangażowana. Tak więc w duchu tych trwają tematy, dzisiaj i wczoraj, który wydaje się być wspaniałym elementem. Zaoszczędzisz swój kod, a następnie wystarczy go uruchomić i zinterpretować. Nie ma żadnych kroków pośrednich. Z pewnością nie jest to koszt? Nie może być w całości upsides. Co więc może to być koszt? PUBLICZNOŚCI: Kosmos. David J. MALAN: Kosmos. Tak pewny. W opracowanej świata, trzeba nie tylko oryginalny kod źródłowy, to są również tworzenie i wtedy zapewne oszczędności maszyna code-- Zera i ones-- i to mam podjąć jakąś ilość miejsca. Absolutnie. Więc to kosztowało więcej miejsca. Tak? WIDOWNI: Przeglądarki może interpretować w różny sposób. David J. Malan: Przeglądarki mogłyby interpretuje to inaczej. To prawda. Ale nie jestem pewien, że jestem wygodne, twierdząc, to dlatego, że to interpretować. To więcej, tylko dlatego, że implementacja języku która sama ma wątpliwości. Więc nie do końca potwierdzają że jeden, ale dobre przeczucie. Co jeszcze może być zapłacona cena? Andrzej? PUBLICZNOŚCI: łączysz dwa kroki, więc w związku z tym mają coraz bardziej skomplikowane, jak również. David J. MALAN: the complex-- wzrost złożoności gdzie? Dla kogo? PUBLICZNOŚCI: Tak, w tłumacza krokiem, łączysz interpretera oraz kompilator po prostu prowadzące to-- David J. MALAN: Ach, OK. Jak na ironię, to chyba trochę prostsze do wdrożenia tłumacza choć wydaje się, aby Plusy wydajność w tym wygody. Więc może to prawda. Ale to rodzaj zależy mi powiedziałbym, na języku oraz o tym, jak weszli o jego realizacji. Nie może być o wiele bardziej złożony, Właściwie w kompilator, tylko dlatego, że trzeba iść z coś tak wysokim poziomie do czegoś tak niskiego poziomu. Ale to dobry pomysł. Więc innymi słowy, skompilowany program po włączeniu do tych zer i jedynek, kończy się w języku że procesor mówi, aw tej stronie Świat, program, który napisałem, kod masz napisane, nigdy nie zostaje przekształcony w rzeczywistej języku komputer mówi. Zer i jedynek. To pozostaje w oryginalnym, bardziej ludzki przyjazny, bardziej czytelnym językiem. Więc co może być implikacja nie, nie, jeśli nie w rzeczywistości przeszkadza konwersja Program do samego języka że komputer bazowy mówi? PUBLICZNOŚCI: może nie coś zrozumieć? David J. MALAN: Might Nie rozumiem czegoś. A to może claim-- jeśli nie rozumiesz coś, że to błąd lub brak wśród wyposażone w tłumacza. Tak, by być bardziej błędem niż kosztów. PUBLICZNOŚCI: Masz dostęp do kodu źródłowego? David J. MALAN: Jest dobry. Więc minusem tutaj jest to, wydaje się mieć dostęp. Ty, użytkownik końcowy może wydawać się mają dostęp do kodu źródłowego. I to nie zawsze prawda. Ale prawdą jest, w Przypadek JavaScript, którym przyjrzymy się po dzisiaj przerwa, która jest interpretowany język programowania że piszesz w kodzie źródłowym. Ale, że kod źródłowy zostanie przeniesiony z serwera do przeglądarki i działa w przeglądarce człowieka. Więc może po prostu otworzyć Okno, podobnie jak robiłem w Chrome i patrzeć na to, jak my sami Spojrzał na wczoraj z Google. To może wyglądać trochę niezrozumiałe, ale jest tam. Więc to jest absolutnie jeden cena zapłacona. PUBLICZNOŚCI: Wydajność hitem? David J. MALAN: Tak. I to jest druga wielkiego. Jest hitem wydajności. Ponieważ masz to środku człowieka, który sam Jest to program, między wami i procesor, w przeciwieństwie tylko karmienie nich surowe zer i jedynek do CPU, jest hitem wydajności, które Cię zabrać ze interpretowanym języku. Taki, że arbitralnie, program które mogą przyjmować jedną sekundę do uruchomienia na komputerze lub w jednym minut do uruchomienia na komputerze tutaj może trwać 10 sekund lub 10 minuty do uruchomienia na komputerze tutaj. To na ogół nie będzie, że dużo difference-- czynnik 10-- bo nie ma optymalizacje można zrobić. Ale to prawie zawsze jest wolniejsze. Teraz druga strona tej troski jest to, że także komputery, co 12 do 18, w zależności od wielu miesięcy Prawo Moore'a, tak speak-- są po prostu coraz szybciej i szybciej. Mam coraz więcej miejsca na dysku. Mam coraz więcej pamięci RAM. Kogo to obchodzi? A to niby rozsądnym argumentem. Rzeczywiście, jeden z powodów Dlatego możemy tolerować wolniejsze Języki interpretowane, ponieważ jest my, ludzie naprawdę nie zauważy. Komputery mają zdobyć tak cholernie szybko. Zważywszy, że w tamtych czasach, zwłaszcza gdy sprzętowy został znacznie bardziej ograniczona, miałeś mniej wszystkiego, było o wiele droższe więc wszystko kosztuje więcej, a następnie naprawdę chciał wycisnąć tyle wydajność, jak mógł. Ale to wymaga piśmie niższego poziomu, jeśli będzie, z skompilowany języka. Więc weźcie to wydajność. Ale generalnie, upsides wydają się być warte te dni. No, chyba że dla Kwestia własności intelektualnej. Tego rodzaju czytelności kodu, będziemy wrócić do kiedy patrzymy na JavaScript. Więc spróbujmy kategoryzować co najmniej kilka z nich. Tak więc wśród zebranych języków, mamy musiałby C, C ++, trochę, jakoś, Java, Chociaż jest to trochę wyjątek dla Powody Pokażę ci za chwilę. C # będzie na liście. Przyjrzymy się więcej na tak bardziej współczesne języki. W porządku. I to wydaje się dużo tam. Zważywszy, że na tej stronie płotu, możemy mieć JavaScript i Python, i PHP i Ruby. I to, że wystarczy dla z nowszych? To czuje się jak dużo teraz. OK. A potem kropka kropka kropka, Ponieważ lista nie ma końca. I rzeczywiście, jeśli chcemy po prostu uzyskać poczucie this-- Wikipedii skompilowane języków. Zgaduję, możemy uzyskać znacznie bardziej wyczerpująca lista. Więc zaczynamy. Więc tutaj jest znacznie bardziej wyczerpująca lista. I miałem nadzieję, że ktoś odgadnąć D jako język, bo to też istnieje, ale zatrzymał się na D by się wydawać. Mimo że w rzeczywistości może być E. Och, faktycznie, powinno znajdować się na liście tych dniach. Swift jest rzeczywiście Język, że Apple wymyślił które są obecnie używane w coraz większym stopniu Tak więc w rozwoju iPhone. Ale wrócimy do że w naszej dyskusji z telefonu komórkowego w tylko trochę, jak również. Więc Swift, jak również. A potem, jeśli pójdziemy do interpretować language-- interpretować language-- to tu jest jeszcze dłuższa lista, jak również. Więc jeśli po prostu google i spojrzeć na Wikipedia dla tych, zobaczysz wszystkie rodzaje języków. Jednak celem jest Na dzisiaj tak naprawdę, po prostu sprowadza się do tego może to Kwestia własności intelektualnej i czytelność przez użytkownika końcowego oraz wydajność, jest kolejnym Biggie również. Tak więc wśród tych języków, pozwól mi zobaczyć, czy możemy ci dać tylko niektóre próbki języków. Nie chcemy, aby przejść wszystkie nieskończoność języków. Czy kiedykolwiek zastanawialiście się, co pewne język wygląda? My widzieliśmy przed chwilą. Dlaczego nie potrwać kilka od prośby. Kto chciałby zobaczyć co Inny język wygląda? Tak. PUBLICZNOŚCI: Java. David J. MALAN: Java. W porządku. Więc chodźmy do Javy. I po prostu dać ci sample-- moglibyśmy napisać to wszystko na zewnątrz, ale byłoby szybciej tylko spojrzeć na przykładowy kod cudzego. W porządku. Więc jest to dobry przykład? Ups. OK. Więc tutaj jest wersja Java z Program napisałem wcześniej, "Hello World". Tak Java, będziesz często patrz "klasę". słowa kluczowego Wtedy zobaczysz jakąś nazwę po tym. Zobaczysz nawiasów klamrowych jak widzieliśmy wcześniej, a czasem idą na ta sama linia, czasem inne linie, to rodzaj osobistej decyzji. Zobaczysz, słowa kluczowe, takie jak "Publiczny", "statyczne", "nieważna". Ale widzieliśmy "main". "Główna" jest na ogół nazwa funkcji domyślnej lub domyślny fragment kodu, który zostanie uruchomiony w programie. "Strunowy." Co rozumiemy przez ciąg wcześniej? Używałem go niby od niechcenia. Łańcuch jest co? Słowo. To tak, jakby ciąg znaków. Poszczególne postacie, z powrotem do z powrotem do tyłu, zazwyczaj w tablicy, jak już omówione. I rzeczywiście, zobacz ten składni tu dwa nawiasy kwadratowe? To znaczy, hej komputer, tutaj pochodzi tablicę ciągów. Zapis nawias kwadratowy jest Powszechnie stosuje się do oznaczenia, że. I wtedy można pewnie co zrobić guess-- czy to podkreślone fragment kodu pewnie zrobić? PUBLICZNOŚCI: wyjście? David J. MALAN: Tak. Wypisuje coś na ekranie. Więc "system" jest swego rodzaju Odniesienie do komputera. "Out" oznacza komputer użytkownika Wyjście lub ekranu. Więc "System.out.print ln" prawdopodobnie oznacza? "Ln". linia wydruku, który programiści lubią do podobno pisze kilka słów z w całości i podjąć Skróty z innymi słowami. Ale "ln" to linia, więc linia wydruku. Więc to wypisuje "Hello World! ", A następnie w nowym wierszu. Więc to jest to. Ale Java jest to, czego będziesz Wywołanie obiektowy. I rzeczywiście, po prostu dać Kilka innych definicji tam, że może patrz, ogólnie, Jest wiele różnych typów języków, ale najczęstszym to języki proceduralne lub koniecznością. Są funkcjonalne Języki, które nie oznacza to, że inni są niefunkcjonalne. A wtedy nie języków obiektowych. I to jest chyba najlepszy kategoryzacja większości języków że kiedykolwiek wybrać odpowiedni dla rodzaju typowym komercyjnym projekcie. To byłoby zbyt wiele, Myślę, otworu szczura zejść, aby spróbować wyjaśnić rozmaite różnice. Ale językach widzieliśmy więc far-- C Jest to proceduralne lub Język koniecznością. Ostatnio wynaleziono Języki wydają się być, przepraszam, obiektowe, co oznacza, mają inne funkcje do nich. Mogę to wyjaśnić w ten sposób? Załóżmy nawet tam iść. Środki obiektowe można implement-- można modelować świat rzeczywisty trochę bardziej efektywnie. Ludzkość, z biegiem czasu, zorientowali się, wow, byłoby miło, gdyby moim języku miał tę funkcję lub tej funkcji. I dlatego mamy tak wiele języków świata. Rozsądni ludzie, inteligentne ludzie, zgodzić się lub nie i niezmiennie rodzaju spotykają się na rozwijanie nowych języków razem. Przykładem. Jabłko wynalazł Swift Nadzieje przypuszczalnie obniżenie pasek do rozwoju iPhone bo poprzedniego language-- Objective-C o nazwie, która mogłaby również na naszej liście here-- był znacznie bardziej ezoteryczne i wiele mocniej owinąć wokół swego umysłu. A jak programowanie staje się zapewne bardziej dostępne i szerzej przyjęta przez ludzi, nawet mniej techniczna, The goal-- jest to bardzo dzielna celem próbować obniżyć barierę wejścia na rynek poprzez same języki łatwiejsze do uruchomienia, ale nie mniej potężne niekoniecznie. I jeden inny język. Dlaczego nie spojrzeć na coś podobnego Pythonie która jest bardzo modna w te dni. Pyton. Przykładowy program. Zobaczmy. "Hello World" języków. Zróbmy to. "Witaj świecie." Zobaczymy, czy to daje nam dobry przykład. OK. Tak więc jest to rzeczywiście rodzaj zabawy. Więc jeśli kiedykolwiek google "Hello World", który stanie się jednym z pierwszych programów kiedykolwiek napisano w nowoczesnym języku, tylko jako dowód koncepcji, można zobaczyć wszelkiego rodzaju wdrożeniach tego. Niektóre z tych języków Nie byłem nawet nie słyszał. Ale można see-- chodźmy do Basic jeden dowiedziałem się rok temu, w części. To było zabawne, ponieważ język Ciebie musiał, jako programista, numer wszystkich liniach. Nie inaczej niż to, co miałem robi kiedy pisałem pseudokod na żółtym dokumentu wcześniej dla wyszukiwania binarnego do przeszukiwania książki telefonicznej. I tak, jeśli chcesz aby przejść do innej linii, byś dosłownie wpisywania przejdź do 10, lub udać się do 20. A jeśli piszesz wiersze, z Konwencja została do zrobienia, to jest linia 10, jest to linia 20, to jest linia 30, 40, nic pomiędzy, tym samym dając sobie trochę miejsca jeśli zdecydujesz, chwileczkę, Należy Dodałem niektóre więcej kodu gdzieś. Nadal miał rodzaj dziewięciu szans wycisnąć, że w między programem zanim musiał ręcznie przenumerować wszystko. Jest to więc rodzaj co mam na myśli kiedy mówię, że świat ma pochodzić z nowych funkcji. Gdzieś po drodze kogoś sobie sprawę, chłopak to jest głupie. To jest po prostu tworzenie praca dla programisty. Więc on lub ona po prostu rodzaj budowy nowa warstwa na górze, że tak, że nie trzeba się martwić o tym, co numery linii kodu faktycznie dalej. Więc kiedy można wybrać jeden język lub inny? Cóż, które z nich Języki prawda tendencję usłyszał o najbardziej swój własny świat w tych dniach? Załóżmy rozwijanej Objective-C też. PUBLICZNOŚCI: C #. David J. MALAN: C #. Więc niech mi kolor. Czy mamy inny kolor gdzieś? Więc C #. A co ty wiesz o C #? Wszystko wiosny do głowy? PUBLICZNOŚCI: Jest to język programowania. David J. MALAN: To język programowania. OK. To prawda. Więc mówimy o C #. C # zwykle stosować w środowiskach Windows więc jeśli piszesz oprogramowanie firmy Microsoft dla Windows, C # jest bardzo często używane, czy to przez oprogramowanie komputerowe, lub Oprogramowanie telefonu nawet na telefonach z systemem Windows jeśli miałeś tych, lub w internecie nawet za. W rzeczywistości, może Kareem już wspomniano ASP? Nie ma więc również te rzeczy zwane ramy, które możemy przedstawić po rozszerzeniu. Konstrukcje takie jak ASP. Stojaki na Active Server Pages. I to jest kod i sposób programowania które zasadniczo ułatwia pisanie aplikacji internetowych. Innymi słowy, byłoby bardzo, bardzo irytujące napisać stronę internetową W języku C, które widzieliśmy już wcześniej, bo trzeba by użyć print + F, trzeba by użyć tego słowa kluczowego "Main" i nawiasy klamrowe. Wiele składni tajemnej i podejście do wdrożenia coś, co jest dość skomplikowana. Na stronie internetowej. I tak inne języki ewoluowały aby tego rodzaju rzeczy łatwiejsze. A z kolei, ludzie mają pochodzić z ramami, rodzaj narzędzi że można użyć, które czynią go jeszcze łatwiej napisać stron internetowych. Tak na przykład, aby to dużo bardziej konkretne, pozwól mi otworzyć tylko plik tekstowy na chwilę. A może pamiętacie wczoraj że powiedział coś jak to jest strona internetowa. HTML. Blisko HTML. Pozwól mi pominąć głowę i po prostu zrobić tutaj ciało. Załóżmy, że chcę Nie pisać "Hello World" ale "Witam David", gdzie David jest nazwa aktualnie zalogowanego użytkownika. Co czymś ASP zrobi lub JSP-- który jest serwer Java pages-- lub dowolna liczba innych ram to nie są one w językach, per se. Oni, podobnie jak dodatkowe oprogramowanie, które by zainstalować w swoim środowisku że po prostu łatwiej zaprogramować. Tak na przykład, zamiast zrobić coś takiego jak "Dzień dobry, printf (" Dawida ")" albo coś, co jest rodzaj współpracy mingling-- rodzaj kodu widzieliśmy before-- zrobiłbyś coś znacznie prostsze, jak "% name". A więc te ramy, jak ASP-- i I Nie pamiętam, czy Dostaję składnia właśnie dla ASP. JSP jest little-- czy to prawda? Tak ASP, to jest rodzaj specjalnej składni że niektórzy deweloperzy zdecydowali to może pomagać ludziom. I mogę wyrazić więcej zwięźle zastępcze, na przykład. Jak umieścić wartość tutaj, gdzie nazwa ta wartość nie jest N-A-M-E, to jest jakaś wartość w nim przechowywanych. Więc "nazwa", w tym kontekście, nazwalibyśmy zmienną. Algebra ma zmienne jak X i Y i Z. Programiści używać zmiennych, które są bardziej opisowe niż X, Y i Z zwykle. Więc "nazwa" dosłownie być jakiś pojemnika pamięci czegoś podobnego D-A-V-I-D, dla mojego imienia, czy ktokolwiek inny jest zalogowany do serwisu. A więc jest to rodzaj wygody Ci z niektórych środowiskach. Więc C # i coś takiego byłoby bardzo ASP być powszechnie stosowane w świecie Windows czy na jego pulpicie oprogramowanie lub serwer WWW, zwłaszcza jeśli serwery są z kolei z systemem Microsoft Windows i Microsoft IIS-- lub Internet Information Serwer, jeśli dostanę akronim prawy-- który jest serwer WWW Microsoftu. Więc jakie inne języki są ludzie znający, lub słyszałeś częściej niż nie? PUBLICZNOŚCI: Wiem, że Pythona rodzaj popularnym [INAUDIBLE]. David J. MALAN: Bardzo popularne. Więc tutaj Python jest używany bardzo często w zastosowaniach naukowych i danych nauki, gdzie trzeba dużo danych, które chcesz analizować i chcesz używać Język programowania dla niego. R może być powszechnie stosowane dla tego jak również, w kontekście statystycznym. Ale Python ma tak wielu Funkcje wbudowane w. Tak wiele dodatkowych biblioteki, jak ludzie mówią. Biblioteki są tylko zbiory kodu, który inni napisał, że można użyć, dzięki czemu nie trzeba odkrywać te koła. I tak Python jest bardzo często w zastosowaniach naukowych danych. Ale jest to również bardzo często stosowany w aplikacjach internetowych. Można zaimplementować dynamiczna Strona internetowa za pomocą Pythona. I dynamicznej strony internetowej, I średnia zawartość nie tylko statyczne jak stworzyliśmy wczoraj przez Tylko trudno kodowania w tekście łacińskim i inne takie rzeczy, lecz zdolność zalogować się, zdolność do zakupu coś, zdolność, aby sprawdzić ze swoimi koszykami, lub tym podobne. Wszystko to wymaga dynamizmu i ty Potrzebuję trochę język jak jedna z nich. PUBLICZNOŚCI: Więc czy Python posiadają własny rozszerzenie, podobnie jak [INAUDIBLE] David J. MALAN: Czyni. Tak więc w świecie Python, Django jest bardzo popularny framework dla Pythona. WSGI jest inny mechanizm, który jest rodzaj różni się od tego ale w duchu podobnym. Jest to dodatek, który pozwala uruchamianie kodu Pythona na serwerze. Jest other-- tak. Więc te nazywamy ram. I jest to trochę nadużycie. To jest bardziej technologii serwera WWW. Ale my keep it simple i umieścić że w tej kolumnie jednak. OK. WSGI. WSGI. Innym thing-- i rzeczywiście, niech mi, że aby przenieść własnej kolumnie bo będę krzyczeć na siebie za umieszczając je w tym samym segmencie. Postawmy to na serwerze Cechy, powiedzmy. To nie jest to termin techniczny. Więc możemy być WSGI. Jest CGI, który jest starszy technika obsługujących języki jak Perl lub PHP, lub innych. Znowu wspominałem te warunki nie tyle rodzaj ingrain je, ale tak, że jeśli widzisz im to coś po prostu google, aby dowiedzieć się więcej. Nie ma prawdziwego soku W niektórych z tych miejsc. Ale wróćmy do języków. Rozmawialiśmy o C #, Python. Co jeszcze można wykorzystać do Programowanie Web te dni? Skupmy się na tym miejscu. PUBLICZNOŚCI: PHP. David J. MALAN: PHP. I wróćmy do tego. Więc PHP jest bardzo często używane. PHP ma skłonność do złego rap. Zaczęło się, jak wdrożyć język przez ludzi, którzy być może nie były koniecznie najlepsi projektanci językowe. I tak można odczytać wszystkie rodzaje artykuły online o tym, jak źle jest PHP. I niestety, to jest przejawem częściowo Just debaty religijne które wybuchają wśród programistów. I to jest coś warto pamiętać, z perspektywy biznesu, które to jest bardzo łatwe dla ludzi technicznych aby wszystkie pracował z ich opinie na temat niektórych rzeczy. I to nie musi oznaczać, że jeden krzyczy najgłośniej lub najsilniejszy, rozgniewani opinia jest prawo. Wiele razy, to naprawdę Po prostu nie ma znaczenia. I tak ludzie są po prostu podnosząc cokolwiek własnych uprzedzeń lub stref komfortu są. I tak należy zachować to na uwadze przy dokonywaniu decyzję, że właśnie dlatego, że ktoś mówi to jest właściwy język zadania, które mogą być prawdziwe, ale również po prostu może być to właściwy język w obrębie własnej umiejętności ustawić lub strefy komfortu. Co nie jest złe, ale należy zdać sobie sprawę że może istnieć jakiś kontekst. Istnieją pewne obiektywnie nieprawidłowe oświadczenia, jak C jest niewłaściwy język używany w tych dniach na stronach internetowych wykonawczych prawie zawsze. Ale to nie jest nieuzasadnione powiedzieć, że każdy z nich są złe, że my krążyły do ​​tej pory. PHP przeszedł wielu wersjach. Więc języki mają tendencję do wersji Numery z nimi związane. PHP jest do, myślę, wersja 7 teraz więc to już od dłuższego czasu. I tak jak w językach uzyskać nowsze, często uzyskać nowe funkcje. Ale trzeba pamiętać o tym bo jeśli witryna została zaimplementowana w wersji 7, ale PHP próbujesz uruchomić stronę internetową, a może już zlecone rozwój kodzie do kogoś innego i poczty to do ciebie lub wysłać je do Ciebie a mówią tu umieścić tego na serwerze WWW, jeśli serwer WWW jest niewielu rok outdated-- czy to własny serwer www lub host-- może nie działać właściwie. Więc są to rodzaje rzeczy, że ktoś musi być świadoma podczas aktualizacji witryny lub wdrażając go po raz pierwszy. Słyszałem JavaScript wcześniej. Więc JavaScript jest ciekawa jeden, ponieważ jest ogólnie po stronie klienta, jak zobaczymy po przerwie, która Oznacza on uruchamiany w przeglądarce użytkownika. Ale można też uruchomić JavaScript w dzisiejszych czasach za pomocą czegoś, co nazywa Node.js, gdzie node.js Jest to mechanizm do biegania Kod JavaScript po stronie serwera, zamiast używać Python, lub PHP, lub inne takie języki. JavaScript jest szczególnie dobrze nadaje się dla aplikacji czatu i czasie rzeczywistym aplikacji, podczas gdy PHP nie jest wielki językiem do realizacji czegoś jak serwer czatu, gdzie użytkownicy pobyt połączony z nim stale. PHP jest bardziej mnie odwiedzić kiedyś wrócić wynik, a następnie kliknij odnośnik jakiś inny sekund lub minut od teraz. Zważywszy node.js i JavaScript mogą być wykorzystywane bardziej dla stałych połączeń. Inne języki, które podejrzewają, są powszechnie wykorzystywane do internetowej rzeczy? PUBLICZNOŚCI: Lepiej być jQuery framework? David J. MALAN: Dobre pytanie. Ani. Nazwałbym jQuery biblioteki, gdzie ponownie biblioteka jest tylko kilka kodu że ktoś inny ma napisane, że na ogół rozwiązuje niektóre problemy, które Dzięki temu, mam nadzieję, łatwiej aby wykonywać swoją pracę. I pozwól mi zrobić jeden przykład to w ramach sieci. W kontekście sieci jest Ten język, JavaScript które zobaczymy później, przy czym ci może powiedzieć coś takiego this-- "Document.getElementById". I co ja nazywam to wczoraj? Po pierwsze, myślę, że był unikatowy identyfikator Dałam do elementu, który wyglądał następująco. "P id =" pierwszy ">", a następnie mieliśmy jak "lorem ipsum", et cetera. Więc gdybym pisząc program w JavaScript, żeby w jakiś sposób manipulować, Zmiana stron internetowych, które mamy bawiły się wczoraj, Chciałbym skorzystać z tej Podświetlona linia kodu dostać ten konkretny fragment kodu HTML z mojej strony, że szczególną węzła jak będziemy nazywać. Jednak w jQuery, zamiast pisania Ten, który jest surowy code-- JavaScript tuż po wyjęciu z pudełka, to w jaki sposób Napisać it-- byś zamiast po prostu powiedzieć, "#pierwszy." Jest to równoważne. A więc opierać się tylko na tym bardzo Arcane przykład, co może jest argument za korzystanie z jQuery? Dlaczego deweloper będzie korzystać z biblioteki jak jQuery, oparte na tym izolowanym przykład może? PUBLICZNOŚCI: Mniej kodu. David J. MALAN: Tak. Jest to mniej kodu. To jest po prostu szybciej pisać. Kontrapunkt jest że wygląda bardziej przerażające. Naprawdę nie można przeczytać, że od lewej do prawej. W rzeczywistości, ponieważ w większości interpunkcyjne teraz zamiast rzeczywiste słowa, mogę wywnioskować, że rodzaj "Document.getElementById" dostaje element z dokumentu przez jego ID. I naprawdę można używać nie ma takiego mnemoniki od tej rzeczy tutaj. Więc jest to kompromis. Jest wyrafinowania, który przychodzi często z użyciem bibliotek, zwłaszcza jak jQuery. Ale rzeczywistość jest jQuery ma niby z stają się de facto standardem, tak, że prawie każdy je dzień piszący kodu JavaScript wykorzystuje jQuery lub coś podoba, a nie pisze Takie wyrażenia jak verbose tym, bo znowu, ludzkość dowiedział się, wow, to było rodzaj straconą szansą aby uczynić nasze życie łatwiejszym. Więc ludzie uczynić ich życie łatwiejszym. Dobre pytanie. Inne języki do rozważenia. Powiedziałbym, że wśród tego Lista Ruby jest dość popularne. I tak w świecie Ruby, nie ma ramy zwane szyny, które są bardzo popularne. Więc Ruby on Rails jest powszechnie używane wyrażenia. Również w tym świecie, niech mnie Koło Java dla WWW rzeczy, gdzie na świecie Javy Może masz JSP lub Java Serwlety, która jest popularną technologią. I to wystarczy ponownie sposoby wykorzystania że język w środowisku serwera. Więc co to znaczy? Jeśli masz fizyczny Serwer, byś dosłownie pobrać oprogramowanie serwera WWW i zainstalować go w taki sposób, że masz poparcie dla jednego z ramy te, z którymi mogłyby z kolei skorzystać z jednej lub więcej z tych języków. A w rzeczywistości, jeśli założyć jak hostingowego lub niektóre z chmurą Usługi rozmawialiśmy o wczoraj, często rzeczy po prostu przychodzi z Konfiguracja urządzenia dla ciebie. Nie trzeba to ustawić ręcznie. Ale jeśli tak, to gdzie rola administratora systemu, by tak rzec, wchodzi w grę. On lub ona faktycznie tego rodzaju rzeczy dla ciebie, albo tak zwane wiadomości często to zrobić dla ciebie. W porządku. Wszelkie pytania na temat niektórych z nich tutaj? Lub jakiekolwiek szanse na wszystko, aby zapytać o językach? Ramki? Pozwól mi przedstawić tylko jedna biblioteka to również bardzo często w tych dniach. Ta lista mogłaby się ciągnąć w nieskończoność. I ta biblioteka jest rodzajem zaczynają wypadają z łask. To było około. Został spopularyzowany przez Twitter przez jakiś czas. A teraz wiele stron internetowych, wiele osób używa go. Ale nowe rzeczy idą na zewnątrz i idzie. Ale niech mi tylko daje poczucie co oznacza, że ​​do korzystania z biblioteki. Więc znowu jest obsługa JavaScript bardzo popularnym językiem. CSS lub Cascading Style Sheets, rozmawialiśmy o tym wczoraj. To też jest wszechobecny. Nikt nie robi stronę internetową już dziś bez użycia HTML i CSS minimalnie. Ale to nie zawsze jest łatwe do robienia pewnych rzeczy. A więc pozwól mi iść do getbootstrap.com. Ups. To nie jest jak zaklęcie. Getbootstrap.com, co będzie mnie prowadzić do strony docelowej dla tej biblioteki. Więc hojnie zadzwonić same ramy, które jest rodzajem rodzaju targach, ale chciałbym jeszcze nazwać więcej bibliotek niż ram. Ale to tylko twierdzić, semantyka. Pozwólcie mi iść do swojej karcie CSS pozwól mi przejść do czegoś takiego. Więc przypomnieć, co wyglądało nasze formularze jak wczoraj Cloud9? To było dość brzydkie. Stare przyciski szkolnych. Myślę, że przycisk został przez szare zaniedbanie. I wszystko było naprawdę sformatowane dość niechlujnie. Więc jeśli chcesz, aby formularze szukać trochę nicer-- pozwól mi przybliżyć tutaj. A tak naprawdę po prostu ładniejszy znaczy bardzo nitpicky estetykę. Tak więc zauważyć, jak skrzynka e-mail nie ma zaokrąglone rogi prostokątne a do niego. Więc to trochę czystsze tam. Zauważ, że słowo e-mail Jest tam aż zacznę pisać a potem odchodzi. Więc to ładny mały cecha. Zauważ, że jest to rodzaj świecące ładnie, co niektórzy z was tego dostać za darmo z poziomu przeglądarki, ale niektóre to też biblioteki, Kod, że inni ludzie mają napisane, że daje ci to. Coś takiego Daje mi moje hasło. Przycisk ten jest trochę bardziej seksownego niż zaniedbanie. Bardzo modne teraz. Odkąd iOS 7 lub tak, to Świat ma zdobyć bardzo płaskie, podczas gdy na świecie przedtem wiele cieni, działki refleksji na temat ikon. Podobnie jak w świecie odzieży, jest trendy mody, które przychodzą i odchodzą. Teraz wszystko jest płaska w telefonie. W rzeczywistości, przycisków na iPhone są teraz po prostu niebieskie linki. Nie często nawet okrągłe przyciski. To są po prostu rzeczy że i wyjdzie o modzie, a więc to, w jaki sposób może dokonać bardziej nowoczesny wygląd formularza internetowego. Guziki. Więc Bootstrap ma wiele pięknych przycisków. Więc jeśli chcesz niebieskie przyciski, zielone przyciski, niebieski, pomarańczowy, czerwony. Bootstrap ułatwia robić te rzeczy. Są takie rzeczy że można całkowicie zrobili wczoraj z CSS i HTML, ale to jest po prostu ból w szyi. I tak zamiast tego, co będzie Bootstrap masz zrobić, to coś takiego. Jeśli chcesz button-- wyproszeni Jest to znacznik HTML nie używaliśmy yesterday-- i chcesz go szukać jak ten link, dosłownie po prostu dać mu lekcje, co zrobiliśmy mówić o wczoraj, z "btn btn-sukcesu." Dlaczego te słowa? Twitter, autorzy Bootstrap, wyszedł z tych słów. Mogli nazywa im cokolwiek chcą. Ale co się teraz ktoś na Twitterze, w tym przypadku, zorientowali się, jak można zrobić Przycisk wyglądają ładnie i czyste i zielone. Są pakowane tę funkcjonalność w klasie CSS, zwany "btn" i "btn-success", tak, że każdy z nas może teraz używać go nawet bez myślenia o to. Więc one wydobywane z dala pojęcie link więc nie musimy się martwić o wykonującego je sami. Możemy faktycznie skupić się na wdrażaniu wszystko to do nas. Jeśli przewinąć na dół. Komunikaty o błędach na ekranie. Czasami chcesz trochę wiadomość pojawiają się na górze przeglądarki. Każdy z nas może zrobić z niektórymi wysiłku, po wczorajszej lekcji, ale dlaczego mielibyśmy się przejmować? To takie nieciekawe estetyczny detal. Spójrzmy prawdzie stanąć na ramiona Bootstrap i niech nam takie rzeczy, gdzie dosłownie dostać czerwone pole, Wystarczy zrobić paragraf tag z klasą of-- przykro. "BG-niebezpieczeństwo" dałoby nam Zamiast tego pola czerwonawe. Teraz przejdźmy do więcej ciekawych rzeczy. Jeśli wrócę na górę tę stronę i przejść do części składowe, teraz świat staje się bardziej interesująca. Na przykład, bardzo często jest rozwijanego menu jak ten. Byłby to absolutny ból wykonania. I to nie tak dawno temu, że mamy programistów musiałyby realizować te rodzaje menu od zera. Ale to taki wspólny paradygmat że biblioteki jak Bootstrap tylko daje możliwość dokonać rozwijanego menu znacznie, znacznie łatwiej. Nie ma jednego sposobu, aby to zrobić, ale jeśli czytam dokumentację Chciałbym zauważyć, że, OK, należy użyć Ten HTML, jeśli chcę się menu która zachowuje się w taki sposób. Podobnie, chodźmy przycisku rozwijanego. Więc to jest jeszcze bardziej wyszukane. Jeśli chcę to wyglądać przycisku ale to trochę trójkąt oznacza Powinienem kliknij na niego i dostać do tego menu, w tym jest za pomocą języka nazwie JavaScript. I moglibyśmy wdrożyć to w JavaScript. Ale znowu, jest kołem nie chce na nowo. Po prostu chcą go zdjąć biblioteka Półka na to. Chodźmy do czegoś jak paski postępu. Więc coś w tym jest trochę chłodno. Jeśli kiedykolwiek widział postęp Pasek przesuwając po ekranie, wykonawczych, które często jest tylko ikona przędzenia. W rzeczywistości, tak na marginesie, niech mi iść do Ajax-- co to jest? Informacje Ajax? Ups. Ajaxinfo. Pozwól mi zapamiętać adres. No to jedziemy. Więc jeśli kiedykolwiek widział niektóre animacje podczas gdy strona się ładuje, albo myśli, lub zapisywanie lub tworzenie czegoś, ty może zobaczyć takie animacje jak te. Więc spójrzmy na coś jak ten tutaj, i niech wybrać kolor pierwszoplanowy zielone, co czuje rodzaj obsłudze. Mogę kliknąć to? Przyjdź jeden. OK. Musimy po prostu iść z powodu czerwonej to co dostajesz. Więc tutaj mamy go. Więc jeśli kiedykolwiek widział to na ekranie, przy czym nagle okazuje się, a następnie nagle znika, co jest to, że w zakresie, który? Cóż, jest to po prostu GIF. G-l-F. I to jest animowany Plik, co oznacza po prostu to jak starej szkoły komiksu. Jest tylko kilka różnych Ramy, które idą [jąkanie] i po prostu powtarzać. I to tworzenia złudzenie ruchu. Dlatego też, kiedy strona odbywa załadunku lub robi coś, co robi programista zrobić? Cóż, on lub ona po prostu ukrywa tego obrazu. Więc wszystko jest pasek postępu jest rodzajem podobnego filmu oglądanego. Jesteś jakby nie zważając na fakt, że nie jest w rzeczywistości robi nic, to tylko w ruchu. A potem, kiedy to się robi postępy, oni po prostu ukryć lub wyłączyć. I to jest cała magia które się tam dzieje. Bootstrap daje coś nieco bardziej wyszukane, w którym rzeczywiście można zobacz procent jak to jest, ale to też jest właśnie rodzaj prostej animacji. Spójrzmy na niektóre ostateczna bardziej złożone przykłady. Coś jak modalnej. Czy ktoś wie co to jest modalne? Okno modalne jest generalnie który ma przejąć kontrolę nad pierwszym planie i uniemożliwić cokolwiek innego. To rodzaj zmusza użytkownika uwagi na środek ekranu blokowania ich, zwykle wszystkiego innego. Więc jeśli mogę uruchomić ten Demo, Ekran będzie na ogół stają się szare. Cóż, w jaki sposób możemy się szary? Cóż, prawdopodobnie tylko zmienił kolor tła jak my wczoraj czy coś takiego. Może to nakładka że półprzezroczyste. A teraz zauważyć można zrobić fantazyjne takie rzeczy. Więc jeśli kiedykolwiek kliknij na przycisk i chcesz trochę pop się pojawiają, Możesz to zrobić. A więc kto dba o żadnym stopniu tak? PUBLICZNOŚCI: Więc z Bootstrap, aby ją włączyć, Jest to tak proste, jak to jak wczoraj zrobiliśmy stronę stylów CSS? David J. MALAN: Rzeczywiście. Bardzo dobre pytanie. Pozwólcie mi iść do Getting Started. I tak. Wszystko co musisz zrobić, aby Zastosowanie Bootstrap jest zasadniczo skopiować i wklej te trzy długie kolejki Kod do górnej części własnego page-- internetowej szef swojej page-- i jesteś gotowy do pracy. I nie ma różne sposoby robienia to, że jednak to być najprostsze. Więc co jest pomocny o tym wszystkim? Cóż, jeśli nie jesteś tak bardzo Osoba wdrażająca strony internetowej ale starasz się go zaprojektować, lub chcesz zapewnić kogoś z diagramami szkieletowym, że tak powiem, lub wydawania zaledwie artysty, co chcesz robić, I, to dzień, często udać się do serwisu jak Bootstrap, gdzie gdybym chcą wprowadzić something-- jak niedawno na uczelni Chcieliśmy wdrożyć narzędziem webowy do nawigacji Harvardu Katalog przedmiotów, ułatwiając dla studentów przeglądać kursy i dodać do kursów lista zakupów, by tak rzec, do rodzaju zdecydować, co chcieli podjąć. Próbowałam sobie wyobrazić ja, co byłoby składniki chcemy wykorzystać do zbudowania tego? Co interfejs użytkownika będzie jak? I tak patrząc przez witryny, takie jak Ten i inne takie miejsca biblioteczne, można uzyskać inspirację, ponieważ wow, Mogę korzystać z tej widget, a ten widget, a ten widget. I wtedy naprawdę co programator zaczyna do zrobienia, zwłaszcza w tych dniach w tym bardziej nowoczesny świat programowania WWW, jest programowanie jest coraz o okablowaniu rzeczy razem. Sortowanie biorąc to z półki, to z półki, to z półki, i jest inteligentny jeden podłączenie wszystkich tych punktach, ale ostatecznie zbudować coś ponownie stojąc na barki innych, tak, że nie spędzają miesiąc wdrożenie głupiego menu rozwijanego która jest rzeczywiście trudne do zrobienia, jeśli chcesz go do pracy w Chrome i IE i Firefox, a wszelkie Szereg innych przeglądarek. To dlatego nie jest to bogaty oprogramowanie komercyjne i open source przemysłu, jak również. PUBLICZNOŚCI: Więc nie Bootstrap uzyskać zaktualizowane i trzeba wtedy zaktualizować linki? David J. MALAN: Czyni. No tak, to robi. Bootstrap jest obecnie w wersji 3.3.6. I generalnie co byś do-- to jest rzeczywiście zasługuje na uwagę. Nie ma co się na ogół znany jako semantycznego wersjonowanie Układ na świecie. Nie każdy to robi. Ale jeśli widziałem numery wersji które mają postać x.y.z-- Tak na przykład, w pierwszej wersji programu może być 1.0.0. A jeśli jest to bardzo, bardzo beta lub nawet stan alfa, co oznacza wykorzystanie na własne ryzyko, że nie jest naprawdę gotowy do prime time, można nawet zacząć 0.0.1 czy coś takiego oznaczenia. Ale jeśli zaczyna się od wersji oprogramowania 1,0 lub równoważnie 1.0.0, typowo, co jest powszechne w tych days-- choć nie jest omnipresent-- Jeśli firma lub poszczególne poprawki programistyczne jakiś błąd w jakimś kawałku oprogramowania, które naprawdę Był to błąd, którego korekta nie powinna Wpływ cię w żadnym stopniu nie zmienia zachowanie programu, to po prostu coś naprawia że nie działa properly-- byś zwykle zaktualizować wartość oo istnieje. Co oznacza, że ​​ktoś taki jak Kareem może po prostu przejść do swojej stronie internetowej, ślepo zmienić numer wersji od 1.0.0 do 1.0.1, zapisać go, wysłać go, i teoretycznie nie trzeba obawiają się, że on po prostu uszkodzony Jego strona internetowa powodu brak niektórych funkcji, bo jeszcze coś złamał. Tymczasem, jeśli Ja Programista lub jakaś firma miały wprowadzić pewne znaczące zmiana, która podnosi funkcjonalność, mogę zaktualizować nas 1.1.0 bo jestem właściwie zmiany zachowania biblioteki. Daję ci może więcej funkcjonalności. Wreszcie, gdybym rzeczywiście fundamentalnie zmienić oprogramowanie tak dużo, że będzie przerwa wielu użytkowników stron internetowych lub aplikacji, Więc jestem zobowiązany, w tym modelu, aby uaktualnić główny numer wersji też który jest łamanie zmiana. Innymi słowy, może mam zaniechana wsparcie dla tych kropli Menu w dół. Więc jeśli upgrade do 2.0, pół Twoja strona może przestać działać. I to jest swego rodzaju sygnałem społeczności, aby co udział w tworzeniu uaktualnienie. Dobrą okazją do podniesienia. Inne pytania? W porządku. Więc rzućmy okiem na jednym finale tematem w tym segmencie programowania stosów technologicznych, a mianowicie związane z telefonów komórkowych. Tak więc w świecie telefonów komórkowych dzisiaj Ci have-- i iPadów, a powierzchnie, i wszystkie te rodzaje w urządzeniach: masz wiele możliwości, jeśli chodzi o wdrażanie aplikacja lub strona Urządzenia mobilne Twojego klienta. Więc po prostu podać oczywiste, być może w tych dniach, jakie są platformach rozwijać w mobilnej przestrzeni? Jakie urządzenia warto wsparcie ze swojej aplikacji lub strony internetowej? PUBLICZNOŚCI: Jabłko. David J. MALAN: OK. Więc urządzeń Apple. To znaczy, iPhone, a Oznacza iPada, a może nawet iPod. Co jeszcze? Olivier? PUBLICZNOŚCI: Android. David J. MALAN: Android. OK. Więc telefonów z systemem Android, Android tabletki, Android Market Jest nawet Messier because-- i Nawet Apple jest coraz bałagan. Podczas gdy kiedyś iPhone był pewien rozmiar, i iPad była pewna wielkość, i iPod była pewna wielkość teraz mamy iPad Mini i cienki Te i iPhone 6 Plus i 6. Staje się bałagan. To staje świat Android. I mówię to z rodzaju walcowania moje oczy, bo od dewelopera perspektywicznym, to jest ból w szyi, gdy nie masz Steve Jobs ' Wizja absolutną kontrolą w stosunku do wszystkich tych specyfikacji. Jabłko nadal nie dlatego, że są te, budowa sprzętu. Ale jest to miła rzecz, jeśli Jestem programistą, po prostu wiem, że moje iPhone zawsze będzie za ten wielki, ponieważ co oznacza, że ​​zawsze wiem ile ekran nieruchomości mam. Więc jeśli chcesz umieścić ikonę w górnym lewym rogu, to będzie dokładnie w tym samym umieszczać na urządzeniu Każdego klienta. Ale w świecie iPhone 6s i iPhone 6 Plusy i na świecie Androida telefony, to po całej mapie. I tak to utrudnia programu rzeczy, zwłaszcza interfejsy użytkownika, bo teraz trzeba zacząć organizowanie Twoje stosunkowo interfejsy użytkownika, a nie absolutnie. I to samo jest prawdą w przeglądarkach, i komputery stacjonarne i laptopy, na lata bo Ty, oczywiście, mają różne rozmiary ekranów. Co jeszcze? Można mieć powierzchnie, jak Microsoft. Możesz mieć-- PUBLICZNOŚCI: Windows phone. David J. MALAN: Co to jest? PUBLICZNOŚCI: Windows phone. David J. MALAN: Tak. Więc telefony okna nadal można znaleźć. Rodzaj rodzaju BlackBerry, ale próbować. A potem kiści innych urządzeń. Tak więc w większości przypadków, niech powiedzieć, są to te, dbać o tej chwili. Oczywiście rzeczy Apple Z pewnością Android rzeczy, a wśród Windows, takich jak tabletki powierzchniowych Wydaje się, że łowienie na całkiem dobrze. I tak wśród tych urządzeń, jeśli chcesz rozwałkować, powiedzmy, mobilną dla swojej obecności firma, to jakie decyzje projektowe masz zrobić? Cóż, mamy już powiedział, świata Apple jest co najmniej dwa języki które są zwykle używane. Jeden nazywał się co? PUBLICZNOŚCI: Objective-C. David J. MALAN: Tak. Więc Objective-C, który jest starszy. Jest to także język, w którym wiele komputerów Mac aplikacje napisane w dalszym ciągu. Potem drugi nowszy był? PUBLICZNOŚCI: Swift. David J. MALAN: Swift. A to niby dwa wiedzieć, aby przekonać ludzi. Następnie w świecie Androida, w jakim języku ma Android użyciu? PUBLICZNOŚCI: C #? PUBLICZNOŚCI: Java. David J. MALAN: Java językiem "du jour". W świecie Windows, na pewno, powiemy C # w tej sprawie. Tak już jest to rodzaj denerwujące, bo co wynos dla firmy Właściciel lub kogoś, kto po prostu chce się rozciągnąć mobilną obecność? Jak, do cholery? Na przykład, jeśli chcę, aby wspierać dość szeroka baza użytkowników, Muszę napisać, jak się wydaje, trzy oddzielne aplikacje. Jeden na jeden z tych języków, jeden w Javie, jeden w języku C #. I nawet, jeśli chcę funkcjonalność być identyczne, to nie ma znaczenia. I jeszcze trzeba stosować różne Języki dlatego, że Apple i Microsoft, i Google wszelkie wsparcie różnych środowiskach. I to było wyzwanie na lata. Powrót w dzień, kiedy ludzie używali do zakupu oprogramowania w sklepie komputerowym w kurczyć zapakowane pudełka, będzie trzeba albo sięgnąć po półce Mac lub for-- Może to bardzo mały Mac shelf-- lub większa półka Okna i kupić oprogramowanie. I bardzo często, nie było nawet coś dla Ciebie na półce Mac. Czemu? Cóż, firmy zdecydowały, jeśli 90% świata, 95% światowej ma komputery, po co się męczyć nawet wykonawczych rzeczy na Mac OS? Jako aside-- łącznie digression-- dlaczego jest tak, Mac, które wydaje się tak odporne na wirusy, i robaki i zagrożenia dla bezpieczeństwa? Czy Apple to lepiej? Lepiej na utrzymanie komputery są bezpieczne? PUBLICZNOŚCI: Mniejsze publiczność? David J. MALAN: To prawdopodobnie nieco większa do niej. Więc wielu użytkowników komputerów Mac mają dawno twierdził, oh, korzystania z komputera Mac, będziesz odporny na wirusy i robaki i wszystkie te rzeczy które od dawna boryka się komputery. To może być dlatego, że Apple ma lepszych programistów i piszą lepsze oprogramowanie, lub System operacyjny został lepiej zaprojektowane. Być może, ale chyba nie. Jest to prawdopodobnie, że kiedy jesteś 12-letni lub 30 coś rodzaj domu siedzi na piśmie złośliwe oprogramowanie przejąć świat, masz zamiar iść po znacznie większa grupa docelowa. 95% na świecie, która może być uruchomiony system Windows lub niektóre ich warianty. Więc jest trochę po obu stronach. Ale ich kredytu, Jabłko, o ile mi wiadomo, nie bardzo reklamowany się jako bardziej bezpieczne, skoro jesteś po prostu zaprosić dramatu, jeśli dokonać tego twierdzenia, że ​​myślę. W porządku. Bez uzyskiwania zbyt daleko w dół tym, w jaki sposób rozwiązać ten problem? Czy trzeba kupić, czy trzeba zapłacić trzy różne osoby do rozwijania aplikacje? Czy wybrać jeden nad drugim? Co należy kierować swoim myśląc o tym sądzisz? Kareem? Nie. Ktoś inny. PUBLICZNOŚCI: Wystarczy przyjść ze sprzętem. David J. MALAN: Chodź ze sprzętem? Co masz na myśli? PUBLICZNOŚCI: Dla środowisko. [NIESŁYSZALNY] David J. MALAN: Tak to prawda. Ale klienci, Tymczasem może mieć iPhone, mogą mieć telefonów z systemem Android, ale Tabletki mogą mieć wprowadzone przez Microsoft. Więc jak masz strategię mobilną we wszystkich tych różnych użytkowników? Wydaje się, że jeśli to kosztuje, powiedzmy 1000 $, aby iPhone aplikacji, to będzie kosztować 2000 $, aby aplikacja iPhone oraz Android aplikacji lub $ 3000 również wspierać oraz urządzeń z systemem Windows. To chyba dość mało, a może nawet nie być liniowa zależność tak. PUBLICZNOŚCI: Jeśli chcesz mieć aplikację lub Nie można mieć czułe internetowej. David J. MALAN: Dobrze. PUBLICZNOŚCI: Czy można mieć natywną aplikację. David J. MALAN: Tak. Tak więc w całym tym kontekście tutaj rozmawialiśmy o tym, co ludzie nazwaliby natywnych aplikacji. Oznacza to, że aplikacje są pisane w rodzimym języku tego urządzenia. Więc rodzimych Objective-C lub Swift Kod lub w Java lub C #. Co oznacza, że ​​po pobraniu, niech powiedzieć snapchat, popularnej aplikacji lub po pobraniu Facebook na telefon, pobierasz albo Wersja napisane dla iPhone lub zapisywane na telefonie z Androidem, lub zapisywane do powierzchni. Ale istnieje alternatywa. Olivier został nawiązując do, rzeczywiście można używać języka HTML 5 Zamiast tego, za pomocą tego, co się nazywa internetowej Aplikacja, której po prostu realizować swoją obecność mobilnej i każda funkcjonalność. Co mam na myśli obecność mobilnej? Podobnie jak swojej stronie, pod którymi informacje kontaktowe, wykaz wszystkich swoje produkty, może to ma zakupy koszyk, może sprzedawać rzeczy za jego pośrednictwem. Niezależnie od zastosowania, wy wdrożyć, a nie w Objective-C, lub Swift, lub Java lub C #, ale w HTML 5, który był językiem przyjrzeliśmy od wczoraj, z JavaScript i CSS. A co z tymi, ładne trzy jest to, że do ich uruchomienia, trzeba tylko to, co kawałek oprogramowania? PUBLICZNOŚCI: przeglądarki internetowej. David J. MALAN: przeglądarki internetowej. A najlepiej wiem, wszystkie te Urządzenia wyposażone są w przeglądarkach internetowych tak aby użytkownik nie musiał zainstalować coś specjalnego. Tak więc można po prostu powiedzieć swoje Publiczność, klienci, przejdź do acme.com w telefonie Przeglądarka i będziesz po prostu posiada doświadczenie Web Based które nadal wypełnia ekran, ale nie trzeba się martwić o wszystko Koszty te i tym wszystkim złożoności. Ale na pewno nie będzie być jakiś haczyk tutaj, prawda? Zwłaszcza jeśli zwrócić uwagę że kilka lat temu, Pierwsza wersja Aplikacja mobilna Facebooka była głównie aplikacją HTML 5. I oni mają bardziej Niedawno przepisany go w swoich innych zastosowań. Więc dlaczego nie od razu chcę powiedzieć, Cóż, oczywiście mamy zamiar to zrobić? Co może być ukryte koszty? PUBLICZNOŚCI: Wydajność. David J. MALAN: Wydajność? Co masz na myśli? Uczestniczyć: natywna aplikacja ma większą wydajność. David J. MALAN: Więc to jest prawda, z kilku powodów. Możemy oversimplify odpowiedź. I przypomnieć naszą dyskusję interpretowany w porównaniu zebranych językach. To jest HTML 5 a wraz z nią, żeby być jasne, JavaScript-- powszechnie napisane JS-- i CSS są interpretowane języki, chociaż tylko JavaScript jest językiem programowania. I tak w stosunku do nich, co niektóre z tych zestawiane są, przynajmniej te three-- Objective-C, Java i C # - tych, Teoretycznie powinna być tylko szybciej. Ale istnieje inna rzeczywistość for-- PUBLICZNOŚCI: Funkcjonalności? David J. MALAN: Co to jest? WIDOWNI: funkcjonalności. David J. MALAN: funkcjonalność? Jak to? PUBLICZNOŚCI: za pomocą aparatu wyłączanie telefonu lub czegoś. Można użyć tych z przeglądarką. David J. MALAN: Dokładnie. Oni sec-- PUBLICZNOŚCI: [INAUDIBLE] David J. MALAN: To kolejny dobry. Nie ma cechy, które pochodzą z telefonów komórkowych dzisiaj które nie są zgodne z projektem, dla bezpieczeństwa Powody, dostępne dla przeglądarek internetowych. Ponieważ byłoby to rodzaj creepy, gdyby właśnie wtedy, gdy odwiedzić google.com lub cnn.com lub dowolny website.com, że strona ma prawo, aby włączyć w aparacie, zrobić zdjęcie z was, a następnie użyj go. Ale nie chcesz losową stronę internetową że wizyta po raz pierwszy mieć tę możliwość. I co z tego telefonu Producenci zazwyczaj zrobić jest po prostu odmówić dostępu do tego rodzaju informacji do przeglądarki, co oznacza, że nie może stosować aparat. Nie można wdrożyć powiadomienia push, sygnały dźwiękowe, które pojawi się na ekranie krótkich wiadomości. A w rzeczywistości, nawet GPS jest jedynym rodzajem od rodzaju dostępne dla przeglądarek internetowych. Jeśli kiedykolwiek na laptopie lub na urządzeniu przenośnym, zatrzymał się mniej więcej tak może CNN.com, ale także lokalne stacje informacyjne wydają się to zrobić, zostanie wyświetlony monit często z message-- foxnews.com chce poznać swoją lokalizację. Zatwierdzić lub odrzucić. Dobrze, przeglądarka próbuje uzyskać dostęp do Twoje dane GPS z telefonu. Ale na szczęście Microsoft, Apple i Google Uznaliśmy, że czuje się jak jest to użyteczne sytuacja, chcemy Google Maps i inne narzędzia do pracy, ale nie chcemy skradać ludzi po prostu umożliwienie każdej strony, aby to zrobić. Warto więc rodzaj spotykają połowy i poprosi użytkownika. Ale to nie jest to regułą z całym sprzętem, takim jak kamery i naciśnięciu Uwagi szczególne i tym podobne, więc może trzeba rezygnować z pewnych funkcji. Ale wydajność też. Jest coraz mniej zauważalne dziś, być może jak LTE łapie dalej i szybciej prędkość Internetu na telefonach, ale można trochę poczuć różnicę. Jak aplikacji internetowych po prostu czuje się wolniej, zazwyczaj, niż natywnej aplikacji, częściowo Ponieważ aplikacji internetowych definicji jest w Internecie. To rozmowy z serwerami w sieci. A jeśli połączenie sieciowe jest powolny, nawet przewijanie może być powolne. Ale natywną aplikacją, trzeba już wstępnie downloaded-- prawdopodobnie kiedy byłaś w domu ze sklepu z aplikacjami, lub przynajmniej wstępnie pobrane jest w całości wcześniej, niezależnie od speed-- połączenia i tak teraz masz wszystkie wymienione bity, które trzeba zazwyczaj. Może z wyjątkiem niektórych danych że pochodzi z serwera. Więc to są kompromisy tutaj. Jest rodzajem środku kompromis w rzeczywistości. I myślę, że pan: PUBLICZNOŚCI: Użyj danych w trybie offline. W natywnych aplikacji, można [INAUDIBLE] David J. MALAN: Oczywiście. Więc nie jest to problemem w trybie offline, który jest naprawdę denerwujące jeśli nie można zagrać w gry lub korzystania niektóre programy po prostu dlatego, że jesteś gdzieś w piwnicy lub windy. Pochodzący aplikacja jest sprężysta z wyższym prawdopodobieństwem przeciw tym, zakładając, że masz wszystko Dane trzeba lokalnie. Więc nie jest jeszcze trzecia opcja tutaj. I niech zwróci widma natywna aplikacja web app tutaj i tutaj. A co jest w środku Jest coś called-- i myślę, że może mieć użył słowa wcześniej, może być? Hybrydowy aplikacji. I jak wskazuje nazwa, to coś w środku. Jest to rodzaj aplikacji internetowej oraz to rodzaj natywnej aplikacji. A co to znaczy? Okazuje się, że są frameworks-- używając terminu z earlier-- oprogramowania że inni ludzie pisali dla każdej z tych platform. Te i jeszcze inne urządzenia. W rzeczywistości, pozwól mi iść do PhoneGap, które jest takie, że ramy Wierzymy Adobe posiada teraz. Pozwólcie mi iść do Getting Started. Zobaczmy. Zobacz, czy mogę zobaczyć listę narzędzi. Sprzęt komputerowy. Pierwsze kroki. sprzętu PhoneGap. Zobaczmy. PhoneGap dostępu do sprzętu. Pozwól mi zobaczyć, czy możemy dowiedzieć się trochę wykres, który kiedyś mieć. Jest to w innym miejscu. Jest to przydatne? Nie. To będzie tracić czasu. sprzętu PhoneGap. Pomysłowość. API urządzeń. Nie, oni przeniósł go. PhoneGap. Chodźmy po raz ostatni spojrzeć na to i zobaczyć, czy mogę ci pokazać. Pierwsze kroki. Instaluj PhoneGap. Zainstaluj aplikację mobilną. Daj spokój. Oni zreorganizowana wszystko. W porządku. Ah w porządku. Cóż, jedziemy. To nie jest wcale tak pouczające, ale to co ja niby szuka. Więc PhoneGap to framework, który Cię można pobrać za darmo, który daje jakiś kod startowy, zasadniczo. Tak więc niektóre kodu, które mają napisane że nie robi prawie nic. Ale co to daje zasadniczo jest odpowiednikiem wniosku, że po prostu wkłada duży prostokąt na ekranie użytkownika. To nie umieścić pasek URL, jak Przeglądarka, nie umieścić adres. To po prostu kładzie duży prostokąt. I tak skonfigurować ten wielki prostokąt, pod maską faktycznie przejść do acme.com, czy może m.acme.com dla mobile.acme.com, ale użytkownik nie wie są one pod tym adresem. Wszyscy widzą, jest Zawartość strony internetowej. Ale co jest miłe o tym istoty aplikacja hybrydowa jest, że to co PhoneGap i inne firmy dają Ci to oni dają wam trochę kodu w Objective-C lub Swift, lub trochę kodu w języku Java, lub trochę kodu w języku C #, a przede wszystkim, wszystko co musisz dostarczyć jest minimalnie adres aplikacji przez przeglądarkę WWW. I wtedy ten pakiet wszyscy razem, a ty mieć albo dostęp do swojej site za pośrednictwem Internetu, lub nawet buforować lokalny skopiować wewnątrz aplikacji, a następnie zapisać swoją aplikację w formacie iPhone, Android telefon Format, format powierzchni, lub Dowolna liczba innych urządzeń. Przesłać każda z tych wersji do sklepu Google Play, do App Store, do System Windows Store, i tak dalej. A teraz, można mieć wszystkie swoje widzowie ściągnąć naprawdę natywną aplikację choć większość kodu było napisany przez kogoś innego, ale zawartość tej natywnej aplikacji wszystkie pochodzą z typowo własnej stronie internetowej. Więc dalej pisząc swoją stronę w HTML, JavaScript i CSS. Więc dlaczego rozmycie te linie? Dlaczego mają zastosowanie hybrydowego to rodzaj rodzimych, ale także rodzaj sieci opiera? Co znajduje się cały sens dodając tę ​​złożoność? To znaczy, nawet jeszcze, tylko z spoglądając za pośrednictwem tej strony, Podręcznik Wprowadzenie czuje jest tam dużo schodów dla mnie zrobić zanim can-- PUBLICZNOŚCI: Ponowne? David J. MALAN: Ponowne? Co masz na myśli? PUBLICZNOŚCI: kodu źródłowego. Więc ten sam kod będzie działać na wszyscy różnych platformach. David J. MALAN: Tak. PUBLICZNOŚCI: [INAUDIBLE] David J. MALAN: Perfect. Jeśli czas jest napięty, a jeśli nie trzeba, że ​​wiele developers-- Może masz jeden developer a on na pewno nie zna wszystkich tych environments-- pewnością nie jest dobrze, a już na pewno nie mogę programu we wszystkich trzech jednocześnie i wysłać trzy produkty w czas przeznaczony na jeden, możesz mieć go lub ją zbudować wszystko HTML i JavaScript i CSS, a następnie nauczyć się malutkie Trochę o natywnych aplikacji, tylko na tyle, aby pobrać ramy w ten sposób, aby następnie przesłać swój produkt wszystkich różnych sklepach aplikacji tak, że masz teraz natywną aplikacją. Tak, że wydaje się to win-win, ale znowu, być jasne, Jakie są potencjalne kosztów lub pułapek? PUBLICZNOŚCI: Wydajność? David J. MALAN: Tak. Wydajność. Trudno opisać werbalnie. Więc jeśli po prostu wziąć na Wiara to aplikacja mobilna, aplikacja internetowa będzie zazwyczaj wykonują wolniej. Może nie wyglądają dość dobrze, ponieważ w iPhone, Android i telefonów, oraz Windows, istnieje zawsze rodzajem domyślnym wyglądzie i poczuć się do wszystkich z przyciski i menu. A firmy w internecie, można spróbować zbliżenie tych estetykę z bibliotekami jak Bootstrap, ale user-- bystry user-- będzie wiedział, że coś nie całkiem tutaj. I to jest w porządku, może to nie jest wielka sprawa. Ale problem z wydajnością absolutnie jest to nic wielkiego. Natywne aplikacje będą miały tendencję do zaledwie być znacznie bardziej elastyczne i dlatego lepszy. I tak, co to może być najlepsze z obu światów? Jeśli jesteś szczególnie mała firma lub mała grupa, nie ma środków rozwijać aplikację równolegle na wszystkich trzech platformach, i szczerze mówiąc, czuje, że jest złym pomysłem bo jeśli rozwałkuj i wszystkie trzy jednocześnie sprawę, Należy dodaliśmy kilka funkcji lub zrobić coś inaczej, teraz trzeba go naprawić trzy miejsca, a nie jeden. Co może być optymalna Strategia tutaj ogólnie, jeśli środki i czas są szczelne? PUBLICZNOŚCI: Po prostu zrób to na iOS. David J. MALAN: To nie jest nierozsądne. iPhone, przynajmniej w USA, są bardzo popularne. Android wydaje się wciąż mieć dominującą udział w rynku, w skali globalnej, w klasyfikacji generalnej. Więc nie jesteś być reprezentatywna z całości globu w tym tygodniu. Ale to absolutnie jedna decyzja. To znaczy, na kampusie tu że niektóre liczby okropne lub odsetek studentów Nie masz iPhone i Android komórkowych. Ale za granicą, jest to swego rodzaju przeciwieństwo. Więc zdecydować na podstawie odbiorców. Skąd wiesz, co publiczność ma? Dobrze, dowiedzieliśmy się wczoraj trick. Można je zadać. Jeśli masz widownia można wysłać formularz ankiety. Albo może po prostu robić to, co? PUBLICZNOŚCI: Google Analytics? David J. MALAN: Co to jest? PUBLICZNOŚCI: Google Analytics. David J. MALAN: Google Analytics. Tak. Albo jeszcze bardziej jakby technicznie, po prostu spojrzeć na własnych serwerach internetowych dzienników. Bo to, co się dzieje za każdym razem, przeglądarka, czy laptop, desktop lub Telefon odwiedzić swoją stronę internetową? Wysyłają że nagłówek HTTP, który pokazuje Ci, co przeglądarka i system operacyjny, z którego korzystają. Więc można wywnioskować, z dużym prawdopodobieństwem, co twój demograficzna korzysta w ten sposób a następnie dostosować. Więc przypuszczam, że to nie do przyjęcia. To rodzaj złe dla firmy, jeśli Użytkownicy Androida nie można kupić nasze widgety. PUBLICZNOŚCI: Czy jesteś będzie pobierać opłaty, czy nie? David J. MALAN: Niezależnie od tego, idziesz do ładowania? Więc OK, masz za co płacisz. PUBLICZNOŚCI: Czy aplikacja ma zamiar jest wolny, czy to gonna-- David J. MALAN: OK. Więc może można odzyskać W ten sposób koszty, or--? PUBLICZNOŚCI: Czytałem kiedyś, że wspomniane badania Użytkownicy Apple więcej płacić za aplikacje versus-- David J. MALAN: To prawda ponieważ są one już płacą więcej za ich urządzeń. Więc nie nieuzasadnione założenie. PUBLICZNOŚCI: [INAUDIBLE] David J. MALAN: OK. Więc jeśli są bardziej skłonni zapłacić, potem do diabła z użytkowników Androida. Nie zamierzamy płacą nam nic tak. Równie dobrze możemy skupić nasze priorytety, przynajmniej przez kilka pierwszych miesięcy lub rok, na iOS. Całkowicie uzasadnione. Co to jest bardziej zintegrowane Strategia niż to? Maybe-- co to jest? PUBLICZNOŚCI: [INAUDIBLE] David J. MALAN: Bardziej expensive-- więc może inwestować więcej in-- iść do przodu. PUBLICZNOŚCI: Tak. Wystarczy mobilna strona internetowa. David J. MALAN: Czyli zrobić mobilne www i nie nawet martwić o tej złożoności. Albo rozsądna strategia, który wziął nawet Facebook, jest zacząć hybryda aplikacji, ponieważ nie jest że o wiele trudniej jest to zrobić niż to. Po prostu trzeba przeczytać kilka dokumentacja i dowiedzieć się, jak przesłać rzeczy do App Store. Więc może zacząć Ta tak, że w pierwszym dniu, można obsługiwać wszystkich użytkowników. A potem, po prostu lubią Facebooka i innych firm zrobili, gdy masz zasobów, masz ludzi, dlaczego nie można ponownie wdrożyć po prostu aplikacja iOS. Masz jeszcze coś dla każdego, mimo że jest to gorsze doświadczenia Być może z zastosowaniem hybrydowych. Ale można stopniowo rozwałkować i wymienić swój krótki termin Środki hybrydowego aplikacjach Twoje bardziej rodzime aplikacje. PUBLICZNOŚCI: Ale z Ciebie aplikacja hybrydowa będą mieli dostęp do funkcji mobilnych? David J. MALAN: Niekoniecznie. Więc może zrobić świadomą decyzję na początku, można przesyłać tylko na zdjęcia natywna aplikacja iPhone na Facebooku, ale nie na aplikacji Android Początkowo, na przykład. I to jest trochę białym kłamstwem, ponieważ aplikacje internetowe mają więcej ograniczeń niż aplikacje hybrydowe okazuje na zewnątrz, a jeśli czytamy w dokumentacji dla PhoneGap i rzeczy podoba, ludzie wymyślić sposoby dać do aplikacji internetowych Dostęp do kamery, tak długo jak używasz hybrydą aplikacji. Jak to działa? Ponieważ hybryda Aplikacja definicji ma kawałek kodu w Objective-C, Swift i Java lub C #, może uzyskać dostęp do sprzętu. Niekoniecznie wszystko, ale to może bardzo dobrze być tak, że masz wystarczy uzyskać dostęp do aparatu, nawet dla platform Android, na Przykładowo, w tym contrived przykładzie. Jakieś inne pytania? W porządku. Dlaczego nie bierzemy 15 minut przerwy tutaj. Będziemy wznowić w trzech z końcowym spojrzeć na programowaniu WWW, bazy danych, i JavaScript.