Отличный видос о том, как многие технологические компании утратили способность к инновациям и почему так произошло (и, вероятно, продолжит происходить).
YouTube
How technology loses out in companies, countries & continents and what to do about it
Presentation held during the European Microwave Week, on how companies tend to lose their technological edge and devolve into outsourcing hubs. Presentation touches on why this happens, and how it also applies to whole continents. Finally there are a few…
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 — норм, потому что среднячок 🙂
Но это всё инженерное нытьё, конечно, ни к чему не ведущее. Рыночек-то уже порешал.
Субъективные метрики сразу отметём, так как с ними каши не сваришь. Регулярно слышу, мол, «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 называется. А вот с культурной точки зрения воз и ныне там же, где был более полувека назад.
Не то чтобы была большая нужда отказываться от моноширинных шрифтов, но помню, как читал какую-то книгу по хаскелю, где код был написан пропорциональным шрифтом и походил на нотацию, используемую в математических книгах. Было симпатично.
Короче, техническая сторона проблемы решена, конечно. Ещё 15 лет назад причём (как минимум). Elastic Tabstops называется. А вот с культурной точки зрения воз и ныне там же, где был более полувека назад.
Программисты начинают что-то подозревать о том, как работает бизнес. Но повода для волнения нет — ничего не изменится всё равно 🤓
Forwarded from Стой под стрелой
Вчера в твиттере кто-то опять возмущался, мол, в Гугле есть все возможные удобства для программистов, и самих программистов толпы, а однако же Gmail тормозит и с каждым редизайном становится только хуже. Сколько еще плейстейшнов и шев-поваров надо докупить в офис, чтобы ситуация начала меняться в лучшую сторону?
Ответ-то очень простой: нисколько! Потому что: а зачем? Зачем Gmail-у становиться быстрым? Может быть, как пользователю, вам этого и хочется, но как бизнес Гугл в его скорости совсем не заинтересован.
То есть он был заинтересован, когда нужно было конкурировать и завоевывать рынок. Тогда Gmail был и быстрым, и фичастым, и бесплатным. А сейчас у Gmail нет конкурентов, да еще и почта дело такое, консервативное, ящики раз в месяц менять не будешь. Так что задачи делать лучше или вообще как-то стараться понравиться у них давно нет. Поэтому на пользователя можно спокойно, уверенно, хладнокровно ложить огромный гугловый болт.
Поэтому дальше Gmail решать только свои, а не ваши, задачи: как максимально эффективно доить пользователей, чем занять те самые толпы программистов (программисты умеют только писать код, больше программистов → больше кода), куда девать сырых выпускников вузов.
То же самое и с Хромом, кстати. Хром тоже заехал на скорости, легкости и надежности, но, завоевав рынок, дальше он будет становиться только хуже: пихать логин через гугл, таргетировать на вас рекламу, делать удобные Гуглу стандарты, быть площадкой для экспериментов (толпы программистов, помните?), толстеть, как Уилл Смит на шашлыках. Потому что — а зачем стараться? Серьезно, зачем? Чтобы что?
Мой любимый пример с ответом на вопрос «зачем» сегодня это Инстаграм Лайт. Фейсбуку очень нужно было заехать на индийский, что ли, рынок, где у всех типа очень слабые Андроиды. То есть было очень конкретное «зачем». Они взяли и написали версию Инстаграмма, которая весит 2 Мб. Не ограниченную, нет, она полностью (!) дублирует функции основного приложения. Только основное весит 150 Мб, а это — два (!). Если бы захотели, могли бы и основное похудеть в 75 раз, но только — зачем?
Ответ-то очень простой: нисколько! Потому что: а зачем? Зачем Gmail-у становиться быстрым? Может быть, как пользователю, вам этого и хочется, но как бизнес Гугл в его скорости совсем не заинтересован.
То есть он был заинтересован, когда нужно было конкурировать и завоевывать рынок. Тогда Gmail был и быстрым, и фичастым, и бесплатным. А сейчас у Gmail нет конкурентов, да еще и почта дело такое, консервативное, ящики раз в месяц менять не будешь. Так что задачи делать лучше или вообще как-то стараться понравиться у них давно нет. Поэтому на пользователя можно спокойно, уверенно, хладнокровно ложить огромный гугловый болт.
Поэтому дальше Gmail решать только свои, а не ваши, задачи: как максимально эффективно доить пользователей, чем занять те самые толпы программистов (программисты умеют только писать код, больше программистов → больше кода), куда девать сырых выпускников вузов.
То же самое и с Хромом, кстати. Хром тоже заехал на скорости, легкости и надежности, но, завоевав рынок, дальше он будет становиться только хуже: пихать логин через гугл, таргетировать на вас рекламу, делать удобные Гуглу стандарты, быть площадкой для экспериментов (толпы программистов, помните?), толстеть, как Уилл Смит на шашлыках. Потому что — а зачем стараться? Серьезно, зачем? Чтобы что?
Мой любимый пример с ответом на вопрос «зачем» сегодня это Инстаграм Лайт. Фейсбуку очень нужно было заехать на индийский, что ли, рынок, где у всех типа очень слабые Андроиды. То есть было очень конкретное «зачем». Они взяли и написали версию Инстаграмма, которая весит 2 Мб. Не ограниченную, нет, она полностью (!) дублирует функции основного приложения. Только основное весит 150 Мб, а это — два (!). Если бы захотели, могли бы и основное похудеть в 75 раз, но только — зачем?
Сам я на TypeScript не пишу, но очень его уважаю. Всё-таки очень чувствуется, когда язык дизайнится шарящими людьми. Если кто не в курсе, создатель языка — Андерс Хейлсберг, который ранее выступил автором Turbo Pascal, Delphi и C#.
Челлендж TypeScript при этом состоит в том, что он не придумывается с нуля, а строится на уже имеющемся фундаменте JS. Глянул намедни занятный доклад о том, как система типов в TS усложнялась и усложнялась (и продолжает это делать), чтобы хотя бы суметь покрыть типами стандартную джаваскриптовую библиотеку. Программисты на C++, конечно, были бы в шоке, а местами могли бы и позавидовать 🙂
Челлендж TypeScript при этом состоит в том, что он не придумывается с нуля, а строится на уже имеющемся фундаменте JS. Глянул намедни занятный доклад о том, как система типов в TS усложнялась и усложнялась (и продолжает это делать), чтобы хотя бы суметь покрыть типами стандартную джаваскриптовую библиотеку. Программисты на C++, конечно, были бы в шоке, а местами могли бы и позавидовать 🙂
YouTube
Андрей Старовойт — Эволюция TypeScript: всё чудесатее и чудесатее
Ближайшая конференция: HolyJS 2023 Spring, 15–16 мая (Online), 21-22 мая (Offline)
Подробности и билеты: https://bit.ly/3A5ruLp
— —
. . Продолжаем вместе с JetBrains погружаться в тонкости TypeScript. Взгляд со стороны разработчика IDE.
В докладе мы обсудим…
Подробности и билеты: https://bit.ly/3A5ruLp
— —
. . Продолжаем вместе с JetBrains погружаться в тонкости TypeScript. Взгляд со стороны разработчика IDE.
В докладе мы обсудим…
Там очередной лисп появился — Hy называется (линк на гитхаб). На этот раз транслируется в Python. Я как-то больше привык, что это Python куда-то встраивают, а не что-то в него.
Стайл-гайд в документации в три раза длиннее, чем туториал 😅
Стайл-гайд в документации в три раза длиннее, чем туториал 😅
GitHub
GitHub - hylang/hy: A dialect of Lisp that's embedded in Python
A dialect of Lisp that's embedded in Python. Contribute to hylang/hy development by creating an account on GitHub.
Но это канеш не так круто, как Mercury — платная(!) кроссплатформенная реинкарнация Visual Basic 🥳 (не путать с функциональным и логическим Mercury).
Контора забавная вообще. У них, например, есть своя реализация Object Pascal. А ещё можно на Java под .NET писать 🙂
Контора забавная вообще. У них, например, есть своя реализация Object Pascal. А ещё можно на Java под .NET писать 🙂
Remobjects
A Visual Basic™-compatible Language. For all Platforms.
With RemObjects Elements, you can use the Visual Basic-compatible Mercury language to develop for any platform - from Android to .NET, from WebAssembly to native Linux and Windows.
Все сегодня постят видос про нейронку от Intel, которая делает картинку в играх более реалистичной (на примере GTA V). Забавно, что обучали они её в основном на примере немецких городов и дорог, и в результате дороги стали более гладкими 🙂 Да и зелени больше добавило.
Вот линк на само исследование.
Вот линк на само исследование.
YouTube
Enhancing Photorealism Enhancement
Enhancing Photorealism Enhancement
Stephan R. Richter, Hassan Abu AlHaija, and Vladlen Koltun
Paper: https://arxiv.org/abs/2105.04619
Code and data: https://github.com/isl-org/PhotorealismEnhancement
Project page: https://isl-org.github.io/PhotorealismEnhancement/…
Stephan R. Richter, Hassan Abu AlHaija, and Vladlen Koltun
Paper: https://arxiv.org/abs/2105.04619
Code and data: https://github.com/isl-org/PhotorealismEnhancement
Project page: https://isl-org.github.io/PhotorealismEnhancement/…
Поразительно, сколько всего специалисты по безопасности могут раскопать, даже ничего изначально о системе не зная. Keen Security Lab, ныне на ряду с многими принадлежащая огромной китайской компании Tencent, провела исследование на предмет уязвимостей в MBUX — бортовой системе Мерседесов, в создании которой и мы принимали участие. Забавно, что даже оставленный нами в файловой системе README-файл сыграл свою маленькую роль 😅
Но в целом, конечно, тенденция тревожная.
Но в целом, конечно, тенденция тревожная.
Keen Security Lab Blog
Tencent Security Keen Lab: Experimental Security Assessment of Mercedes-Benz Cars
MBUX, Mercedes-Benz User Experience is the infotainment system in Mercedes-Benz cockpits. Mercedes-Benz first introduced MBUX in the new A-Class back in 2018, and is adopting MBUX in their entire vehi
Читнул тут статью про пиратство и его экономическую составляющую. Если подытожить: исследований на тему мало, жаркие споры в ближайшее время не прекратятся.
Я сам вообще против пиратства в среднем. Игры я давно только покупаю, музыку слушаю на Spotify и т.д. Но важный тут момент состоит в том, что делаю я это не из-за каких-то принципов или уверований, а потому что так банально удобнее и проще.
Да, бывает, что какая-то игра радует настолько, что хочется лишний раз отблагодарить разработчиков. В таких случаях я нередко могу купить игру даже на нескольких платформах. Однако это скорее исключение.
В остальных случаях тупо впадлу искать, где что скачать, как устанавливать кряк и т.д. Да и в Германии это не особо поощряется 🙂
Другими словами, в вопросе платить или пиратить решает в первую очередь сервис. Ну и ассортимент. Спотифай может не идеал в плане UX, но он работает, его фичи мне нравятся, медиатека там большая. Steam — аналогично. Или, например, Audible для аудиокниг тоже терпи́м.
Когда-то и Netflix был таким же, но с тех пор его ассортимент сильно поуменьшился. С фильмами вообще всё потрачено чуть более, чем полностью. Из-за кучи лицензионного геморроя в зависимости от страны могут быть доступны или недоступны те или иные аудиодорожки, субтитры, да и сами фильмы тоже. Я здесь не вижу способа не пиратить — я просто хочу смотреть то, что мне хочется, на том языке, на котором мне хочется, не вспоминая, в каком сервисе оно доступно, и не оформляя стопицот подписок по 15 баксов в месяц.
С софтом на десктопе тоже часто ситуация говнячая. Магазины приложений там как-то не очень прижились в отличие от мобильных. Да, есть App Store, MS Store, тот же Steam, да и в Epic Games появились проги. Но в них всех вместе взятых наверное нет и четверти существующего ПО.
И вот в случаях, когда приходится платить за лицензию и качать что-то из каких-то мутных вендор-магазинов, в игру вступает ценовая политика как определяющий фактор.
Тот же Photoshop, например, просит за подписку в районе 25 баксов в месяц по-моему. Туда канеш входит какой-то там клауд никому не нужный и прочая ебатека. Но чё делать, если Фотошоп мне нужен раз в месяц, и то — чтобы сделать мемасик? Почему нет какой-то более дешёвой версии с порезанными фичами? Или версии с ограничением по времени? И, наконец, почему бы Adobe не пойти нахуй за 25 баксов в месяц?
Я сам вообще против пиратства в среднем. Игры я давно только покупаю, музыку слушаю на Spotify и т.д. Но важный тут момент состоит в том, что делаю я это не из-за каких-то принципов или уверований, а потому что так банально удобнее и проще.
Да, бывает, что какая-то игра радует настолько, что хочется лишний раз отблагодарить разработчиков. В таких случаях я нередко могу купить игру даже на нескольких платформах. Однако это скорее исключение.
В остальных случаях тупо впадлу искать, где что скачать, как устанавливать кряк и т.д. Да и в Германии это не особо поощряется 🙂
Другими словами, в вопросе платить или пиратить решает в первую очередь сервис. Ну и ассортимент. Спотифай может не идеал в плане UX, но он работает, его фичи мне нравятся, медиатека там большая. Steam — аналогично. Или, например, Audible для аудиокниг тоже терпи́м.
Когда-то и Netflix был таким же, но с тех пор его ассортимент сильно поуменьшился. С фильмами вообще всё потрачено чуть более, чем полностью. Из-за кучи лицензионного геморроя в зависимости от страны могут быть доступны или недоступны те или иные аудиодорожки, субтитры, да и сами фильмы тоже. Я здесь не вижу способа не пиратить — я просто хочу смотреть то, что мне хочется, на том языке, на котором мне хочется, не вспоминая, в каком сервисе оно доступно, и не оформляя стопицот подписок по 15 баксов в месяц.
С софтом на десктопе тоже часто ситуация говнячая. Магазины приложений там как-то не очень прижились в отличие от мобильных. Да, есть App Store, MS Store, тот же Steam, да и в Epic Games появились проги. Но в них всех вместе взятых наверное нет и четверти существующего ПО.
И вот в случаях, когда приходится платить за лицензию и качать что-то из каких-то мутных вендор-магазинов, в игру вступает ценовая политика как определяющий фактор.
Тот же Photoshop, например, просит за подписку в районе 25 баксов в месяц по-моему. Туда канеш входит какой-то там клауд никому не нужный и прочая ебатека. Но чё делать, если Фотошоп мне нужен раз в месяц, и то — чтобы сделать мемасик? Почему нет какой-то более дешёвой версии с порезанными фичами? Или версии с ограничением по времени? И, наконец, почему бы Adobe не пойти нахуй за 25 баксов в месяц?
DTF
Мнение: пиратство игр — не этическая, а экономическая проблема — Индустрия на DTF
Вполне вероятно, её можно решить новой ценовой политикой.
Там в свете судебного разбирательства Apple и Epic Games внезапно обнаружилось, что у людей-то нет единого определения того, что такое (видео)игра, которое бы всех устраивало 🙂
Мне понравилась трактовка, в которой говорится, что игра — это «добровольное преодоление ряда ненужных препятствий». То есть ровно то, чем занимаются программисты 😂 Правда программисты создают препятствия тоже самостоятельно.
А в ряде случаев выходит, что и сама жизнь — тоже игра. (Да, давайте сюда свои баяны про «отстойный сюжет, но классную графику»).
Мне понравилась трактовка, в которой говорится, что игра — это «добровольное преодоление ряда ненужных препятствий». То есть ровно то, чем занимаются программисты 😂 Правда программисты создают препятствия тоже самостоятельно.
А в ряде случаев выходит, что и сама жизнь — тоже игра. (Да, давайте сюда свои баяны про «отстойный сюжет, но классную графику»).
DTF
Что такое видеоигра? — Игры на DTF
Вслед за представителями Epic Games и Apple своё определение дают разработчики из разных студий.