воскресенье, 5 марта 2017 г.

[life.book] Дочитал книгу "Стив Джобс. Уроки лидерства"

Дочитал книгу Уильяма Саймона и Джея Эллиота "Стив Джобс. Уроки лидерства". Интересно. Но я бы рекомендовал ее как дополнение к другой книге, "Стив Джобс" Уолтера Айзексона.

Книга Айзексона говорил о разных сторонах Джобса: и как о человеке, и как о бизнесмене. А вот книга Эллиота больше рассказывает о том, какие решения Джобс принимал и какие шаги предпринимал как предприниматель и как лидер и вдохновитель знаковых проектов компании Apple (а так же компаний Pixar и NeXT). В результате обе книги очень хорошо дополняют друг друга.

По-моему, я нашел хорошее описание того, чем же "брал" Джобс. Вот характерный фрагмент, который, имхо, отлично раскрывает самые сильные стороны Джобса. Речь идет о моменте истории Apple в середине 90-х, когда Apple искала для своих компьютеров новую операционную систему. В результате отбора осталось два претендента: NeXT от Стива Джобса и BeOS от Жана-Луи Гассе. И вот как описывается в книге финальное сражение между Джобсом и Гассе:

«Перестрелку в О.К. Коррал» назначили на 10 декабря 1996 года. Стива и Жана-Луи пригласили сделать презентацию своих продуктов на решающем совещании, которое должно было состояться в Пало-Альто, в отеле Garden Court (это место выбрали специально для того, чтобы сбить со следа журналистов).

Стив взял с собой своего гения операционных систем Ави Теваньяна. Столы в зале были расставлены буквой «П», и Стив вместе с Ави разместился в центре, а Джил и Эллен — в конце стола. Эксперт Apple по программному обеспечению Уэйн Мерецки сидел примерно посредине боковой линии столов. Он так описывает эту сцену: «Презентация Стива полностью сосредоточилась на Джиле, будто, кроме него, в зале никого не было. Стив, как и следовало ожидать, проявил абсолютное спокойствие, когда расхваливал преимущества своей операционной системы». Он изложил суть основных характеристик NeXTStep, делавших ее подходящей для Apple, а затем показал на ноутбуке, как эта операционная система может проигрывать два кинофильма одновременно… после чего запустил еще три фильма. Пять фильмов демонстрировались бок о бок на одном компьютере. Все присутствующие прекрасно поняли, насколько ценным для Apple было программное обеспечение, которое могло поддерживать такие вычислительные возможности.

Уэйн продолжает: «Стив использовал все возможные средства, и его презентация, которую он проводил при непосредственном участии Ави, в очередной раз подтвердила, что он по меньшей мере лучший торговый агент и лучший оратор в сфере технологий. Гассе пришел на эту встречу сам, без заранее подготовленного выступления, и только отвечал на вопросы». Он просчитался, полагая, что у Apple нет другого выбора, помимо операционной системы BeOS. Он не выдвинул никаких весомых аргументов, которые объясняли бы, почему BeOS и только BeOS необходима Apple.

Уэйн Мерецки сказал по этому поводу следующее: «Решение в пользу NeXT, а не Be Inc., стало очевидным».

Итак, для меня все точки над "i" расставила одна короткая фраза: "он по меньшей мере лучший торговый агент и лучший оратор в сфере технологий".

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

В общем, резюмирую: если книга Айзексона про Джобса уже прочитана, то эта книга Эллиота будет отличным дополнением к написанному Айзексоном портрету Джобса. Если же книгу Айзексона еще не читали, но тема достижений Джобса интересна, то я бы рекомендовал бы прочесть сперва книгу Айзексона, а уже следом книгу Эллиота.

[prog.flame] Вся сущность Хабра в одной ссылке

Интересная площадка, этот самый Хабр. Со временем лучше становится понятно, почему бывалые RSDN-еры и LOR-овцы отзываются о Хабре негативно. Квинтэссенцией на данный момент для меня стала вот эта статья на Хабре и ее обсуждение: "О чём молчат авторы «Hello, World!»-ов".

Сперва автор исходя из лучших побуждений, полагаю, написал откровенно слабую статью, без нормального введения, развития, кульминации и отчетливого вывода. Потом в комментариях начался треш и угар от публики, которая, очевидно, ни сном, ни духом о том, в каких условиях и как создавался язык Ada, и какую роль он играл в свое время в американском ВПК, да не только там, но и в разработке ПО для авионики во всем мире (может быть за исключением СССР и СНГ). Не удивлюсь, что все отметившиеся там комментарии (включая меня самого) и в кошмарном сне не смогут представить себе, что значит разработка ПО для проекта стоимостью в полмиллиадра долларов (вроде бы столько стоил взорвавшийся на старте Ариан 5, ПО для которого было написано как раз на Ada). Посему и вопросы в камментах из категории: а есть ли в Ada map/filter на лямбдах?

Тем, кто хоть чуть-чуть интересуется историей развития языков программирования очень рекомендую почитать про историю Ada. Ведь язык появился в результате попытки министерства обороны США упорядочить ситуацию с разработкой ПО для нужд армии. До появления Ada там царил хаос и анархия: каждый подрядчик использовал свои языки и технологии, никого не волновало, как именно будут сопрягаться разрозненные части одной и той же системы, созданные разными исполнителями в разных концах США. Создание Ada и ее насаждение в проектах для армии США, как по мне, сродни введению системы калибров и унификации артиллерийских систем в армиях самых продвинутых европейских стран в XVII-XVIII веков.

Язык Ada, действительно, является продуктом "разработки коммитетом", поэтому он выглядит достаточно страшно. Многословен, непрост в изучении, требует внимания при разработке. У современных хипстеров, эстетическое восприятие которых воспитано девайсами от Apple, может вызвать неудержимый рвотный рефлекс.

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

Вот говоря про то, какие разные программисты должны были начать использовать Ada, вспоминается язык Java, который оказался одним из немногих языков в истории ИТ, который успешно справился с такой же задачей: на Java могут писать все -- начиная от победителей мировых олимпиад по программированию, до Кумаров Гашишовичей и переучившихся в программисты психологов и филологов. Только какой ценой Java этого достигает? Ценой полного наплевательства на эффективность и ресурсопотребление.

Ну, некоторые умельцы умудряются и на Java делать системы реального времени. Правда, превращая Java в какое-то убогое подобие недосишки/недоплюсов, выбрасывая GC и вручную колупаясь с байтами, не имея при этом нормальных средств для того же обобщенного программирования. Причем началось все это где-то лет через 20 после того, как Ada появился и начал успешно использоваться. Подозреваю, что на технике из середины 80-х годов, Java оказалась бы неприспособленной к массовому использованию чуть меньше, чем полностью.

А вот Ada, не смотря на "разработку коммитетом", оказался вполне себе успешным экспериментом по созданию языка для массовой промышленной разработке софта для систем с высокими требованиями к качеству, надежности и ресурсоемкости. Нужен ли этот язык сейчас? И если нужен где-то, то многими ли он будет востребован? Это уже совсем другие вопросы. Но подходить к оценке Ada с точки зрения наличия в нем лямбда-функций и алгоритмов map/filter... Ну это как рассматривать возможность использования карьерных самосвалов в гонках Formula-1. И это если оставаться в рамках цензурной лексики ;)