Майкл Махемофф: «Ви не можете навчатися, лише читаючи чи слухаючи»

GDD 2010 Майкл та Пол Кінлан з киянами на московському хакатоні

Майкл Махемофф: «Ви не можете навчатися, лише читаючи чи слухаючи» (інтерв’ю)

Майкл Махемофф працює в Google у якості Chrome Developer Advocate (Адвокат розробок на платформі Chrome). Він вже багато років пише для Ajaxian, а також в 2006 році написав книгу Ajax Design Patterns, яка вийшла у видавництві OReilly. Він автор таких корисних інструментів якListOfTweets.com, а також кумедного проекту IE6IsOlderThanYourGrandpa.com. Він веде блог наSoftwareas.com та твітить під ніком @mahemoff.

Ти вже п’ять років пишеш для Ajaxian, тобто ти уважно слідкуєш за розвитком у цій сфері. Які, на твою думку, найважливіші зміни у Java скриптах і AJAX сталися за останні п’ять років?

Відбулося багато змін, як-от у нашому розумінні Java скриптів, що поступово вдосконалювалися, з’явилися бібліотеки та такі інструменти як jQuery та Firebug, які спростили життя розробників. Ще однією перевагою стало значне підвищення продуктивності. Але, на мою думку, переломним моментом, після Ajax, стала поява останнім часом нових можливостей браузерів. Вони впроваджуються в життя завдяки HTML5, CSS3 й іншим пов’язаним із ними технологіям, таким, наприклад, як геолокаційні сервіси (усі ці технології ми можемо загалом для зручності назвати «HTML5»). Незважаючи на те, наскільки добре ви вміли працювати з Java та іншими скриптами, вони не давали вам можливості створювати відео та багату графіку. Щоб отримати властивості, яких вимагали сучасні додатки, ми повинні були вдатися до використання плагінів, хаків і воркераундів. Тепер, завдяки HTML5, ми змогли створити багато прикладних програмних інтерфейсів/API, що підтримують ці можливості та мають відкриті стандарти. На відміну від попередніх методів, вони ґрунтуються на відкритих стандартах і зазвичай є швидшими, безпечнішими, потужнішими, а також простішими в роботі для розробників.


Майкл виступає на JSConf 2010 (з Flicker)
На додаток до програмування, ти вивчав психологію. Як ці предмети поєднуються між собою?

У багато способів. Штучний інтелект, вочевидь, завжди існував на перетині цих сфер і так і залишається захоплюючою темою для досліджень. Але протягом останнього десятиліття, Взаємодія з користувачем вийшла на передній план, залишивши суто дослідницьку нішу та ставши ключовою дисципліною чи то підгалуззю сучасного програмування. Тепер ми повсякчас зустрічаємося з відгуками на продукти, й одним із факторів який у них фігурує, є зручність таких продуктів для користувача; люди очікують від програми інтуїтивно-зрозумілого інтерфейсу. А створити такий інтерфейс можна, лише гарно розуміючи особливості людської психології. Психологія не оперує голою теорією, а є дисципліною, що базується на фактах.

Ти написав книгу про Ajax Design Patterns. Як ти перейшов до написання книги ведення блогу та програмування?

Основою для книги стали мої пости у блозі на ту ж тему. Я загорівся ідеєю після того, як побачив, що в мові остаточно закріпився термін Ajax. Люди зацікавилися, у моєму блозі йшлося про декілька влучних сайтів (Delicious Popular тощо), і видавництво O’Reilly звернулося до мене з пропозицією написати книгу. Я продовжував публікувати в своєму блозі уривки з матеріалів, які ввійшли до книги, що повністю викладена у вікі-стилі. Якщо я писатиму іще одну книгу, то, напевно, намагатимуся уникати вікі-стилю та більше зосереджувати свої зусилля на блозі чи, принаймні, вікі з коментарями. Такий спосіб мені вбачається кращим для отримання зворотної реакції від читачів, оскільки люди рідко редагують довгі статті, які переважно написані однією людиною та висловлюють лише її думку. (А якщо ні, то в половині випадків це просто спам!)

Майкл Махемофф на київському хакатоні
Ти деякий час працював над TiddlyWiki. Це трохи дивний проект, чи не так? Що тобі в ньому подобається?

Так, я працював над TiddlyWiki в Osmosoft, інноваційній групі у складі British Telecom (BT), очолюваній засновником TiddlyWiki, Джеремі Растоном, хоча я, фактично, почав працювати над кодом значно раніше, коли писав статті для Ajax Design Patterns. Це дуже специфічний проект. Я полюбляю жартувати, що я – один з небагатьох людей у світі, кому заплатили за створення інтернет-додатків, що працюють із форматом URI. За своєю суттю TiddlyWiki є односторінковим додатком, що створений шляхом поєднання HTML, CSS, і Java скриптів в одному файлі. Вже тільки це було інновацією, коли ми вперше створили такий файл. Але що насправді його вирізняє, це його здатність зберігати дані на локальний жорсткий диск, без будь-яких розширень браузерів, а також без використання в автономному режиміAPI з HTML5. Це можливо завдяки використанню ActiveX в Internet Explorer, власним API Mozilla уFirefox, та завдяки додатковому вбудованому файлу в інших браузерах. Це значить, що ви можете легко створювати стійкі веб-додатки та навіть «партизанські» багатокористувацькі додатки, просто виклавшиHTML файл на диску з загальним доступом. Іншою цікавою функцією є система плагінів. Хоча TiddlyWikiза замовчуванням має вигляд персональної сторінки вікі, ви можете швидко перетворити її на блог,слайд-шоу чи будь-що інше. Я записав демо, на якому показано, як створити форум за 15 хвилин. Для цього також використано TiddlyWeb, таким чином форум повністю знаходиться на сервері, хоча він і створений на основі файлу URI.
Ти полюбляєш хакатони. Як на тебе, яка найбільша перевага хакатону?

Деякі хакатони мені подобались. Програмування як дисципліна має як сильні, так і слабкі сторони, і головною сильною стороною є те, що можна створити щось абсолютно приголомшливе за один єдиний день. Або, звичайно, більшість людей не можуть зробити це за один день, але вони таки створять щось і багато чому навчаться в процесі. Таким чином, хакатони є торжеством дивовижного створення чогось нового, коли ми можемо розпочати день, посіявши зерно ідеї, та завершити день безпосереднім втіленням цієї ідеї. Така природа програмування: безперервний потік інформації та творення. У всьому цьому є також і соціальний аспект – завести нові знайомства, попрацювати в команді, обмінятися досвідом та навчитися чогось одне в одного. І цих цілей можна досягти настільки, наскільки цього захочуть учасники: деякі надають перевагу індивідуальній роботі, і це також добре. Ще одна важлива особливість програмування полягає в тому, що ви не можете навчитися програмувати просто читаючи чи слухаючи. Ми можемо сперечатися з приводу причин, але більшість розробників погодяться зі мною, що ви зможете осягнути принципи роботи, лише закатавши рукави та взявшись до роботи над створенням справжнього коду. Хакатони є ідеальним середовищем для такої роботи, безпечною гаванню, де отриманий результат не настільки критичний, а натомість існує багато можливостей отримати допомогу та зворотню реакцію.

Який із хакатонів, в якому ти брав участь, тривав найдовше?

У BТ ми практикували гнучкий підхід, три дні були насичені подіями. Увесь сенс полягав у тому, щоб зібрати разом усіх зацікавлених у проекті сторін і привернути увагу користувачів, щоб ми могли працювати разом із ними та попросити їх протестувати наші нові напрацювання. Ми могли обговорювати наші ідеї та виводити їх на новий етап втілення. Цей процес не був досконалим. Я відчував, наче деколи нам було потрібно більше розробників, щоб досягти правильного балансу сил, беручи участь у такому заході, який орієнтований на створення реальних продуктів і презентацію цих продуктів наприкінці кожного дня. Дехто жалівся, що саме так програмне забезпечення повинно функціонувати щодня, а не тільки у виключних випадках, але я вважаю, що у багаторівневій мультинаціональній корпорації такі «виключні» події є реально найкращим та найдієвішим методом. Я вірив, що такий принцип був правильним, а більшість таких подій приносять користь компанії.

Отож, в Osmosoft проводилися хакатони в межах компанії? Чому, власне, компаніям варто проводити хакатони?

Так, вони неймовірно ефективні, та зрештою ми проводили їх приблизно раз на місяць, оскільки вOsmosoft було багато внутрішніх клієнтів і зовнішніх партнерів. Чудові спогади! Ми зустрічали клієнтів вранці, зазвичай приходило декілька чоловік. Ми погоджували сценарій проведення події, обговорювали ідеї та розставляли пріоритети, а потім приступали власне до хакатону та кодування. Сесії програмування тривали годину чи дві, починаючи з 10 години ранку, і тривали до 7 вечора, коли ми презентували результати своєї роботи. Між сесіями ми проводили дискусії, щоб координувати свої дії та спланувати наступну сесію. В ідеалі ми постійно заходили на GitHub або подібні сервіси, а також твітили про подію. Остаточною метою було не лише представити результати нашої роботи, а й до завершення заходу надати публічний доступ до веб-додатку, який ми розробили (хоча на практиці так було й завжди).
Потрібно наголосити на двох важливих моментах. По-перше, ми могли працювати дуже швидко, таким чином часто дивуючи наших клієнтів. Причина полягала в тому акценті, що ми робили на повторному використанні – кожен новий проект був можливістю не лише створити новий додаток, але й цілий ряд нових компонентів, що могли б використовуватися в інших проектах. Не грандіозна технічна розробка, а саме 50-рядковий плагін TiddlyWiki став на сьогодні чимось справді корисним. Це міг би бути плагін для коментування, графічний редактор чи текстовий лічильник. По-друге, вражала сама відкритість, яка супроводжувала процес створення компанією нових продуктів. Ми могли собі це дозволити, оскільки створювали оболонку, що базувалася на плагінах. Osmosoft як компанія-розробник відкритого програмного забезпечення створювала компоненти з відкритим кодом, а також додатки, що переважно є лише поєднанням таких компонентів. На цьому етапі BT могла використати отримані розробки та пристосувати їх під власні потреби, як і будь-яка інша компанія (як наші зовнішні партнери) могла користуватися ними. Звичайно, на практиці, ми були лише частиною BT і забезпечували безпосередню підтримку в кастомізації та розповсюдженні додатків. Але ми показали, що навіть великі компанії можуть працювати з відкритим програмним забезпеченням, а також продемонстрували переваги хакатону.

Ти почав працювати в корпорації Google весною цього року як Chrome Developer Advocate (адвокат розробок на платформі Chrome). Як ти отримав цю посаду? Ти сам захотів працювати в Google чи тебе запросили співробітники компанії?

Хтось із Google запросив мене взяти участь у конкурсі на цю посаду, а потім я пройшов через стандартну процедуру відбору.

Chrome підтримує розширення, як і багато інших браузерів. Але у кожному браузері вони реалізовані по-своєму. Чи не має сенсу уніфікувати інтерфейс, щоб розробники мали можливість писати розширення один раз і не пристосовувати їх під кожен браузер?

Очевидно, позитивним рішенням було б писати розширення один раз і запускати для багатьох браузерів; що було б величезним плюсом для веб-програмування взагалі. Недоліком був би ризик передчасно припинити розвиток інноваційного процесу. Механізм розширень для Firefox дозволив створити такі чудові речі як Firebug, але в той же час був складним для повсякденної роботи веб-розробників і потребував вдосконалення, таким чином було ще дуже рано стандартизувати  певні речі. Я сподіваюся, що тепер, коли Chrome має розширення оболонки, що зручне для веб-розробників, у Mozilla є JetPack, аSafari й Opera також мають певні механізми розширень, люди почнуть малювати діаграми Венна та намагатися знайти спільне підґрунтя для роботи з усіма браузерами. Але тільки в тому випадку, якщо це не завадить браузерам підтримувати інновації та розвиватися. Нещодавно Chrome представив розширення, що дає можливість додавати команди розширення до контекстного меню; це один із прикладів безперервного вдосконалення, якому не повинен заважати процес стандартизації.
Як багато GDD ти відвідаєш цього року в ролі доповідача?

Я виступатиму як доповідач на трьох GDD, що пройдуть в Європі (в Мюнхені, Москві та Празі), на кожному із заходів із двома доповідями: Розширення під Google Chrome і HTML чи Native для Mobile Development. Другу доповідь я робитиму разом із Адвокатом Android Рето Мейером, тому, думаю, доповідь буде цікавою.

Ти коли-небудь був у Празі чи це твоя перша поїздка? Чого ти найбільше очікуєш?

Я не був у Празі, але з нетерпінням очікую своєї поїздки. Найцікавішою для мене подією буде організована GTUG подія, що проходитиме перед GDD. У Чеській Республіці безумовно існує сильна спільнота девелоперів, тому я з нетерпінням чекаю зустрічі з місцевими розробниками та хочу побачити, чим вони мене здивують.

Мартін Хассман вів інтерв’ю з Майклом Махемофф перед його поїздкою до Праги.


vadbars
2010-11-18 07:00:47
Спасибо, интересное интервью! p.s. Хорошо бы его еще и на русском опубликовать. Читал в автоматическом гуглопереводе, которые делается в Chrome. Все вполне складно, но для поисковых систем лучше все-таки сделать вариант по-русски. :)