DAVID J. Малан: Отже, ми повернулися. Так високого рівня тема в даний момент в даний час є технологія стеки, яка не є особливо технічний термін, це більше улову все для будь-якого кількість комбінацій технологій що ви могли б використовувати для вирішення проблем. І, мабуть, самий фитинга спосіб почати дивитиметься на мовах, так як Я постійно сипати цілу купу і більшість все в кімнаті є напевно, чули, принаймні, один. Так чому б нам не спробувати відрізнити что-- розрізняти ці мови і коротко говорити про те, коли ви б вибрати один над іншим, як вони свого роду фундаментально різні, і в особливості коли ви в чаті з інженерами, або намагається вирішити, кого наймати, або те, що реалізація Пропозиція про зелене світло, як би ви насправді зробити ті види рішень. Так що давайте просто гриміти деякі речі. З мов люди мають чули, що приходить на розум? C. OK. OK, C ++. Що це? ГЛЯДАЧІ: Python. DAVID J. Малан: Python. Відмінно. Що ще? Visual Basic. Я чув, Java. Візуальний а.к.а. Basic-- VB. Java. .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. Any-- ГЛЯДАЧІ: 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. Ви можете have-- ГЛЯДАЧІ: 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.