Прочитал сегодня сентимент, что люди с ИИ совсем по-другому программируют. Мол, у них не хватает умственных способностей прочитать сообщение об ошибке и понять его, они просто копируют его неглядя обратно в LLM и просят исправить. То ли дело, в наше время...
Ну вот, а я что хочу сказать. Практика, конечно, с одной стороны так себе. А с другой — ну камон, мы все коллективно приучивали и продолжаем приучивать друг друга и остальных людей, что сообщения об ошибках в компьютере — это что-то слабопознаваемое, загадочное и мистическое.
Компьютер же никогда не скажет: «Дебил, ты забыл запятую». Он скажет что-то типа «Ошибка парсера 888 на строке 666: тип ФФФ не определен». И мало того что текст будет не про то, так еще и место окажется в трех километрах от настоящей причины. Он не скажет «доступ к несуществующему полю X», он скажет «Undefined is not a function» или еще какой-нибудь трюизм.
Это еще хорошо, когда хоть какая-то ошибка есть. Иногда ее вообще нет. «Ой, что-то сломалось! Мы уже работаем над этим» (ага, щас, работают они). Ну или SEGFAULT, core dumped. Return code -42. Привет.
Понятно, что делать хорошие ошибки сложно. И дорого. И поэтому их никто не делает. За реееееееееееееееее(да, все еще ееееееееееее)-едкими исключениями. Понятно, что я и сам был причастен к определенному количеству плохих ошибок. Мы все были.
Но это я все к чему? К тому, что реальность работы с компьютерами такова, что они почти всегда говорят одно, а имеют в виду другое. Это прямо сейчас так. Не в идеальном мире, не так, как должно быть, а так, как есть, прямо сейчас, объективно, на текущем массиве софта и харда.
И вот в этой текущей реальности нужно постоянно держать в голове слой трансляции из сообщения в смысл. Опыт в айти это, собственно, база вот таких трансляций — кто больше дерьма повидал, тот и опытнее. Скажите спасибо, что у нас хотя бы интернет с Гуглом есть.
Так что я бы людей не винил в нежелании учиться переводить с компьютерного. Они не то чтобы не хотят вникать, они просто хотят получить смысл, а не загадку сфинкса. Да, наверное, есть какая-то профессиональная гордость в умении понимать многоэкранные стектрейсы. Но в целом это скорее психическая травма, профдеформация, и люди без нее будут, наверное, чуть счастливее.
Ну вот, а я что хочу сказать. Практика, конечно, с одной стороны так себе. А с другой — ну камон, мы все коллективно приучивали и продолжаем приучивать друг друга и остальных людей, что сообщения об ошибках в компьютере — это что-то слабопознаваемое, загадочное и мистическое.
Компьютер же никогда не скажет: «Дебил, ты забыл запятую». Он скажет что-то типа «Ошибка парсера 888 на строке 666: тип ФФФ не определен». И мало того что текст будет не про то, так еще и место окажется в трех километрах от настоящей причины. Он не скажет «доступ к несуществующему полю X», он скажет «Undefined is not a function» или еще какой-нибудь трюизм.
Это еще хорошо, когда хоть какая-то ошибка есть. Иногда ее вообще нет. «Ой, что-то сломалось! Мы уже работаем над этим» (ага, щас, работают они). Ну или SEGFAULT, core dumped. Return code -42. Привет.
Понятно, что делать хорошие ошибки сложно. И дорого. И поэтому их никто не делает. За реееееееееееееееее(да, все еще ееееееееееее)-едкими исключениями. Понятно, что я и сам был причастен к определенному количеству плохих ошибок. Мы все были.
Но это я все к чему? К тому, что реальность работы с компьютерами такова, что они почти всегда говорят одно, а имеют в виду другое. Это прямо сейчас так. Не в идеальном мире, не так, как должно быть, а так, как есть, прямо сейчас, объективно, на текущем массиве софта и харда.
И вот в этой текущей реальности нужно постоянно держать в голове слой трансляции из сообщения в смысл. Опыт в айти это, собственно, база вот таких трансляций — кто больше дерьма повидал, тот и опытнее. Скажите спасибо, что у нас хотя бы интернет с Гуглом есть.
Так что я бы людей не винил в нежелании учиться переводить с компьютерного. Они не то чтобы не хотят вникать, они просто хотят получить смысл, а не загадку сфинкса. Да, наверное, есть какая-то профессиональная гордость в умении понимать многоэкранные стектрейсы. Но в целом это скорее психическая травма, профдеформация, и люди без нее будут, наверное, чуть счастливее.
❤180💯65👍39😁12🤡7😱6🤔3👏2🔥1😢1🎅1
  Люди любят спорить о качестве идей через примеры.
Например, был какой-то редизайн, стало значительно хуже, ergo, редизайны зло. Или вот фильм говяный вышел, про супергероев, значит все фильмы по комиксам говно. Или попробуют Джаваскрипт и делают вывод о динамической типизации в целом. Или смотрят на Электрон-монстров и делают вывод, что хорошие ГУИ бывают только в терминале.
Что я могу на это сказать? Раз эти люди сделали обобщение от частного к общему, то все люди в мире тупые во всем.
Например, был какой-то редизайн, стало значительно хуже, ergo, редизайны зло. Или вот фильм говяный вышел, про супергероев, значит все фильмы по комиксам говно. Или попробуют Джаваскрипт и делают вывод о динамической типизации в целом. Или смотрят на Электрон-монстров и делают вывод, что хорошие ГУИ бывают только в терминале.
Что я могу на это сказать? Раз эти люди сделали обобщение от частного к общему, то все люди в мире тупые во всем.
😁160❤50💯31👍11🫡11🤡10👌8❤🔥2🤔2👎1🎅1
  Храни бог язык Го и тулзы, на нем написанные.
Я знаю, что вы все от него нос воротите, но с точки зрения пользователя это сплошное благо: если тебе нужно что-то на сервер, с высокой вероятностью есть проект на Го, который это делает, распространяется как один бинарник, ничего не требует, мозги не ебет, в общем — просто работает.
В отличие от обычных линуксовых тулов, которые ставятся из дистрибутива, их хрен обновишь на современные версии, они срут по всему диску, запускаются с бубном, требуют пяти пользователей, каких-то библиотек, теряют их, а когда находят, работают в итоге все равно хуже.
Хочу дистрибутив, который ориентирован на установку no-nonsense одиночных бинарников с Гитхаба.
Язык, говорят, тупой. Если он такой тупой, почему тогда тулзы на нем делают такие хорошие?
Я знаю, что вы все от него нос воротите, но с точки зрения пользователя это сплошное благо: если тебе нужно что-то на сервер, с высокой вероятностью есть проект на Го, который это делает, распространяется как один бинарник, ничего не требует, мозги не ебет, в общем — просто работает.
В отличие от обычных линуксовых тулов, которые ставятся из дистрибутива, их хрен обновишь на современные версии, они срут по всему диску, запускаются с бубном, требуют пяти пользователей, каких-то библиотек, теряют их, а когда находят, работают в итоге все равно хуже.
Хочу дистрибутив, который ориентирован на установку no-nonsense одиночных бинарников с Гитхаба.
Язык, говорят, тупой. Если он такой тупой, почему тогда тулзы на нем делают такие хорошие?
👍254❤🔥58❤44🤡34🤔13💯12💊5💩3🤷3👎1🎅1
  Когда я учился на военной кафедре, нам рассказывали байку, что мол когда СССР делал БТРы, у них постоянно что-то стучало, чуть-чуть не стыковалось, двери неплотно закрывались, короче в целом машина работала, но в мелочах была куча косяков.
Ну вот, а байка в том, что эти же якобы чертежи отдавали кому-то в восточную европу производить, и оттуда приходили машины, у которых все было четко, гладко, все ко всему подходило и ничего не жало, не болталось и не свистело. По тем же в точности чертежам.
И вот он я, сижу рассматриваю очередной скриншот Гугл Мита (у меня таких миллионы), в котором простейшая верстка: квадратики 3 на 3 в белом контейнере, и у них левый паддинг отличается от правого, а кнопка по центру как-то получилась не выровнена с центральным квадратиком. Вспоминаю, что сегодня опять же видел скриншот макОСа, демонстрирующий щель в полпикселя между заголовком окна и меню баром (на ретине видно). То есть это буквально ЩЕЛЬ, как у неплотно закрывающейся двери на жигулях. Вспоминаю сегодняшний же пост, где я выбирал элемент в списке, и вместо того, чтобы выбраться, выделение сначала прыгнуло на него, потом назад, а потом на третий пункт.
И таких примеров у меня миллионы. Выравнивание. Анимации. Дергающиеся переходы. Пиксельная сетка. Они везде. У всех больших компаний. Кажется, то ли компании, то ли их код достигли таких масштабов сложности, что нормально сделать они уже не могут ни за какие деньги. А может могут, но не хотят — за качество не повышают. У организации другие цели, и качество, ровно как и пользователи, в них не входят.
Но вывод все равно один. Ваш ФААНГ — это тот же самый СССР.
Ну вот, а байка в том, что эти же якобы чертежи отдавали кому-то в восточную европу производить, и оттуда приходили машины, у которых все было четко, гладко, все ко всему подходило и ничего не жало, не болталось и не свистело. По тем же в точности чертежам.
И вот он я, сижу рассматриваю очередной скриншот Гугл Мита (у меня таких миллионы), в котором простейшая верстка: квадратики 3 на 3 в белом контейнере, и у них левый паддинг отличается от правого, а кнопка по центру как-то получилась не выровнена с центральным квадратиком. Вспоминаю, что сегодня опять же видел скриншот макОСа, демонстрирующий щель в полпикселя между заголовком окна и меню баром (на ретине видно). То есть это буквально ЩЕЛЬ, как у неплотно закрывающейся двери на жигулях. Вспоминаю сегодняшний же пост, где я выбирал элемент в списке, и вместо того, чтобы выбраться, выделение сначала прыгнуло на него, потом назад, а потом на третий пункт.
И таких примеров у меня миллионы. Выравнивание. Анимации. Дергающиеся переходы. Пиксельная сетка. Они везде. У всех больших компаний. Кажется, то ли компании, то ли их код достигли таких масштабов сложности, что нормально сделать они уже не могут ни за какие деньги. А может могут, но не хотят — за качество не повышают. У организации другие цели, и качество, ровно как и пользователи, в них не входят.
Но вывод все равно один. Ваш ФААНГ — это тот же самый СССР.
💯245🤣105❤41🔥15👍10🤡7🐳4🎅2
  Мое любимое ООП-изобретение это статические методы. Доступа к объекту нет, стейта нет, наследования нет, на деле могли бы быть обычными функциями. Но нееет, надо было в класс засунуть, потому что иначе концепции «все есть объект» не получалось
😁218💯89🤡37👍17❤11💅5🐳2👀2🙈2🎅1
  Еще один доеб к интерфейсам компьютерных игр. Часто настройки в них надо «применять». Типа, нащелкал что-то, пошел смотреть как оно, а игра тебе «Вы не применили настройки. Уверены, что хотите сбросить изменения?»
Нет, блин, не хочу! Более того, я ни в какой момент не изъявлял желание что-то там сбрасывать, это вы сами додумали и мне приписали. Я нажал «вернуться в игру», а не «сбросить все что я делал как будто этого и не было никогда и я все это менял чисто фо фан, потеребить чекбоксы». Абсолютно дегенератская логика. Зачем я, по-вашему, менял настройки, если не хочу их применить?
Особенно злые игры не показывают в этом диалоге опцию Применить, а только Сбросить и Отменить. Чтобы ты отменил (выход), пошел, нажал Применить, и только потом выходил. Прям «выйди и зайди нормально», спасибо, мне его в школе хватило.
Люди со стокгольмским синдромом любят защищать такое поведение, потому что у них в голове есть сценарий «я что-то поменял, а потом передумал». Но этот сценарий, во-первых, в сто раз более редкий (настолько, что нормальным решением было бы сказть «просто нащелкай обратно как было»), а во-вторых, если очень хочется, можно для него сделать специальную кнопку.
Но по-умолчанию, блин, если я меняю настройки, значит я хочу их поменять!
Нет, блин, не хочу! Более того, я ни в какой момент не изъявлял желание что-то там сбрасывать, это вы сами додумали и мне приписали. Я нажал «вернуться в игру», а не «сбросить все что я делал как будто этого и не было никогда и я все это менял чисто фо фан, потеребить чекбоксы». Абсолютно дегенератская логика. Зачем я, по-вашему, менял настройки, если не хочу их применить?
Особенно злые игры не показывают в этом диалоге опцию Применить, а только Сбросить и Отменить. Чтобы ты отменил (выход), пошел, нажал Применить, и только потом выходил. Прям «выйди и зайди нормально», спасибо, мне его в школе хватило.
Люди со стокгольмским синдромом любят защищать такое поведение, потому что у них в голове есть сценарий «я что-то поменял, а потом передумал». Но этот сценарий, во-первых, в сто раз более редкий (настолько, что нормальным решением было бы сказть «просто нащелкай обратно как было»), а во-вторых, если очень хочется, можно для него сделать специальную кнопку.
Но по-умолчанию, блин, если я меняю настройки, значит я хочу их поменять!
❤124🤡75👍39💯27🤣8👎7🔥5😁2🤨2🎅1🎄1
  Расскажу про историю кнопки «Применить». Это паттерн из Винды 90-х: диалоговое окно, настройки, Ok-Cancel-Apply. Они его придумали, они его придерживались, так что неудивительно, что многие в него поверили и решили, что так и надо.
А теперь новости: на Маке такого паттерна не было. Ты заходишь в диалог, скажем, настройки скорости мыши, меняешь скорость и... все. Не надо ничего нажимать, «применять», сохранять и так далее. Просто передвинул ползунок и дело сделано.
Окей, есть два конкурирующих паттерна. Какой из них более правильный, более естественный, более интуитивный?
Конечно же без кнопки «Применить»! Подумайте: все в мире работает без этой кнопки. Ты включаешь кондиционер в машине и он просто включается. Его не надо применять. Ты крутишь ручку частоты или громкости у радио, и они просто меняются. Их не надо применять. Ты нажимаешь кнопку на пульте телевизора и она действует немедленно, без отдельного «применения».
Паттерн с применением же контринтуитивен. Вот у меня есть настройка, не знаю, «цвет курсора». Я выбрал розовый. Почему цвет не поменялся? Я же его уже выбрал. Более того, розовый явно выделен в окне как выбранный, активный. И тем не менее курсор все еще черный.
Чтобы этот паттерн понять, в голове надо держать концепцию «буфера» операций, которые отображаются, но не работают. Это сложная, путающая, контринтуитивная концепция, которая ни для чего не нужна, а возникла, скорее всего, от бедности — когда поменять обои, например, занимало ощутимое время, а поток исполнения был один и морозить UI тред не хотелось. Те времена, конечно, давно прошли, и технической надобности в «отложенном» применении давно нет.
Умные, здоровые люди заметили, что этот паттерн постепенно вымер — в телефонах, главных компьютерных устройствах для нормальных людей, его нет нигде. И даже в современной Винде его надо еще поискать. Так что не надо его, пожалуйста, защищать — да, вы так привыкли, так выросли, но все это было ложью, вас обманули, и это все было зря. Что ж теперь, до конца жизни за него держаться просто из упорства?
Вы еще скажите, что файлы после редактирования надо явно сохранять вручную!
А теперь новости: на Маке такого паттерна не было. Ты заходишь в диалог, скажем, настройки скорости мыши, меняешь скорость и... все. Не надо ничего нажимать, «применять», сохранять и так далее. Просто передвинул ползунок и дело сделано.
Окей, есть два конкурирующих паттерна. Какой из них более правильный, более естественный, более интуитивный?
Конечно же без кнопки «Применить»! Подумайте: все в мире работает без этой кнопки. Ты включаешь кондиционер в машине и он просто включается. Его не надо применять. Ты крутишь ручку частоты или громкости у радио, и они просто меняются. Их не надо применять. Ты нажимаешь кнопку на пульте телевизора и она действует немедленно, без отдельного «применения».
Паттерн с применением же контринтуитивен. Вот у меня есть настройка, не знаю, «цвет курсора». Я выбрал розовый. Почему цвет не поменялся? Я же его уже выбрал. Более того, розовый явно выделен в окне как выбранный, активный. И тем не менее курсор все еще черный.
Чтобы этот паттерн понять, в голове надо держать концепцию «буфера» операций, которые отображаются, но не работают. Это сложная, путающая, контринтуитивная концепция, которая ни для чего не нужна, а возникла, скорее всего, от бедности — когда поменять обои, например, занимало ощутимое время, а поток исполнения был один и морозить UI тред не хотелось. Те времена, конечно, давно прошли, и технической надобности в «отложенном» применении давно нет.
Умные, здоровые люди заметили, что этот паттерн постепенно вымер — в телефонах, главных компьютерных устройствах для нормальных людей, его нет нигде. И даже в современной Винде его надо еще поискать. Так что не надо его, пожалуйста, защищать — да, вы так привыкли, так выросли, но все это было ложью, вас обманули, и это все было зря. Что ж теперь, до конца жизни за него держаться просто из упорства?
Вы еще скажите, что файлы после редактирования надо явно сохранять вручную!
👍217🤡44💯36❤22💊21🥱10😁5🎅3
  Ковырялся в юзерстилях Фастмейла, потому что они сделали редизайн как у всех — тонкая рамка вокруг всего окна, выделения пилюлями вместо закрашивания фона от края до края, градиент зачем-то.
И знаете что? Особо не стараясь, сделал все как мне нужно, закинул в Stylus и забыл. А потом думаю — погодите-ка, а ведь это был... приятный опыт!
Это вообще же забытые технологии древних — вот кто-то нам сделал платформу (веб), на которой устройство любого сайта или приложения открыто, легко читаемо и доступно для модификаций. Все простым текстом, никакой магии, и менять можно прямо на лету. Не нравится что-то? Пошел и сделал лучше, или скачал экстеншн, который делает лучше. Настоящий moldable environment, настоящий end-user programming. Такую свободу невозможно представить сегодня, это буквально эхо лучших времен, когда инновации действительно инновировали и продвигали мир вперед.
Тем более жалко, что мы потеряли даже то, что было. Популярность веба сегодня держится на идеях, заложенных в 90-х, и _вопреки_ всему остальному, что произошло с тех пор. Вместо легко читаемого и легко модифицируемого кода — обфускация, минимизация, генерируемые названия классов (простите, юзер стили), соурсмапы (простите, дебаггеры и экстеншны). Вместо открытых стандартов — наоборот, закрученные гайки, иногда в рандомных местах, иногда совершенно идиотских.
Я как-то отлаживал сайт, и он не хотел давать мне сгенерить crypto.randomUUID. Почему?
Потому что я был не по https. Какая связь? А никакой.
Или локальные шрифты. Раньше я открывал свой сайт, открывал девтулы и вписывал названия шрифтов, которые у меня стояли в системе, чтобы потестить, как это будет выглядеть. А все, нельзя больше. Секьюрити, понимаешь. Можно зато с Гугл Фонтс подключать в четыре клика. Ну и что не удобно. Но локальные — не сесюрно. Ну и что что это увижу только я, что я все это делаю исключительно на своей локальной машине.
Идиотские сроки устаревания на все и вся. Отсутствие гарантий. Галочка «Запомнить меня», которая, кажется, нигде больше не работает. А раньше вот как-то работала. Максимальный срок кук — 400 дней. Ну и что, что ты хочешь больше. Тебя, пользователя, никто не спрашивал. Мы делаем секьюрную платформу тут, а не удобную. Ну и что что нас никто об этом не просил, и что тебе неудобно. Не мешай работать, а?
Знаете, как понять, что емейл — не современная технология? В нее заложена возможность борьбы со спамом. Т.е. реклама тогда еще считалась каким-то злом, и программы помогали пользователю с ней бороться. Сегодня наоборот, реклама это освовной смысл существования многих платформ, а удобство юзера по остаточному принципу. И поэтому вам внутрь программ никто доступа не даст. А то еще не дай бог рекламу отключите, куки баннер вырежете и интерфейс получше сделаете. А следить за вами тогда как?
Молодые этот пост, возможно, не поймут. Потому что они не видели, как _может быть_. Как свободно дышалось, как мы все вместе работали на общее благо, и даже компании делали продукты для пользователей. Эх, какие у веба были перспективы.
Может быть, ИЕ6 это еще не самое страшное, что с ним случалось.
И знаете что? Особо не стараясь, сделал все как мне нужно, закинул в Stylus и забыл. А потом думаю — погодите-ка, а ведь это был... приятный опыт!
Это вообще же забытые технологии древних — вот кто-то нам сделал платформу (веб), на которой устройство любого сайта или приложения открыто, легко читаемо и доступно для модификаций. Все простым текстом, никакой магии, и менять можно прямо на лету. Не нравится что-то? Пошел и сделал лучше, или скачал экстеншн, который делает лучше. Настоящий moldable environment, настоящий end-user programming. Такую свободу невозможно представить сегодня, это буквально эхо лучших времен, когда инновации действительно инновировали и продвигали мир вперед.
Тем более жалко, что мы потеряли даже то, что было. Популярность веба сегодня держится на идеях, заложенных в 90-х, и _вопреки_ всему остальному, что произошло с тех пор. Вместо легко читаемого и легко модифицируемого кода — обфускация, минимизация, генерируемые названия классов (простите, юзер стили), соурсмапы (простите, дебаггеры и экстеншны). Вместо открытых стандартов — наоборот, закрученные гайки, иногда в рандомных местах, иногда совершенно идиотских.
Я как-то отлаживал сайт, и он не хотел давать мне сгенерить crypto.randomUUID. Почему?
Потому что я был не по https. Какая связь? А никакой.
Или локальные шрифты. Раньше я открывал свой сайт, открывал девтулы и вписывал названия шрифтов, которые у меня стояли в системе, чтобы потестить, как это будет выглядеть. А все, нельзя больше. Секьюрити, понимаешь. Можно зато с Гугл Фонтс подключать в четыре клика. Ну и что не удобно. Но локальные — не сесюрно. Ну и что что это увижу только я, что я все это делаю исключительно на своей локальной машине.
Идиотские сроки устаревания на все и вся. Отсутствие гарантий. Галочка «Запомнить меня», которая, кажется, нигде больше не работает. А раньше вот как-то работала. Максимальный срок кук — 400 дней. Ну и что, что ты хочешь больше. Тебя, пользователя, никто не спрашивал. Мы делаем секьюрную платформу тут, а не удобную. Ну и что что нас никто об этом не просил, и что тебе неудобно. Не мешай работать, а?
Знаете, как понять, что емейл — не современная технология? В нее заложена возможность борьбы со спамом. Т.е. реклама тогда еще считалась каким-то злом, и программы помогали пользователю с ней бороться. Сегодня наоборот, реклама это освовной смысл существования многих платформ, а удобство юзера по остаточному принципу. И поэтому вам внутрь программ никто доступа не даст. А то еще не дай бог рекламу отключите, куки баннер вырежете и интерфейс получше сделаете. А следить за вами тогда как?
Молодые этот пост, возможно, не поймут. Потому что они не видели, как _может быть_. Как свободно дышалось, как мы все вместе работали на общее благо, и даже компании делали продукты для пользователей. Эх, какие у веба были перспективы.
Может быть, ИЕ6 это еще не самое страшное, что с ним случалось.
❤251😭83👍33💯31❤🔥3😱3🔥2💔2👎1🎅1
  Что меня отдельно бесит в Яндексе (помимо всего остального) так это их усердие в показе рекламы.
Все остальные сайты как сайты: делают вид, что показали рекламу, мы сделали вид, что посмотрели. Кто баннерную слепоту выработал, кто адблоком зарезал. Приличия сохранены, каждая сторона получила что хотела. На этом негласном договоре весь интернет и держится.
Но Яндекс не такой. Они подумали: подождите, это непорядок. Если уж мы взялись показывать рекламу, то у нас будет такая реклама, которая все фильтры обойдет и дойдет до любого пользователя, как бы он ни старался. Щас мы наших программистов напряжем, не зря же мы их столько умных набрали, и они что-нибудь придумают.
Ну, придумали. А толку-то? Просто бесить начали больше, чем все остальные.
Все остальные сайты как сайты: делают вид, что показали рекламу, мы сделали вид, что посмотрели. Кто баннерную слепоту выработал, кто адблоком зарезал. Приличия сохранены, каждая сторона получила что хотела. На этом негласном договоре весь интернет и держится.
Но Яндекс не такой. Они подумали: подождите, это непорядок. Если уж мы взялись показывать рекламу, то у нас будет такая реклама, которая все фильтры обойдет и дойдет до любого пользователя, как бы он ни старался. Щас мы наших программистов напряжем, не зря же мы их столько умных набрали, и они что-нибудь придумают.
Ну, придумали. А толку-то? Просто бесить начали больше, чем все остальные.
👍185💯157😁25❤🔥10🤡10❤6🤬3💩3🤮1🎅1
  С годами понимаешь, что идеальное количество экспозиции было в Принце Персии 1989 года. Злой визирь заходит к принцессе, тянет к ней руки, она отворачивается, он сердится, ставит песочные часы и уходит. И все, это все, что нужно знать. Одна сцена, три сдержанных, но точных движения, ни склеек, ни ракурсов, а все понятно. Гений. Я даже в 10 лет, без никакого английского, и то все понимал. Можно начинать играть.
И никто не объясняет, что ты в тюрьме (и так видно), что стражники не дадут тебе пройти (разберешься как-нибудь) и что в общем-то делать (спасать принцессу, что еще?). «Смотри, принц, вон те шипы на дне ямы — постарайся на них не падать!» «Смотри, вот эта гильотина может тебя раскусить. Постарайся ей не попадаться!» — этого ничего нет, потому что блин, И ТАК ВСЕ ПОНЯТНО.
Это я просто скачал нового Rogue Prince of Persia, от создателей Dead Cells (создатели Dead Cells — это как дети лейтенанта Шмидта, их тоже штук пять проектов есть с таким заявлением).
Dead Cells я нежно люблю, в том числе и за то, что там тоже было идеальное количество экспозиции. Ты выползаешь амебой из трубы, залазишь в труп, встаешь, говоришь что-то типа «о, нифига себе, я что, умер?» — и все, погнали. Что еще нужно знать? Вот враги, вот меч, вот подземелье. Никая история тут, в общем-то, не нужна. Иногда при загрузке уровней тебе напишут какой-нибудь flavour text типа «Чтобы не скучать, стражники иногда сбрасывают заключенных с башни. Нет ничего страшнее чем видеть, как тебя подводят к краю». И все. Намек дан, а дальше простор для воображения. Ну и арт делает основную работу — мы верим тому что видим, а не тому, что про это написано. Show, don’t tell, и никакого лудонарративного диссонанса.
И на фоне этого Rogue Prince of Persia, конечно, подкачал. Там какая-то россыпь персонажей-наставников, помощников, советчиков, торговцев, и ни один из них не может заткнуться. Всем им нужно что-то сказать, причем не что-то сильно умное или важное, а что-то банальное, типа «Я торговец. Если тебе нужны товары, тебе ко мне. Ты найдешь меня в лагере. Я буду там торговать товарами. Ищи лоток торговца. Ты узнаешь его по надписи „Торговец“. Все понятно, или повторить?» И это просто невозможно, прям уши вянут. Понятно, что игра не про это, понятно, что это все можно скипать, но жаль, что люди не чувствуют бессмысленности этих речей и как они убивают момент.
Краткость — сестра таланта, если бы у меня было больше времени, я бы написал более короткое письмо, лаконичность стоит денег — это все понятно. Жаль, что этот навык не перенесся из Dead Cells. Там, при всей ее немногословности, атмосферу можно было ложками черпать.
И никто не объясняет, что ты в тюрьме (и так видно), что стражники не дадут тебе пройти (разберешься как-нибудь) и что в общем-то делать (спасать принцессу, что еще?). «Смотри, принц, вон те шипы на дне ямы — постарайся на них не падать!» «Смотри, вот эта гильотина может тебя раскусить. Постарайся ей не попадаться!» — этого ничего нет, потому что блин, И ТАК ВСЕ ПОНЯТНО.
Это я просто скачал нового Rogue Prince of Persia, от создателей Dead Cells (создатели Dead Cells — это как дети лейтенанта Шмидта, их тоже штук пять проектов есть с таким заявлением).
Dead Cells я нежно люблю, в том числе и за то, что там тоже было идеальное количество экспозиции. Ты выползаешь амебой из трубы, залазишь в труп, встаешь, говоришь что-то типа «о, нифига себе, я что, умер?» — и все, погнали. Что еще нужно знать? Вот враги, вот меч, вот подземелье. Никая история тут, в общем-то, не нужна. Иногда при загрузке уровней тебе напишут какой-нибудь flavour text типа «Чтобы не скучать, стражники иногда сбрасывают заключенных с башни. Нет ничего страшнее чем видеть, как тебя подводят к краю». И все. Намек дан, а дальше простор для воображения. Ну и арт делает основную работу — мы верим тому что видим, а не тому, что про это написано. Show, don’t tell, и никакого лудонарративного диссонанса.
И на фоне этого Rogue Prince of Persia, конечно, подкачал. Там какая-то россыпь персонажей-наставников, помощников, советчиков, торговцев, и ни один из них не может заткнуться. Всем им нужно что-то сказать, причем не что-то сильно умное или важное, а что-то банальное, типа «Я торговец. Если тебе нужны товары, тебе ко мне. Ты найдешь меня в лагере. Я буду там торговать товарами. Ищи лоток торговца. Ты узнаешь его по надписи „Торговец“. Все понятно, или повторить?» И это просто невозможно, прям уши вянут. Понятно, что игра не про это, понятно, что это все можно скипать, но жаль, что люди не чувствуют бессмысленности этих речей и как они убивают момент.
Краткость — сестра таланта, если бы у меня было больше времени, я бы написал более короткое письмо, лаконичность стоит денег — это все понятно. Жаль, что этот навык не перенесся из Dead Cells. Там, при всей ее немногословности, атмосферу можно было ложками черпать.
❤156💯43👍15🤡5❤🔥2🥱2💊2🤔1🍌1🎅1
  А вас не бесит, что американцы, когда говорят про вид спорта, например, баскетбол, называют его как и мы, Basketball. А когда речь заходит о спортивном снаряде, баскетбольном мяче, то есть, они уже говорят Basket ball.
Понятно, что basketball ball было бы тупо, но и basket ball тоже как-то ни туда ни сюда. Спорт, получается, basket что ли?
Понятно, что basketball ball было бы тупо, но и basket ball тоже как-то ни туда ни сюда. Спорт, получается, basket что ли?
😁133🤡41💊10👍7🥱6💯3🤔2🦄2🐳1🎅1🗿1
  В очередной раз вспомнил, что споры про программирование в интернете это в первую очередь споры людей на разном этапе развития. И конфликт состоит, в общем-то, в том, что люди с разным количеством опыта просто не могут понять друг друга. Не не хотят, а именно не могут — это важно. Причем в обе стороны, и старые молодых, и молодые старых.
Например, недавно в очередной раз объявили зашкваром использование utils. Типа, там всегда хаос и бардак, типа, признак плохого кода. «Технический долг».
И знаете что? Когда-то я и сам считал utils зашкваром, и даже пытался навести там порядок. Менял имена, делил по смыслу, раскидывал по другим модулям. А потом понял, что силы, которые на это уйдут, не стоят потенциальной пользы. Ну да, бардак, ну и что? Как будто у вас нет дома универсального ящика с барахлом, которое не вписывается больше никуда, и которое разбирать себе дороже. Можно ли навести порядок в utils? Можно. Что мы от этого получим? Немножко эстетического удовольствия, и только.
Или Эндрю Келли, создатель языка Zig, объясняет, почему в Zig нет приватных полей. Люди с опытом побольше в основном соглашаются — ну да, ну да, все поля по факту публичные, границы размыты, и т.п. А люди, которые только начали программировать и знают один язык, в котором есть приватные поля, сразу — как же так? Как без приватных полей жить-то? Это ж ни одной программы не получится написать? А все кто не согласны — дураки!
Так и живем. Хорошо, что есть языки для начинающих, а есть для взрослых уставших бородадых дядей и тетей. Можно спокойно разойтись по углам и играть каждому в свои кубики.
Например, недавно в очередной раз объявили зашкваром использование utils. Типа, там всегда хаос и бардак, типа, признак плохого кода. «Технический долг».
И знаете что? Когда-то я и сам считал utils зашкваром, и даже пытался навести там порядок. Менял имена, делил по смыслу, раскидывал по другим модулям. А потом понял, что силы, которые на это уйдут, не стоят потенциальной пользы. Ну да, бардак, ну и что? Как будто у вас нет дома универсального ящика с барахлом, которое не вписывается больше никуда, и которое разбирать себе дороже. Можно ли навести порядок в utils? Можно. Что мы от этого получим? Немножко эстетического удовольствия, и только.
Или Эндрю Келли, создатель языка Zig, объясняет, почему в Zig нет приватных полей. Люди с опытом побольше в основном соглашаются — ну да, ну да, все поля по факту публичные, границы размыты, и т.п. А люди, которые только начали программировать и знают один язык, в котором есть приватные поля, сразу — как же так? Как без приватных полей жить-то? Это ж ни одной программы не получится написать? А все кто не согласны — дураки!
Так и живем. Хорошо, что есть языки для начинающих, а есть для взрослых уставших бородадых дядей и тетей. Можно спокойно разойтись по углам и играть каждому в свои кубики.
❤207👍83😁40💯16🤡6💊6👎3🤝3🎅2🥰1🍌1
  В комментах вчера люди читали «более опытные» как «лучшие» или даже «более умные», чего я, конечно, не говорил. Более опытные это буквально люди, у которых больше опыта. Заметьте, это не значит, что они в чем-то другом лучше. Один комментатор даже сказал, что я думаю, что лисп это язык для более умных людей.
Это, кстати, интересная тема. Люди часто думают, что умные люди лучше во всем — знают больше, лучше питаются, лучше выглядят, больше зарабатывают, пишут лучше программы. Что конечно не так — зачем умным людям писать программы, они что, дураки? Или про деньги — если ты такой умный, где твои деньги — ну так а зачем умному человеку деньги? Это скучно, это сложно, и это не решает никакой его проблемы. Если посмотрите вокруг себя, то богатые люди в основном не очень-то и умные. Им некогда развиваться, им надо деньги зарабатывать.
Короче, моя теория в том, что умные люди, они, ну, просто умные. У них большой мозг, он может оперировать большим количеством абстракций, они могут продраться через большее количество сложности, чем средний человек. Но это не значит, что они будут писать лучшие программы! Они, скорее всего, будут писать более сложные программы, чтобы свой огромный мозг чем-то занять. Один сильный программист на Хаскелле, например, как-то рассказывал, что любит чисто вот эти типовые паззлы, как написать правильные типы, решать. Волновали ли его при этом эксплутационные или эргономические качества получаемой системы? Да не особо.
Если не верите, я уже как-то писал про чувака, который придумал тест на айкью (который определяется, напомню, решением паззлов). Он думал, что соберет людей с высоким айкью в клубе и они будут вершить судьбы мира. А на практике оказалось, во-первых, что очень умные люди были равномерно распределены по всем слоям населения — и богатые, и бедные (т.е. высокий айкью не значит, что ты много заработаешь или будешь иметь положение в обществе), а во-вторых, когда они все собрались в клуб, они в основном хотели решать паззлы, а не вершить судьбы мира.
Так что не думайте, что если бы у вас был большой ум, вы бы заработали кучу денег, написали самый успешный стартап и по жизни принимали бы только правильные решения. Ум тут вообще ни при чем. Вы занимались бы в основном тем, чтобы ум этот чем-то занять.
Это, кстати, интересная тема. Люди часто думают, что умные люди лучше во всем — знают больше, лучше питаются, лучше выглядят, больше зарабатывают, пишут лучше программы. Что конечно не так — зачем умным людям писать программы, они что, дураки? Или про деньги — если ты такой умный, где твои деньги — ну так а зачем умному человеку деньги? Это скучно, это сложно, и это не решает никакой его проблемы. Если посмотрите вокруг себя, то богатые люди в основном не очень-то и умные. Им некогда развиваться, им надо деньги зарабатывать.
Короче, моя теория в том, что умные люди, они, ну, просто умные. У них большой мозг, он может оперировать большим количеством абстракций, они могут продраться через большее количество сложности, чем средний человек. Но это не значит, что они будут писать лучшие программы! Они, скорее всего, будут писать более сложные программы, чтобы свой огромный мозг чем-то занять. Один сильный программист на Хаскелле, например, как-то рассказывал, что любит чисто вот эти типовые паззлы, как написать правильные типы, решать. Волновали ли его при этом эксплутационные или эргономические качества получаемой системы? Да не особо.
Если не верите, я уже как-то писал про чувака, который придумал тест на айкью (который определяется, напомню, решением паззлов). Он думал, что соберет людей с высоким айкью в клубе и они будут вершить судьбы мира. А на практике оказалось, во-первых, что очень умные люди были равномерно распределены по всем слоям населения — и богатые, и бедные (т.е. высокий айкью не значит, что ты много заработаешь или будешь иметь положение в обществе), а во-вторых, когда они все собрались в клуб, они в основном хотели решать паззлы, а не вершить судьбы мира.
Так что не думайте, что если бы у вас был большой ум, вы бы заработали кучу денег, написали самый успешный стартап и по жизни принимали бы только правильные решения. Ум тут вообще ни при чем. Вы занимались бы в основном тем, чтобы ум этот чем-то занять.
👍176💯60🤓32😁14❤12🔥8🤔7🤡6🎅2😢1
  Короче, я подумал и все-таки самая главная вещь, которую я хочу от языка программирования/окружения — это писать все в одном месте.
Вспомните, когда программирование приносило вам наибольшую радость? Когда написал локальную программу, запустил тут же и она работает. Все локально, память общая, все средства языка работают, вызвать функцию или передать тривиально. Ничто, я повторяю, НИЧТО в жизни не приносит большего удовольствия, чем писать локальную программу. Поэтому программисты так любят переписывать и без того уже хорошие CLI утилиты на Rust — это тупо приятно.
Ну вот. Потом пришел веб, и мы потеряли невинность. Появилась трехзвенная архитектура (фронт-сервер-база), и многие решили, что так и нужно. Уверен, кто-нибудь по сей день готов с пеной у рта доказывать, что это хорошая архитектура, что ее не дураки придумывали, что по-другому нельзя все равно, и что я не разобрался. И на деле — ну да, она работает. Но ценой сложности. Она усложнила программирование.
В чем сложность? Все эти компоненты написаны по-разному (исторически сложилось) и не особо разговаривают друг с другом. Бэкенд функцию уже так просто не позовешь с фронтенда. В базу не сходишь без церемоний.
Даже языков стало несколько. Приложения уже не написаны на С++. Они написаны на JS + Python + PLSQL + черт знает что еще. Где язык, там и стек. Нужны АПИ, сериализация, кубернетесы, а это куча дополнительной работы. Для джоб секьюрити хорошо, конечно.
Появилось разделение программистов — фронтендеры, бэкендеры, мобильщики. Каждая часть стека стала настолько сложной, что за карьеру ты можешь освоить что-то одно. Как результат, один человек уже не может написать программу целиком (или, если может, то ох как заебется). Накидать проектик на выходных тоже не слишком просто. Если это не команд-лайн утилита, конечно. Программы, которые писать приятно, никому не нужны, а программы, которые нужны людям, писать сложно. Противоречие-с.
Ну вот. А теперь возвращаемся к исходной посылке. Как сделать программирование снова приятным? Нужно писать все в одном месте. Чтобы не нужно было пяти языков. Чтобы все со всем работало, дружило, разговаривало. Чтобы доступ был прозрачный и унифицированный. Чтобы все было встроено — и база данных, и UI.
Звучит фантастично? Ну и что. Почему нет? Мне очевидно, что это кардинально снизит сложность создания программ. И сложность управления программами. Да, эволюционно мы пришли в совсем другую точку, где каждая часть стека развивалась сама по себе. В итоге ты получаешь симулятор шизофреника: так, на каком языке я сейчас пишу? Как тут ставятся комментарии? Camel case или snake?
Вместо этого можно знаете что? Проигнорировать всю эту инженерную мудрость и сразу пойти в ту точку, в которую мы хотим. Вроде цель ясна. Фундаментальных препятствий, вроде, никаких нет.
Вспомните Darklang. Если я правильно понимаю, ты заходил к ним на страничку, открывался редактор и ты правил систему. Все. Что ты там наисправлял, то и сервится наружу через HTTP эндпоинты. Деплоя нет. Коммита даже нет. Ничто никуда не нужно пересылать, нигде данные не нужно перекидывать через забор. Звучит фантастически. Но пруф концепта работал (потом, правда, деньги закончились).
Только у Darklang не было никакой UI истории. А UI тоже должен быть встроен, и встроен нормально, с интеграцией в сервер, с доступом в базу. Это не должно выглядеть как миллион веб-макак, пишущих очередной компонент с тридцатью хуками, единственная цель которого — превратить React в HTML, который в свою очередь соберет JSON, чтобы сходит в сеть на сервер, который соберет SQL, чтобы сходить за вас в базу. И все это нужно, чтобы на эране появилась цифра, сколько программистов получают зарплату в отделе. Когда я думаю, сколько бессмысленной, никому не нужной работы происходит в этой цепочке и что многие люди считают это state of the art и ничего плохого в такой архитектуре не видят...
Елси программирование будущего будет выглядеть так, то лучше сразу отрубите мне пальцы. По самую шею.
Вспомните, когда программирование приносило вам наибольшую радость? Когда написал локальную программу, запустил тут же и она работает. Все локально, память общая, все средства языка работают, вызвать функцию или передать тривиально. Ничто, я повторяю, НИЧТО в жизни не приносит большего удовольствия, чем писать локальную программу. Поэтому программисты так любят переписывать и без того уже хорошие CLI утилиты на Rust — это тупо приятно.
Ну вот. Потом пришел веб, и мы потеряли невинность. Появилась трехзвенная архитектура (фронт-сервер-база), и многие решили, что так и нужно. Уверен, кто-нибудь по сей день готов с пеной у рта доказывать, что это хорошая архитектура, что ее не дураки придумывали, что по-другому нельзя все равно, и что я не разобрался. И на деле — ну да, она работает. Но ценой сложности. Она усложнила программирование.
В чем сложность? Все эти компоненты написаны по-разному (исторически сложилось) и не особо разговаривают друг с другом. Бэкенд функцию уже так просто не позовешь с фронтенда. В базу не сходишь без церемоний.
Даже языков стало несколько. Приложения уже не написаны на С++. Они написаны на JS + Python + PLSQL + черт знает что еще. Где язык, там и стек. Нужны АПИ, сериализация, кубернетесы, а это куча дополнительной работы. Для джоб секьюрити хорошо, конечно.
Появилось разделение программистов — фронтендеры, бэкендеры, мобильщики. Каждая часть стека стала настолько сложной, что за карьеру ты можешь освоить что-то одно. Как результат, один человек уже не может написать программу целиком (или, если может, то ох как заебется). Накидать проектик на выходных тоже не слишком просто. Если это не команд-лайн утилита, конечно. Программы, которые писать приятно, никому не нужны, а программы, которые нужны людям, писать сложно. Противоречие-с.
Ну вот. А теперь возвращаемся к исходной посылке. Как сделать программирование снова приятным? Нужно писать все в одном месте. Чтобы не нужно было пяти языков. Чтобы все со всем работало, дружило, разговаривало. Чтобы доступ был прозрачный и унифицированный. Чтобы все было встроено — и база данных, и UI.
Звучит фантастично? Ну и что. Почему нет? Мне очевидно, что это кардинально снизит сложность создания программ. И сложность управления программами. Да, эволюционно мы пришли в совсем другую точку, где каждая часть стека развивалась сама по себе. В итоге ты получаешь симулятор шизофреника: так, на каком языке я сейчас пишу? Как тут ставятся комментарии? Camel case или snake?
Вместо этого можно знаете что? Проигнорировать всю эту инженерную мудрость и сразу пойти в ту точку, в которую мы хотим. Вроде цель ясна. Фундаментальных препятствий, вроде, никаких нет.
Вспомните Darklang. Если я правильно понимаю, ты заходил к ним на страничку, открывался редактор и ты правил систему. Все. Что ты там наисправлял, то и сервится наружу через HTTP эндпоинты. Деплоя нет. Коммита даже нет. Ничто никуда не нужно пересылать, нигде данные не нужно перекидывать через забор. Звучит фантастически. Но пруф концепта работал (потом, правда, деньги закончились).
Только у Darklang не было никакой UI истории. А UI тоже должен быть встроен, и встроен нормально, с интеграцией в сервер, с доступом в базу. Это не должно выглядеть как миллион веб-макак, пишущих очередной компонент с тридцатью хуками, единственная цель которого — превратить React в HTML, который в свою очередь соберет JSON, чтобы сходит в сеть на сервер, который соберет SQL, чтобы сходить за вас в базу. И все это нужно, чтобы на эране появилась цифра, сколько программистов получают зарплату в отделе. Когда я думаю, сколько бессмысленной, никому не нужной работы происходит в этой цепочке и что многие люди считают это state of the art и ничего плохого в такой архитектуре не видят...
Елси программирование будущего будет выглядеть так, то лучше сразу отрубите мне пальцы. По самую шею.
👍153❤68💯44🤡13❤🔥8😁5🤔5💊5🍌3🦄3🎅1
  С одной стороны коллапс цивилизации (программисты теряют экспертизу, программы становятся хуже).
У меня уже ходовая поговорка: «Компьютеры. Никто не знает, как они работают». Звучит смешно, но я говорю это буквально, не как метафору. Потому что каждый день, рутинно, по несколько раз происходит какая-то необъяснимая хрень. Файл не отсылается, созвон устанавливается без картинки, клавиатура не коннектится, нотификация не показывается.
И этому нет никакого объяснения. Реально никто не знает. Системы давно превысили порог сложности, доступный одному человеку, а стимулов снижать сложность особо нет. Что использование компьютеров, что программирование под них давно уже превратились в «запинывание», потому что «понимание» и «проектирование» и в голову не лезут, и жизни никакой на них не хватит.
Ну вот. Думаешь — ну, справимся поди как-нибудь. Раньше же как-то справлялись.
Ага, ага. Тут приходят ЛЛМ-ки. И умножают проблему на сто. Ладно, народ раньше не разбирался, но они хотя бы чувствовали укол стыда за это (чувствовали же, да? чувстовали?) А теперь вроде как получается, что и разбираться не нужно.
Мне серьезные, опытные программисты пишут на полном серьезе, что программировать мы скоро будем на английском языке, что не важно, что ты там умеешь, ЛЛМ-ка сама как-то там разберется, поэтому делать что-то потеряло всякий смысл. Все уже сделано, пора капитализировать. Ну-ну, посмотрю я на ЛЛМ-ку, которая перепишет ffmpeg на питон. Мы как-то стали забывать, что ЛЛМ это не магическая коробочка, которая может сделать что угодно, а переводчик с английского на питон (ну или какой-нибудь другой язык/стек), и вот этот вот стек должен уже существовать, она его волшебным образом не материализует.
В общем, мой поинт в том, что крайне невовремя появились ЛЛМ-ки. И так никто ничего не умеет, так сейчас они еще и рады не уметь.
У меня уже ходовая поговорка: «Компьютеры. Никто не знает, как они работают». Звучит смешно, но я говорю это буквально, не как метафору. Потому что каждый день, рутинно, по несколько раз происходит какая-то необъяснимая хрень. Файл не отсылается, созвон устанавливается без картинки, клавиатура не коннектится, нотификация не показывается.
И этому нет никакого объяснения. Реально никто не знает. Системы давно превысили порог сложности, доступный одному человеку, а стимулов снижать сложность особо нет. Что использование компьютеров, что программирование под них давно уже превратились в «запинывание», потому что «понимание» и «проектирование» и в голову не лезут, и жизни никакой на них не хватит.
Ну вот. Думаешь — ну, справимся поди как-нибудь. Раньше же как-то справлялись.
Ага, ага. Тут приходят ЛЛМ-ки. И умножают проблему на сто. Ладно, народ раньше не разбирался, но они хотя бы чувствовали укол стыда за это (чувствовали же, да? чувстовали?) А теперь вроде как получается, что и разбираться не нужно.
Мне серьезные, опытные программисты пишут на полном серьезе, что программировать мы скоро будем на английском языке, что не важно, что ты там умеешь, ЛЛМ-ка сама как-то там разберется, поэтому делать что-то потеряло всякий смысл. Все уже сделано, пора капитализировать. Ну-ну, посмотрю я на ЛЛМ-ку, которая перепишет ffmpeg на питон. Мы как-то стали забывать, что ЛЛМ это не магическая коробочка, которая может сделать что угодно, а переводчик с английского на питон (ну или какой-нибудь другой язык/стек), и вот этот вот стек должен уже существовать, она его волшебным образом не материализует.
В общем, мой поинт в том, что крайне невовремя появились ЛЛМ-ки. И так никто ничего не умеет, так сейчас они еще и рады не уметь.
❤183💯87👍65🌚14💩6😁3😢3🤡3👎2🍌2🎅1
  Самая загадочная для меня технология — SSE (server-sent events). Вот были вебсокеты. Формально это отдельный протокол, но прикидывается HTTP, чтобы обходить всякие прокси. Двухсторонний, эффективный до жути, бинарные данные поддерживает. Сказка, дар богов.
И люди такие посидели, покумекали и решили: а давайте его улучшим! Как? Какие с вебсокетами проблемы? Вроде никаких. Тогда давайте испортим! И сделали односторонний протокол (вместо двухстороннего), в котором разделитель двойной перевод строки (т.е. надо стримить и парсить пакеты, пока не найдешь паттерн, какого размера буфер выделять непонятно, пересылаемые строки надо ескейпить). Удобно! Очень. Медленно и сложно? Еще как!
Так придумали SSE. Но люди почему-то сходят по нему с ума. Я своими глазами видел, как люди переписывали уже существующие API с вебсокетов на SSE со словами «да нам не очень-то нужно в обратную сторону сообщения передавать». Ну не нужно и не нужно, но у вас уже есть реализация на вебсокетах, зачем переделывать-то...
Короче, сколько я ни читал про SSE, сколько ни сравнивал, сколько ни пытался понять, вебсокеты всяко лучше выходят. И придумали их раньше. И поддержка у них лучше. И эффективность. Так что SSE — абсолютная для меня загадка. Может люди слова «сокет» боятся?
И люди такие посидели, покумекали и решили: а давайте его улучшим! Как? Какие с вебсокетами проблемы? Вроде никаких. Тогда давайте испортим! И сделали односторонний протокол (вместо двухстороннего), в котором разделитель двойной перевод строки (т.е. надо стримить и парсить пакеты, пока не найдешь паттерн, какого размера буфер выделять непонятно, пересылаемые строки надо ескейпить). Удобно! Очень. Медленно и сложно? Еще как!
Так придумали SSE. Но люди почему-то сходят по нему с ума. Я своими глазами видел, как люди переписывали уже существующие API с вебсокетов на SSE со словами «да нам не очень-то нужно в обратную сторону сообщения передавать». Ну не нужно и не нужно, но у вас уже есть реализация на вебсокетах, зачем переделывать-то...
Короче, сколько я ни читал про SSE, сколько ни сравнивал, сколько ни пытался понять, вебсокеты всяко лучше выходят. И придумали их раньше. И поддержка у них лучше. И эффективность. Так что SSE — абсолютная для меня загадка. Может люди слова «сокет» боятся?
👍121😁47💯29❤12🤔9🤡9✍4🤯4💩4🤓1🎅1
  Смотрел тут на очередное веб-приложение, там в ряд — текстовое поле, две кнопки, выпадайка. Все примерно одного дизайна (серая однопиксельная рамка, белый фон) и примерно одного размера. Примерно, потому что не точно — очевидно они должны были быть одинаковыми, но не смогли.
Простейшее наблюдение, которое тут можно сделать — программа победила программиста. Инструмент стал настолько сложным, что его уже нельзя контролировать, или можно, но ценой чудовищных затрат, вот никто и не пытается.
Другое наблюдение — про эволюцию АПИ. Казалось бы, веб-технолгии должны были упростить жизнь разработчиков. Каждое изменение добавляло новый _простой_ способ что-то делать. И вот прошло 30 лет, мы прошли длинный путь маленьких инкрементальных изменений и оказались в точке, где делать простые вещи не просто, а наоборот, сложно.
Казалось бы, как это бы выглядело в идеальном случае? Пришел программист, сказал
Что же произошло вместо этого? У вычисления высоты появились правила. Нельзя теперь просто указать высоту, она вычисляется, с одной стороны, от размера шрифта снизу, а с другой от контейнера сверху. Еще бордер там добавится, маргин какой-нибудь схлопнется, ну вы поняли. Очень непрозрачные правила, а главное — их очень много. Причем каждое правило, когда добавляли, наверняка что-то упрощало. А теперь все вместе они стали просто непозноваемыми. Почему прямоугольник с заданной высотой с текстом отличается от прямоугольника с такой же высотой но без текста внутри? Поди разбери. Работает как-то и бог с ним.
Туда же эпидемия с центрированием. Раньше были шутки, что на вебе сложно вертикально центрировать div. Сейчас этот вопрос вроде бы порешали, div центрировать можно, а вот с текстом все еще проблемы. Опять же, потому что правила совершенно идиотские, никто не знает, как условный line-height работает. На весь интернет может быть одна статья про него, где человек разобрался, а остальные просто на глазок подгоняют, я уверен. И дизайнеры шрифтов, кстати, тут вообще не помогают.
Добавьте к этим идиотским правилам центрирования текста идиотскую моду на шрифты с иконками и вот мы в абсурдной ситуации, когда прямоугольник никто не может поставить ровно в другой прямоугольник.
Вы скажете, что я преувеличиваю, нагоняю драмы. По идее, да, в каждом конкретном случае можно сесть, разобраться и починить. Потенциально сделать нормально можно. Проблема в том, что трейдофф затраты/выгода сейчас сильно перевешен в сторону затрат, поэтому мало кто вообще пытается. Оно не должно было быть так сложно, алло! Простые вещи должны делаться просто.
Это все удивительная демонстрация, как на большом масштабе «умные» декларативные правила, которые должны помогать, скорее мешают, потому что их поведение сложно предсказать. И это не только веба касается, со SwiftUI та же беда — хотели сделать проще и высокоуровневее, а оказалось, что и неудобно, и ошибиться в разы легче, чем когда были простые и деревянные прямоугольники, которые ты ставил куда нужно.
Короче, сложных «умных» правил быть не должно. Нужно делать минимально необходимый минимум, но надежный, предсказуемый и познаваемый (т.е. должен в одну голову помещаться). Тогда это фундамент, на котором можно что-то строить. А так болото какое-то. Жидкий грунт.
Простейшее наблюдение, которое тут можно сделать — программа победила программиста. Инструмент стал настолько сложным, что его уже нельзя контролировать, или можно, но ценой чудовищных затрат, вот никто и не пытается.
Другое наблюдение — про эволюцию АПИ. Казалось бы, веб-технолгии должны были упростить жизнь разработчиков. Каждое изменение добавляло новый _простой_ способ что-то делать. И вот прошло 30 лет, мы прошли длинный путь маленьких инкрементальных изменений и оказались в точке, где делать простые вещи не просто, а наоборот, сложно.
Казалось бы, как это бы выглядело в идеальном случае? Пришел программист, сказал
height = 36px, ну может еще добавил, что текст надо по центру. И все. Работа сделана. Примерно так было в условном Дельфи, который до сих пор все вспоминают с теплотой. Секрет в том, что на этом и надо было бы остановиться. Но мы давно промчались мимо этой идеальной точки и теперь ее не видно даже в зеркале заднего вида.Что же произошло вместо этого? У вычисления высоты появились правила. Нельзя теперь просто указать высоту, она вычисляется, с одной стороны, от размера шрифта снизу, а с другой от контейнера сверху. Еще бордер там добавится, маргин какой-нибудь схлопнется, ну вы поняли. Очень непрозрачные правила, а главное — их очень много. Причем каждое правило, когда добавляли, наверняка что-то упрощало. А теперь все вместе они стали просто непозноваемыми. Почему прямоугольник с заданной высотой с текстом отличается от прямоугольника с такой же высотой но без текста внутри? Поди разбери. Работает как-то и бог с ним.
Туда же эпидемия с центрированием. Раньше были шутки, что на вебе сложно вертикально центрировать div. Сейчас этот вопрос вроде бы порешали, div центрировать можно, а вот с текстом все еще проблемы. Опять же, потому что правила совершенно идиотские, никто не знает, как условный line-height работает. На весь интернет может быть одна статья про него, где человек разобрался, а остальные просто на глазок подгоняют, я уверен. И дизайнеры шрифтов, кстати, тут вообще не помогают.
Добавьте к этим идиотским правилам центрирования текста идиотскую моду на шрифты с иконками и вот мы в абсурдной ситуации, когда прямоугольник никто не может поставить ровно в другой прямоугольник.
Вы скажете, что я преувеличиваю, нагоняю драмы. По идее, да, в каждом конкретном случае можно сесть, разобраться и починить. Потенциально сделать нормально можно. Проблема в том, что трейдофф затраты/выгода сейчас сильно перевешен в сторону затрат, поэтому мало кто вообще пытается. Оно не должно было быть так сложно, алло! Простые вещи должны делаться просто.
Это все удивительная демонстрация, как на большом масштабе «умные» декларативные правила, которые должны помогать, скорее мешают, потому что их поведение сложно предсказать. И это не только веба касается, со SwiftUI та же беда — хотели сделать проще и высокоуровневее, а оказалось, что и неудобно, и ошибиться в разы легче, чем когда были простые и деревянные прямоугольники, которые ты ставил куда нужно.
Короче, сложных «умных» правил быть не должно. Нужно делать минимально необходимый минимум, но надежный, предсказуемый и познаваемый (т.е. должен в одну голову помещаться). Тогда это фундамент, на котором можно что-то строить. А так болото какое-то. Жидкий грунт.
💯174👍52❤32🤡11❤🔥4😢4🎅4🗿3👎2🖕1🤓1
  Я тут фантазировал и подумал, что хочу от компьютера.
С одной стороны, системы ведения заметок меня совершенно не возбуждают. Что-то там записывать еще туда-сюда, я для этого по факту Телеграм использую, но всякое дрочево на кросс-ссылки это уже слишком. Абсолютно бестолковая идея, которая еще никого ни к чему полезному не привела.
С другой мне не очень нравится мир, в котором на каждый чих свое, уникальное как снежинка, приложение. Приложения держат в заложниках твои данные, предоставляют к ним часто не самый удобный интерфейс, но самое неприятное — многие приложения сводятся тупо к простейшей базе данных на одну табличку и какому-то несложному по ним селекту.
С третьей, я уже как-то писал, мне не нравится, что программировать сложно. Ты делаешь все самое интересное за 10% времени, а 90% тратишь на то, чтобы это оформить, завернуть, собрать и запустить.
Короче, я хочу систему программирования домашнего компьютера. В ней должны быть:
База данных. Локальная, понятно, и скорее всего какая-то документная, потому что сочинять схему каждый раз замаешься. Но с запросами — я хочу делать интересные выборки, агрегации и так далее.
К базе прилагается какой-то приятный просмотрщик/табличный редактор, чтобы я мог смотреть, где что лежит, как что устроено и что вообще бывает. Причем в базе будет все, включая внутренний стейт самого приложения. Полная открытость.
Редактор текста. Я понял, что хочу вот прям выдроченный до мелочей. Чтобы все четко, красиво, аккуратно, удобно, с продвинутыми фичами. Редактор много кто делает по остаточному принципу, и из-за этого мне не очень нравятся условные Apple Notes или Obsidian, а я хочу каждый раз кайфовать. Хорошие новости что его достаточно будет сделать один раз, и он будет одинаковый для всего.
Среда программирования. Я хочу, чтобы там можно было прям писать программки. Может это будет специальный тип документа. Понятно, что нужен легкий доступ к базе, REPL, никаких перезапусков. Язык пока неясно какой, но явно какой-то динамический. Если бы я искал успеха, то наверное Питон или Луа. Если для себя, то наверное Кложа.
Кстати, одним из языков может быть ИИ. Типа, ты описал какую-то задачу на английском, а потом дергаешь роботов чтобы они тебе ее делали, по кнопке или по расписанию.
Всякие удобности для программирования. Хочу, чтобы легко было показать нотификацию, например. Или настроить регулярные запуски по расписанию. Или подписаться на какие-то события. Или получить/отправить почту. Или в Телеграм написать. Или прочитать. Или вывести статус в менюбар. Или клики какие-то обработать. Все это должно быть МАКСИМАЛЬНО просто. На уровне «позвать один метод», не на уровне «проебаться с АПИшками полдня». Хочу в этом один раз разобраться и потом всю жизнь использовать.
Возможности строить вьюхи. То есть структурные данные у тебя есть, язык программирования есть, вот хочу «умные» страницы которые делают какие-то там запросы, как-то их обрабатывают и показывают тебе какие-то интересные цифры, типа среднюю продолжительность сна за месяц или сколько часов жизни ты потратил на телек или что-то типа того. Все, что мне придет в голову. В идеале это должно быть настолько просто, что от идеи до реализации должны проходить минуты, на кончиках пальцев.
Все вместе это такая персональная база данных для всего, в которой и структурированные данные, и заметки с картинками (как один из видов структурированных данных), и все это можно программировать. Причем программировать удобнее, чем обычные приложения, потому что вся инфраструктурная обвязка (база, редактор, среда исполнения, интеграции) уже сделаны, остается только ими воспользоваться.
Вот. Называться будет The Computer. Потому что это то, как персональное вычислительное устройство должно на мой взгляд работать. А не вот эти вот ваши пук-среньк, извините, ваш айпад не поддерживает арифметику, пожалуйста, поставьте нам пять звезд в апсторе.
С одной стороны, системы ведения заметок меня совершенно не возбуждают. Что-то там записывать еще туда-сюда, я для этого по факту Телеграм использую, но всякое дрочево на кросс-ссылки это уже слишком. Абсолютно бестолковая идея, которая еще никого ни к чему полезному не привела.
С другой мне не очень нравится мир, в котором на каждый чих свое, уникальное как снежинка, приложение. Приложения держат в заложниках твои данные, предоставляют к ним часто не самый удобный интерфейс, но самое неприятное — многие приложения сводятся тупо к простейшей базе данных на одну табличку и какому-то несложному по ним селекту.
С третьей, я уже как-то писал, мне не нравится, что программировать сложно. Ты делаешь все самое интересное за 10% времени, а 90% тратишь на то, чтобы это оформить, завернуть, собрать и запустить.
Короче, я хочу систему программирования домашнего компьютера. В ней должны быть:
База данных. Локальная, понятно, и скорее всего какая-то документная, потому что сочинять схему каждый раз замаешься. Но с запросами — я хочу делать интересные выборки, агрегации и так далее.
К базе прилагается какой-то приятный просмотрщик/табличный редактор, чтобы я мог смотреть, где что лежит, как что устроено и что вообще бывает. Причем в базе будет все, включая внутренний стейт самого приложения. Полная открытость.
Редактор текста. Я понял, что хочу вот прям выдроченный до мелочей. Чтобы все четко, красиво, аккуратно, удобно, с продвинутыми фичами. Редактор много кто делает по остаточному принципу, и из-за этого мне не очень нравятся условные Apple Notes или Obsidian, а я хочу каждый раз кайфовать. Хорошие новости что его достаточно будет сделать один раз, и он будет одинаковый для всего.
Среда программирования. Я хочу, чтобы там можно было прям писать программки. Может это будет специальный тип документа. Понятно, что нужен легкий доступ к базе, REPL, никаких перезапусков. Язык пока неясно какой, но явно какой-то динамический. Если бы я искал успеха, то наверное Питон или Луа. Если для себя, то наверное Кложа.
Кстати, одним из языков может быть ИИ. Типа, ты описал какую-то задачу на английском, а потом дергаешь роботов чтобы они тебе ее делали, по кнопке или по расписанию.
Всякие удобности для программирования. Хочу, чтобы легко было показать нотификацию, например. Или настроить регулярные запуски по расписанию. Или подписаться на какие-то события. Или получить/отправить почту. Или в Телеграм написать. Или прочитать. Или вывести статус в менюбар. Или клики какие-то обработать. Все это должно быть МАКСИМАЛЬНО просто. На уровне «позвать один метод», не на уровне «проебаться с АПИшками полдня». Хочу в этом один раз разобраться и потом всю жизнь использовать.
Возможности строить вьюхи. То есть структурные данные у тебя есть, язык программирования есть, вот хочу «умные» страницы которые делают какие-то там запросы, как-то их обрабатывают и показывают тебе какие-то интересные цифры, типа среднюю продолжительность сна за месяц или сколько часов жизни ты потратил на телек или что-то типа того. Все, что мне придет в голову. В идеале это должно быть настолько просто, что от идеи до реализации должны проходить минуты, на кончиках пальцев.
Все вместе это такая персональная база данных для всего, в которой и структурированные данные, и заметки с картинками (как один из видов структурированных данных), и все это можно программировать. Причем программировать удобнее, чем обычные приложения, потому что вся инфраструктурная обвязка (база, редактор, среда исполнения, интеграции) уже сделаны, остается только ими воспользоваться.
Вот. Называться будет The Computer. Потому что это то, как персональное вычислительное устройство должно на мой взгляд работать. А не вот эти вот ваши пук-среньк, извините, ваш айпад не поддерживает арифметику, пожалуйста, поставьте нам пять звезд в апсторе.
❤147🥴50👍39🤡18😁12🔥11💊11🤗4💯2🎅2😐1
  След, который я хочу оставить в культуре — восстановление оригинальной, смешной версии анекдота про «гусары, молчать!»
С ним, кажется, произошла обычная история — анекдот был смешной, но матершинный, он естественным образом адаптировался в безопасную версию, одомашился, так сказать. Такое часто происходит — поделиться хочется, но контекст/компания не позволяют.
Обычно в таких случаях мат заменяют на безопасный эвфемизм (хуй на хрен, пиздец на пипец, блядь на блин, ну вы поняли) так, что смысл почти не страдает. А тут безопасная версия как раз потеряла саму шутку. Было смешно, а стало... э? Где смеяться? Причем фраза именно из популярной версии вошла в язык, и это хорошая, полезная фраза. Обидно просто, что за этим всем потерялся хороший анекдот, в котором ее даже не было.
Короче. НЕсмешная, безопасная версия:
---
Пригласила как-то Наташа Ростова к себе в гости полк гусар. Поручик гусарам говорит:
— Господа гусары, хозяйка — дама утонченная, посему прошу в гостях площадными словами не выражаться и пошлостей не говорить!
Вечер, сидят за столом, висит гнетущая тишина. Наташа пытается разговорить гостей:
— Господа, представляете какой конфуз! Заказала для сегодняшнего вечера свечи, вставила их в люстру, во все подсвечники — и одна лишняя осталась! Куда ее вставить — ума не приложу...
Тут поручик вскакивает с места:
— Гусары, молчать!!!
---
А вот нормальная, которую я и хочу восстановить:
---
Пригласила как-то Наташа Ростова к себе в гости полк гусар. Поручик гусарам говорит:
— Господа гусары, хозяйка — дама утонченная, посему прошу в гостях площадными словами не выражаться и пошлостей не говорить!
Вечер, сидят за столом, висит гнетущая тишина. Наташа пытается разговорить гостей:
— Господа, представляете какой конфуз! Заказала для сегодняшнего вечера свечи, вставила их в люстру, во все подсвечники — и одна лишняя осталась! Куда ее вставить — ума не приложу...
Тут поручик вскакивает с места:
— Гусары! О пизде ни слова!
С ним, кажется, произошла обычная история — анекдот был смешной, но матершинный, он естественным образом адаптировался в безопасную версию, одомашился, так сказать. Такое часто происходит — поделиться хочется, но контекст/компания не позволяют.
Обычно в таких случаях мат заменяют на безопасный эвфемизм (хуй на хрен, пиздец на пипец, блядь на блин, ну вы поняли) так, что смысл почти не страдает. А тут безопасная версия как раз потеряла саму шутку. Было смешно, а стало... э? Где смеяться? Причем фраза именно из популярной версии вошла в язык, и это хорошая, полезная фраза. Обидно просто, что за этим всем потерялся хороший анекдот, в котором ее даже не было.
Короче. НЕсмешная, безопасная версия:
---
Пригласила как-то Наташа Ростова к себе в гости полк гусар. Поручик гусарам говорит:
— Господа гусары, хозяйка — дама утонченная, посему прошу в гостях площадными словами не выражаться и пошлостей не говорить!
Вечер, сидят за столом, висит гнетущая тишина. Наташа пытается разговорить гостей:
— Господа, представляете какой конфуз! Заказала для сегодняшнего вечера свечи, вставила их в люстру, во все подсвечники — и одна лишняя осталась! Куда ее вставить — ума не приложу...
Тут поручик вскакивает с места:
— Гусары, молчать!!!
---
А вот нормальная, которую я и хочу восстановить:
---
Пригласила как-то Наташа Ростова к себе в гости полк гусар. Поручик гусарам говорит:
— Господа гусары, хозяйка — дама утонченная, посему прошу в гостях площадными словами не выражаться и пошлостей не говорить!
Вечер, сидят за столом, висит гнетущая тишина. Наташа пытается разговорить гостей:
— Господа, представляете какой конфуз! Заказала для сегодняшнего вечера свечи, вставила их в люстру, во все подсвечники — и одна лишняя осталась! Куда ее вставить — ума не приложу...
Тут поручик вскакивает с места:
— Гусары! О пизде ни слова!
👍122😁75🔥69👏21💊19❤13👌8😍5🥰3🤯3🐳3
  Я знаю вы очень любите когда я тут жалуюсь на айфон, пользователям андройда это позволяет на короткое время забыть о своих собственных багах и позлорадствовать над чужими.
Короче, в айфоне когда-то была очень клевая функция: burst photos. Нажимаешь и держишь кнопку затвора, она фигачит серию фоток одна за другой, ты потом в специальном интерфейсе выбираешь, какая лучше получилась. Удобно для всяких быстрых событий, типа прыжков каких-то, или спорта там.
Ну вот. В какой-то момент менеджеры айфона решили, что им нужно повышение, и поменяли эту функцию на... видео! То есть сейчас если ты в режиме фото (фото, блин!) зажмешь затвор, он снимет видео! Зачем? Зачем в режиме фото кнопка вызова видео, если видео это отдельный режим и включается буквально соседней кнопкой?
Тогда я подумал, что «хм, может быть они настолько уверены в качестве своего видео что оно будет не хуже фоток и я точно так же смогу из него выбрать один кадр». Но нет, из видео (средствами айфона) вытащить один кадр никак нельзя. Понятно, что я сделаю это на компе, но блин, зачем было удобную функцию убирать и заменять ее функцией, которая и так есть и которую и так можно тривиально вызвать другим, давно устоявшимся способом.
Пошел еще чатгпт поспрашивать, как из видео кадр вытащить, так оно мне говорит: функция Burst осталась, надо потянуть (!) кнопку затвора влево. И тут я сломался.
Как меня задолбали эти невидимые функции! Что, жопа отвалится сделать блин кнопку с подписью? Почему мне нужно гуглить, как вызвать базовый функционал? И почему это всегда какой-то ебанутый жест типа «нажать, подержать, сплюнуть через плечо, потанцевать». Почему все время надо что-то куда-то двигать и откуда-то брать, где ничего нет и догадаться, что там что-то есть, никак нельзя? Что не так со старыми добрыми кнопками с подписями? Что это блядь за система ацтекской письменности, что мы тут, снепчат что ли делаем? Специально запутанный интерфейс, легенды об использовании которого передаются из уст в уста, потому что самому разобраться нереально?
В мои времена ты запускал новую программу, шел в меню и читал названия каждого пункта. Так ты узнавал все функции, которые умела программа. Магия! Во всем можно было разобраться самому! И не было никаких «а ты знаешь, что если зажать кнопку громкости и в этот момент порверуть айфон на бок...». Знаю конечно, в меню видел!
А сейчас Эпл даже если и делает явную видимую кнопку (ужас, да? Какое страшное преступление против минимализма), то и там вместо простых подписей типа «экспозиция», «фокус», «вспышка» дебильные минималистичные иконки типа «круг с полузатенением» или «три квадрата». Что такое три квадрата? А что такое три концетрических круга, два из которых сплошные, а третий пунктирный? Не знаете? Неужели не очевидно? Пахнете слабостью.
Никогда не думал, что можно сделать сложным фотораппарат. Оказывается, можно! Если ты компания, которая выпускает ПО для скромной ниши в полтора миллиарда пользователей.
Короче, в айфоне когда-то была очень клевая функция: burst photos. Нажимаешь и держишь кнопку затвора, она фигачит серию фоток одна за другой, ты потом в специальном интерфейсе выбираешь, какая лучше получилась. Удобно для всяких быстрых событий, типа прыжков каких-то, или спорта там.
Ну вот. В какой-то момент менеджеры айфона решили, что им нужно повышение, и поменяли эту функцию на... видео! То есть сейчас если ты в режиме фото (фото, блин!) зажмешь затвор, он снимет видео! Зачем? Зачем в режиме фото кнопка вызова видео, если видео это отдельный режим и включается буквально соседней кнопкой?
Тогда я подумал, что «хм, может быть они настолько уверены в качестве своего видео что оно будет не хуже фоток и я точно так же смогу из него выбрать один кадр». Но нет, из видео (средствами айфона) вытащить один кадр никак нельзя. Понятно, что я сделаю это на компе, но блин, зачем было удобную функцию убирать и заменять ее функцией, которая и так есть и которую и так можно тривиально вызвать другим, давно устоявшимся способом.
Пошел еще чатгпт поспрашивать, как из видео кадр вытащить, так оно мне говорит: функция Burst осталась, надо потянуть (!) кнопку затвора влево. И тут я сломался.
Как меня задолбали эти невидимые функции! Что, жопа отвалится сделать блин кнопку с подписью? Почему мне нужно гуглить, как вызвать базовый функционал? И почему это всегда какой-то ебанутый жест типа «нажать, подержать, сплюнуть через плечо, потанцевать». Почему все время надо что-то куда-то двигать и откуда-то брать, где ничего нет и догадаться, что там что-то есть, никак нельзя? Что не так со старыми добрыми кнопками с подписями? Что это блядь за система ацтекской письменности, что мы тут, снепчат что ли делаем? Специально запутанный интерфейс, легенды об использовании которого передаются из уст в уста, потому что самому разобраться нереально?
В мои времена ты запускал новую программу, шел в меню и читал названия каждого пункта. Так ты узнавал все функции, которые умела программа. Магия! Во всем можно было разобраться самому! И не было никаких «а ты знаешь, что если зажать кнопку громкости и в этот момент порверуть айфон на бок...». Знаю конечно, в меню видел!
А сейчас Эпл даже если и делает явную видимую кнопку (ужас, да? Какое страшное преступление против минимализма), то и там вместо простых подписей типа «экспозиция», «фокус», «вспышка» дебильные минималистичные иконки типа «круг с полузатенением» или «три квадрата». Что такое три квадрата? А что такое три концетрических круга, два из которых сплошные, а третий пунктирный? Не знаете? Неужели не очевидно? Пахнете слабостью.
Никогда не думал, что можно сделать сложным фотораппарат. Оказывается, можно! Если ты компания, которая выпускает ПО для скромной ниши в полтора миллиарда пользователей.
😁176💯128❤60🔥20👍15🤯9🤡7💊6🗿4🎅3😡1
  