SOL Talks
62 subscribers
38 photos
5 videos
2 files
97 links
Этот канал умер. Мой новый: @cpplastic
Download Telegram
Практически каждый божий день я сталкиваюсь на работе с мнением некоторых программистов, будто их единственная задача — писать идеальный код, несмотря на то что это невозможно в общем случае.

Проявлений подобного мнения масса, явных и неявных. Вот, что встречал я:
• «Придумал в процессе сделать прикольную штуку, но она заняла больше времени. Думал, что успею»
• «Решил заоптимайзить этот кусок» (даже без профилирования)
• «Давайте „улучшим здесь API” и скажем остальным, чтоб адаптировали свой код»
• «Я не буду писать автотесты»
• «Заполнять репорт — не моя обязанность»
• «Я не обязан логать время. Это можно автоматизировать». — «Ок, автоматизируй». — «Нет времени. И это не моя задача».
• «Зачем писать документацию, если я могу потратить это время на имплементацию новой фичи?»
• «Я выкатил коммит на ревью, но не знаю, зашёл ли он в бранчу».
• «Нет смысла это имплементить, ведь это временное решение».
• «Покажу код, когда будет готово».
• «Можно я пропущу ретроспективу? На мне баг висит».
• (на регулярном демо) «Ой, а у меня проект не сбилженный. Может QA пусть покажет?»
• «На меня других тасок больше никто не ассайнил».
• «Я не знаю, как посмотреть в джире, что я сделал за спринт».
• «У имея нет ссылки на борду».
• «А я думал, что ассеты должны дизайнеры потом сами залить».
• (Кастомер снова запросил срочную онсайт-поддержку) «Какая разница, когда я приезжаю на работу, если мои задачи сделаны?»
• и т.д. и т.п.

Как обычно, ситуация многослойная и комплексная. Но основная проблема: большинство абсолютно не понимают, откуда берутся деньги на их «недостаточно высокие» зарплаты. Чуваки, ваша цель — решать поставленные (а не придуманные вами же от скуки) задачи, деливерить продукт, решающий проблемы пользователей, и выполнять все смежные активности, необходимые, чтобы это произошло в обозначенные сроки. О понимании, откуда эти сроки берутся, я даже не прошу уже.
SOL Talks
Я вроде кое-что в графическом дизайне понимаю; больше на уровне интуиции, конечно, но и теоретическая база кое-какая есть. Ну, и чувство прекрасного в определённой степени имеется — люблю, когда красиво (субъективщина, очевидно)! Но типографика… У-у-у, типøграфика…
А помните, я писал, что по-моему типографика — это хуев снобизм? Сча объясню, что я имел в виду.

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

И есть шрифты. Но нет ровным счётом ни одной объективной метрики, которая бы сказала, что какой-то из шести шрифтов (пять на картинке ниже + собсно текущий Calibri) чем-то круче или более подходящий. Да и травлю Comic Sans я никогда не понимал.

Чистяк вкусовщина кароч. А вам какой из новых шрифтов для офиса больше нравится?
Forwarded from UX Live 🔥
Microsoft впервые с 2007 года сменит дефолтный ублюдочный шрифт Calibri в Офисе на 1 из 5 предложенных вариантов: Tenorite, Bierstadt, Skeena, Seaford, и Grandview. Шрифты уже сейчас можно попробовать в каком-то cloud fonts в офисе.
После года тестов один из них поставят по-умолчанию, что безусловно хороший знак. Ведь люди не заморачиваются выбором шрифтов в ворде, и просто набирают тем что дают. А это уже напрямую может влиять на целые поколения и их вкусы.

Подробнее: https://www.microsoft.com/en-us/microsoft-365/blog/2021/04/28/beyond-calibri-finding-microsofts-next-default-font/
Я кстати не в восторге от новых шрифтов, но чем Calibri точно лучше. Отдельно хочется сказать — как же плохи картинки презентации шрифтов по ссылке в новости. Прям пример как никогда и нигде нельзя презентовать шрифты. MS явно стоит нанять кого-то кто умеет с помпой делать презы.

Ну и все равно непонятно — зачем платить за офис 3,3к рублей в год, когда рядом лежит бесплатный Гуглдокс. Разве что ради 1тб облака вшитого в винду.
Код коричневый, повторяю, код коричневый!
Тут чел проанализировал благосклонность людей к языкам программирования и выдвинул гипотезу, что… людям больше нравятся новые и меньше старые 🙂 А если точнее, то меньше нравятся те, с которыми они уже успели говна поесть в легаси-коде. Оттуда и популярность всяких растов и прочих котлинов — на них не так много кода пока что.

У меня вот какое-то подобное ощущение всегда было. Оттого и не тороплюсь на Rust ливать — слишком много эффортов для сомнительного лично для меня бенефита. Всё равно рано или поздно разочаруюсь и в нём.
Ну и многие поносят C++, особенно те, кто на нём никогда не писал. Я тоже его ненавижу. Но стал ли я бы начинать новый проект писать на С++? Конечно стал бы! Мне хватает опыта, чтобы не делать на нём сомнительные вещи и не выёбываться мутными техниками, а использовать некоторый сабсет языка, в котором я чувствую себя комфортно.

Кстати, статейка-то в некотором плане коррелирует с фразой Страуструпа о том, что «есть те языки, которые все ругают, и есть те, которыми никто не пользуется».
Узнал тут про цистерцианские цифры. Сначала был впечатлён тем, что люди придумали, как всего одним символом выразить чисто от 1 до 9999. Мне как «западному» человеку интересна в первую очередь попытка использовать двумерное пространство для записи (вместо одномерного «слева направо»).
Потом, конечно, попустило впечатление — очень уж нравятся текущие цифры.
Держите генератор рейв-музла. Какой-то типок из Берлина сделал, откуда ж ещё?) Результат практически на уровне с композициями на SEMF 😅
У меня прям дежавю. Помню подобные драмы на работе. «Надо, чтоб всё по процессикам» 🙂
Отличный видос о том, как многие технологические компании утратили способность к инновациям и почему так произошло (и, вероятно, продолжит происходить).
hart-smith-on-outsourcing.pdf
252.6 KB
И документ, о котором чувак упоминал в докладе. Я его ещё не дочитал, но начало в принципе интригует.
В разговорах о языках программирования люди часто говорят, мол, вот этот язык лучше, чем тот. А что значит лучше-то? У меня, конечно, есть мнение на этот счёт.

Субъективные метрики сразу отметём, так как с ними каши не сваришь. Регулярно слышу, мол, «C++ пижже, чем Python», или «Python пижже, чем JavaScript». На вопрос, а чем же лучше, можно услышать кучу всевозможных доводов, которые сводятся к вкусовщине: кому-то фигурных скобок не хватает, кому-то статической типизации, кому-то ещё чего. Важно ли всё это? Отнюдь. Если ты шаришь, то подобные нюансы вообще не являются блокером для написания норм кода, а если не шаришь, то о чём разговор вообще? Пойди да выучи сначала!

Из объективных метрик часто замеряют перформанс, например. В каких-то бенчмарках вон Python (PyPy) даже когда-то сишечку обошел на работе со строками — они гордились, помню. Абсолютно бессмысленная затея, конечно, потому что области применения у языков часто даже не пересекаются. Никто всерьёз не станет писать дрова на жабоскрипте или сайтец на плюсах.

Моя любимая более-менее объективная метрика — это кривая вхождения в язык. Может показаться, что чем она ниже, тем лучше, но это не так. Идеально — где-то посредине.

Слишком крутая кривая по итогу создаёт элитарный клуб по типу Mensa. Люди там часто перестают решать насущные проблемы, а вместо этого упарываются «паззлами», создают задачи ради задач друг для друга, меряются длиной познаний и устраивают голландское программирование. В эту группу пойдут, например, Haskell, Agda, Coq, эзотерика всякая и т.д. Не, в целом-то Haskell годный язык, если подходить к нему очень прагматично, но вот комьюнити со всякими kind-полиморфизмами в своё время повернуло не туда будто.

С++ в каком-то плане тоже ступил на эту дорожку. Начинал ли я его учить когда-то давно из рациональных соображений? Вовсе нет! Для меня это было в духе «challenge accepted». Сча отпустило, конечно, а люди в его комьюнити тем временем уже десять лет упарываются вычислениями на этапе компиляции и даже стандарт под это дело подгоняют, вместо того чтобы наконец добавить работу с файловой системой (хотя спустя 35 лет всё-таки смогли! 🥳).

Языки с очень пологой кривой вхождения создают обратную ситуацию: программистами резко становятся все, кому не лень, без какого-либо (профильного?) образования даже. Так было с Visual Basic когда-то, так сейчас происходит с JS. Нет, я, конечно, не пытаюсь сча свой диплом оправдать. Даже наоборот: я в среднем рад, что программирование становится доступнее. Да и профильное образование нынче можно самостоятельно получить, не вставая из-за компа. Но люди же даже не пытаются, а выбранный язык программирования никак не поощряет и за «ошибки» не наказывает! Зачем думать о той же производительности, если и так всё работает? В этом, может, не было бы проблемы, если бы можно было чётче разделить системное программирование с прикладным. Однако масса людей, вчера создающая свои первые веб-странички, сегодня шейпит наше настоящее и будущее, в котором несколько виртуальных машин одна над другой в одном приложении уже никого не пугает.

Сам процесс популяризации программирования естественен, и ничего плохого в нём нет: у молодого поколения есть свежие креативные идеи. Вот если б ещё хотя бы наработки прошлых поколений учитывались, то и мемасик «миллениалы переизобрели» не появился бы. Поменялось ли качественно в том же веб-программировании что-то за последние годы? Кажется, будто, да, а если судить по результатам, то по сути как-то и не особо. Как было всё медленно и неудобно, так и осталось.

Короче, если с точки зрения доступности изучения про языки говорить, то и C, и C++, и всеми любимый ныне Rust, и суперпопулярный JavaScript — не очень так-то. А Python — норм, потому что среднячок 🙂

Но это всё инженерное нытьё, конечно, ни к чему не ведущее. Рыночек-то уже порешал.
SOL Talks
Кстати, о холиворах. Откопал тут древнюю статью на тему того, что любители пробелов в отступах в среднем получают больше, чем любители табов. По-моему, это наглядная демонстрация разницы между зависимостью и корреляцией. А вы что, перенастроили редакторы?…
This media is not supported in your browser
VIEW IN TELEGRAM
Снова о табах и пробелах в коде. Одним из доводов в пользу табов является возможность настраивать ширину отступа по своим предпочтениям. Однако, чтобы это работало хорошо, нужно чётко понимать разницу между отступами и выравниванием. К тому же, шрифт должен быть моноширинный. К последнему, конечно, все программисты привыкли и, возможно, даже не думали, что может быть иначе, ведь тогда выравнивание поплывёт.

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

Короче, техническая сторона проблемы решена, конечно. Ещё 15 лет назад причём (как минимум). Elastic Tabstops называется. А вот с культурной точки зрения воз и ныне там же, где был более полувека назад.
Программисты начинают что-то подозревать о том, как работает бизнес. Но повода для волнения нет — ничего не изменится всё равно 🤓
Вчера в твиттере кто-то опять возмущался, мол, в Гугле есть все возможные удобства для программистов, и самих программистов толпы, а однако же Gmail тормозит и с каждым редизайном становится только хуже. Сколько еще плейстейшнов и шев-поваров надо докупить в офис, чтобы ситуация начала меняться в лучшую сторону?

Ответ-то очень простой: нисколько! Потому что: а зачем? Зачем Gmail-у становиться быстрым? Может быть, как пользователю, вам этого и хочется, но как бизнес Гугл в его скорости совсем не заинтересован.

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

Поэтому дальше Gmail решать только свои, а не ваши, задачи: как максимально эффективно доить пользователей, чем занять те самые толпы программистов (программисты умеют только писать код, больше программистов → больше кода), куда девать сырых выпускников вузов.

То же самое и с Хромом, кстати. Хром тоже заехал на скорости, легкости и надежности, но, завоевав рынок, дальше он будет становиться только хуже: пихать логин через гугл, таргетировать на вас рекламу, делать удобные Гуглу стандарты, быть площадкой для экспериментов (толпы программистов, помните?), толстеть, как Уилл Смит на шашлыках. Потому что — а зачем стараться? Серьезно, зачем? Чтобы что?

Мой любимый пример с ответом на вопрос «зачем» сегодня это Инстаграм Лайт. Фейсбуку очень нужно было заехать на индийский, что ли, рынок, где у всех типа очень слабые Андроиды. То есть было очень конкретное «зачем». Они взяли и написали версию Инстаграмма, которая весит 2 Мб. Не ограниченную, нет, она полностью (!) дублирует функции основного приложения. Только основное весит 150 Мб, а это — два (!). Если бы захотели, могли бы и основное похудеть в 75 раз, но только — зачем?
Сам я на TypeScript не пишу, но очень его уважаю. Всё-таки очень чувствуется, когда язык дизайнится шарящими людьми. Если кто не в курсе, создатель языка — Андерс Хейлсберг, который ранее выступил автором Turbo Pascal, Delphi и C#.

Челлендж TypeScript при этом состоит в том, что он не придумывается с нуля, а строится на уже имеющемся фундаменте JS. Глянул намедни занятный доклад о том, как система типов в TS усложнялась и усложнялась (и продолжает это делать), чтобы хотя бы суметь покрыть типами стандартную джаваскриптовую библиотеку. Программисты на C++, конечно, были бы в шоке, а местами могли бы и позавидовать 🙂
«Этими студентами были бакалавры компьютерной инженерии».
Там очередной лисп появился — Hy называется (линк на гитхаб). На этот раз транслируется в Python. Я как-то больше привык, что это Python куда-то встраивают, а не что-то в него.
Стайл-гайд в документации в три раза длиннее, чем туториал 😅
Но это канеш не так круто, как Mercury — платная(!) кроссплатформенная реинкарнация Visual Basic 🥳 (не путать с функциональным и логическим Mercury).

Контора забавная вообще. У них, например, есть своя реализация Object Pascal. А ещё можно на Java под .NET писать 🙂
Все сегодня постят видос про нейронку от Intel, которая делает картинку в играх более реалистичной (на примере GTA V). Забавно, что обучали они её в основном на примере немецких городов и дорог, и в результате дороги стали более гладкими 🙂 Да и зелени больше добавило.
Вот линк на само исследование.