суббота, 29 апреля 2017 г.

[prog.memories] Немало времени требуется, чтобы использование фич языка вошло в привычку

C++11 вышел уже очень давно, скоро появится C++17 и C++11 начнет терять свою актуальность. Тем не менее, есть несколько фич C++11, к повседневному использованию которых лично я пока еще не пришел. В первую очередь это касается final и noexcept, а так же, отчасти, constexpr.

В этой связи мне вспоминается, как году эдак в 1993-ем или 1994-ом заставлял себя использовать const-ы для определения типов параметров функций/методов. Ведь начинали мы в 1991-ом с обычного C, который даже C89, наверное, не был. Основным инструментом был Turbo C 2.0 выпуска 1988-го года. Поэтому писать в стиле int mystrlen(const char *) тогда было не принято. Тем не менее, со временем сумел выработать у себя привычку использовать const для обозначения неизменяемых аргументов-указателей и аргументов-ссылок. Что в последствии неоднократно помогало.

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

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

А вот с C++11 получилось любопытно. Какие-то вещи, вроде лямбд, rvalue references и variadic templates практически сразу же начали использоваться. Что называется легко и непринужденно. Тогда как final, noexcept и constexpr оставались где-то в стороне. В первую очередь потому, что приходилось оглядываться на VC++, в котором с noexcept и constexpr до недавнего времени было совсем плохо. Да и вообще C++11 по сравнению с C++98 очень сильно изменился, поэтому потребовалось приличное время, чтобы в голове все это уложилось.

Тем не менее, потихоньку ловлю себя на том, что уже задумываюсь, а будет ли класс/структура расширяться в будущем? Может стоит ее сразу пометить как final? Или может ли метод в принципе бросать исключения? А если не может, то почему же я не обозначаю его как noexcept. Ну и т.д. Потихоньку, но процесс идет. Глядишь, к выходу C++20 совсем уже хорошо освоюсь с фичами C++11 и, может быть, даже с фичами C++14 :)

четверг, 27 апреля 2017 г.

[business.book] Еще одна любопытная книга про бизнес: Михаил Шейтельман "Не такой как Тиньков"

На минувших выходных (у нас в РБ их было аж четыре подряд), прочитал еще одну книгу по бизнесу, которая, на мой взгляд, заслуживает внимания. Это небольшая книжица "Не такой как Тиньков" за авторством Михаила Шейтельмана.

Книга небольшая, читается легко, материал подается автором в концентрированном виде, совершенно без "воды". Многое заставляет задуматься и взглянуть на то, что делаешь немного с другой стороны.

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

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

среда, 26 апреля 2017 г.

[prog.thoughts] Вероятно, наступило время языков, на которых можно "просто педалить код"...

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

Тем не менее, есть ощущение, что такие языки, как JavaScript и Go (в особенности Go), становятся все более и более востребованными в нашей индустрии... Ну, если и не восстребованными, то одними из самых обсуждаемых. Хочется разобраться, почему так происходит и, если получится, понять, чем это грозит и, может быть, придумать, как этим можно воспользоваться.

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

Недавно у меня возникло ощущение, что я таки окончательно понял, почему именно так.

воскресенье, 23 апреля 2017 г.

[business.book] Прочел книгу "Инкубатор Twitter. Подлинная история денег, власти, дружбы и предательства"

Вчера за полдня буквально проглотил книгу Ника Болтона "Инкубатор Twitter. Подлинная история денег, власти, дружбы и предательства". Ну просто отличное чтиво! :)

Увлекательный и легко написанный производственный роман на тему борьбы пауков в банке истории появления и развития до 2012-го года компании Twitter. Начинаешь читать и не можешь оторваться.

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

Мне показалось, что одного персонажа в книге вывели ну уж очень чернушным. Типа он весь в дерьме, а остальные Д'Артаньяны. На самом деле, полагаю, хороши были все, но не все смогли приложить столько же усилий к выживанию. Да и вообще, надо думать, в реальности все было еще веселее, но пока Twitter еще жив и шаволится, глубже вряд ли кто-то будет копать.

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