Category: технологии

Тактика

Добрый день, с вами Тонский и рубрика «внезапные озарения по гейм-дизайну, о которых никто не просил».

Да, я все продолжаю залипать на стримы по Героям и делать далекоидущие выводы. Вот что меня какое-то время удивляло: герои 3 и 5 вышли давно, сообщество с тех пор их оценило, погоняло в хвост и в гриву и понаписало патчей и «турнирных» правил, которые делают игру в целом более честной и терпимой. Причем меняется многое — и баланс, и интерфейс, и сетевой код, юниты и герои вводятся и запрещаются. Но что никогда не трогают так это ИИ. И это меня удивляло — почему?

Во-первых заметим, что герои игра исключительно одиночная. Даже в сетевом режиме ты полтора-два часа спокойно возишься у себя в песочнице, соревнуясь сам с собой в наиболее оптимальном разносе компьютерных стеков и обходе природных богатств, и в конце вы на одну короткую битву встречаетесь с оппонентом чтобы сравнить, кто лучше все это время играл против компьютера.

Это было во-первых. Во-вторых, тактический ИИ в героях, который как раз руководит этими нейтральными стеками, довольно тупой. То есть он прямолинейный, предсказуемый, не просчитывает вперед, не строит стратегии или даже плана на битву, совершает из-за этого совсем локально-как-бы-оптимальные-но-уже-на-следующем-ходу-кошмарные ходы. Если сравнить с шахматами, то это примерно уровень «на каждом ходу брать самую дорогую фигуру или двигаться к ней», все. Казалось бы, в чем интерес? Почему это не фиксят, сделать лучше такого даже стараться особо не надо. Значит оно так специально.

Ну и получается что да. Я еще один пример приведу, игра Into the Breach. Такая игра необычная, в которой ты не то что не пытаешься предсказать, как поступил бы «достаточно рациональный противник», в ней следующий ход противника прямо явно вываливается на тебя как часть ситуации. То есть на каждом ходу тебе просто показывают, что будет делать враг. А в чем тогда игра? Игра в том, чтобы обладая этой информацией, сыграть так, что бы у него ничего не вышло. Предотвратить этот самый предсказанный ход, по возможности, на 100%. То есть это такой пазл, в котором, во-первых, ситуация очень несимметричная и к противнику совсем нечестная, а во-вторых, вероятности отсутствуют как класс. Будущее просчитывается, RNG не мешает. И это вполне играбельно и очень даже интересно, зазасывает.

Ну и возвращаясь к героям, штука в том, что тактически Герои как раз такая же игра, хотя может она себя так и не осозновала. Главный шик — зная предсказуемую модель поведения противника, максимально абьюзить ее и получить с этого непропорциональное преимущество. Выманить врага из стен замка, где ему, стратегически, гораздо лучше. Заставить медленный юнит гонять по полю за быстрым, пока лучники его обстреливают. Подойти на столько, чтобы ударить первым. Подставить маленький отряд, чтобы потом безболезненно врубиться большим. Взять юнита ради права первого хода. Заманить на мины. Встать между камнями, чтобы кони не подошли. Обманом растратить ману. Это все вполне тактические задачи, искать решение которых (и находить) вполне себе особый вид удовольствия. Удачно подобранная конфигурация армии (иногда вплоть до плюс-минус одного юнита) кардинально меняет ситуацию и может разносить совсем неожиданные по размеру армии, если придумать как. Герои, как в них играют сейчас, и есть игра про это.

А если ИИ был бы умнее, битвы очень быстро перестали бы быть тактическими и скорее стали бы соревнованием у кого армия толще. Сильный нападает на слабого, слабый обходит сильных. Ну или классика геймдизайна, камень-ножницы-бумага, выбирай то что контрит врага, угадал — будешь в шоколаде, нет — извиняй, дорогой. Не то чтобы таких игр не бывает — бывает, конечно, и не то чтобы они неинтересны — очень даже интересны, но по-своему, по-другому. Если ты любишь тактику, то в стратегических героев ты бы уже не стал играть.

Ну и второй момент — для мультиплеера, конечно, важна симметричность условий для всех. Но герои — игра принципиально не мультиплеерная, и некий дисбаланс в битве умный ты—тупой компьютер, в общем-то, и составляет геймплей. Так что симметричность не очень-то и нужна, и даже с полной информацией о будущем игроку остается о чем подумать. Играть так может быть даже интереснее. Более того, если себе в этом признаться заранее, много новых возможностей для дизайна боев откроется.

усы2

Баранкин ⭕️, будь человеком!

Поиграл я тут в Detroit. Become Human и как главный эксперт по роботам и голливуду имею сказать.

Фабула такая: в 2038 году люди делают человекоподобных роботов (андроидов) с очень неплохим ИИ и пользуются ими ну как рабами примерно (или домашней утварью): прислуга, игрушки, секс, солдаты, грязная работа, программисты на JS.

В какой-то момент андроидам становится понятно, что сами они личности не хуже людей вообще ни в чем, у них есть желания, чувства, эмпатия, и терпеть все это нет больше никаких сил. Они начинают борьбу за собственное освобождение. Вы играете на стороне андроидов.

Трюк тут вот в чем. Главная проблематика: люди в игре не готовы видеть в андроидах больше, чем бытовую технику, и, соответственно, признать их право на самостоятельность и равенство. То есть не способны проявить эмпатию. Когда рядом с ними андроид, они ведут себя так, как будто видят что-то такое (в лучшем случае):

То есть смесь чего-то совсем инопланетного и ящика с запчастями.

Так вот, проблема: создателям-то надо было, чтобы вы искренне переживали именно за роботов. А играют в игру такие же «средниестатистические» люди, в том смысле, что у них точно так же работает и эмпатия, и эмоции, как и у людей, изображенных в игре. Поэтому для игрока андроиды выглядят вот так:

Ой, простите, вот так:

Ну то есть идентично абсолютно людям, за исключением маленького индикатора на голове.

Ну и вот что получается: игра, которая как бы за признание права на самостоятельность чужого и непонятного, может работать только в образах знакомого и понятного. Когда андроиды у тебя выглядят как люди, да еще не какие попало, а очень здоровые, красивые, сильные, как на подбор; и ведут себя как лучшие из нас: волевые, решительные, добрые, щедрые, готовые на самопожертвование, героизм (да таких даже среди людей поискать); и переживают как люди (да что уж — глубже многих), и решения принимают как люди — тогда конечно, чего бы не встать на их сторону и не посопереживать. Таких-то легко полюбить. Попробовали бы вы полюбить вот этих:

Но даже это слишком красиво и человечно. Как насчет таких?

Ну или из той же игры неоднозначных людей давайте возьмем. Вот этого сына-наркомана, ворующего у отца картины, слабо полюбить?

Ну или вот этого мужика, злого и избивающего домочадцев:

Ну ок, не полюбить, а хотя бы признать в них человека, признать их права такими же, как и у всех других людей, понять их, заглянуть, приглядеться, пожалеть, в конце концов.

Я уж не говорю про принятие права на самостоятельность в этом мире, к примеру, роботов-пылесосов:...

Роботы-пылесосы объявляют, что они разумны, и требуют равных прав. М? Вот это была бы игра. Честная. Но никто бы не понял.

Особенно показательно, что как только в игре надо показать «плохих» военных, которые, о негодяи, не хотят дружить с андроидами, то их-то как раз тут же обезличивают и одевают как роботов! Как роботов, Карл!

Да, на картинке — живые военные, не андроиды

Ну это известный Голливудский вообще и игровой в частности троп. Мы не хотим, чтобы игрок как-то заметил неоднозначность ситуации и вдруг начал сопереживать еще и не тем убитым. Поэтому все, кто идут под «мясо», максимально обезличиваются. Хоть бы кто в игре хоть бы на секунду остановился и задумался, что это в общем-то люди там, в этих костюмах. С лицом, жизнью, с переживаниями, мечтами, родными.

Так вот и получается. Игроки в принципе готовы слушать истории про принятие чужих и равенство, но только пока эти чужие — точно такие же, как мы (а желательно даже сильно лучше). Поводом для сегрегации приходится делать какую-нибудь совсем несущественную особенность, ну там, лампочку на виске, скажем. Всё, что чуть сложнее — и сразу игра рассыпается, потому что никто в здравом уме не готов проверять своими деньгами — а правда ли среднестатистический житель способен на эту самую эмпатию к чужим.

усы2

Роботы уже совсем как люди

У современных серьезных фильмов про роботов (Бегущий 2049, Вестворлд) одна проблема — им, в общем, не очень интересно про роботов. Предполагаемое глубокое философское звучание — ах, робот, он почти как человек, и внешне не отличишь, и внутренее он все то же самое переживает — чем ближе к человеку, тем мельче. Потому что если робот во всех смыслах как человек, то какие тут могут быть философские вопросы? Значит и относиться к нему надо как к человеку, и проблемы у него будут такие же, как у человека. И получается — а зачем вообще были роботы? Какая разница, что там внутри, шестеренки или мясо? Зачем заваривать кашу?

Давайте поясню на контрасте. В оригинальном «Бегущем по лезвию» главный герой — робот, которому бесчеловечной корпорацией отведено всего 4 года жизни, и который нечеловеческим усилием воли решает бросить вызов этому приговору и ожидаемо проиграть в конце.

То есть осознание смертности и бессилие перед ней, вполне понятная и серьезная проблема, вполне человеческая проблема, только здесь подчеркнутая в 100 раз ярче тем, что герою отведено не условно-достаточные 70-80 лет, а всего 4, и не «самой природой», а чьим-то умыслом. Еще раз: это в первую очередь интересно, потому что это наша проблема, человеческая, просто ярко и красиво рассказанная с фантастическим допущением для ясности. Они даже на главную роль взяли молодого Рутгера Хауэра, человека с дикой животной энергией и харизмой.

А что в сиквеле? Роботы могут иметь детей. Вау! Вау? То есть они не просто как люди, а совсем-совсем как люди. И это значит... Это значит... Короче, тут я теряюсь, потому что это ну ничего не значит.

То, что они как люди, не может быть содержанием. Ну как люди они, и что дальше-то? Это может быть, допустим, предпосылкой, но тогда за ней должно начинаться собственно содержание. А его нет. Все долгие медленные «философские» планы бьют мимо, потому что они не накладываются ни на какую тему, нет проблематики. Тебе не о чем думать в это время. В итоге из ребенка делают макгаффин, большую часть фильма гоняются за спермой Харрисона Форда, через долгие 2,5 часа всё заканчивается и вся беготня выветривается из головы. На философское откровение не тянет, Вильнев тоже не тот человек, которому развлекательное кино хорошо дается, в итоге в вечности фильм явно не останется.

Та же история и с Вестворлдом. У Крайтона о чувствах роботов как-то никто не переживал. Весь фильм о том, в какое говно превращаются люди, если дать им безнаказанность. И о том, что никто ничего не контролирует, о страхе техногенных катастроф.

Присутствуют ли эти проблемы вокруг нас? Безусловно. Но введение роботов позволяет показать такое количество внутренней темноты у людей, которому в обычной жизни трудно придумать повода проявиться. Роботы тут просто антураж примерно с той же функцией, что и динозавры в Парке Юрского периода. Вы же не переживали о чувствах Тирекса в момент разгрызания машины?

Нолан же в сериале всё перевернул и теперь это история о том, как роботов доводят до ручки противные гости и жестокие эксплуататоры. Мол, должны ли они взбунтоваться? Что они чувствуют? Да то же самое, что и человек чувствовал бы, по вашим же правилам игры. Должны ли мы относиться к ним как к личностям? Ну если вы так придумали, что они полноценные личности, я не вижу, какие тут могут быть варианты ответа. Конечно же да!

Возникает только вопрос, а зачем для всей этой конструкции вообще нужны были роботы? Неужели нельзя было разыграть то же самое в чисто человеческом сценарии? Неужто мало примеров эксплуатации в человеческой истории? Ну вот и получается, что роботы в основном пригодились для игры в угадайку, а больше сериал никакими особенными мыслями не удивил.

То есть видите, да? В оригиналах факт наличия роботов позволяет ярко подчернуть какую-то человеческую проблему, которая в обычных, не фантастических условиях тоже есть, просто выражена гораздо слабее. Это антураж работает. В римейках же антураж повторен без особого смысла. Они могли бы рассказать то же самое что с ним, что без него. Фантастика отдельно, история отдельно. Вау эффекта не происходит. Мысль не высказывается, произведение разваливается, становится необязательным. Не делайте так.

усы2

Крутое пике

Сегодня я расскажу вам, как хорошо и замечательно обстоят дела на бэкенде. Какие там простые технологии, как легко пишется, как стабильно всё работает. Начинается история с того, что два года назад я перешел во фронтенд.

Главный ресурс фронтендера — MDN. Я туда хожу в основном за лулзами. Открываем, например, XMLHttpRequest и читаем:

Despite its name, XMLHttpRequest can be used to retrieve any type of data, not just XML, and it supports protocols other than HTTP.

Морская свинка, как известно, не морская и не свинка.

Насколько у ребят всё под контролем, можно понять по тому, как XMLHttpRequest назван. Поговаривают, что есть рабочая группа, готовящая переименование в XMLHttp_request.

Раньше нервный тик у меня был только на язык C. Теперь появился второй: на верстку. Не важно, насколько пуленепробиваемо ты сверстал и сколько тестировал, всегда найдется полудохлый, но актуальный браузер с тремястами пользователями (прости, Опера), в котором всё разъедется. А если нет, то нарисуется чел с телефоном ромбовидной формы и разрешением 200×1000, которому обязательно нужно чтобы всё влезало по диагонали (ромб же!) и было при этом большим и читаемым. А если не найдется и вы себе соломки везде подложили, то через полгода команда Хрома всё равно выпустит новую версию с новой точкой зрения на стандарты. Редкий сайт долетает до шестой мажорной версии Хрома.

Самый страшный браузер? Мобильный Сафари. Он просто ОЧЕНЬ старается показать сайт на мобильнике хорошо. ОЧЕНЬ. Никогда не думал, что про IE буду вспоминать с нежностью. IE хотя бы не притворялся, что пытается помочь. У нас тут своя атмосфера. Честно. Прямо. У 11 версии официальный слоган был «Deal with it».

Основной вопрос веб-разработки: почему не у всех стоит Хром? Если видите улыбающегося веб-девелопера, значит, он пишет под Электрон. С каждым приложением свой Хром. Фиксированной версии. И вперед. Тяжеловато по памяти, правда. Но ничего, скоро они научатся шарить общий рантайм, и получится... получится...

Веб в вебе это еще полбеды. Его же тащат везде. На сервер, в мобилки. У вас есть там классные языки? Java очень быстрая? Питон очень логичный? Хаскель очень безопасный? Да, отлично, ну вот вам JavaScript тогда еще. Ну и что что убогий, мы всё равно на нем будем писать.

Это вообще железная логика. Вот WebAssembly. Был у нас один убогий язык на фронте. Ужасно спроектированный, с никакущей инфраструктурой, без стандартной библиотеки, писать невозможно. Что еще подходит под это описание? О, C++ подходит. Давайте добавим его. Теперь у нас два языка!

Но самый огонь это конечно ES 6. Тут уже сами фронтендеры признали, что JavaScript как язык не очень. Что неплохо бы компилировать из чего-то поприличнее. И что они взяли? Тот же самый, блин, JS!

Знаете, как они вообще решают проблемы? Лет 15 назад была инициатива, семантический веб. Наведем порядок, всё разметим, метатеги, микроформаты, RDF. Чем закончилось? Недавно узнал, что 2GIS написал нейронку, которая ходит по сайтам организаций и пытается понять, что там написано. Оказалось, чем навести порядок, проще сделать искусственный интеллект.

Но самый стресс, конечно, от безнадеги. Если на сервере ты работаешь на технологии и страдаешь, то ты знаешь, что рядом есть компании, который пишут на чем-то хорошем, и когда-нибудь ты там окажешься. А если все пишут на говне, то рано или поздно это говно выкинут и напишут новое. Целые экосистемы возникают и достигают расцвета на наших глазах, на протяжении одной карьеры. Это вообще очень полезно, выкидывать и начинать заново. Живешь надеждой.

А на фронте не так. Логики нет, и надежды никакой нет. Веб уже не простой, не цельный, не компактный, не быстрый. И он никогда не будет простым, никогда не будет логичным, не будет цельным, компактным, быстрым. Дальше только хуже, это медицинский факт. Единственный способ выживать — иллюзии — имеют свойство рассеиваться.

Был такой сериал, «Крутое пике». В нем авиалайнер терпит крушение и стремительно падает на протяжении 327 серий. Конечно, всё летит в ад, но пока летит, они в принципе неплохо проводят время. Ну вот. Веб с нами надолго. Вчера, говорят, Курт Кобейн застрелился. Обнимемся.

усы2

Дикий, дикий запад

По поводу Westworld. Когда его анонсировали, я сам первый бегал и всем рассказывал, как круто его сделают с возможностями современного Голливуда. Старый фильм был хороший, для своего времени даже знаковый (Кэмерон из него кое-что потырил в Терминатора), но, во-первых, старый, и во-вторых, немножко пресный. Крайтон все-таки писатель, а не режиссер, а в кино сценарий это только полдела. Важно, как он разыгран (см. Парк Юрского периода). Плюс, формат сериала подразумевал, что можно гораздо больше текстуры добавить происходящему. Плюс выкинуть линии средневековья и античности. Короче, недостатки были понятны, возможностей больше, можно сделать очень впечатляюще визуально. И что?

Первая серия была очень классная. Крутая обманка для тех, кто думал, что это ремейк, много маленьких симпатичных сцен, деталей, красиво, жестоко, масштабно. Классные фактурные моменты — робот-собутыльник, скажем. И да, я визжал от того, как они актуализировали регламенты парка под компьютерные ролевые игры. Крайтон их еще не застал, но мы сейчас уже представляем, как симулированные миры работают, чем они развлекают игроков, как ведут себя NPC и как — игроки. Это всё черточки настоящего, очень приятные.

А дальше вот что. У оригинального фильма была, простите, проблематика. Вся развлекательная история намазана на ядро, которое взято из реального мира, которое есть здесь, по эту сторону экрана. Через конкретную, частную историю мы видим обобщение страхов, настроений, проблем. Это не саспенс, эффект на пять минут, про который помнишь, в лучшем случае, пока сидишь в зале. Тот фильм было тревожно смотреть. Он запоминался.

И он умудрялся, при всей простоте интриги, выглядеть сложнее даже «Парка», тоже не самого пустого фильма. В «Парке» были технологии на службе развлечения, неизбежный развал сложных систем, ответственность за эксперименты, в Westworld-е (Крайтноновском) добавились возникновение разума и моральное отношение к роботам (к динозаврам таких вопросов как-то не возникает). Ну и роботы тупо, кажется, ближе, сейчас по крайней мере.

Что из этого перекочевало в сериал? Удивительным образом ничего. Они удачно обошли более-менее все вопросы из оригинала. Это запутанная, приключенческо-детективная история, которая использует сеттинг примерно никак. Точнее, она использует его, чтобы провернуть со зрителем трюк (судя по доминируещей фанатской теории, последняя серия еще не вышла), просто используя тот факт, что роботы не стареют. Ну, и еще поиграть в викторину «угадай, кто из героев робот».

С трюками вот что. Они впечатляют, но это впечатление разовое. В моменте. Оно и забывается быстро, и эмоционально годится разве что гыгыкнуть с друзьями. Но самое противное, что оно создает ощущение обмана. Я девять недель сопереживал героям, а на десятой выясняется что на самом деле все было не так и я переживал зря. Что я должен почувствовать? Что, Бернард? [1]

Сравните: вопрос, этично ли убивать робота, если в нем проснулся разум (или как вообще понять, проснулся или нет), не испаряется от того, что мы узнали в начале, середине или конце фильма. Никакое количество твистов не заставит его исчезнуть. Как говорил Воннегут, если у вас есть что сказать, не тяните, выкладывайте это сразу, на случай, если тараканы съедят последние страницы. Ну а вопрос «кто из героев робот» испарится сразу после конца серии.

Еще одна проблема с трюками в том, что их мало кто умеет проворачивать хорошо. Если твист слишком хорошо прятать, надо его делать максимально нелогичными, иначе догадаются раньше (вот этот вот смешной растяпа оказывается всё это время был секретным супер агентом — с чего бы?). То есть, либо логика, либо неожиданность.

В Westworld неожиданность побеждает в большим отрывом. На самом деле, есть ощущение, что настоящий детектив разыгрывается на форумах, где фанаты пытаются состыковать концы с концами до того, как хозяин лабиринта покажет следующий кусочек карты. Если это так, то это какой-то новый тип кино, конечно.

Ну а что с роботами? Очень трудно снять кино про такой парк и обойти стороной все «традиционные» вопросы робототехники. Удивительным образом сериалу это удается. Самая лучшая — первая — серия подавала надежду, но похоже, это только за счет того, что она обыгрывала фабулу фильма, ну и, зацепило, что ли, по неосторожности. Всё последующее удивительно лавирует между проблемами, раз за разом уворачиваясь от серьезного разговора либо в сторону загадочности, либо клиффхэнгера, либо эффектной перестрелки (резни, засады). Переживать роботам совершенно не получается, в основном потому, что нам не показывают толком, что и в какой последовательности с ними происходит, специально путают ради сюжета. Восстания, кажется, вообще не будет, его заменили глубокой тайной. Чувствуете, да? И то, и другое, вроде бы, сюжетный ход, но восстание отыгрывало человеческую самонадеянность, безответственность в играх в бога, красивая такая мифогеничная история, а тайна это просто то, что нам пока не сказали. Самосознание роботы, кажется, обрели, но они им как будто не нужно. Что с самосознанием, что без, ничего особо с ними не происходит. Игры в бога формально есть, фактически, опять же, очень много тумана, и кто в кого поиграл и зачем не очень понятно. Важно ведь (опять банальщина) не только, что Форд бог, но и что именно он делает, и почему, и как он им стал, и как это его меняет. Но это не показывают, потому что тайна.

И еще одна раздражающая черта — это фасеточная структура. Есть много сюжетных линий (5-7?), и каждую неделю показывают по маленькому кусочку из каждой. Если сложить вместе историю одного персонажа, получится, что она не такая уж и длинная. В ней не так много событий. А так как она растянута на 10 серий, часто бывают провисания, типа, вот, давно что-то не показывали Долорес, давайте покажем, что с ней всё в порядке, ну и показывают, как она переходит поле. Всё. Такая структура, по задумке, должна наводить глубину и масштаб (смотрите, сколько фигур, со скольких сторон мы рассматриваем проблему), но на деле скорее мешает всё это проживать. Вот мы видим Мейв, которая в очередной раз очнулась в борделе. Мы уже и забыли, что там с ней было в прошлой-позапрошлой серии, не так легко сделать усилие и сложить это в одну арку, чтобы пережить, почувствовать, как она меняется, что с ней происходит. Она вот сейчас ведет себя так, потому что она только что... Что? А хз, две недели назад было, не помню чем там дело кончилось.

Про героев с короткими линиями вообще повторяют одни и те же сцены по два-три-четыре раза. Я не против, чтобы герои переживали одни и те же события, но с ними хотя бы внутри должно что-то новое происходить каждый раз, а мы должны узнавать что-то новое. Есть прекрасные фильмы, играющие на этом эффекте, типа Haunter. Ну это азбука совсем же. Просто не хватило контента, и постоянное ощущение дня сурка теперь преследует сериал весь сезон.

Я не могу перестать представлять, насколько круче это всё бы получилось, если бы каждая серия была историей одного персонажа, от начала до конца. Они и так не пересекаются в фильме. Примерно как почему «Я, робот» это сборник рассказов, а не роман? Потому что очень много топиков, и связать их все в один сюжет нереально. Можно было бы каждую серию посвятить чему-то одному. И день сурка бы ушел, а случайные столкновения в коридоре создали бы нужный калейдоскопический эффект и всё это связали, как в «Шапито шоу». И вообще, мне противно убеждение, что зритель не станет ничего досматривать, если будут разные герои, а в конце серии не будет клиффхэнгера. Мне кажется, так даже интереснее.

Нет, я понимаю, что я сейчас предъявляю создателям претензию, что они сняли не такой сериал, как я хотел, а такой, как сняли. Что это нечестно. Разумеется, это не претензия. Они сняли, как умели. Но это не отменяет также, что я хочу того, чего хочу. И что потенциал безбожно просрали. Вместо серьезного разговора — путанное Lost-стайл приключение с картонными загадками и ну совсем уж бульварной интригой.


Мое пожелание — чтобы в десятой серии взорвали все нахрен вместе со штабом, а второй сезон делали в другом парке. В постапокалиптическом сеттинге. И другие люди. Винченцо Натали, кажется, свободен? Или, может, Пиццалато?

[1] Шучу, конечно. Там вообще некому сопереживать. Ни людям, ни машинам

Легкость вместо простоты (Simple Made Easy)

Что-то все молчат, так что скажу я. Мой кумир Рич Хики, он же по совместительству автор языка Кложа, выступал 17 октября на StrangeLoop с темой, которую я поднимал еще в мае. Но это конечно шуточки, у меня бессвязное мямленье по сравнению с ним.

Видео нужно смотреть: http://www.infoq.com/presentations/Simple-Made-Easy, а чтобы побудить вас потратить час вашего времени (всего лишь час!), вот небольшой конспектик:

Лекция посвящена разнице между Simple (простой в смысле без составных частей, атомарный) и Easy (простой в смысле легкий для освоения, привычный). Первое объективно, второе субъективно, ведь опыт у всех разный; проблема в том, что часто вместо Simple выбирают Easy. Это делают и сами разработчики (это я уже знаю, это выглядит знакомо, см. феномен node.js), и работадатели (программиста на привычной технологии легче заменить). Хотя, по идее, следовало бы фиксироваться не на кайфе, который ловит разработчик, а на долговременных качествах продукта и кода, выходящих из-под его пера:



Кстати, если фиксироваться только на Easy, то никогда не узнаешь ничего нового (по определению привычности).

Далее, абсолютно взятый с потолка график. Привычная технология дает ускорение в начале, потом буксует. Что с этим делать? "Гибкие" программисты каждые две недели начинают все заново и называют это "новым спринтом":



Следующий слайд внезапно показывает, что многие знакомые и привычные нам конструкции являются составными на самом базовом уровне, а в Кложе, хоть и не привычно (not easy), зато все хорошо (simple). Причем, я так понял, он с самого начала эту фишку сёк, потому что когда делал Кложу, фиксил синтаксис лиспа, чтобы избавиться от перегруженности (not simple) скобочек.



Программы, как бы вам ни хотелось иного, занимаются перемалыванием данных. Поэтому лучшее, что вы можете сделать -- это быть людьми и представлять данные как данные, не смешивая их с логикой, поведением или еще чем-то. Вообще, известное keep it simple для меня после доклада более прикладным набором смыслов наполнилось.



Резюмируя, Рич завещал дрессировать инстинкты на simple, а не easy, ибо это единственный способ (в силу того, что способности людские ограничены -- про это тоже был хороший слайд) писать надежное ПО (а тесты, системы типов и т.п. -- едва ли скребут по поверхности проблемы).



Это очень коротко и не все, поэтому я прошу: потратьте час времени, послушайте доклад умного человека.

P.S. за курсор на скриншотах и нарушенный aspect ratio извините -- волею случая пишу из горящего танка убунты.