Дейвид Дж Малан: Така че ние сме назад. Така високо ниво тема в момента предприятието е технология купчини, което не е особено технически термин, това е повече от уловка всичко за всеки брой комбинации на технологии че може да се използва за решаване на проблемите. И може би най- монтаж начин да започнете би било да разгледаме езици, тъй като Продължавам тракащ разстояние един куп и най-всички в стаята има вероятно е чувал за най-малко един. И така, защо да не опитаме да се разграничат what-- разграничат следните езици и говори накратко за това, кога ще изберете една върху друга, как те са сортиране на фундаментално различни, и по-специално когато сте в чата с инженери, или се опитват да решат кого да наемат, или това, което изпълнение предложение да се даде зелена светлина, как всъщност ще направи тези видове решения. Така че нека просто дрънкалка някои неща, на разстояние. От всички езици хората имат Чух за това, което идва на ум? В. OK. ОК, C ++. Какво е това? АУДИТОРИЯ: Python. Дейвид Дж Малан: Python. Отличен. Какво друго? Visual Basic. Чух Java. Visual Basic-- а.к.а. VB. Java. .NET, Което е повече от улова на всички за това, което е обикновено C #, като език въпросният. И нека да споменем, че. Така че ние ще се върнем към това. Съжалявам? За съжаление? АУДИТОРИЯ: SQL. Дейвид Дж Малан: Scratch? АУДИТОРИЯ: SQL. Дейвид Дж Малан: О, SQL. ДОБРЕ. SQL. Така че ние ще се върнем към that-- всъщност, това е good-- след почивката, както добре. Какво друго? АУДИТОРИЯ: Oracle. Дейвид Дж Малан: Така че Oracle, не език. Всъщност те ще използват SQL, както добре. Така че нека да поставим, че след на почивката, както добре. И съжалявам, нещо тук? АУДИТОРИЯ: Mathematica. Дейвид Дж Малан: Mathematica? ОК, разбира се. И MATLAB е вид там понякога. АУДИТОРИЯ: R. Дейвид Дж Малан: R. Нека се върнем тук. Fortran. Сигурен. По-стари училище. Fortran. COBOL. Ще хвърля BASIC. ОСНОВЕН. Всяка-- АУДИТОРИЯ: MATLAB? Дейвид Дж Малан: MATLAB. О, ти победи, за да го. Нещо? Сещам се за няколко други. Сещам се за няколко други. И това, което е последният? АУДИТОРИЯ: ASP. Дейвид Дж Малан: ASP? Да. Active Server страници. Това обикновено попада под други езици, понякога C #, така че нека да оставим това на разстояние. Но ние ще се върнем към това за рамки и такива. Нещо друго? PHP е популярен. Ruby е друг. JavaScript, да не се бърка с Java, е друг. Това е вид много. Така че това може да бъде определено огромна, като списъкът не е вече, само за да започне да се знае къде да започнете. И така, за щастие, нека подходи към този от няколко гледни точки. Първо, нека да се опитаме да се категоризират най-малко някои от тези езици в две големи кофи, напомнящи разговора имахме преди прекъсване, когато ние говорихме за съставяне, и изходния код, и машинен код, защото това не как е всички езици работят. Така че ние ще грабне няколко примера of-- или контра-examples-- на този модел. И след това, защо не говорим за приложенията че тези езици обикновено се използва. И честно казано, въпреки че това е доста дълъг списък, това е само част от този списък, че Вие обикновено ще се направи от тези дни за решаване на проблемите. Някои езици са по-нови от други. Някои езици са по-популярни, отколкото други. Така че това не е като имаш такъв преобладаващото задача, преди да когато се решава между тези различни езици. Така че нека да направим това. Имахме по-рано, изходния код, и след това имахме машинен код. Опа. Писане грешната дума. Машинен код. И ние имахме някакъв процес в средна called-- да, компилатора. Така че компилатора. И какъв е кодът на машината всъщност работи на в края ще бъде действителната си CPU. С други думи, от машинен код, I означава инструкциите най-ниското ниво че CPU всъщност разбира. Събиране, изваждане, преместване, спаси, и операции по този начин. И така, това е модел за това, което е известна като компилирани езици. Може би не е изненадващо. Така че това е моделът, за компилирани езици. Но се оказва, че има друг клас на езици наречен тълкува languages-- тълкува languages-- че са малко по-различен. Пишеш в изходния код, стартирайте тях чрез преводач, и че интерпретатор е което работи на процесор. С други думи, това, което не излъчват е това, което, както изглежда? Машинен код. Единиците и нулите, че процесора Самата крайна сметка разбира. Така че в тази първа версия и езици като C, като видяхме, пишете в изходния код че е малко тайнствена, но поне това е вид на английски като и това е най-малко за четене след като свикнете с него. Можете да го ползвате през съставител и навън можете да получите, в крайна сметка, нули и единици. Това прекалено опростяване. Има някои други стъпки в там. В действителност, ако някога сте чували терминът "асемблер" това е една стъпка преди единиците и нулите. Това е малко по-разбираеми, но все още е доста тайнствена. И така, има и междинни стъпки че са в действителност, става тук. Но на изхода, в крайна сметка, е тези нули и единици. Но в тълкуват свят, където трябва езици, които се интерпретират езици, вие всъщност пропускат тази стъпка. С други думи, когато се напише програма, просто веднага го изпълним. Вие не го събират и след това да го ползвате, както направих аз преди. Можете просто да го напише и да го ползвате. А ако искате да се направи бърза промяна, можете да направите бърза промяна и го стартирайте отново. Така че няма средна стъпка тук. Сега, за програмата писах по-рано, който беше тази програма "Hello World", Може би е разумно wonder-- или биха могли логично state--, че не е, че времето отнема да съставят програмата си. Изглежда, че го е направил просто ей така. А има и графичен версии на компилатори. Аз съм с много тайнствена версия, но вие може да удари един бутон игра и че всъщност ще направя компилацията за вас. Аз бях съставила програма и след това отново, за да го изпълним, аз просто правя това. И го извежда в левия там, "Hello!" Това не изглежда всичко това обременително. Но когато вашите програми са повече от просто една, две, три, дълъг четири, пет линии, тя може да отнеме много повече секунди, за да се съберат. Понякога дори минути или съвсем малко време, за да се съберат. В крайна сметка, някои от -големите продукти в света са неща, като операционни системи, Microsoft Word, Microsoft Excel, който може да бъде стотици хиляди или дори милиони редове код дълги, и тези, които не го правят само незабавно да изпълни. Освен това, в интернет, това е стана модерно да се използва просто тълкуват езици, отчасти защото може да се направи промяна като разработчик и след това просто веднага презареди страницата на браузъра, и веднага да видите резултата. И така, HTML, докато не език за програмиране, е език, който се тълкува. И видяхме, че един и същ ефект вчера. Ти просто се презарежда страницата, след като промяна в Cloud9 and-- voila-- виждате нов резултат. Така че каква е разликата тук? В HTML, изземване, имахме отворен HTML, отворена глава, отворена заглавие, близо заглавие, близо глава, отворена каросерия, и така нататък. Имахме всички тези етикети, че ние доста много каза, каже на браузъра какво да правя. Ей браузър, тук идва една HTML страница. Ей браузър, тук идва заглавието. Ей браузър, тук идва някои текст, който трябва да бъде смел. И тогава ти кажа обратното. Ей браузър, че това е за текста на смели лицето. Ей браузър, че това е за тялото. И т.н. И така, какво е браузър? Браузърът е просто преводач. Това е програма, която някой като Microsoft или Google е написал, чиято цел в живота е да се Прочети език, известен като HTML, и го тълкува. Най-отдолу, отляво надясно. И всеки път, когато браузърът вижда отворен скоба, заглавие, близо скоба, той трябва да интерпретира, че в смисъл, ох, че означава, че трябва да постави тези думи начин тук в горната част на браузъра. Така че той просто прави това, което се казва в HTML кода. Но няма нули и единици. Няма по-компилация. Ти не го направи. Браузърът не го направи. Това просто не е замесен. Така че в духа на тези текущи теми, днес и вчера, че изглежда да е една прекрасна функция. Спестявате си код и след това просто да го ползвате или го тълкува. Няма по междинни етапи. Със сигурност има цена? Не може всичко да е квит. Така че това, което може да се окаже, че разходите? АУДИТОРИЯ: Space. Дейвид Дж Малан: Space. Така че, разбира се. В съставен света, че имате не само на оригиналния код, Вие също се създават и След това се предполага спестяване машината code-- на нули и ones-- и това е Трябва да се вземат някои големи пространства. Абсолютно. Така че ви струва повече пространство. Да? Публика: Браузъри мощ интерпретират по различен начин. Дейвид Дж Малан: Браузърите може да го тълкува по различен начин. Това е вярно. Но аз не съм сигурен, че съм удобна твърдейки че е така, защото той е тълкуван. Това е по-просто, защото това е за изпълнение на език че самата има неясноти. Така че нека да не е съвсем потвърди че един, но добро предчувствие. Какво друго може да се плати цената? Андрю? АУДИТОРИЯ: Вие сте комбиниране две стъпки, така че следователно има нарастваща сложност, както добре. Дейвид Дж Малан: The complex-- увеличаването на сложността къде? За кого? АУДИТОРИЯ: Така че, в интерпретатора стъпка, вие сте комбиниране на преводача и компилатор за просто водещ до to-- Дейвид Дж Малан: Ах, OK. По ирония на съдбата, това е може би по-малко просто за прилагане на преводача, макар и да изглежда доходност плюсове на този удобство. Така че може би е вярно. Но това нещо зависи, аз бих казал, на езика и за това как те отидоха за неговото прилагане. Не може да има много по-голяма сложност, всъщност, в компилатора, просто защото трябва да се премине от нещо толкова високо ниво на нещо толкова ниско ниво. Но една добра мисъл. Така казано по друг начин, компилиран програма, когато се превърна в тези нули и единици, озовава в езика че процесора говори, като има предвид, в тази страна на свят, програмата, която съм писал, кода, който съм писал, никога всъщност получава превръща в действителната езика компютъра говори. Единиците и нулите. Той остава в оригиналната, по-човешки приятелски, по-разбираеми език. Така че това, което може да е влиянието там, ако не в действителност притеснява конвертиране на вашите програма на много езика че базовият компютъра говори? АУДИТОРИЯ: може да не разбере нещо? Дейвид Дж Малан: Might не разбирате нещо. И това може да claim-- ако тя не разбираше нещо, че е бъг или липса на функция в интерпретатора. Така че ще бъде по- грешка, отколкото на разходите. АУДИТОРИЯ: Имате достъп до изходния код? Дейвид Дж Малан: Има добра. Така че един недостатък тук е ще трябва да има достъп. Вие, крайният потребител, може да изглежда да има достъп до изходния код. И това не винаги е вярно. Но това е вярно в случай на JavaScript, които ще разгледаме след на почивка днес, което е интерпретиран език за програмиране че ти пиша в изходния код. Но, че изходния код получава прехвърлени от вашия сървър на браузъра и работи в браузъра на човешкото. Така че тук тя можеше просто отворете прозорец, като съм правил в Chrome, и гледам на него, тъй като самите ние погледна вчера с Google. Това може да изглежда малко по- неразбираемо, но тя е там. Така че това е абсолютно една цена, платена. АУДИТОРИЯ: Изпълнение хит? Дейвид Дж Малан: Да. И това е друга Biggie. Има един хит производителност. Тъй като имате тази среден човек, който сам по себе е програма, между вас и процесора, за разлика да просто хранене тези сурови нули и единици в процесора, има един хит, за което вземат с интерпретиран език. Такава, че произволно, програма че може да отнеме една секунда който да работи на компютър или един минути, за да се изпълнява на компютъра тук, може да отнеме 10 секунди или 10 минути, за да работят на компютър тук. Той обикновено не се случва, е, че много на difference-- фактор на 10-- защото има оптимизации които можете да направите. Но това е почти винаги по-бавно. Сега, на обратната страна на тази загриженост е, че и компютри, всеки 12 18 months-- според Законът на Мур, така че да speak-- са само подготовка за по-бързо и по-бързо. Аз имам повече и повече дисково пространство. Аз имам повече и повече RAM. Кой го е грижа? И това е нещо като разумен аргумент. Наистина, една от причините Ето защо ние можем да толерираме по-бавно тълкуват езици е защото ние, хората наистина не забележите. Компютрите имат намерила точно толкова дяволски бързо. Като има предвид, през деня, особено когато хардуер е много по-ограничено, сте имали по-малко от всичко, това е много по-скъпо така че всичко да струва повече, и след това Наистина ли искаше да изтръгне колкото производителност, колкото можеше. Но това изисква писмена форма на по-ниско ниво, ако щете, с компилиран език. Така че ви направя да вземе това изпълнение хит. Но като цяло, на плюсове изглежда да бъде на стойност то тези дни. Е, с изключение на издаване на интелектуална собственост. Този вид четимост на кода, ние ще се върне към когато погледнем JavaScript. Така че нека да се опитаме да се категоризират поне няколко от тях. Така че сред събраните език, ние ще има C, C ++, доста, нещо такова, Java, въпреки че това е малко на едно изключение, за причини аз ще ви покажа само за миг. C # ще бъде в този списък. Ще разгледаме по-най-просто по-модерни езици. Добре. И това изглежда като много там. Като има предвид, от тази страна на оградата, ние може да има JavaScript, и Python, и PHP и Ruby. И е, че е достатъчно за най-новите такива? Това се чувства като много за сега. ДОБРЕ. И тогава точка, точка точка, тъй като списъкът е безкраен. И в действителност, ако искаме да просто се получи усещане за this-- Wikipedia, компилирани езици. Аз съм се познае ние можем да получим далеч по-изчерпателен списък. Така че тук ние вървим. Така че тук е много по-изчерпателен списък. И аз се надявах някой да предполагам D като език, защото това също е налице, но те се спря на D изглежда. Въпреки че в действителност може да бъде Е. О, всъщност, това трябва да бъде в списъка на тези дни. Swift всъщност е език, че Apple е изобретил че сега се използва, все по-често така, в iPhone развитие. Но ние ще се върнем към че с нашата дискусия на мобилния в съвсем малко, както добре. Така Swift, както добре. И след това, ако отидем да тълкува language-- тълкува language-- след това тук е още по-дълъг списък, както добре. Така че, ако просто Google и погледнете в Уикипедия за тях, ще видите всички видове езици. Но целта е, за днес наистина, просто свежда до може би това издаване на интелектуалната собственост и четимост от крайния потребител и да производителност, е друг Биги, както добре. Така че сред тези езици, нека да видим дали можем да ви дадем само някои проба на езици. Ние не искаме да мине през Всички езици, безкрайно. Чудили ли сте се какво е определен език прилича? Направихме виж преди малко. Защо не можем да отнеме няколко на заявки за функции. Кой би искал да види какво друг език прилича? Да. АУДИТОРИЯ: Java. Дейвид Дж Малан: Java. Добре. Така че нека да отиде в Java. И само за да ви даде sample-- бихме могли да пишат всички тези навън, но би било по-бързо, само за да разгледаме примерен код на някой друг. Добре. Така е този добър пример? Опа. ДОБРЕ. Така че тук е Java версия на програма писах по-рано, "Hello World". Така Java, че често ще виж дума "класа." на Тогава ще видите някои име след това. Ще видите фигурни скоби като видяхме преди, и понякога те отиде на същата линия, понякога други линии, това е вид на лично решение. Ще видите ключови думи като "Публичен", "статичен", "празнота". Но ние направихме вижте "основната". "Главна" е като цяло името на функцията по подразбиране или парчето подразбиране на код, който получава се движи в една програма. "String." Какво имаме предвид под низ по-рано? Използвах го вид небрежно. Низ е това? Дума. Това е като поредица от символи. Индивидуални герои, обратно към гръб до гръб, обикновено в масив, както говорихме. И в действителност, виж този синтаксис тук, на два квадратни скоби? Това означава, хей компютър, тук идва масив от низове. нотация на квадратна скоба е обикновено се използва за означаване на това. И тогава можете вероятно отнеме guess-- какво значи това подчертано парче код вероятно правя? АУДИТОРИЯ: Изходът? Дейвид Дж Малан: Да. Той отпечатва нещо на екрана. Така че "системата" е нещо като позоваване на вашия компютър. "Out" е на вашия компютър изход или на екрана. Така "System.out.print LN" вероятно означава? "LN." Print линия, която програмистите като да изглежда правописа някои думи от в своята цялост и се вземат клавишни комбинации с други думи. Но "Въ" е линия, така печат линия. Така че това отпечатва "Hello World! ", Последвано от нов ред. Така че това е всичко. Но Java е това, което те ще повикване обектно-ориентиран. И наистина, само за да се даде Няколко други определения там, че може да виж, като цяло, има много различни видове езици, но най-често са процедурните или императивни езици. Има функционална езици, което не означава, че другите са нефункционални. И тогава там е обектно-ориентирани езици. И това е може би най-добрия категоризация на повечето езици че някога ще избере за сортиране на типичен търговски проект. Това би било твърде много, Мисля, от дупка на плъх да слизат, за да се опита да обясни различните различия. Но езиците сме виждали този начин far-- C е процедурна или Наложително език. Съвсем наскоро изобретен езици са склонни да бъдат, съжалявам, обектно-ориентиран, което означава, те имат и други функции, за да ги. Мога ли да го обясня по този начин? Нека дори не отиде там. Обектно-ориентирани средства можете да implement-- можете да моделират реалния свят малко по-ефективно. Човечеството, с течение на времето, разбра, уау, че би било хубаво, ако ми език имаше тази функция или че функция. И ето защо имаме толкова много езици в света. Разумните хора, умни хора, съгласни или не и неизменно нещо се съберат на разработване на нови езици, всички заедно. Дело в точка. Apple е изобретил Swift в надежди вероятно понижаване бара на iPhone развитие, защото предишното language-- наречен Цел-C, които биха могли също така да бъде в нашия списък here-- Беше много по-тайнствена и много по-трудно да се увива в съзнанието на човек наоколо. И тъй като програмирането се превръща в може би по-достъпни и по-широко приета от хората дори по-малко технически, на goal-- това е много храбър цел да се опита да понижаване на бариерата за влизане, като самите езици по-лесно да се започне с, но не по-малко мощен задължително. И още един език. Защо не можем да разгледаме в нещо като Python, което е много на мода тези дни. Python. Примерна програма. Да видим. "Hello World" езици. Да го направим. "Здравей свят." Да видим дали това дава ни един хубав пример. ДОБРЕ. Така че това е всъщност вид на шега. Така че, ако някога Google "Hello World", който се случва да бъде един от първите програми писана някога в модерен език, просто като доказателство за концепцията, можете да видите всички видове реализации на това. Някои от тези езици Аз дори не съм чувал. Но можете да see-- да вървим към Basic, в която съм научил преди години, отчасти. Това е един забавен език, защото Трябваше да, като програмист, брой всичките си линии. Не е за разлика от това, което беше прави, когато пишех Псевдокод на жълто документа по-рано за двоично търсене, за търсене на телефонен указател. И така, ако искате да отидат в друга линия, бихте буквално написали, отидете на 10, или да отидете до 20. И ако пишете линии, най- Конвенцията е да се направи, това е линия 10, това е ред 20, това е линия 30, 40, с нищо между тях, като по този начин даде себе си някаква стая ако решите, чакай малко, Трябваше да добавя някои повече код някъде. Вие все още имаше вид на девет шансове да стиснете, че в между си програма преди да се наложи ръчно да преномерират всичко. Така че това е вид на това, което искам да кажа, когато казвам на света е дошъл с нови функции. Някъде по пътя някой осъзнах, момче това е глупаво. Това е просто създаване на работи за програмист. Така че той или тя просто вид построен нов слой отгоре на това така че не е нужно да се притеснявате за това, което линия номера си код всъщност е на. Така че, когато може да изберете един или друг език? Е, кои от тях езици Склонни ли сте да чуе за най-много в свой собствен свят в наши дни? Нека падащото Objective-C също. АУДИТОРИЯ: C #. Дейвид Дж Малан: C #. Така че ми позволи цвят. Имаме ли друг наш цвят някъде? Така C #. И това, което знаеш за C #? Всичко пролетта на ум? АУДИТОРИЯ: Това е език за програмиране. Дейвид Дж Малан: Това е език за програмиране. ДОБРЕ. Това е вярно. Така че ние не говорим за C #. C # има тенденция да се използва в Windows среда, така че ако сте написването на софтуер на Microsoft за Windows, C # е много често използван, независимо дали става дума за десктоп софтуер, или дори телефонния софтуер за Windows телефони, ако сте имали тези, или в интернет, дори прекалено. И в действителност, може би Карим споменат ASP-рано? Така че има и такива неща, наречени рамки, които можем да представим с разширение. Рамки, като ASP. Стойки за активни страници сървър. И това е код и начин на програмиране че като цяло е по-лесно да пишат уеб базирани приложения. С други думи, това би било супер, супер досадно да напише сайт в езика C, че сме виждали преди, защото вие ще трябва да се използва за печат + F, вие ще трябва да използвате тази ключова дума "Основната" и фигурните скоби. Много от тайнствена синтаксис и подход за изпълнение нещо, което е доста сложно. А уеб страница. И така на други езици са се развили да направи този вид на нещо по-лесно. И на свой ред, хората са измислили с рамки, сортиране на инструменти които можете да използвате, че го направи още по-лесно да се напише уеб страници. Така например, за да се направи това много по-бетон, позволете ми да се отворят само текстов файл за миг. И вие може да си припомни вчера че ние казахме нещо като, това е уеб страница. HTML. Затвори HTML. Нека да пропуснете главата и просто правя тялото тук. Да предположим, че аз исках да напиши не "Hello World" но "Здравей Дейвид," когато Дейвид е най- име на влезли в употреба. Какво нещо подобно ASP ще правим, или JSP-- който е Java сървър pages-- или произволен брой други рамки е, че те не си езици, само по себе си. Те са точно като допълнителен софтуер, който ви ще се инсталира във вашата среда че току-що направи по-лесно да се програмира. Така например, вместо да трябва да направите, нещо като "здравей, ФОРМАТ (" Давид ")" или нещо, което е вид сътрудничество mingling-- вида на код, които сме виждали before-- вие ще направите нещо много по-просто, като "име%." И така, тези рамки, като ASP-- и аз не помня, ако аз съм се синтаксиса точно за ASP. JSP е little-- е това право? Така че с ASP, това е сортиране на специален синтаксис че някои предприемачи са решили това може да помогне на хората. И мога да изразя по-сбито контейнери, например. Като се сложи стойност тук, където това име стойност не е N-A-M-E, това е някаква стойност, съхранявана в там. Така "име", в този контекст, бихме нарекли променлива. Алгебра има променливи като х и у, и Z. Програмистите използват променливи, които са по-описателно от X, Y и Z, обикновено. Така че "името" буквално ще бъде някакъв вид на контейнер памет за нещо подобно D-A-V-I-D, за името ми, или който и да друг е влязъл в сайта. И така, това е вид удобство можете да получите с определени среди. Така C # и нещо като ASP би много често се използва в световен Windows, дали за неговия десктоп софтуер или уеб сървър, особено ако вашите сървъри са на свой ред използвате Microsoft Windows и Microsoft IIS-- или Internet Information Сървър, ако получа акронима right-- който е на Microsoft уеб сървър. Така че това, което други езици са хора, запознати с, или сте чували по-често, отколкото не? АУДИТОРИЯ: Знам, че Пайтън вид популярна [недоловим]. Дейвид Дж Малан: Много популярни. Така че Python тук се използва много често в научни приложения или данни науката, където имате много на данните, които искате да се анализира и искате да използвате език за програмиране за него. R може често да се използва за тази както и в статистическа връзка. Но Python има толкова много функции, вградени вътре. Така че много допълнителни библиотеки, казват, като хора. Библиотеките са само колекции от код, които други хора пише, че можете да използвате, за да можете не е нужно да преосмисли тези колела. И така, Python е много често използвани в научни данни приложения. Но това е също много често използван в уеб приложения. Можете да приложи динамична уеб сайт използва Python. И от динамичен уеб сайт, I означава не само статично съдържание като ние създадохме вчера, от просто трудно кодиране в текста Латинска и други такива неща, а способността да влезете в системата, възможността да се купуват нещо, способността да се провери с вашите количките за пазаруване, или други подобни. Всичко това изисква динамика и вие нужда от език като един от тях. АУДИТОРИЯ: Така е Python има своя собствена разширение, подобно на искали [недоловим] Дейвид Дж Малан: Той прави. Така че в света на Python, Django е много популярна рамка за Python. WSGI е друг механизъм, който е вид, различен от този но подобни по дух. Това е добавка, която ви позволява да тече Python код на сървъра. Има other-- да. Така те ще се обадя рамки. И това е малко на злоупотреба. Това е повече от уеб сървър технология. Но ние ще го прости и сложи то в тази колона все пак. ДОБРЕ. WSGI. WSGI. Друг thing-- и всъщност, нека ме движи че собствената си колона, защото аз ще крещи по себе си за извеждайки в същата кофа. Нека да поставим това в сървъра функции, да речем. Това не е технически термин. Така че тук ние може да WSGI. Има CGI, която е по-стара техника за обслужване на езици като Perl или PHP, или някои други. Отново съм споменат тези термини не толкова да се подреди на тях пропит, но така, че, ако сте въвели тях това е нещо, можете просто Google, за да прочетете повече. Няма по-реална сок за някои от тези неща. Но нека се върнем към езиците. Ние говорихме за C #, Python. Какво друго може да използвате за уеб програмиране тези дни? Нека да се съсредоточим върху това все още. АУДИТОРИЯ: PHP. Дейвид Дж Малан: PHP. И нека да се върнем към това. Така че PHP е много често използван. PHP е склонна да получите лоша стока. Той започна като реализира език от хора, които може би не са непременно най-добрите езикови дизайнери. И така, можете да прочетете всички видове членове онлайн за това как лошо PHP е. И за съжаление, това е проява, в част, на само на религиозни дебати че изригне сред програмистите. И това е нещо, си струва да помним, от гледна точка на бизнеса, че това е много лесно за технически хора за да получите всички работил с техния становища по някои неща. И това не означава непременно, че този, крещи най-силно или с най-силните, angriest мнение е прав. Много пъти, тя наистина просто не е от значение. И така, хората са просто спорят каквото собствените си пристрастия или зони на комфорт са. И така, вие трябва да се запази това се има предвид, когато правите решение, че просто защото някой казва това е правилният език за работа, която може да е вярно, но също така просто може да бъде, че е полето език в рамките на собствената си умения определя или зона на комфорт. Което не е лошо, но вие трябва да осъзнаят че може да има някои контекст там. Има някои, обективно погрешни твърдения, като C е грешен език да се използва тези дни за изпълнение на уеб сайтове почти винаги. Но това не е неразумно да се каже, че някоя от тях Грешите, че сме заобиколи този момент. PHP е преминал през много версии. Така езици са склонни да имат версия номера, свързани с тях. PHP е до, мисля, версия 7 сега, така че не е от вчера за доста дълго време. И като езици получават по-новите, те често се нови функции. Но трябва да се забравя, на този защото, ако вашият сайт е бил осъществява във версия 7 на PHP, но Вие се опитвате да стартирате вашия уеб сайт, или може би сте аутсорсинг развитието на вашия код на някой друг и те мейл то за вас или ви я изпратим и те казват, тук, сложи този на вашия уеб сървър, ако вашия уеб сървър е няколко години outdated-- дали това е вашия собствен сървър или уеб host-- тя може да не действително работи. Така че това са видовете на неща, които някой трябва да се забравя когато модернизация на сайт или неговото прилагане за първи път. Чух JavaScript-рано. Така че JavaScript е интересна един с това, че е обикновено клиент страна, както ще видим след почивката, която означава, че работи в браузъра на потребителя. Но можете да стартирате JavaScript тези дни използване на нещо, наречено Node.js, където Node.js е механизъм за бягане JavaScript код на сървъра страна, вместо да се използва Python, или PHP, или други подобни езици. JavaScript е особено подходящ за чат приложения и в реално време приложения, като има предвид, PHP не е голямо език за прилагане нещо като чат сървър, където потребителите остане свързан с него постоянно. PHP е по-скоро ми посещение веднъж, да се върнем в резултат, и след това кликнете върху друг линк някои секунди или минути от сега. Като има предвид, Node.js и JavaScript могат да бъдат използва повече за постоянни връзки. Други езици, които подозирате обикновено се използва за уеб неща? АУДИТОРИЯ: Бихте JQuery бъде рамка? Дейвид Дж Малан: Добър въпрос. Нито едно. Бих нарекъл JQuery библиотека, където отново библиотека е просто един куп код че някой друг има писмено, че като цяло решава някои проблеми, които го прави, надявам се, по-лесно за да можете да си върши работата. И нека да направим един пример за това в контекста на мрежата. В контекста на мрежата има този език, JavaScript, че ние ще видим по-късно, с което сте Може да се каже нещо подобно this-- "Document.getElementById." И какво аз го наричам вчера? Първо, мисля, беше уникален ID дадох за един елемент, който изглеждаше като този. "Р ID =" първи ">" и след това имахме като "Lorem Ipsum," и така нататък. Така че, ако аз бяха написването на програма в JavaScript по някакъв начин да се манипулира, промените на уеб страниците, които ние играеха с вчера, Аз ще използва тази Осветената ред код за да получите този конкретен фрагмент от HTML от моята страница, че специално възел, както ще го наричат. Въпреки това, в JQuery, вместо на писане това, което е сурово JavaScript code-- точно с изваждането от кутията, това е начина, по който напиши it-- бихте вместо просто да се каже, "#първи." Това е еквивалентно. И така, само въз основа на това много Arcane например, това, което може би е аргумент за използването на JQuery? Защо разработчик ще използва библиотека като JQuery, основаващи се на този изолиран например, може би? АУДИТОРИЯ: По-малко код. Дейвид Дж Малан: Да. Това е по-малко код. Това е просто по-бързо, за да пишете. Многоплановост е че тя изглежда по-страшно. Вие наистина не може да го прочете, от ляво на дясно. В действителност, тъй като това е най-вече препинателни сега вместо действителните думи, Мога да вид заключим, че "Document.getElementById" получава елемент от документа от неговото ID. Аз наистина може да се използва не като мнемоники от това нещо тук. Така че това е компромис. Има една изтънченост, която идва често с използване на библиотеки, особено като JQuery. Но реалността е, JQuery има вид от превърна в де факто стандарт, така че почти всеки, който те дни, който пише JavaScript код използва JQuery или нещо като него, и вече не пише такива Подробната изрази като това, защото отново, човечеството е научил, уау, че е сортиране на пропусната възможност да направят живота ни по-лесен. Така че хората правят живота им по-лесно. Добър въпрос. Други езици, за да разгледа. Бих казал, че сред тази списък Ruby е доста популярен. И така, в света на Ruby, има една рамка наречени Rails, която е много популярна. Така че Руби на релси е обикновено се използва израз. Също така в този свят, нека кръг Java за уеб неща, къде по света на Java може да се наложи JSP, или Java Servlets, която е обща технология. И това е само отново начини за използване този език в сървърна среда. И така, какво означава това? Ако имаш физическа сървър, бихте буквално изтегли софтуер за уеб сървър и да го инсталирате по такъв начин, че имате подкрепа за един от тези рамки, с които можете можеше, от своя страна, се използва един или повече от тези езици. И в действителност, ако се регистрирате за като уеб-домакин, или някои от облака услуги говорихме за вчера, често нещата просто идва с конфигуриране на устройството за вас. Не е нужно да настроите това ръчно. Но ако си направил, това е мястото, където ролята на системен администратор, така да се каже, влезе в игра. Той или тя всъщност ще направя този вид неща за вас, или т.нар уебмастера често ще направи това за вас. Добре. Всички въпроси, свързани с някои от тях тук? Или каквито и възможности на всичко, за да попитам за езици? Рамки? Тогава нека представим просто една друга библиотека това е също много често тези дни. Този списък може да продължи безкрайно. И тази библиотека е вид започва да падне от полза. Той е бил наоколо. Тя е популяризирана от Twitter за известно време. И сега много уеб сайтове, много разработчици да я използват. Но новите неща идват навън и идва заедно. Но нека просто ви даде усещане за това какво означава да се използва библиотека. Така че отново, JavaScript е много популярен език. CSS, или Cascading Style Sheets, ние говорихме за вчера. Това също е вездесъщ. Никой не прави уеб страница днес без използване на HTML и CSS минимално. Но това не винаги е лесно да направим някои неща. И така, нека отида да getbootstrap.com. Опа. Това не е начина, по който правописа. Getbootstrap.com, които ще ме доведе към целевата страница за тази библиотека. Така че те щедро наричаме себе си рамка, която е вид сортиране на справедлив, но аз все пак ще го наричаме повече от библиотека от рамка. Но това са само спорни семантика. Пусни ме да им раздела CSS и да ме пусне да нещо подобно. Така припомни какво разглеждали нашите форми като вчера на Cloud9? Тя беше доста грозно. Old School бутони. Мисля, че бутона е сив от по подразбиране. И всичко беше наистина форматиран доста messily. Така че, ако искате вашите уеб форми, за да изглеждат малко nicer-- нека увеличите тук. И по-хубав, аз наистина просто означава много nitpicky естетика. Така че обърнете внимание как прозорец имейл там има заоблен правоъгълни ъгли към него. Така че това е малко по-чист там. Забележете, че думата имейла е там, докато не започнете да пишете и след това си отива. Така че това е една хубава малка особеност. Забележете как това нещо е вид нажежен добре, което някои от това, получите безплатно от вашия браузър, но това е също библиотеки, Код че други хора имат писмено, че това даде. Нещо като това ми дава паролата си. Този бутон е малко по-секси, отколкото по подразбиране. Много много на мода в момента. Откакто IOS 7, или така, на свят е намерила много плоска, като има предвид света, преди да е имал много падащи сенки, много на разсъждения за икони. Голяма като в света на облекло, Има модни тенденции, които идват и си отиват. Сега всичко е плосък на телефона си. В действителност, бутони на вашия iPhone вече са само сини връзки. Там не е често дори кръгли бутони. Така че това са само неща че влизат и излизат на мода, така че това е как може да се направи по-модерен търси уеб форма. Бутони. Така Bootstrap има много хубави копчета. Така че, ако искате сини бутони, зелени бутони, синьо, оранжево, червено. Bootstrap прави по-лесно да прави тези неща. Това са най-различни неща че сте абсолютно могъл са направили вчера с CSS и с HTML, но това е просто болка в областта на шията. И така, вместо това, какво Bootstrap би трябва да направите, е нещо подобно. Ако искате button-- Оказва се, това е HTML тагове ние не използваме yesterday-- и искате да изглежда като този зеления бутон, Вие буквално просто го даде клас, което направихме говорим за вчера, на "BTn BTN-успех." Защо тези думи? Twitter, авторите на Bootstrap, дойде с тези думи. Те биха могли да се обади тях всичко, което искат. Но това, което получавате в момента е някой друг в Twitter, в този случай, е измисли как да се направи бутон изглежда хубаво и чисто и зелено. Те пакетирани че функционалност в CSS клас, наречен "BTN" и "BTN-успех", така че всеки от нас може да Сега тя се използва, без дори да мисля за то. Така че те са абстрахира понятието зелен бутон така че ние не трябва да се грижи за то прилагане себе си. всъщност можем да се съсредоточим върху прилагането неща, които представляват интерес за нас. Ако ние превъртете надолу тук. Съобщения за грешка на екрана. Понякога искате малко съобщение да се появи в горната част на браузъра. Всеки от нас може да направи това с някои усилие, след урок вчера, но защо да се притеснява? Това е такава безинтересно естетически детайли. Нека да стоят на раменете на Bootstrap и нека ни даде неща, като това, където ние буквално, за да получите червено поле, Просто трябва да се направи една точка етикет с клас of-- съжалявам. "БГ-опасната" ще ни даде това червеникаво кутия вместо. Сега нека да отидем до по-интересни неща. Ако се върнем в началото на тази страница и отидете на компоненти, Сега светът става по-интересно. Например, много често е падащи менюта, като този. Това ще бъде абсолютно болки, за да изпълни. И това не е, че дълго преди, че сме програмисти ще трябва да се приложат тези видове менюта от нулата. Но това е една такава обща парадигма че библиотеките като Bootstrap Просто ви даде възможност да се направи падащото меню далеч, далеч по-лесно. Няма никой начин да го направя, но ако прочетете документацията Бих се види, че, ОК, че трябва да използвате този HTML, ако искам падащото меню че се държи по този начин. По същия начин, да вървим към бутон падне надолу. Така че това е още по-красиви. Ако искам това да изглежда като един бутон но това малко триъгълник означава, Аз трябва да кликнете върху него и се получи това меню, тази е с помощта на език, наречен JavaScript. И всички ние може да приложи това в JavaScript. Но отново, това е едно колело вие не искате да се преосмисли. Вие просто искате да го свалиш Срок на библиотеката за това. Нека се върнем към нещо като индикатори на прогрес. Така че нещо като това е вид на хладно. Ако някога сте виждали прогрес бар движи по екрана, прилагане, които често е просто икона на предене. Всъщност, точно както настрана, нека отида да Ajax-- какво е това? Аякс информация? Опа. Ajaxinfo. Нека помним адреса. Ето. Така че, ако някога сте виждали някои анимация докато страницата се зарежда, или мисли, или спестяване, или създаване на нещо, вие Може да видите тези анимации като тези. Така че нека да разгледаме нещо като този тук, и нека да изберем на фона на зелено, което се чувства вид приятелски. Мога ли да кликнете върху тази? Хайде един. ДОБРЕ. Ние просто ще отидем с червено, защото това е, което ние получаваме. Така че тук ние я имаме. Така че, ако някога сте виждали този на екран, при което изведнъж се оказва, и след това внезапно изчезва, това, което е това, което е за прилагане на това? Е, това е само една GIF. G-I-F. И това е един анимационен файл, който просто означава, това е като един комикс старата школа. Има само един куп различни рамки, които ще [заекването] и просто повтаря. И това е създаването на илюзия за движение. Така че, веднага след като страницата се прави товарене или прави нещо, какво прави един програмист? Е, той или тя просто се крие този образ. Така че всичко, бар напредък е е вид на като на филм, който гледате. Ти си вид без да обръща внимание на факта, че това не е всъщност прави нещо, това е просто да се движи. И тогава, когато това е направено напредва, те просто го скрие или да го изключите. И това е цялата магия което се случва там. Bootstrap дава нещо малко по-сложен, чрез която можете да всъщност виж процент по себе си, но тя също е просто някак на проста анимация. Нека да разгледаме някои окончателен по-сложни примери тук. Нещо като модален. Някой знае ли какво е модален? прозорец модален е като цяло който се предполага да поеме контрола на преден план и ви попречи да правиш нещо друго. Това нещо като принуждава потребителя внимание на средата на екрана, ги заключване навън, обикновено, от всичко останало. Така че, ако започне тази демонстрация, на екран като цяло ще стане сив. Е, как да стане сиво? Е, ние най-вероятно просто променила цвета на фона както направихме вчера Или нещо такова. Може би това е наслагване че полу-прозрачен. И сега забележи можете да направите фантазия неща като това. Така че, ако някога кликнете върху бутон и искате малко поп, за да се покаже, можеш да го направиш. И така, който се грижи за all-- така ли? АУДИТОРИЯ: Така с Bootstrap, за да го включи, е то толкова просто, колкото като вчера ние направихме страницата на CSS стилове? Дейвид Дж Малан: Наистина. Наистина добър въпрос. Пусни ме да Първи стъпки. И да. Всичко, което трябва да се направи, за да се използване Bootstrap е по същество копирате и поставете тези три дълги линии код в горната част на вашия собствен уеб page-- главата на вашия page-- и ти си създаден и работи. И има различни начини за правене то, но това ще бъде най-простите. Така че това, което е полезно за всичко това? Е, ако не сте толкова много на изпълнител на един уеб сайт но вие се опитвате да го проектираме, или искате да осигури някой с телени рамки диаграми, така да се каже, или интерпретации на това, което току-що художника което искате да направите, аз, за ​​това ден, често ще отиде на сайта като Bootstrap, където, ако аз искат да приложат something-- като наскоро на територията на колежа ние искахме да приложат уеб базиран инструмент за навигация Харвард курс на стоките, което го прави по-лесно за студенти да разглеждате чрез курсове и добавяне на курсове за списък за пазаруване, така да се каже, някак да реши какво те искаха да вземат. Опитвах се да си представите за себе си, какво съставки би ние искаме да използваме, за да се изгради това? Какво би потребителския интерфейс се харесва? И просто гледам през сайта като този или други такива библиотеки сайтове, можете да получите вдъхновение, защото уау, Мога да използвам тази джаджа, и тази джаджа, и тази джаджа. И тогава наистина това, което програмист започва да се направи, особено в тези дни в този по-модерен свят на уеб програмиране, е програмиране е все по- за окабеляване неща заедно. Сортиране на приема на това от рафта, това от рафта, този от рафта, и ви е най-умен този, да се свърже всички тези точки, но в крайна сметка се изгради нещо като отново стои на раменете на другите, така че да не прекарват един месец прилагане глупав падащо меню, който всъщност е трудно да се направи, ако искате да работите върху Chrome, и IE и Firefox, и всеки редица други браузъри. Ето защо съществува този богат софтуер търговски и с отворен код промишленост, както добре. АУДИТОРИЯ: Така е Bootstrap се актуализира и имате след това да се актуализират връзките си? Дейвид Дж Малан: Той прави. Е, да, това е така. Bootstrap в момента е в версия 3.3.6. И обикновено това, което би do-- това е действително си струва да споменем. Има какво е като цяло известен като семантичен версии система в света. Не всеки прави това. Но ако сте виждали номерата на версиите че са на формата x.y.z-- така например, първата версия на програма може да 1.0.0. Или, ако това е много, много бета или дори алфа статус, което означава използване на свой собствен риск, това не е наистина готов за най-гледаното време, може дори да започне 0.0.1 или някои такова назначение. Но ако софтуера започва версия 1.0, или еквивалентно 1.0.0, Обикновено, това, което е обща тези days-- макар и не omnipresent-- е ако една компания или индивидуални програмист поправки някои бъгове в някои парче на софтуер, който наистина Беше грешка, чието поправяне трябва да не вие въздействие при all-- тя не се променя поведение на програмата, тя просто поправя нещо че не е работа properly-- бихте обикновено актуализира Z стойност там. Което означава, че някой като Карим може просто да отиде в неговия уебсайт, сляпо промените номера на версията от 1.0.0 до 1.0.1, освен това, да го достави, и на теория, не трябва да притеснявате, че той е просто разбити неговата интернет страница, защото на някои липса на функционалност, защото нещо друго проби. В същото време, ако съм на програмист или някоя компания бяха да се направи някаква значима промяна, която добавя функции, Аз може да ни се актуализира, за да 1.1.0, защото аз съм всъщност промяна в поведението на библиотеката. Давам ви може би по-голяма функционалност. И накрая, ако трябва да всъщност коренно променят софтуера, така че много, че то ще се счупи много потребители уеб сайтове или приложения, След това аз съм длъжен, в този модел, за да ъпгрейд на основния номер на версията прекалено, който е скъсване на климата. С други думи, за да имам Отвор на подкрепа за тези, капка меню. Така че, ако ъпгрейд до 2.0, половината Вашият сайт може да спре да работи. И това е нещо като сигнал на обществото като към това, което е участва в производството на ъпгрейд. Една добра възможност за повишаване. Други въпроси? Добре. Ами нека да разгледаме един окончателен тема в този сегмент на програмиране на технологични стекове, а именно във връзка с мобилен телефон. Така че в света на мобилни телефони днес вие have-- и IPads, и повърхности, и всички тези видове на devices-- имате много възможности, когато става въпрос за въвеждане приложение или уеб сайт за мобилни устройства на клиентите си. Така че просто да се посочи очевидни, може би тези дни, какви са платформи, за да развие в мобилното пространство? Какви устройства може да искате да подкрепи с приложението или уеб сайт? АУДИТОРИЯ: Apple. Дейвид Дж Малан: OK. Така Apple устройства. Така че това означава, че iPhone, и че означава, IPAD, и може би дори и Ipod. Какво друго? Olivier? АУДИТОРИЯ: Android. Дейвид Дж Малан: Android. ДОБРЕ. Така че Android телефони, Android таблетки, Android Market е още по-объркана because-- и дори Apple се превръща в разхвърлян. Като има предвид, едно време iPhone е с определен размер, и IPAD е с определен размер, и зарядно беше определен размер, сега имаме Ipad министрите, както и на тънките такива, както и на iPhone 6 Плюс и 6. Това е все една каша. Тя се превръща в света Android. И аз казвам това с вид на търкаляне очите ми, защото от разработчика гледна точка, това е болка в областта на шията, когато не е нужно на Стив Джобс визия на абсолютен контрол над всички тези спецификации. Apple все още прави, защото те са тези, които строят на хардуера. Но това е хубаво нещо, ако Аз съм разработчик на софтуер, да се знае само, че ми iPhone винаги ще да бъде толкова голямо, защото това означава, че винаги знам, колко екран недвижими имоти, което имам. Така че, ако искам да се сложи икона в горния ляв ъгъл, то се случва да бъде в точно същото поставете върху устройство на всеки един клиент. Но в света на iPhone 6s и iPhone 6 Плюсове и в света на Android телефони, това е цяла карта. И така го прави по-трудно да се програма неща, особено потребителски интерфейси, защото сега ще трябва да започне организиране Вашите потребителски интерфейси относително, а не абсолютно. И същото е вярно за браузъри, и настолни компютри, лаптопи за година защото, разбира се, имат различни размери на екрана. Какво друго? Може да се наложи повърхности, като от Microsoft. Може да have-- АУДИТОРИЯ: Windows телефон. Дейвид Дж Малан: Какво е това? АУДИТОРИЯ: Windows телефон. Дейвид Дж Малан: Да. Така че Windows телефони все още могат да бъдат намерени. Вид на вид Къпина, но те да се опитва. И тогава букети от други устройства. Така че по-голямата си част, нека казват, това са онези, да се грижи за в момента. Разбира се нещата, Apple, със сигурност нещата, Android, и сред Windows, като повърхностни таблетки изглежда да се включат и доста добре. И така между тези устройства, ако искате да се търкаля, да речем, един мобилен присъствие за вашия компания, какви видове дизайнерски решения имате ли да се направи? Е, ние вече каза, в света Apple, има най-малко два езика които обикновено се използват. Едно е наречен какво? АУДИТОРИЯ: Objective-C. Дейвид Дж Малан: Да. Така Objective-C, който е по-стара. То също е на езика, че много Mac приложения все още са написани вътре. Тогава друга нова едната беше? АУДИТОРИЯ: Swift. Дейвид Дж Малан: Swift. И тези, които са от вида на две, за да знаете, за да впечатлят хора. Тогава в света Android, какъв език се използва Android? АУДИТОРИЯ: C #? АУДИТОРИЯ: Java. Дейвид Дж Малан: Java е на езика на "дю Jour." В света на Windows, разбира се, ние ще кажем, C # в този случай. Така че вече това е вид досадно, защото това, което е на храна за вкъщи за бизнес собственик или някой, който току-що иска да пусне мобилна присъствие? Подобно, дявол да го вземе? Подобно, ако искам да подкрепя достатъчно широка база от потребители, Имам да пиша, изглежда, три отделни приложения. Един от всеки един от тези езици, един в Java, един в C #. И дори, ако искам функционалността да бъдат идентични, това няма значение. Аз все още трябва да се използва различно езици, тъй като Apple и Microsoft, и Google цялата подкрепа различни среди. И това е било предизвикателство за години. Обратно, в деня, когато хората използват, за да купуват софтуер в магазин за компютри в свие увити кутии, ти или ще трябва да достигнат за рафта Mac, или for-- може би това много малък Mac shelf-- или по-голямата Windows рафта и купи някакъв софтуер. И много често, не е имало дори нищо за вас на рафта Mac. Защо? Е, фирми решиха, ако 90% на света, 95% от света има компютри, защо притеснява дори прилагане неща за Mac OS? Като aside-- общо digression-- защо е че Mac изглежда толкова непроницаема за вируси, и червеи и заплахи за сигурността? Дали Apple по-добри в това? По-добре при водене компютри защитена? АУДИТОРИЯ: По-малък аудитория? Дейвид Дж Малан: Това е вероятно голяма бит към него. Така че най-много потребители на Mac-ове имат отдавна твърди, о, да се използва Mac, ще бъде устойчива на вируси, и червеи и всички тези неща че отдавна страда компютри. Това може да се дължи на Apple има по-добри програмисти и те пишат по-добър софтуер, или операционна система е по-добре проектирана. Може би, но най-вероятно не. Това е вероятно, че когато сте 12-годишен, или 30 нещо сортиране на седи вкъщи писане злонамерен софтуер, за да поеме на света, ти започваш да се отиде след на много по-голяма целева аудитория. В 95% от света, който може да да работи Windows или някаква техни варианти. Така че там е малко и от двете страни. Но да им кредити, Apple, доколкото ми е известно, Не е наистина самите изтъквани като по-сигурен, тъй като сте просто кани драма, ако направите това твърдение, аз ще мисля. Добре. Без да става твърде далеч надолу че, как да се реши този? Трябва ли да купите или да ви се наложи да плащат три различни хора, за да се развие Вашите приложения? Смятате ли, вземете една върху друга? Какво трябва да ръководи своя мислене тук мислите? Карим? Не. Някой друг. АУДИТОРИЯ: Просто ела с хардуера. Дейвид Дж Малан: Ела с хардуера? Какво имаш предвид? АУДИТОРИЯ: За заобикаляща среда. [Недоловим] Дейвид Дж Малан: Така че това е вярно. Но вашите клиенти, В същото време, може да се наложи Iphones, те биха могли да имат Android телефони, те може да има таблетки, направени от Microsoft. Е, как да имате мобилен стратегия Поради всички тези различни потребители? Тя ще изглежда, че ако тя струва, да речем $ 1000, за да се направи iPhone заявление, че ще ходи да ви струва $ 2.000, за да приложение за iPhone и заявление Android, или 3000 $ да подкрепя също така устройства на Windows, както и. Това е може би доста подценяване, и то не може дори да да бъде линейна зависимост подобно. АУДИТОРИЯ: Ако искате да имате един апартамент, или Не можете да имате отзивчив уеб сайт. Дейвид Дж Малан: Добро. АУДИТОРИЯ: Или можете да имате родния ап. Дейвид Дж Малан: Да. Така че в цялата тази връзка тук, ние сме били говорим за това, което хора биха нарекли родния приложения. Това е приложения, които са написани на родния език на това устройство. Така родната Objective-C или Swift код, или в Java, или в C #. Което означава, че при изтегляне, нека каже Snapchat, популярно приложение, или при изтегляне Facebook за телефон, сте изтегляне или на версия, написана за вашия iPhone, или писмено за вашия телефон Android, или писмено за вашата повърхност. Но има алтернатива. Както Olivier се намеква, всъщност можете да използвате HTML 5 вместо това, с помощта на което се нарича уеб приложение, с което можете просто приложат мобилния си присъствие и всички функции. Какво имам предвид от мобилен присъствие? Подобно на своя уебсайт, че има си информация за контакти, списък на всички продуктите си, може би това има пазаруване количка, може би ще продаде неща през него. Каквато и да е вашата кандидатура е, вие го изпълни, не в Objective-C, или Swift, или Java или C #, но в HTML 5, който е езикът ни погледна при вчера, с JavaScript и CSS. И това, което е хубаво за тези, три е, че за да ги управляват, имате нужда от точно това, част от софтуера? АУДИТОРИЯ: уеб браузър. Дейвид Дж Малан: уеб браузър. И най-доброто, аз знам, всички от тях устройства идват с уеб браузъри, така че потребителят не трябва да инсталиране на нещо специално. Така че може просто да кажете на Вашия аудитория, вашите клиенти, отидете на acme.com във вашия браузър и вие просто ще има уеб базирани опит че все още запълва екрана, но не е нужно да се притеснявате за всички тези разходи и всички от тази сложност. Но със сигурност там ще да бъде уловка тук, нали? Особено, ако аз се отбележи, че преди няколко години, най-първата версия на мобилно приложение на Facebook е най-вече заявление HTML 5. И те имат, по- Наскоро, пренаписани, то в други техни приложения. Така че защо да не веднага искам да кажа, добре, очевидно ние ще направим това? Какво може скритите разходи да бъдат? АУДИТОРИЯ: Изпълнение. Дейвид Дж Малан: Ефективност? Какво имаш предвид? АУДИТОРИЯ: Родната приложението има по-голяма производителност. Дейвид Дж Малан: Така че е Вярно, в продължение на няколко причини. Ние можем да свръхопростяването отговорът. И припомни нашата дискусия на тълкува спрямо компилирани езици. Това е HTML 5 и с това, само за да бъде ясно, JavaScript-- често написани JS-- и CSS са всички тълкуват езици, макар и само JavaScript е език за програмиране. И така, в сравнение с тези, които някои от тях се събират, най-малко тези three-- Objective-C, Java и C # - тези, на теория, трябва просто да бъде по-бързо. Но има и друга реалност for-- АУДИТОРИЯ: Функционалности? Дейвид Дж Малан: Какво е това? Публика: функционалности. Дейвид Дж Малан: Функционалност? Как така? АУДИТОРИЯ: Използвай камерата изключване на телефона или нещо. Можете да използвате тези с браузъра. Дейвид Дж Малан: Точно така. Те sec-- АУДИТОРИЯ: [недоловим] Дейвид Дж Малан: Това е друг добър. Има функции, които идват с днешните мобилни телефони че не са, от проектирането, за сигурността причини, които са достъпни за уеб браузъри. Защото това би било вид страховито нещо, ако само когато посетите google.com, или cnn.com, или който и да е website.com, че този сайт има силата да се превърне на вашия фотоапарат, да направите снимка на вас, и след това да го използвате. Но ти не би искал случаен сайт че посещавате за първи път да имат тази възможност. И така, какво телефон производителите обикновено правят е те просто да отказват достъп до този вид информация за браузър, който ви е не могат да се реализират на камерата. Вие не може да реализира известия за предаване, бипкането, които получавате на екрана с кратки съобщения. И в действителност, дори и GPS е само вид от сортиране на разположение на уеб браузъри. Ако някога сте се, на лаптоп или на мобилно устройство, издърпа нещо подобно може би CNN.com, но и местните новинарски станции са склонни да направят това, ще бъдете подканени често с message-- foxnews.com иска да знае къде се намирате. Одобряване или отхвърляне. Е, браузърът се опитват да получат достъп Вашата GPS информация от вашия телефон. Но за щастие Microsoft, и Apple, и Google са решили, че се чувства като това е полезно ситуация, искаме Google Maps и други инструменти, за да работят, но ние не искаме да се промъкват хора от просто позволява всеки сайт, за да направите това. Така че нека вид се срещат наполовина и напомни на потребителя. Но това не е задължително, с всички хардуерни, като камерата и с натискане уведомления и други подобни, така че може да се наложи да жертват някои функции. Но изпълнението също. Тя е все по-малко забележим в днешно време, може би като LTE хваща по-бързо скорости на интернет за телефони, но можете да вид усетите разликата. Подобно на уеб базирано приложение просто се чувства по-бавно, обикновено, от родния заявление, отчасти защото уеб базирано приложение по дефиниция е в интернет. Той говори за сървърите в мрежата. И ако връзката с мрежата е бавен, дори превъртане може да е бавно. Но роден заявление, което трябва вече предварително downloaded-- вероятно когато сте били у дома от магазина за приложения, или можете поне предварително изтеглена че в своята цялост по-рано, каквото си speed-- връзка и така вече имате всичко на бита, които обикновено имате нужда. С изключение може би някои данни която идва от сървъра. Така че това са компромиси тук. Има вид на средна компромис, в действителност. И аз мисля, you-- АУДИТОРИЯ: Използвайте офлайн данни. В родния приложения, можете да [недоловим] Дейвид Дж Малан: Абсолютно. Така че има въпрос на линия, което е много досадно ако не може да играе някаква игра или приложение някои софтуер, просто защото сте в едно мазе някъде или в асансьора. Стандартно приложение е еластична с по-висока вероятност срещу това, Ако приемем, че имаме всички данни, което трябва на местно ниво. Така че има и трети вариант тук. И нека да се направи на спектъра като родния ап тук и уеб приложение тук. И това, което е в средата е нещо called-- и мисля, че може да се наложи използва думата преди, може би? Hybrid заявление. И тъй като думата предполага, това е нещо по средата. Това е вид на уеб приложение и това е вид на родния заявление. И какво означава това? Оказва се, че има frameworks-- да се използва термин от earlier-- софтуер че други хора са писали за всяка една от тези платформи. Тези и още други устройства. В действителност, да ме пусне да PhoneGap, която е една такава рамка, че аз Вярвам Adobe притежава сега. Пусни ме да Първи стъпки. Да видим. Виж, ако мога да видя списък с инструменти. Hardware. Приготвяме се да започнем. PhoneGap хардуер. Да видим. PhoneGap хардуер достъп. Нека да видим дали можем да намерим малко диаграма, която те използват да имат. Това е на друго място. Това е полезно? Не. Ето ти губя времето ни там. PhoneGap хардуер. Devices. API Device. Не, те си го премести. PhoneGap. Нека се върнем един последен поглед към този и да видим дали мога да ви покажа. Приготвяме се да започнем. Инсталирайте PhoneGap. Инсталиране на мобилни приложения. Хайде. Те Реорганизирахме всичко. Добре. О, всичко е наред. Е, ето го. Това не е всичко, което поучително, но това е, което аз бях вид търсите. Така PhoneGap е рамка, която ви Може да изтеглите безплатно, която ви дава някои стартер код, по същество. Така че някакъв код, че те са написани че не прави почти нищо. Но това, което той ви дава по същество е еквивалент на приложение, което просто слага голям правоъгълник на екрана на потребителя. Тя не се сложи URL бар, като браузър, не слага адрес. Тя просто слага един голям правоъгълник. И вие изберете този голям правоъгълник, под капака на двигателя, действително да отида да acme.com, или може би m.acme.com, за mobile.acme.com, но потребителят не знае те са на този адрес. Всичко, което виждат е съдържание на уеб страницата. Но това, което е хубаво за това същество ап хибрид е, че това, което PhoneGap и други фирми дават ли е те ви даваме малко код в Objective-C или Swift, или малко код в Java, или малко код в C #, и по същество, всичко, което трябва да се предоставят, е минимално на адрес на вашия уеб базирано приложение. И тогава ще се обединят тази всички заедно и ви има го или достъп до вашия сайт чрез интернет, или дори да кешира локално копирате вътре в приложението, и след това да ви спести вашето приложение в iPhone формат, Android телефон формат, формат повърхност, или произволен брой други устройства. Можете да качите всяка една от тези версии да играе магазина на Google, до App Store, за Windows Store, и така нататък. И сега, можете да имате всичко на вашия аудитории сваляте наистина родния ап, макар и по-голямата част от кода е написана от някой друг, но съдържанието на тази родния ап всички идват, обикновено, в собствения си уебсайт. Така че можете да продължите да пишете на вашия сайт в HTML, JavaScript и CSS. Така че защо да размие тези редове? Защо има заявление хибрид това е вид на родния, но и вид на уеб базирани? Какво е целият смисъл на добавянето на тази сложност? Искам да кажа, дори все още, само от поглеждайки през тази страница, Началното ръководство се чувства като тя има един куп стъпки за мен да направя, преди да can-- АУДИТОРИЯ: повторна употреба? Дейвид Дж Малан: повторна употреба? Какво имаш предвид? АУДИТОРИЯ: От изходния код. Така че един и същ код ще се движат по всички различни платформи. Дейвид Дж Малан: Да. АУДИТОРИЯ: [недоловим] Дейвид Дж Малан: Perfect. Ако времето е здраво и ако не са толкова много developers-- може би имате един разработчик и той или тя със сигурност не знае всички тези environments-- със сигурност не е добре, и със сигурност не може да програмира и в трите едновременно и превозва три продукта в времето, разрешено за една, можете да го има, или я построи всичко в HTML и JavaScript и CSS, и след това се научи мъничък малко за стандартни приложения, просто достатъчно, за да изтеглите рамка като тази, след това да качите вашия продукт да всички от различните магазини за приложения така че сега имате родом заявление. Така че изглежда като печеливша, но отново, за да бъде ясно, Какви са потенциалните разходи или на gotchas? АУДИТОРИЯ: Ефективност? Дейвид Дж Малан: Да. Производителност. Трудно е да се опише с думи. Така че, ако просто поеме вяра мобилно приложение, уеб приложение ще обикновено изпълняват по-бавно. Тя може и да не изглежда съвсем така, защото в iPhone, и в Android телефони, и Windows устройства, има Винаги има нещо по подразбиране поглед и усещане за всички от бутони и менюта. И фирми в мрежата, може да се опитат да сближи тези естетика с библиотеки като Bootstrap, но user-- проницателен user-- ще се знае, че нещо не е съвсем точно тук. И това е добре, може би че не е голяма работа. Но въпросът за изпълнение абсолютно е голяма работа. Native приложения ще са склонни да просто бъде много по-отзивчиви и следователно По-добре. И така, какво тогава може да бъде най-доброто от двата свята? Ако сте особено малък фирма или малка група, не разполагат с необходимите ресурси да се разработи приложение в паралел и на трите платформи, и честно казано, се чувства като че е лоша идея, така или иначе защото, ако го пусне и на и трите едновременно осъзнае, ние е трябвало да добавя някои функции или направил нещо различно, сега което трябва да се поправи в три места, а не един. Какво е може би най-оптималния стратегия тук като цяло, ако ресурси и време са стегнати? АУДИТОРИЯ: Просто го направи на IOS. Дейвид Дж Малан: Това не е неразумно. Iphones, най-малко в САЩ, са супер популярен. Android все още изглежда да има доминираща пазарен дял в световен мащаб, като цяло. Така че не сте непременно представител на целостта на света тази седмица. Но това е абсолютно едно решение. Искам да кажа, на територията на колежа тук I че някои брутален номер или процент на студенти Трябва Iphones и не на Android телефони. Но в чужбина, това е вид обратното. Така че решите въз основа на вашата аудитория. Откъде знаеш, че това, което вашата аудитория има? Е, ние научихме трик вчера. Можете да ги попитате. Ако имате пленяваща можете да ги изпратите форма на проучване. Или пък може просто правя това? АУДИТОРИЯ: Google Анализ? Дейвид Дж Малан: Какво е това? АУДИТОРИЯ: Google Analytics. Дейвид Дж Малан: Google Analytics. Да. Или още по-сортиране на технически, просто погледнете вашите собствени уеб сървъри трупи. Защото това, което се случва, всеки път, браузър, дали лаптоп, настолен компютър или телефон посещават вашия сайт? Те изпращат че HTTP хедър, който показва вие какво браузър и операционна система, която използват. Така че може да се направи извод, с висока степен на вероятност, какво си демографска се използва този начин и след това се коригира. Така че предполагам, че това е неприемливо. Това е нещо лошо за бизнеса, ако Потребителите на Android не могат да купуват нашите джаджи. АУДИТОРИЯ: Независимо дали сте Ще се зарежда или не? Дейвид Дж Малан: Дали започваш да се зарежда? Така ОК, можете да получите това, което плащате. АУДИТОРИЯ: Дали приложението ви е ще да бъде свободен, или дали това е gonna-- Дейвид Дж Малан: OK. Така че може би бихте могли да възстановят Разходите по този начин, or--? АУДИТОРИЯ: Четох едно проучване, след това каза, повече потребители на Apple плащат за приложения versus-- Дейвид Дж Малан: Това е вярно защото те вече са плащат повече за своите устройства. Така че не е неразумно предположение. АУДИТОРИЯ: [недоловим] Дейвид Дж Малан: OK. Така че, ако те са по-склонни да плащат, след това в ада с потребителите на Android. Те няма да плащат нас нищо, така или иначе. Ние може и да се съсредоточи нашите приоритети, поне за първите няколко месеца или една година, на IOS. Напълно разумно. Какво е по-приобщаващо стратегия от това? Maybe-- какво е това? АУДИТОРИЯ: [недоловим] Дейвид Дж Малан: По-expensive-- така че може би се инвестира повече in-- давай напред. АУДИТОРИЯ: Да. Само един мобилен уебсайт. Дейвид Дж Малан: Така направи мобилен уебсайт и не дори се тревожи за тази сложност. Или може би разумна стратегия, които дори Facebook взе, се започне с хибрид заявление, защото не е че много по-трудно да се направи това, отколкото това. Просто трябва да се чете някои документация и да разбера как да качвате нещата до App Store. Така че може би ще започне с това, така че за един ден, можете да подкрепи всички ваши потребители. И тогава, точно като Facebook и други фирми са направили, когато имате ресурсите, Имате ли хората, защо не се приведе отново в действие Просто прилагането IOS. Все още имаш нещо за всеки, въпреки че е по-низша опит може би, с прилагането на хибриден. Но може постепенно да ставам и замени вашата краткосрочна мерки на хибридни приложения с повече родния си приложения. АУДИТОРИЯ: Но с хибриден ви ап Ще имате достъп до функции на мобилния? Дейвид Дж Малан: Не е задължително. Така че може би ще направи съзнателно решение в началото на деня, можете да качвате само снимки на родния заявление iPhone за Facebook, но не по прилагането на Android, Първоначално, например. И това е малко на една благородна лъжа, защото уеб приложения имат повече ограничения от хибридни приложения се оказва вън, и ако ние прочетете документацията за PhoneGap и неща като това, хората са измислили начини да се даде уеб базирани приложения достъп до камерата, толкова дълго, колкото сте с помощта хибридно приложение. Как се работи? Тъй като хибрид приложение, по дефиниция, има малко код в Objective-C, и Swift, и Java, или в C #, тя може да получите достъп до хардуера. Не е задължително всичко, но тя може много добре се окаже, че имате достатъчно достъп за да получите на камерата, дори и за Android платформи, за Например, в този измислен пример. Всякакви други въпроси? Добре. Защо не вземем нашето 15 минутна почивка тук. Ние ще се възобнови в три с окончателно Посетете уеб програмиране, бази данни, и Javascript.