DAVID J. Малан: Итак, мы вернулись. Так высокого уровня тема в данный момент в настоящее время является технология стеки, которая не является особенно технический термин, это больше улова все для любого количество комбинаций технологий что вы могли бы использовать для решения проблем. И, пожалуй, самый фитинга способ начать будет смотреть на языках, так как Я постоянно сыпать целую кучу и большинство все в комнате есть наверное, слышали, по крайней мере, один. Так почему бы нам не попытаться отличить что-- различать эти языки и кратко говорить о том, когда вы бы выбрать один над другим, как они своего рода фундаментально разные, и в особенности когда вы в чате с инженерами, или пытается решить, кого нанимать, или то, что реализация Предложение о зеленый свет, как бы вы на самом деле сделать те виды решений. Так что давайте просто греметь некоторые вещи. Из языков люди имеют слышали, что приходит на ум? C. OK. OK, C ++. Что это? ЗРИТЕЛИ: Python. DAVID J. Малан: Python. Отлично. Что еще? Visual Basic. Я слышал, Java. Визуальный а.к.а. Basic-- VB. Ява. .NET, Которая больше всего улова за то, что, как правило, C # в качестве языка обсуждаемый. И позвольте мне сказать, что. Таким образом, мы вернемся к этому. Прости? Сожалею? ЗРИТЕЛИ: SQL. DAVID J. Малан: Царапина? ЗРИТЕЛИ: SQL. DAVID J. Малан: О, SQL. ОК. SQL. Таким образом, мы вернемся к that-- на самом деле, это good-- после перерыва, а также. Что еще? ЗРИТЕЛИ: Oracle. DAVID J. Малан: Так Oracle, не является языком. На самом деле они будут использовать SQL, а также. Так что давайте положить, что после того, как перерыв, а также. И жаль, что-то здесь? ЗРИТЕЛИ: Mathematica. DAVID J. Малан: Mathematica? Да конечно. И MATLAB является своего рода там иногда. ЗРИТЕЛИ: Р. DAVID J. Малан: Р. Давайте рассмотрим здесь. Fortran. Конечно. Старая школа. Fortran. COBOL. Я выбросить BASIC. BASIC. Любые-- ЗРИТЕЛИ: MATLAB? DAVID J. Малан: MATLAB. О, бить вас к нему. Что-нибудь? Я могу думать о нескольких других. Я могу думать о нескольких других. А что было последним? ЗРИТЕЛИ: ASP. DAVID J. Малан: ASP? Да. Активные серверные страницы. Это, как правило, подпадают под другие языки, иногда C #, так что давайте оставим это прочь. Но мы вернемся к тому, что за рамки и тому подобное. Что-нибудь еще? PHP является популярным. Рубин другой. JavaScript, не следует путать с Java, это совсем другое. Это вроде много. Так что это может быть, конечно, подавляющее, как если бы этот список не является уже, просто начать знать, где вы начинаете. А так, к счастью, давайте подойти к этому с нескольких точек зрения. Во-первых, давайте попробуем классифицировать по крайней мере, некоторые из этих языков на две большие ведра, напоминающие разговор у нас был перерыв перед тем, где мы говорили о составлении, и исходный код, и машинный код, потому что это не так, как все языки работают. Таким образом, мы будем срывать несколько примеров of-- или контр-examples-- к этой модели. И потом, почему бы нам не говорить о приложениях что эти языки как правило, используются для. И, честно говоря, несмотря на то, это довольно длинный список, это только часть этого списка, Вы, как правило, сделать из этих дней решать проблемы. Некоторые языки являются более новыми, чем другие. Некоторые языки более популярны, чем другие. Так что это не так, как у вас есть такая невыполнимой задачей перед вами при принятии решения среди эти различные языки. Так давайте сделаем это. У нас была ранее, исходный код, и тогда мы имели машинный код. Упс. Дать неверное слово. Машинный код. И у нас был какой-то процесс в средний called-- да, компилятор. Так что компилятор. И то, что машинный код на самом деле работает на в конце концов, будет ваш фактический CPU. Другими словами, машинный код, я означают самые низкие инструкции на уровне что процессор на самом деле понимает. Сложение, вычитание, перемещение, сохранить, и такие операции, как это. И так это модель для того, что как правило, известны как транслируемых языках. Наверное, не удивительно. Так что это модель для скомпилированных языков. Но оказывается, что есть другой класс языков называется интерпретированы languages-- интерпретированы languages-- которые немного отличаются. Вы пишете в исходном коде, запустите им через переводчика, и что переводчик то, что работает на процессоре. Другими словами, что вы не делаете Испустите является то, что, судя по всему? Машинный код. Нули и те, что процессор сама в конечном счете понимает. Таким образом, в этой первой версии и Языки, как C, как мы видели, Вы пишете в исходном коде это немного аркан, но, по крайней мере, это своего рода английского типа и это, по крайней мере для чтения как только вы привыкнете к нему. Вы запускаете его через компилятор и вне Вы получаете, в конечном итоге, нули и единицы. Это упрощением. Есть некоторые другие шаги там. На самом деле, если вы когда-либо слышал термин "язык ассемблера" это один шаг до нули и единицы. Это немного более удобным для чтения, но все еще довольно аркан. И таким образом, есть промежуточные шаги которые, по сути, здесь происходит. Но выход, в конечном счете, эти нули и единицы. Но в интерпретированы мир, в котором у вас есть Языки, которые интерпретируются языки, вы на самом деле пропустить этот шаг. Другими словами, когда вы пишете Программа, вы просто запустить ее сразу. Вы не компилировать его и затем запустить его, как я делал раньше. Вы просто написать и запустить его. И если вы хотите, чтобы сделать быструю смену, вы делаете быструю замену и снова запустить его. Таким образом, нет никакого среднего шага здесь. Теперь для программы я уже писал ранее, которая была эта программа "Hello World", Вы могли бы разумно wonder-- или могли бы разумно state-- это было не то время потребляя составить свою программу. Это, кажется, сделал это так же, как это. И есть графический версии компиляторов. Я использую очень мистическую версию, но вы можете ударить кнопку воспроизведения и что будет на самом деле сделать подборка для вас. Я составил программу, а затем опять же, чтобы запустить его, я просто делаю это. И это выводит слева там, "Привет!" Это не кажется все, что обременительной. Но когда ваши программы больше, чем просто один, два, три, четыре, пять линий долго, это может занять гораздо больше секунды для компиляции. Иногда даже минут или совсем немного времени для компиляции. В конце концов, некоторые из Крупнейшие мировые продукты такие вещи, как операционные системы, Microsoft Word, Microsoft Excel, которые могут быть сотни тысяч или даже миллионы строк кода длинных, и тех, кто не просто немедленно выполнить. Кроме того, в Интернете, это стало модно использовать просто интерпретируемые языки, отчасти потому, что вы может внести изменения в качестве разработчика а затем просто немедленно перезагрузить страница браузера и Вы сразу увидите результат. И так HTML, а не язык программирования, является языком, который интерпретируется. И мы увидели, что тот же самый эффект вчера. Вы просто перезагрузить страницу после внесения изменение в Cloud9 и-- voila-- вы видите новый результат. Так какая разница здесь? В HTML, напомним, у нас был открытый HTML, открытая голова, открытое название, название близко, близко голова, с открытым кузовом, и так далее. У нас были все эти теги, что мы довольно много сказано, сообщить браузеру, что делать. Эй-браузер, вот идет страницу HTML. Эй браузер, здесь приходит название. Эй-браузер, вот некоторые текст, который должен быть смелым. И тогда вы говорите обратное. Эй-браузер, это все для жирного текста лица. Эй-браузер, это все для тела. И так далее. И так, что такое браузер? Браузер просто переводчик. Это программа, которая кому-то нравится Microsoft или Google написал, чья цель в жизни, чтобы читать язык, известный как HTML, и интерпретировать его. Сверху вниз, слева направо. И в любое время видит браузер открытым кронштейн, название, закрывающая скобка, он должен интерпретировать это в том смысле, о, означает, что я должен поставить эти слова путь здесь в верхней части браузера. Так что он просто делает то, что говорит HTML-код. Но нет никаких нулей и единиц. Там нет компиляции. Вы не делали этого. Браузер не делал этого. Это просто не участвует. Таким образом, в духе этих продолжающихся Тем, сегодня и вчера, что, кажется, замечательная особенность. Вы экономите свой код, а затем просто запустить его или интерпретировать его. Там нет промежуточных шагов. Конечно, есть стоимость? Не может быть все расквитаться. Так что, возможно, что стоимость будет? ЗРИТЕЛИ: Space. DAVID J. Малан: Space. Так, конечно. В составленном мире, у вас есть не только исходный код, Вы также создание и затем предположительно экономии машина code-- нули и ones-- и это должен занять некоторое количество пространства. Абсолютно. Так что это стоит вам больше пространства. Да? АУДИТОРИЯ: браузеры интерпретировать по-разному. DAVID J. Малан: браузеры интерпретировать его по-разному. Это правда. Но я не уверен, что я комфортно утверждая, это потому, что это интерпретируется. Это больше только потому, что реализация языка что само по себе имеет неоднозначностей. Так что давайте не совсем подтвердить что один, но хороший догадка. Что еще может быть расплата? Андрей? ЗРИТЕЛИ: Ты комбинируя два шага, так что вы поэтому есть возрастающей сложности, а также. DAVID J. Малан: The complex-- увеличение сложности, где? Для кого? ЗРИТЕЛИ: Так, в интерпретаторе шаг, вы совмещая интерпретатор и компилятор просто доводя, целью которых DAVID J. Малан: Ах, хорошо. Как ни странно, это, вероятно, немного проще реализовать интерпретатор, несмотря на то, что, казалось бы, выход расквитаться этого удобства. Так что, возможно, правда. Но это отчасти зависит, как я хотел бы сказать, на языке и о том, как они пошли о его реализации. Там может быть намного больше сложности, на самом деле, в компилятор, только потому, что вы должны идти от что-то столь высокого уровня, к чему-то так низкого уровня. Но хорошая мысль. Так что, по-другому, скомпилированный программа, при включении в эти нули и единицы, заканчивается на языке что процессор говорит о том, в то время как в этой стороне мир, программа, которую вы написали, код, который вы написали, никогда на самом деле преобразуется в реальный язык компьютер говорит. Нули и единицы. Он остается в оригинале, больше человеческих дружественным, более удобным для чтения языка. Так что может быть следствием там, если вы на самом деле не заморачиваться преобразовании Программа на самом языке что основной компьютер говорит? ЗРИТЕЛИ: не могли бы понять что-то? DAVID J. Малан: Могущество то не понимаю. И это может claim-- если он не понял что-то, что это ошибка или отсутствие признака в интерпретаторе. Так что было бы больше ошибка, чем стоимость. ЗРИТЕЛИ: У вас есть доступ к исходному коду? DAVID J. Малан: Там хороший. Таким образом, нижняя сторона здесь вы Казалось бы иметь доступ. Вы, конечный пользователь, может показаться имеют доступ к исходному коду. И это не всегда верно. Но это правда, в случай JavaScript, который мы рассмотрим после того, как перерыв сегодня, что это интерпретируемый язык программирования что вы пишете в исходном коде. Но исходный код получает переданы с вашего сервера в браузер и работает в браузере человека. Так вот она могла бы просто открыть окно, как я делал в Chrome, и смотреть на него, как и мы сами взглянул на вчера с Google. Это может выглядеть немного непонятная, но она есть. Так что это абсолютно одна цена, которую платят. ЗРИТЕЛИ: Производительность хит? DAVID J. Малан: Да. И это другая важная персона. Там в падение производительности. Потому что у вас есть это средний человек, который сам по себе это программа, между вами и центральный процессор, в отличие просто кормить их сырой нули и единицы в процессор, есть падение производительности, что вам взять с собой интерпретируемый язык. Такое, что, произвольно, программа что может занять одну секунду для запуска на компьютере или одном минут, чтобы работать на компьютере, здесь, может занять 10 секунд или 10 минут, чтобы работать на компьютере, здесь. Это, как правило, не будет, что большая часть difference-- фактора в части 10-- потому что есть оптимизации вы можете сделать. Но это почти всегда медленнее. Теперь, оборотная сторона этой озабоченности в том, что, хорошо компьютеров, каждый 12 18 months-- в соответствии с Закон Мура, так speak-- просто становятся все быстрее и быстрее. У меня есть все больше и больше места на диске. У меня есть все больше и больше оперативной памяти. Кто действительно заботится? И это добро из разумный аргумент. Действительно, одной из причин, почему мы можем терпеть медленнее интерпретированы языков, потому что мы, люди, на самом деле не замечают. Компьютеры имеют получил просто так чертовски быстро. В то время как еще в день, особенно когда оборудование было гораздо более ограниченным, у вас было меньше всего, это было гораздо дороже так что все стоят дороже, ну а потом вы действительно хотели выжать столько же производительность, как вы могли бы. Но это требуется писать в более низкого уровня, если вы будете, с компилируемого языка. Таким образом, вы делаете принять этот удар по производительности. А вообще, расквитаться как представляется, будет стоит в эти дни. Ну, за исключением того, для вопроса об интеллектуальной собственности. Такого рода читаемости кода, мы будем вернуться к тому, когда мы смотрим на JavaScript. Так давайте попробуем классифицировать по крайней мере, некоторые из них. Таким образом, среди компилируемых языков, мы будет иметь C, C ++, любопытное, Сорта, Java, хотя это немного исключение, для Причины я покажу вам всего минуту. C # будет в этом списке. Мы будем смотреть на более на просто более современные языки. Отлично. И это, кажется, как много там. В то время как на этой стороне забора, мы могли бы иметь JavaScript и Python, и PHP и Ruby. И в том, что достаточно для более поздние из них? Это чувствует, как много сейчас. ОК. И тогда точка точка точка, так как список можно продолжать бесконечно. И в самом деле, если мы хотим просто получить ощущение this-- Википедии, скомпилированные языков. Я предполагаю, что мы можем получить гораздо более исчерпывающий список. Так что здесь мы идем. Так вот гораздо более исчерпывающий список. И я надеялся, что кто-то предположил бы, D как язык, потому что слишком существует, но они остановились на D, казалось бы. Несмотря на то, что может быть на самом деле Е. О, на самом деле, это должно быть в списке в эти дни. Swift на самом деле язык, который компания Apple изобрела что в настоящее время используется, все больше и больше так, в развитии iPhone. Но мы вернемся к что с нашей дискуссии на мобильном телефоне в только немного, а также. Так Swift, а также. И потом, если мы идем интерпретированы language-- интерпретировать language-- то вот еще длинный список, а также. Так что если вы только что Google и искать в Википедии для них, вы увидите все виды языков. Но цель состоит в том, на сегодняшний день на самом деле, просто сводится к тому, может быть, это Вопрос интеллектуальной собственности и читаемость конечным пользователем и производительность, является еще одним Biggie, а также. Так что среди этих языков, позвольте мне увидеть, если мы можем дать вам только некоторые примеры языков. Мы не хотим, чтобы пройти через все языки бесконечно. Вы когда-нибудь задавались вопросом, что такое определенный язык выглядит? Мы видели минуту назад. Почему мы не пара признака запросов. Кто хотел бы видеть, что другой язык выглядит? Да. ЗРИТЕЛИ: Java. DAVID J. Малан: Java. Отлично. Так что давайте вернемся к Java. И как раз, чтобы дать вам sample-- мы могли бы написать все эти вне, но было бы быстрее, просто посмотреть на пример кода кого-то другого. Отлично. Так что это хороший пример? Упс. ОК. Так вот версия Java из программа, которую я писал ранее, "Hello World". Так Java, вы будете часто см "класс." ключевое слово Тогда вы увидите некоторое имя после этого. Вы увидите фигурные скобки как мы видели раньше, а иногда они идут на той же линии, иногда и другие линии, это своего рода личное решение. Вы увидите, как ключевые слова "Общественность", "статические", "пустота". Но мы видели "основные". "Main", как правило, имя функции по умолчанию или кусок по умолчанию кода, который получает работать в программе. "Строка". Что мы подразумеваем под строкой раньше? Я использовал его вид случайно. Строка что? Слово. Это как последовательность символов. Отдельные символы, обратно в спина к спине, как правило, в массиве, как мы уже обсуждали. И в самом деле, увидеть этот синтаксис Здесь два квадратные скобки? Это означает, эй компьютер, здесь приходит массив строк. Квадратная скобка обозначения обычно используется для обозначения того, что. И тогда вы, вероятно, взять guess--, что делает это выделенный кусок кода, вероятно, делать? ЗРИТЕЛИ: Выход? DAVID J. Малан: Да. Он печатает что-то на экране. Таким образом, "система" является своего рода Ссылка на ваш компьютер. "Out" означает вашего компьютера выход или экран. Таким образом, "System.out.print пер", вероятно, означает? "Пер." Печать линии, которую программисты, как чтобы по-видимому, несколько слов по буквам из во всей своей полноте и принять Сочетания с другими словами. Но "пер" является линия, так что печать линии. Так что он печатает "Hello World! ", А затем с новой строки. Итак, это все. Но Java является то, что они будут объектно-ориентированный вызов. И в самом деле, просто чтобы дать пара других определений там, что вы могли бы см, в общем, много различных типов языков, но наиболее распространенный процедурные или императивные языки. Есть функциональный языки, которые не делает означает, что другие нефункциональные. И затем есть объектно-ориентированные языки. И это, пожалуй, самый лучший категоризация большинства языков что вы когда-либо выбрать для своего рода типичного коммерческого проекта. Это было бы слишком много, Я думаю, отверстия крысы идти вниз, чтобы попытаться объяснить различные различия. Но языки мы уже видели, таким образом, far-- C является процедурным или императивный язык. Совсем недавно изобрели Языки, как правило, извините, объектно-ориентированным, что означает, у них есть другие возможности для них. Могу ли я объяснить это таким образом? Давайте не будем даже туда спускаться. Объектно-ориентированные средства Вы можете implement-- Вы можете смоделировать реальный мир немного более эффективно. Человечество, в течение долгого времени, выяснил, ничего себе, было бы неплохо, если бы мой язык имел эту функцию, или эту функцию. И именно поэтому у нас так многие языки мира. Разумные люди, умные люди, согласны или не согласны и неизменно рода приходят вместе разработка новых языков все вместе. Дело в точке. Apple, изобрел Swift в надежды предположительно опускания бар для развития iPhone, потому что предыдущий language-- называется Objective-C, которая могла бы также в нашем списке here-- был намного более запутанными, а много труднее обернуть свой ум вокруг. И как программирование становится возможно более доступным и в более широком смысле принятая людьми даже менее технический, то goal-- это очень отважная цель, чтобы попытаться снизить барьер для выхода на рынок, сделав сами языки проще начать с, но не менее мощный обязательно. И один другой язык. Почему мы не посмотрим на что-то вроде Python, который очень в моде в эти дни. Python. Пример программы. Посмотрим. языки "Hello World". Давай сделаем это. "Привет мир." Давайте посмотрим, если это дает нам хороший пример. ОК. Так что это на самом деле своего рода забава. Так что если вы когда-нибудь Google "Hello World", который случается, один из первых программ когда-либо написанных на современном языке, так же, как доказательство концепции, вы можете увидеть все виды реализаций этого. Некоторые из этих языков Я даже не слышал. Но вы можете see-- давайте перейдем к Basic, один я узнал лет назад, частично. Это было весело язык, потому что вы должен был, как программист, номер все ваши линии. Не в отличие от того, что я был делать, когда я писал псевдокод на желтом документе ранее для двоичного поиска, для поиска в телефонной книге. И так, если вы хотите чтобы перейти на другую линию, вы в буквальном смысле типа, перейти к 10, или идти до 20. И если вы пишете линий, Конвенция должна была сделать, это линия 10, это линия 20, это линия 30, 40, между которыми ничего нет, тем самым давая себе некоторую комнату если вы решите, подождите минуту, Я должен был добавить некоторые больше кода где-нибудь. Вы все еще имели вид девять шансов выжимать что между вашей программой прежде чем пришлось вручную пронумеровать все. Так что это вроде того, что я имею в виду когда я говорю, что мир пришел с новыми возможностями. Где-то по пути кого-то понял, мальчик это глупо. Это просто создание работа для программиста. Таким образом, он или она просто вид постройки новый слой поверх, что так что вам не придется беспокоиться о чем номера строк кода на самом деле на. Так что, когда вы можете выбрать один другой язык или? Ну, какие из них языки вы, как правило, услышать о наиболее свой собственный мир в эти дни? Давайте выпадающий Objective-C тоже. ЗРИТЕЛИ: C #. DAVID J. Малан: C #. Итак, позвольте мне цвет. Есть ли у нас другой цвет где-нибудь? Так что C #. А что вы знаете о C #? Все, что весной на ум? АУДИТОРИЯ: Это язык программирования. DAVID J. Малан: Это язык программирования. ОК. Это правда. Таким образом, мы говорим о C #. C #, как правило, используется в средах Windows, так что если вы пишете программное обеспечение Microsoft для Windows, C # очень широко используется, является ли это для настольного программного обеспечения, или даже программное обеспечение телефона на телефонах Windows,, если вы имели те, или в Интернете, даже слишком. И в самом деле, может быть, Kareem вышеупомянутый ASP раньше? Так что и эти вещи, называемые рамки, который можно ввести путем расширения. Каркасы, как ASP. Подставки для активных страниц сервера. И это кода и способ программирования что в целом делает его более легким писать приложения на основе веб. Другими словами, это было бы супер, супер раздражает, чтобы написать веб-сайт на языке С, мы видели раньше, потому что вы должны использовать для печати + F, вы должны использовать это ключевое слово "Главный" и фигурные скобки. Много загадочного синтаксиса и подход к реализации то, что является довольно сложным. Веб-страница. И поэтому другие языки развились чтобы сделать такие вещи проще. И, в свою очередь, люди придумали с рамками, вроде инструментов что вы можете использовать, что сделать это даже проще писать веб-страниц. Так, например, чтобы сделать это гораздо более конкретное, позвольте мне открыть только текстовый файл на мгновение. И вы могли бы вспомнить вчера что мы сказали что-то как это веб-страница. HTML. Закрыть HTML. Позвольте мне пропустить голову и просто сделать тело здесь. Предположим, что я хотел написать не "Hello World" но "Привет Дэвид," где Дэвид является имя текущего авторизованного пользователя. Что-то вроде ASP будет делать, или JSP-- который является сервером Java pages-- или любое количество других структур это они не языки, само по себе. Они так же, как дополнительное программное обеспечение, которое вам установит в среду что просто сделать его проще программировать. Так, например, вместо того, чтобы сделать что-то вроде "Привет, Е (" Давид ")" или что-то, что это вид со-mingling-- вид кода, который мы уже видели before-- вы могли бы сделать что-то гораздо проще, как "имя%." И вот эти рамки, как ASP-- и I не помню, если я получаю синтаксис раз для ASP. JSP является little-- это право? Таким образом, с ASP, это своего рода специальный синтаксис что некоторые разработчики решили это может помочь людям. И я могу выразить более лаконично заполнители, например. Как поместить значение здесь, где это имя значение не N-А-М-Е, это какая-то значение, которое хранится там. Так что "имя" в этом контексте, мы могли бы назвать переменную. Алгебра имеет переменные как х и у, и г. Программисты используют переменные, которые являются более описательный, чем х, у, г, обычно. Так что "название" в буквальном смысле быть какой-то контейнера для памяти что-то вроде D-A-V-I-D, для моего имени, или кто остальное регистрируется на веб-сайт. И так что это своего рода удобства Вы получаете с определенными средами. Так что C # и что-то вроде бы очень ASP обычно используется в мире Windows,, будь то для своего рабочего стола программного обеспечения или веб-сервер, особенно если ваши серверы в свою очередь, работает Microsoft Windows и Microsoft IIS-- или Internet Information Сервер, если я получаю акроним right-- который является веб-сервер компании Microsoft. Так что другие языки являются люди, знакомые с, или вы слышали чаще да, чем нет? ЗРИТЕЛИ: Я знаю, что в Python вид популярный [неразборчиво]. DAVID J. Малан: Очень популярны. Так Python здесь используется очень часто в научных приложениях и данных наука, где у вас есть много данных, которые вы хотите проанализировать и вы хотите использовать язык программирования для него. R, возможно, обычно можно использовать для этого а также, в статистическом контексте. Но Python имеет так много функции, встроенные в систему. Так много дополнительных библиотеки, как люди говорят. Библиотеки просто наборы кода, что другие люди писал, что вы можете использовать так, что вы не надо изобретать эти колеса. И поэтому Python очень часто используется в научных данных приложений. Но это также очень часто используется в веб-приложениях. Вы можете реализовать динамический веб-сайт с помощью Python. И динамический веб-сайт, я имею в виду не только статический контент как мы создали вчера, по просто жесткое кодирование в латинском тексте и другие подобные вещи, а скорее способность войти в систему, возможность купить что-то, возможность проверить с тележками, или тому подобное. Все это требует динамизма и вас нужен какой-то язык, как один из них. ЗРИТЕЛИ: Так ли Python есть своя расширение, подобно тому, как [неразборчиво] DAVID J. Малан: Он делает. Так что в мире Python, Django является очень популярный рамки для Python. WSGI это еще один механизм, это своего рода отличается от этого но близки по духу. Это надстройка, которая позволяет для запуска кода Python на сервере. Там в other-- да. Так что это мы будем называть рамки. И это немного злоупотребления. Это больше технологии веб-сервера. Но мы будем держать его простым и положить он в этой колонке, тем не менее. ОК. WSGI. WSGI. Другой thing-- и на самом деле, пусть мне двигаться, что в своей собственной колонке, потому что я кричал на себя за помещая их в том же ведро. Давайте положить это в сервер особенности, скажем. Это не технический термин. Таким образом, здесь мы могли бы быть WSGI. Там в CGI, который является старше техника для обслуживания до языков как Perl или PHP, или некоторые другие. Опять же, я упомянул эти термины не столько своего рода заваривать их, но так, что если вы видите им это что-то вы просто Google, чтобы узнать больше. Там нет никакого реального сока некоторые из этих вещей. Но давайте вернемся к языкам. Мы говорили о C #, Python. Что еще вы могли бы использовать для Веб-программирование в эти дни? Давайте сосредоточимся на том, что до сих пор. ЗРИТЕЛИ: PHP. DAVID J. Малан: 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 быть основой? DAVID J. Малан: Хороший вопрос. Ни. Я бы назвал JQuery библиотеку, где опять библиотека просто куча кода что кто-то другой написано, что в целом решает некоторые проблемы, которые делает это, надеюсь, легче для Вас, чтобы делать свою работу. И позвольте мне сделать один пример это в контексте Интернета. В контексте сети есть этот язык, JavaScript, что мы увидим позже, в котором вы могли бы сказать что-то вроде this-- "Document.getElementById". И что же я называю это вчера? Во-первых, я думаю, был уникальный идентификатор я дал к элементу, который выглядел как это. "P ID =" первый ">", а затем мы имели как "Lorem Ipsum," и так далее. Так что, если бы я писал программу в JavaScript, чтобы каким-то образом манипулировать, изменять веб-страницы, которые мы играли с вчера, Я хотел бы использовать эту функцию выделена строка кода чтобы получить этот конкретный фрагмент HTML с моей страницы, что конкретный узел, как мы будем называть его. Тем не менее, в JQuery, вместо написания это, что сырой code-- JavaScript просто из коробки, это, как вы написать it-- вы бы вместо того, чтобы просто сказать, "#первый." Это эквивалентно. И поэтому базируется только на этом очень аркан пример, то, что, возможно, является аргументом для использования JQuery? Почему бы разработчик использовать библиотеку как JQuery, основываясь на этом изолированном примере, возможно? ЗРИТЕЛИ: Меньше кода. DAVID J. Малан: Да. Это меньше кода. Это просто быстрее набрать. Контрапункт что он выглядит страшней. Вы не можете прочитать его слева направо. На самом деле, так как это в основном пунктуации теперь вместо фактических слов, Я могу вид сделать вывод, что "Document.getElementById" получает элемент из документа по его идентификатору. Я действительно не могу использовать нет такого Мнемоника от этой вещи здесь. Так что это компромисс. Там в изощренности, который приходит часто с использованием библиотек, особенно как JQuery. Но реальность такова, JQuery имеет вид из стали стандартом де-факто, так что практически любой человек эти дней, кто пишет код JavaScript использует JQuery или что-то как он, и больше не пишет такая многословные выражения, как это, потому что опять же, человечество Как стало известно, ничего себе, это было своего рода упущенная возможность чтобы сделать нашу жизнь проще. Таким образом, люди делают их жизнь легче. Хороший вопрос. Другие языки, чтобы рассмотреть. Я бы сказал, среди этого Список Рубин является довольно популярным. И так в мире Рубин, есть рамки называемые рельсы, которая очень популярна. Так Рубин на рельсы является обычно используется выражение. Кроме того, в этом мире, пусть меня круг Java для веб-материала, где в мире Java Вы могли бы иметь JSP или Java Сервлеты, которая является общей технологией. И это только опять способы использования что язык в серверной среде. Так что же это означает? Если у вас есть физический сервер, вы в буквальном смысле загрузить программное обеспечение веб-сервера и установить его таким образом, что у вас есть поддержка одного из эти рамки, с помощью которых вы может, в свою очередь, использовать один или более из этих языков. И в самом деле, если вы зарегистрируетесь как веб-хостинга, или некоторые из облака Услуги, которые мы говорили о вчера, часто материал просто приходит с Конфигурация машины для вас. Вам не нужно, чтобы установить это вручную. Но если вы сделали, это где роль системного администратора, так сказать, вступает в игру. Он или она будет на самом деле такого рода вещи для вас, или так называемые веб-мастер часто бы это для вас. Отлично. Любые вопросы о некоторых из них здесь? Или какие-то возможности в все, чтобы спросить о языках? Каркасы? Тогда позвольте мне представить только одна библиотека что также очень часто в эти дни. Этот список можно продолжать бесконечно. И эта библиотека является своеобразной начинают выпадать в немилость. Это было вокруг. Он популяризировал Twitter в течение некоторого времени. А теперь много веб-сайтов, много разработчиков использовать его. Но новые вещи приходят , и поставляемая вместе. Но позвольте мне дать вам чувство что значит использовать библиотеку. Итак, еще раз, JavaScript является очень популярный язык. CSS или каскадные таблицы стилей, мы говорили о вчерашнем дне. Это тоже является вездесущим. Никто не делает веб-страницы сегодня без использования HTML и CSS минимально. Но это не всегда легко делать определенные вещи. И поэтому позвольте мне перейти к getbootstrap.com. Упс. Это не так, как мы по буквам. Getbootstrap.com, который собирается вести меня на целевую страницу для этой библиотеки. Таким образом, они щедро позвонить Сами рамки, которая это своего рода вид справедливой, но я бы до сих пор называют его более библиотеки, чем основы. Но это лишь доказуемые семантика. Позвольте мне перейти через вкладку CSS и позвольте мне перейти к чему-то вроде этого. Так Напомним, что выглядело наши формы как вчера на Cloud9? Это было довольно некрасиво. Старые школьные кнопки. Я думаю, что кнопка была серой от по умолчанию. И все было на самом деле отформатирован довольно неаккуратно. Так что если вы хотите, чтобы ваши веб-формы, чтобы посмотреть немного nicer-- позвольте мне увеличить здесь. И лучше я на самом деле просто значит очень nitpicky эстетика. Так обратите внимание, как почтовый ящик там есть округлую прямоугольные углы к нему. Так что это немного чище там. Обратите внимание на то, что слово по электронной почте там, пока я не начать печатать а потом он уходит. Так что это хорошая маленькая особенность. Обратите внимание на то, как вещь вид светящиеся красиво, что некоторые из вас этого освободиться от вашего браузера для, но некоторые это также библиотеки, код, который другие люди написано, что даст вам это. Что-то вроде этого дает мне мой пароль. Эта кнопка немного сексуальнее, чем по умолчанию. Очень в моде сейчас. С тех пор прошивкой 7 или около того, мир получил очень плоский, в то время как в мире, прежде чем было много теней, много отражений на иконах. Так же, как в мире одежды, есть модные тенденции, которые приходят и уходят. Теперь все квартиры на телефоне. На самом деле, кнопки на iPhone теперь просто синие ссылки. Там не часто даже круглые кнопки. Так что это просто вещи, что входить и выходить из моды, и так это то, как вы могли бы сделать более современный вид веб-форму. Кнопки. Так Bootstrap имеет много красивых кнопок. Так что если вы хотите синие кнопки, зеленые кнопки, синий, оранжевый, красный. Bootstrap облегчает чтобы сделать эти вещи. Эти виды вещей что вы могли бы абсолютно сделали вчера с помощью CSS и HTML, но это просто боль в шее. И поэтому вместо того, что бы Bootstrap есть вы делаете что-то вроде этого. Если вы хотите button-- Оказывается, это является HTML-тег, мы не использовали yesterday-- и вы хотите его посмотреть как этот зеленый кнопки, вы в буквальном смысле просто дать ему класс, который мы действительно говорили о вчера, из "БТН БТН-успеха." Почему эти слова? Twitter, авторы Bootstrap, придумал эти слова. Они могли бы назвать им все, что они хотят. Но то, что вы получаете сейчас кто-то на Twitter, в этом случае, выяснил, как вы делаете Кнопка выглядеть красиво и чистый и зеленый. Они упакованы, что функциональные возможности в классе CSS, называется "БТН" и "БТН-успех", так что любой из нас может теперь используют его даже не думая об Это. Таким образом, они абстрагируются понятие зеленой кнопки поэтому мы не должны заботиться о реализации его сами. Мы можем на самом деле сосредоточиться на реализации вещи, представляющие интерес для нас. Если прокрутить вниз здесь. Сообщения об ошибках на экране. Иногда вы хотите немного сообщение появляться на верхней части браузера. Любой из нас может сделать это с некоторыми усилия, после вчерашнего урока, но почему бы вам беспокоиться? Вот такая неинтересная эстетическая деталь. Давайте стоять на плечи Bootstrap и пусть они дают нам такие вещи, где мы в буквальном смысле, чтобы получить красную коробку, просто должны сделать пункт Тег с классом of-- жаль. "BG-опасность" даст нам это красновато коробка вместо этого. Теперь давайте вернемся к более интересные вещи. Если я вернусь к началу эту страницу и перейти к компонентам, Теперь мир становится все более интересным. Например, очень часто встречается выпадающие меню, как это. Это было бы абсолютным боль в реализации. И это было не так долго назад мы программисты бы реализовать эти виды меню с нуля. Но это такая общая парадигма что библиотеки Bootstrap просто дать вам возможность, чтобы сделать выпадающее меню далеко, гораздо легче. Там нет ни одного способа сделать это, но если я читаю документацию Я хотел бы видеть, что, хорошо, я должен использовать это HTML, если я хочу ниспадающее меню который ведет себя, как это. Точно так же, давайте перейдем к кнопке выпадающего. Так что это даже искуснее. Если я хочу, чтобы это выглядеть как кнопка но это маленький треугольник означает Я должен нажать на него и получить это меню, это использует язык, называемый JavaScript. И мы все могли бы реализовать это в JavaScript. Но опять же, это колесо Вы не хотите, чтобы изобрести. Вы просто хотите, чтобы снять его библиотека полка для этого. Давайте вернемся к чему-то как прогресс баров. Так что-то, как это круто. Если вы когда-либо видели прогресс бар перемещения по экрану, реализации, которые часто просто значок прядения. На самом деле, так же, как и в сторону, пусть мне идти к Ajax-- что это? Ajax информация? Упс. Ajaxinfo. Позвольте мне запомнить адрес. Там мы идем. Так что если вы когда-либо видели некоторые анимации в то время как страница загружается, или думать, или сохранить, или создать что-то, вы могли бы видеть такие анимации, как эти. Итак, давайте посмотрим на что-то как этот здесь, и давайте выбрать основной цвет зеленый, который чувствует себя своего рода дружественные. Могу ли я нажать это? Приходи один. ОК. Мы будем просто идти с красным, потому что это то, что мы получаем. Так вот у нас есть. Так что если вы когда-либо видели это на экране, в результате чего вдруг появляется, а затем внезапно исчезает, что является то, что это осуществление этого? Ну, это просто GIF. G-I-F. И это анимационный файл, который просто означает, это как комикса старой школы. Там просто куча разных кадры, которые собираются [заикания] и просто повторить. И это создавая иллюзия движения. Так как только страница делается загрузки или делать что-то, что делает программист делать? Ну, он или она просто скрывает это изображение. Так что все бар прогресс является своего рода одноименных кино вы смотрите. Ты вроде не обращая внимания на тот факт, что это на самом деле не делает ничего, это просто движение. А потом, когда это сделано прогрессирует, они просто скрыть его или выключить его. И это все, магия что там происходит. Bootstrap дает вам что-то немного искуснее, в котором вы можете на самом деле увидеть процент, как она идет, но это тоже только вид простой анимации. Давайте посмотрим на финальные более сложные примеры здесь. Что-то вроде модальным. Кто-нибудь знает, что такое модальное? Окно модальное, как правило, тот, который, как предполагается, взять под свой контроль на переднем плане и помешать вам делать что-нибудь еще. Это своего рода заставляет пользователя Внимание к середине экрана, блокировки их, как правило, от всего остального. Так что, если я запускаю эту демонстрацию, в экран, как правило, становятся серыми. Ну, как мы делаем это серый цвет? Ну, мы, вероятно, просто изменил цвет фона как мы делали вчера или что-то типа того. Может быть, это наложение что полупрозрачными. А теперь заметил, что вы можете сделать модные вещи, как это. Так что если вы когда-либо нажать на кнопку и хотите немного выскочить появляться, Вы можете сделать это. И так, кто заботится о all-- да? ЗРИТЕЛИ: Так что с Bootstrap, чтобы получить его включить, это так просто, как будто вчера мы сделали страницу стилей CSS? DAVID J. Малан: В самом деле. Действительно хороший вопрос. Позвольте мне перейти к началу работы. И да. Все, что вам нужно сделать для того, чтобы Использование Bootstrap по существу копировать и вставьте эти три длинные линии код в верхней части вашего собственного веб-page-- глава вашего page-- и вы и работает. И есть различные способы сделать это, но это было бы самым простым. Так что полезно обо всем этом? Ну, если вы не так много реализатор веб-сайта но вы пытаетесь его дизайн, или вы хотите предоставить кому-то с проволочном каркасе диаграмм, так сказать, или выдач всего в художника о том, что что вы хотите сделать, я, к этому день, часто идут на сайт как Bootstrap, где если I хотите реализовать something-- как в последнее время на территории кампуса мы хотели реализовать инструмент на основе веб-навигации каталог курсов Гарвардского университета, что делает его более легким для студентов просматривать курсы и добавить курсы для список покупок, так сказать, чтобы отчасти решить, что они хотели взять. Я пытался представить себе, для сам, какие ингредиенты будет мы хотим использовать, чтобы построить это? Что бы пользовательский интерфейс будет? И только глядя через сайт, как это или другие подобные сайты библиотек, вы можете получить вдохновение, потому что ничего себе, Я могу использовать этот виджет, и этот виджет, и этот виджет. И тогда действительно что программист начинает сделать, особенно в эти дни в этом более современный мир веб-программирования, это программирование становится все более о подключении вместе. Сортировка брать это с полки, это с полки, это с полки, и вы быть умный чтобы соединить все эти точки, но в конечном счете, построить что-то еще раз стоя на плечах других людей, так что вы не тратите в месяц реализации глупую выпадающего меню, что на самом деле трудно сделать, если Вы хотите, чтобы работать на Chrome, и IE и Firefox, и любой ряд других браузеров. Вот почему есть такая богатая Программное обеспечение коммерческих и с открытым исходным кодом промышленности, а также. ЗРИТЕЛИ: Так ли Bootstrap обновляется и вы должны затем обновить свои ссылки? DAVID J. Малан: Он делает. Ну, да, это делает. Bootstrap в настоящее время в версии 3.3.6. И вообще, что вы бы do-- это на самом деле стоит упомянуть. Там в то, что в целом известный как семантического управления версиями система в мире. Не все это делает. Но если вы уже видели номера версий которые имеют вид x.y.z-- Так, например, первый вариант программы может быть 1.0.0. Или, если это очень, очень бета или даже альфа-статус, что означает использование на свой страх и риск, это не действительно готов к прайм-тайм, Вы могли бы даже начать 0.0.1 или некоторые такое обозначение. Но если программа начинается с версии 1.0, или, что эквивалентно 1.0.0, как правило, то, что они распространены days--, хотя и не является omnipresent-- если компания или индивидуальные исправления программист какая-то ошибка в какой-то части программного обеспечения, которое на самом деле была ошибка, которой коррекция не должна Воздействие на вас all-- это не меняет поведение программы, он просто фиксирует что-то что не работает properly-- вы, как правило, обновить значение г есть. А это значит, кто-то вроде Карима может просто зайти в свой веб-сайт, слепо изменить номер версии от версии 1.0.0 до 1.0.1, сохранить его, отправить его, и в теории, не должны обеспокоены тем, что он просто сломаны его веб-сайт из-за некоторые недостаток функциональности, потому что что-то еще сломал. В то же время, если Я, программист или какая-то компания должны были сделать некоторые существенные изменение, которое добавляет функциональность, Я мог бы обновить нас 1.1.0, потому что я на самом деле изменение поведения библиотеки. Я даю вам, возможно, больше функциональных возможностей. И, наконец, если бы я был на самом деле коренным образом изменить программное обеспечение так, много, что она будет ломаться много пользователей веб-сайтов или приложений, то я обязан, в этой модели, обновить основной номер версии тоже, который является критическим изменением. Другими словами, я мог бы прекращена поддержка для тех, кто капли вниз меню. Так что если вы обновление до 2.0, половина Ваш веб-сайт может перестать работать. И это своего рода сигнал сообществу, как к тому, что участвует в создании обновления. Хорошая возможность поднять. Другие вопросы? Отлично. Ну давайте посмотрим на один финал тема в этом сегменте программирования технологических стеков, а именно, связанные с мобильным. Таким образом, в мире мобильных телефонов сегодня Вы have-- и IPADS, и поверхности, и все эти виды из devices-- у вас есть много вариантов, когда речь идет об осуществлении приложение или веб-сайт для мобильные устройства вашего клиента. Так что просто заявить очевидные, возможно, в эти дни, каковы платформ развиваться в мобильном пространстве? Какие устройства вы можете захотеть поддержки с приложением или веб-сайт? АУДИТОРИЯ: Apple. DAVID J. Малан: OK. Так что Apple, устройства. Так это означает, iPhone, и что означает Ipad, а может даже и IPod. Что еще? Оливье? ЗРИТЕЛИ: Android. DAVID J. Малан: Android. ОК. Так что Android телефоны, Android таблетки, Android Market даже грязнее because-- и Даже Apple становится грязным. В то время как когда-то давно iPhone был определенный размер, и IPad был определенный размер, и IPod был определенный размер, теперь у нас есть IPad Minis, и тонкий из них, а также iPhone 6 Plus и 6. Это становится беспорядок. Это становится Android мир. И я говорю это с рода прокатке мои глаза, потому что от разработчика перспектива, это боли в шею, когда у вас нет Стива Джобса " видение абсолютного контроля над всеми этими характеристиками. Apple, по-прежнему делает, потому что они те строят аппаратные средства. Но это хорошая вещь, если Я разработчик программного обеспечения, просто знаю, что мой iPhone всегда будет быть такой большой, потому что это означает, что я всегда знаю, сколько экран недвижимости у меня есть. Так что, если я хочу поставить иконку в верхнем левом углу, это собирается быть в точно такой же место на устройстве каждого отдельного клиента. Но в мире iPhone 6с и iPhone 6 Достоинства и в мире Android телефоны, это по всей карте. И таким образом это делает его более трудным для программы вещи, особенно пользовательские интерфейсы, потому что теперь вы должны начать организацию ваши пользовательские интерфейсы относительно, а не абсолютно. И то же самое было верно в браузерах, и настольные компьютеры, ноутбуки и в течение многих лет потому что вы, конечно, имеют различные размеры экрана. Что еще? Вы можете иметь поверхности, как от Microsoft. Ты можешь иметь-- ЗРИТЕЛИ: Windows Phone. DAVID J. Малан: Что это такое? ЗРИТЕЛИ: Windows Phone. DAVID J. Малан: Да. Таким образом, Windows телефоны все еще можно найти. Вид рода BlackBerrys, но они продолжают пытаться. А потом сгустков других устройств. Таким образом, по большей части, давайте говорят, что это те, заботиться о в данный момент. Конечно же материал компании Apple, конечно, Android вещи, и среди Windows, как и на поверхности таблеток кажется, ловить на довольно хорошо. И поэтому среди этих устройств, если вы хотите, чтобы выкатить, скажем, мобильное присутствие для вашего компания, какие виды проектных решений вы должны сделать? Ну, мы уже говорили в мире Apple, есть по крайней мере два языка которые обычно используются. Одна называлась что? ЗРИТЕЛИ: Objective-C. DAVID J. Малан: Да. Таким образом, Objective-C, который является старой. Это также язык, на котором многие Mac приложения по-прежнему написаны в. Тогда другой новый клиент был? ЗРИТЕЛИ: Swift. DAVID J. Малан: Swift. И это вид два, чтобы знать, чтобы произвести впечатление на людей. Тогда в Android мире, На каком языке использовать Android? ЗРИТЕЛИ: C #? ЗРИТЕЛИ: Java. DAVID J. Малан: Java является язык "дежурные". В мире Windows,, конечно, мы скажем C # в этом случае. Так уже это своего рода раздражает, потому что вынос для бизнеса владелец или кто-то просто хочет, чтобы выкатить мобильное присутствие? Как, черт побери? Мол, если я хочу, чтобы поддержать довольно широкая пользовательская база, Я должен написать, казалось бы, три отдельных приложений. Один в один из этих языков, один в Java, один в C #. И даже если я хочу функциональность чтобы быть идентичными, это не имеет значения. Я до сих пор нужно использовать разные языки, так как Apple, и Microsoft, и Google все поддерживают различных средах. И это было проблемой в течение многих лет. Еще в тот день, когда люди использовали для покупки программного обеспечения в компьютерном магазине в термоусадка коробки, вы должны либо достигать для Mac полки, или for-- может быть, это очень маленький Mac shelf-- или больше для Windows полки и купить некоторое программное обеспечение. И очень часто, не было даже что-нибудь для вас на Mac полке. Зачем? Ну, компании, если 90% решили мира, 95% населения мира есть ПК, то зачем даже реализации вещей на Mac OS? В качестве aside-- в общей сложности digression-- почему это что Mac кажется настолько невосприимчивы к вирусам, и червей, а также угрозы безопасности? Является ли Apple, лучше в этом? Лучше на поддержание компьютеров в безопасности? ЗРИТЕЛИ: меньшую аудиторию? DAVID J. Малан: Это вероятно, тем больше бит к нему. Таким образом, многие пользователи компьютеров Mac имеют долгое время утверждал, ой, использовать Mac, вы будете застрахованы от вирусов, червей, и все эти вещи которые уже давно страдают ПК. Это может быть потому, что компании Apple имеет лучшие программисты и они пишут лучшее программное обеспечение, или операционная система была разработана лучше. Может быть, но, вероятно, нет. Это, вероятно, что, когда вы 12-летний или 30-то своего рода сидя у себя дома письменной форме вредоносное программное обеспечение, чтобы взять на себя мир, который вы собираетесь пойти после того, как гораздо больше целевой аудитории. 95% населения мира, которые могли бы работать под управлением ОС Windows или некоторые их варианты. Таким образом, есть немного с обеих сторон. Но к их чести, Apple, к моему знанию, действительно не рекламировали себя как более безопасным, так как вы просто пригласив драмы, если вы делаете это заявление, я думаю. Отлично. Не вдаваясь слишком далеко вниз что, как мы решить эту проблему? Есть ли у вас купить или вы должны платить три разных людей развивать ваши приложения? Вы выбираете один над другим? Что должно направлять ваши думаю здесь вы думаете? Kareem? Неа. Кто-нибудь другой. ЗРИТЕЛИ: Просто приходите с аппаратными средствами. DAVID J. Малан: Придите с аппаратными средствами? Что вы имеете в виду? ЗРИТЕЛИ: Для Окружающая среда. [Неразборчиво] DAVID J. Малан: Так что это правда. Но ваши клиенты, В то же время, возможно, айфонов, они могут иметь для Android телефонов, они могут иметь таблетки, сделанные Microsoft. Так как у вас есть мобильная стратегия для всех этих различных пользователей? Казалось бы, что если это будет стоить, скажем, $ 1000, чтобы сделать iPhone приложение, это будет стоить вам $ 2000, чтобы сделать приложение iPhone и Android-приложение, или $ 3000 также поддерживает устройства Windows, а также. Это, вероятно, довольно занижение, и он не может даже линейная зависимость, как это. ЗРИТЕЛИ: Если вы хотите иметь приложение или нет, вы можете иметь адаптивный веб-сайт. DAVID J. Малан: Хорошо. ЗРИТЕЛИ: Или вы можете иметь родное приложение. DAVID J. Малан: Да. Так что во всем этом контексте здесь, мы говорим о том, что люди назвали бы родные приложения. То есть приложения, которые написаны на родном языке этого устройства. Таким образом, родной Objective-C или Swift код, или в Java, или в C #. А это значит, когда вы загружаете, давайте говорят Snapchat, популярное приложение, или при загрузке Facebook для телефона, Вы загружаете либо версия написана для вашего iPhone, или написанные для ваш телефон, или написанные для вашей поверхности. Но есть альтернатива. Как Оливье намекал, вы можете использовать HTML 5 вместо того, чтобы, используя то, что называется веб приложение, в котором вы просто реализовать мобильное присутствие и любые функциональные возможности. Что я имею в виду с помощью мобильного присутствия? Как ваш веб-сайт, содержащий нужные контактная информация, список всех ваши продукты, может быть, он имеет по магазинам корзина, может быть, вы продаете вещи через него. Независимо от цели вашего приложения, вы реализовать его, а не в Objective-C, или Swift, или Java или C #, но в HTML 5, который был язык, который мы смотрели на вчера, с JavaScript и CSS. И что приятно о тех, три в том, что для их работы, вам нужно только то, что часть программного обеспечения? ЗРИТЕЛИ: Веб-браузер. DAVID J. Малан: Веб-браузер. И лучшее, что я знаю, все эти устройства поставляются с веб-браузерами, так что пользователь не должен установить что-то особенное. Таким образом, вы можете просто сказать ваш аудитории, ваши клиенты, перейти к acme.com в вашем браузер, и вы будете просто есть веб-на основе опыта что до сих пор заполняет экран, но вам не придется беспокоиться о всех эти затраты и все это сложности. Но, конечно, там будет чтобы быть подвох здесь, не так ли? Особенно, если я указываю что пару лет назад, самая первая версия Мобильное приложение Facebook, был в большей части HTML 5 приложений. И у них есть, более в последнее время, перекрываем его в других своих приложениях. Так почему бы вам не сразу хочу сказать, ну, очевидно, что мы собираемся сделать это? Что скрытые расходы могут быть? ЗРИТЕЛИ: Производительность. DAVID J. Малан: Производительность? Что ты имеешь в виду? ЗРИТЕЛИ: Родное приложение имеет более высокую производительность. DAVID J. Малан: Так что это правда, по нескольким причинам. Мы можем упрощать ответ. И вспомнить наше обсуждение интерпретированы по сравнению с составленным языками. Это HTML 5 и с ним, просто чтобы быть ясно, JavaScript-- обычно пишется JS-- и CSS все интерпретируемые языки, даже если только JavaScript это язык программирования. И так в сравнении с этим, что некоторые из них составляются, по крайней мере, эти three-- Objective-C, Java и C # - это, в теории, должны быть просто быстрее. Но есть другая реальность for-- ЗРИТЕЛИ: Функциональности? DAVID J. Малан: Что это такое? АУДИТОРИЯ: Функциональности. DAVID J. Малан: Функциональность? Как так? ЗРИТЕЛИ: Используйте камеру Выключение телефона или что-то. Вы можете использовать те, с браузером. DAVID J. Малан: Совершенно верно. Они sec-- ЗРИТЕЛИ: [неразборчиво] DAVID J. Малан: Это еще один хороший. Там в особенности, которые приходят с мобильными телефонами сегодня которые не являются, в соответствии с проектом, для обеспечения безопасности Причины, доступные для веб-браузеров. Потому что это будет своего рода жуткая вещь, если только тогда, когда Вы посетите google.com, или cnn.com, или любой website.com, что этот сайт имеет право включить на камеру, сфотографировать вас, а затем использовать его. Но вы не хотели бы случайный сайт что вы посещаете в первый раз чтобы иметь такую ​​возможность. И так, что телефон производители обычно делают это они просто отказать в доступе к такого рода информации в браузер, который означает, что вы не может реализовать камеру. Вы не можете реализовать уведомления толчка, звуковые сигналы, которые вы получаете на экране с короткими сообщениями. И в самом деле, даже GPS является единственным видом из своего рода доступны веб-браузеров. Если вы когда-либо, на ноутбуке или на мобильном устройстве, подъехала что-то вроде возможно CNN.com, но и местные новости станции как правило, сделать это, вам будет предложено часто с message-- foxnews.com хочет знать свое местоположение. Утвердить или отклонить. Ну, браузер пытается получить доступ Ваша информация GPS с вашего телефона. Но, к счастью Microsoft, и Apple, и Google решили, что чувствует, как это полезная ситуация, мы хотим, чтобы Google Maps и другие инструменты для работы, но мы не хотим, чтобы ползти людей из , просто позволяя любой веб-сайт, чтобы сделать это. Так что давайте своего рода встречаются на полпути и предложит пользователю. Но это не обязательно так со всем оборудованием, как камеры и с нажатием уведомлений и т.п., так что вы, возможно, придется принести в жертву определенные функции. Но производительность тоже. Это становится все меньше заметно в наше время, возможно, поскольку LTE улавливает и быстрее скорость интернета на телефонах, но вы можете вид почувствовать разницу. Как веб-приложение просто чувствует себя медленнее, как правило, чем родное приложение, частично потому что веб-приложение по определению находится в Интернете. Он разговаривает с серверами в Интернете. И если сетевое подключение медленно, даже прокрутка может быть медленным. Но родное приложение, у вас есть уже предварительно downloaded-- вероятно, когда вы были у себя дома из магазина приложений, или вы по крайней мере, предварительно загруженных это во всей ее полноте раньше, независимо от ваших соединение speed-- и теперь у вас есть все биты, которые обычно требуется. За исключением, возможно, некоторые данные что приходит с сервера. Таким образом, эти компромиссы здесь. Там вроде в середине Компромисс, на самом деле. И я думаю, что you-- ЗРИТЕЛИ: Используйте данных в автономном режиме. В родных приложениях можно [неразборчиво] DAVID J. Малан: Совершенно верно. Таким образом, есть автономный вопрос, который действительно раздражает если вы не можете играть в какую-то игру или использовать некоторое программное обеспечение только потому, что вы в подвале где-то или в лифте. Уроженец приложение является упругим с большей вероятностью, против того, если у вас есть все данные, необходимые на местном уровне. Таким образом, есть третий вариант здесь. И давайте нарисуем спектр, как родное приложение здесь и веб-приложение здесь. И то, что в середине что-то called-- и я думаю, что вы, возможно, использовал слово раньше, может быть? Гибридные приложения. И как слово подразумевает, это что-то в середине. Это своего рода веб-приложения и это своего рода родное приложение. А что это значит? Оказывается, есть frameworks-- использовать термин из earlier-- программного обеспечения что другие люди писали для каждого из этих платформ. Эти и еще другие устройства. На самом деле, позвольте мне перейти к PhoneGap, которая является одним из таких рамок, которые я Adobe полагают, владеет в настоящее время. Позвольте мне перейти к началу работы. Посмотрим. Смотрите, если я могу увидеть список инструментов. Аппаратные средства. Начиная. PhoneGap аппаратных средств. Посмотрим. Аппаратные средства обеспечения доступа PhoneGap. Давайте посмотрим, если мы сможем найти немного Диаграммы, которые они использовали, чтобы иметь. Это на другом сайте. Полезно ли это? Нет. Это собирается тратить наше время там. PhoneGap аппаратных средств. Приборы. Device API. Нет, они переехали его. PhoneGap. Давайте в последний раз взглянуть на это и посмотреть, если я могу показать вам. Начиная. Установить PhoneGap. Установить мобильное приложение. Давай. Они реорганизовали все. Отлично. О, все в порядке. Ну, здесь мы идем. Это не все, что поучительно, но это то, что я был отчасти искал. Так PhoneGap является основой, что вам можно скачать бесплатно, что дает вам некоторые стартовый код, по существу. Так что некоторый код, который они написали что ничего не делает ничего. Но что это дает вам по существу, является эквивалентом приложения, которое просто ставит большой прямоугольник на экране пользователя. Он не ставит планку URL, подобно браузер, не помещает адрес. Он просто ставит большой прямоугольник. И настроить этот большой прямоугольник, под капотом, на самом деле идти к acme.com, или, возможно, m.acme.com, для mobile.acme.com, но пользователь не знает, они по этому адресу. Все они видят это содержимое веб-страницы. Но что приятно об этом существе гибрид приложение является то, что PhoneGap и другие компании дают вам, они дают вам немного кода в Objective-C или Swift, или немного кода в Java, или немного кода в C #, и, по существу, все, что вы должны обеспечить минимально адрес вашего веб-приложений. И тогда вы связывайте это все вместе, и вы есть это либо получить доступ к вашим сайт через Интернет, или даже локальный кэш скопировать внутри приложения, а затем сохраните приложение в формате iPhone, Android телефон формат, формат поверхности, или любое число других устройств. Вы загружаете каждой из этих версий в магазине Play Google, в App Store, к Windows Store, и так далее. А теперь, вы можете иметь все ваши зрители скачать действительно родное приложение, хотя большая часть кода была написанный кем-то другим, но содержание этого родное приложение все родом, как правило, собственный веб-сайт. Таким образом, вы продолжаете писать свой веб-сайт в HTML, JavaScript и CSS. Так почему размытие эти строки? Почему гибридные приложения это своего рода родной, но и вид веб-интерфейс? Что весь смысл добавив эту сложность? Я имею в виду, даже до сих пор, только от просматривал эту страницу, Приступая к работе руководство чувствует, как у него есть целый много шагов для меня чтобы сделать, прежде чем я can-- ЗРИТЕЛИ: Повторное использование? DAVID J. Малан: Повторное использование? Что вы имеете в виду? ЗРИТЕЛИ: Из исходного кода. Таким образом, тот же код будет работать на все разные платформы. DAVID J. Малан: Да. ЗРИТЕЛИ: [неразборчиво] DAVID J. Малан: Отлично. Если времени мало, и если вы не так уж много developers-- может быть, у вас есть один разработчик и он или она, конечно, не знает, все эти environments--, конечно, не очень хорошо, и, конечно, не может программа во всех трех одновременно и отправить три продукта в время, отведенное для одного, вы можете иметь его или ее строить все в HTML и JavaScript и CSS, а затем научиться крохотной Немного о родных приложений, Достаточно просто скачать рамки, как это, чтобы затем загрузить свой продукт все различные магазины приложений так что теперь у вас есть родное приложение. Так что кажется беспроигрышной, но опять же, чтобы быть ясно, Каковы потенциальные дополнительных затрат или подводных камней? ЗРИТЕЛИ: Производительность? DAVID J. Малан: Да. Представление. Трудно описать словами. Так что, если вы просто взять на себя вера мобильное приложение, веб-приложение будет обычно выполняют медленнее. Это может выглядеть не совсем верно, потому что в iPhone, а в Android телефонов, и устройства для Windows, есть всегда своего рода внешний вид по умолчанию и чувствовать себя все из Кнопки и меню. И компании в Интернете, можно попробовать чтобы приблизить эти эстетики с библиотеками, как Bootstrap, но user-- проницательный user-- будет знать, что что-то не совсем прямо здесь. И это нормально, может быть, что это не имеет большого значения. Но проблема производительности абсолютно большое дело. Собственные приложения будут иметь тенденцию только быть гораздо более гибким и, следовательно, лучше. И так, что же тогда может быть лучшее из обоих миров? Если вы особенно небольшой компания или небольшая группа, у вас нет ресурсов разработать приложение параллельно на всех трех платформах, и, честно говоря, чувствует, что это плохая идея в любом случае потому что если вы раскатать и на все три одновременно реализовать, мы должны были добавлены некоторые функции или сделать что-то по-другому, теперь вы должны исправить ее в три места, а не один. Что может быть оптимальным Стратегия здесь в целом, если ресурсы и время затянуты? ЗРИТЕЛИ: Просто сделай это на IOS. DAVID J. Малан: Это не лишено смысла. айфонов, по крайней мере в США, супер популярны. Android до сих пор, кажется, доминирует Доля рынка, во всем мире, в целом. Таким образом, вы не обязательно представитель в полном объеме земного шара на этой неделе. Но это абсолютно одно решение. Я имею в виду, в университетском городке здесь я думаю, что какой-то отвратительный номер или процент студентов есть iPhone'ов и не Android телефонов. Но за границей, это своего рода противоположность. Таким образом, Вы сами решаете, на основе вашей аудитории. Как вы знаете, что ваша аудитория? Ну, вчера мы узнали трюк. Вы могли бы спросить их. Если у вас есть аудитория вы можете отправить им форму обследования. Или вы могли бы просто делать то, что? ЗРИТЕЛИ: Google Analytics? DAVID J. Малан: Что это такое? ЗРИТЕЛИ: Google Analytics. DAVID J. Малан: Google Analytics. Да. Или еще вроде технически, просто посмотреть на свои веб-серверы журналов. Потому что то, что происходит каждый раз, когда браузер, будь то ноутбук, настольный компьютер или телефон посетить ваш сайт? Они посылают, что HTTP заголовок, который показывает Вы какой браузер и ОС они используют. Таким образом, можно сделать вывод, с высокой степенью вероятности, что ваш демографический использует этот путь а затем отрегулировать. Поэтому предположим, что это неприемлемо. Это своего рода плохо для бизнеса, если Android пользователи не могут купить наши виджеты. ЗРИТЕЛИ: Являетесь ли вы собирается взимать плату или нет? DAVID J. Малан: Является ли вы собираетесь поручить? Так хорошо, вы получите то, что вы платите. ЗРИТЕЛИ: Является ли ваше приложение собирается быть свободными или будь то gonna-- DAVID J. Малан: OK. Так что, может быть, вы могли бы окупить Затраты Таким образом, или--? АУДИТОРИЯ: Я прочитал исследование, когда-то сказал, что Чем больше пользователей Apple, платить за приложения versus-- DAVID J. Малан: Это правда потому что они уже платить больше для своих устройств. Таким образом, не является необоснованным предположение. ЗРИТЕЛИ: [неразборчиво] DAVID J. Малан: OK. Так что, если они более готовы платить, то к черту с Android пользователей. Они не собираются платить нам что-нибудь в любом случае. Мы могли бы также сосредоточить наши приоритеты, по крайней мере, в течение первых нескольких месяцев или год, на IOS. Полностью разумным. Что более содержательный стратегия, чем это? Maybe-- что это такое? ЗРИТЕЛИ: [неразборчиво] DAVID J. Малан: Более expensive-- так что, возможно инвестировать больше in-- идти вперед. ЗРИТЕЛИ: Да. Просто мобильный веб-сайт. DAVID J. Малан: Так что делать мобильный веб-сайт и не даже беспокоиться об этой сложности. Или, может быть разумной стратегией, который даже Facebook взял, будет начинаться с гибридным приложение, потому что это не что гораздо труднее сделать это, чем это. Вы просто должны прочитать некоторые документация и выяснить, как чтобы загрузить вещи в App Store. Так что, может быть, вы начинаете с это, так, что в один день, Вы можете поддержать всех пользователей. А потом, так же, как Facebook и другие компании сделали, когда у вас есть ресурсы, у вас есть люди, почему бы вам не повторно реализовать просто приложение IOS. У вас еще есть кое-что для всех, даже если это низшее опыт может быть, с гибридным приложением. Но вы можете постепенно раскатать и заменить короткий срок меры гибридных приложений с ваши более родные приложения. ЗРИТЕЛИ: Но гибрид приложение, которое вы будут иметь доступ к мобильным функциями? DAVID J. Малан: Не обязательно. Так что, может быть, вы сделаете сознательное решение на ранней стадии, Вы можете только загрузить фотографии по маршруту приложение для iPhone родной Facebook, но не на приложения для Android, на начальном этапе, например. И это немного белой лжи, потому что веб-приложения имеют больше ограничений чем гибридных приложений оказывается , и если мы читаем документацию для PhoneGap и тому подобное ему, люди придумали способы чтобы дать веб-приложениям Доступ к камере, до тех пор, как вы используете гибридное приложение. Как это работает? Поскольку гибрид приложение, по определению, имеет немного кода в Objective-C, и Swift, а также Java, или в C #, он может получить доступ к оборудованию. Не обязательно все, но это может очень хорошо быть так, что у вас есть достаточно, чтобы получить доступ в камеру, даже для Android платформ, для Например, в этом надуманный пример. Другие вопросы? Отлично. Почему мы не берем наши 15-минутный перерыв здесь. Мы резюме в три с окончательным посмотреть на веб-программирование, базы данных, и Javascript.