пятница, 18 января 2019 г.

[prog.thoughts] "C++ vs others" через призму "поддерживающих" и "подрывных" технологий

В комментариях к предыдущей заметке "О чем не нужно забывать бросаясь какашками в C++" у меня с Григорием Демченко развернулся спор. Полагаю, что следует обозначить контекст, на который я опирался в этом споре. В противном случае некоторые тезисы (например, о том, что 5 лет -- это небольшой срок для ИТ) выглядят странно, если не сказать больше.

Контекст продиктован вот этой замечательной книгой: "Дилемма инноватора: Как из-за новых технологий погибают сильные компании". Одна из идей, которая лежит в ее основе, такова: есть "поддерживающие" технологии, которые плавно и постепенно улучшают качество уже существующих товаров/услуг/сервисов. А есть "подрывные" технологии, которые сразу после своего появления на свет не могут составить конкуренцию уже существующим технологиям. Поэтому "подрывные" технологии сперва используются в каких-то маргинальных рыночных нишах, там обкатываются, совершенствуются, постепенно проникают на старые рынки и вытесняют оттуда технологии, которые считались устоявшимися.

вторник, 15 января 2019 г.

[prog.c++] О чем не нужно забывать бросаясь какашками в C++

Конец 2018-го года и начало 2019-го сопровождалось каким-то невиданным количеством критики в адрес языка C++. Что лично у меня, как нехило вложившегося в разработку инструментария для C++, вызвало тяжелые ощущения. Как-то не очень приятно, когда на полянку, которую ты много лет тщательно расчищал и облагораживал, какие-то странные люди вываливают несколько тележек дерьма, а потом еще и начинают радостно разбрасывать его во все стороны.

Не хочу еще раз выступить в роли адвоката дьявола и не буду пробовать защищать C++ и рассказывать, что в нем есть хорошего и как писать работающий код на C++ без боли. Есть ощущение, что это просто нахер в современном мире никому не упало. С годами я становлюсь все большим мизантропом, теряю веру в разумность как людей по отдельности, так и человечества в целом. Поэтому уже не буду пытаться чему-то учить людей в мире, где куча малолетних дебилов (с) вполне успешно зарабатывают себе на жизнь клепая какую-то хрень на Go и JS.

Но позволю себе немного старческого брюзжания и морализаторства на тему того, что современная молодежь (а, временами, и не молодежь), не обладая должным кругозором и опытом, не может или хочет, видеть картину во всем ее многообразии. Посему попробую перечислить несколько важных факторов, которые нужно принимать во внимание, разговаривая о C++ и его проблемах.

пятница, 11 января 2019 г.

[prog.f*ck] Самый унылый релиз SObjectizer-а. И его последствия. Пока непонятные

Намедни мы выпустили очередную версию SObjectizer-а. И, пожалуй, на анонс этой версии была самая унылая реакция. Когда я начинал писать этот пост, на Reddit-е анонс SO-5.5.24 набрал всего 2 очка при 60% upvotes. И там был всего один вопрос про сравнение с CAF-ом, ответ на который изначально заминусовали. Собственно, показатели посещаемости сайта и загрузок в этот раз ничем не лучше.

вторник, 8 января 2019 г.

[prog.flame] Управление памятью в Rust: придумалась хорошая аналогия

Угораздило меня вляпаться на Хабре в комментарии к статье про Rust. Попытки общения с упоротыми растоманами, принципиально не умеющими воспринимать какую-то другую точку зрения, оставляют специфические ощущения. Но больше всего доставило то, что люди всерьез считают, что в Rust-е какой-то другой механизм управления памятью, не такой, как в C и C++.

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

Итак, давайте посмотрим, как эволюционировали носители для письменности. Грубо, не вдаваясь в дебри истории, просто на уровне банальной бытовой эрудиции.

Сперва были глиняные таблички, папирусы. Где-то береста. Потом уже появилась бумага и бумажные свитки.

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

среда, 2 января 2019 г.

[life.cinema] Очередной кинообзор (2018/12)

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

Ничего хорошего в отеле «Эль рояль» (Bad Times at the El Royale, 2018). Мне очень понравился. Пожалуй, однозначно лучший фильм из просмотренных в декабре. Но зайдет не всем, кино на любителя.

Хэллоуин (Halloween, 2018). Вот прям понастольгировал. В духе фильмов 1980-х. Немного динамики и жестокости не хватило, но в целом пахнуло чем-то из эпохи вокзальных видеосалонов.

Тайна дома с часами (The House with a Clock in Its Walls, 2018). Наверное, неплохой мог бы быть фильм для семейного просмотра. Но непонятно, на какую возрастную аудиторию фильм рассчитан: маленьким детям будет страшно, не маленьким -- не интересно.

Братья Систерс (The Sisters Brothers, 2018). Отличных актеров подтянули. Сняли отлично. Вроде бы даже история какая-то в фильме есть. Но вот после просмотра остается вопрос: "А о чем был фильм вообще?"

Лукас (Lukas, 2018). Как по мне, как сильно тягуче и не динамично. Но атмосферно. И далеко не самая худшая попытка ван Дамма сняться в драматической роли.

Землетрясение/Разлом (Skjelvet, 2018). Продолжение вышедшего несколько лет назад норвежского фильма Волна. На протяжении всего фильма меня раздражал истеричный и невнятный главный герой. Но для Норвегии прям неожиданно приличный уровень спецэффектов.

Бои без правил (A Prayer Before Dawn, 2017). Не то, чтобы мне понравился весь фильм. В целом он слабоват. Но пару хороших моментов стоит отметить. Это удачно созданная в фильме атмосфера липкого, навязчевого и неустранимого звиздеца, в которого оказался главный герой. И, на мой личный взгляд, хорошо поставленные сцены боксерских боев. Без показушной хореографии, как в каратековских фильмах. И уж тем более, без того маразма, который можно было увидеть в старых "Рокки".

Простая просьба (A Simple Favor, 2018). Не понял, что это было. Не триллер, не комедия, ни детектив, ни драма. Какая-то странная солянка, в которой сильно чего-то не хватает. За весь фильм был лишь один момент, который понравился.

воскресенье, 30 декабря 2018 г.

[work] Небольшое подведение итогов 2018-го

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

Выпущен ряд версий библиотеки RESTinio: 0.4.1, 0.4.3, 0.4.4, 0.4.5.1, 0.4.7 и 0.4.8. К сожалению, осенью работы над RESTinio пришлось заморозить из-за ограниченности наших ресурсов. В 2019-ом развитие RESTinio собираемся продолжить.

На базе RESTinio мы сделали две небольшие демонстрашки. Первая -- это shrimp-demo, маленький игрушечный сервис для раздачи отмасштабированых картинок (на русском языке эта разработка описывалась в серии статей на Хабре: №1, №2, №3).

Вторая -- это реализация примера из доклада Винни Фалько (автор Boost.Beast) на CppCon-2018, но средствами RESTinio: Beast-vs-RESTinio. Если кто-то всерьез считает, что Boost.Beast -- это удобный инструмент для прикладной разработки, то найдите время, сходите о ссылке и посмотрите своими глазами. Очень надеюсь, что ваше мнение поменяется (ну или хотя бы ваша уверенность несколько пошатнется).

Потихонечку начинает ощущаться, что наша работа над RESTinio дает свои плоды. В частности, RESTinio привели в пример в MS-овском блоге на msdn.microsoft.com.


В этом году получилось сделать всего больших релиза SObjectizer-а и so_5_extra: SObjectizer 5.5.21 and so_5_extra 1.0.4, SObjectizer 5.5.22 and so_5_extra 1.1.0, SObjectizer 5.5.23 and so_5_extra 1.2.0. Версию 5.5.24 в 2018 опубликовать не успели, работа по документированию заняла гораздо больше времени, чем ожидалось (и еще не закончена, к сожалению).

Не смотря на то, что релизов SObjectizer-а было немного, радует то, что в 2018-ом году в SObjectizer добавлялись только те фичи, которые сформировались на основании опыта использования SObjectizer-а в разработке софта, на базе потребностей разработчиков. Так что в этом году в SO-5 мы добавляли не свои собственные хотелки или фичи, нужные для маркетинговых сравнений с другими аналогичными продуктами. А только то, что нужно было на практике.

Касательно практической применимости RESTinio и SObjectizer-а по итогам 2018-го года можно сказать разве что следующее: оба эти продукта применяются, применяются даже шире, чем нам об этом известно. Но о том, что нам известно, мы не можем рассказывать. Так что публично доступных success stories в 2018-ом не прибавилось. Надеюсь, в 2019-ом ситуация поменяется.


Было сделано три доклада на C++ных конференциях: C++ CoreHard Spring 2018, C++Russia 2018, C++ CoreHard Autumn 2018. Мне сложно судить, но, кажется, все три зашли достаточно хорошо.

Так же, благодаря Анастасии Казаковой из JetBrians, был сделан большой доклад на митапе в Питере.

Правда, все это потребовало достаточно больших усилий, поэтому планы по участию в конференция на 2019-й гораздо скромнее. Есть предложение сделать доклад на C++Russia 2019, но пока нет какой-то интересной темы, с которой можно было бы выступить. И есть мысль, что для C++ CoreHard Spring 2019 хорошо бы сделать продолжение доклада про подходы к многопоточности в C++. Обе конференции весной, сложно будет подготовится к ним обоим, скорее всего, придется выбрать что-то одно.

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

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

Серию статей про shrimp-demo уже упоминал, еще можно дать ссылку на текстовую версию доклада с C++ CoreHard Autumn 2018 про акторов, CSP и task-based подходы.


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

Всех читателей поздравляю с наступающим Новым Годом и от всей души желаю, чтобы в профессиональном плане ваш 2019-ый был легче и удачнее, чем наш 2018 :)))