Писал в блог ответ на статью автора, весь его пример разваливается как только мы попытаемся посчитать треугольник по трём сторонам, а не стороне и высоте.
Да, идея - "взять кусок проблемного кода и оптимизировать" - это, конечно, хорошо, но делать это надо уже на рабочей системе, когда понятно где завтыки и что проблема именно в них. Я бы предположил, что гораздо скорее мы уткнёмся в поблемы "как грузить фиугры и куда сохранять результаты", чем в то, что площадь фиугр считается слишком медленно.
Наглядная демонстрация почему программисты вместо того что бы стать чем-то вроде масонов, держащих мир за глотку, все больше и больше становятся чем-то вроде сантехников, крутящих типовые гайки типовыми инструментами. Может и получающими пока ещё высокую зарплату, но уже будучи абсолютно заменимыми без каких-либо потерь и сожалений.
Выступил менеджер, поставил проблему, нарисовал пути решения, показал графики, расписал процесс. Ворвался программист, заорал что-то невразумительное, потряс каким то мистером Сиай Сиди, всех обосрал, ничего вразумительного не прибавил. Когда он свалил все культурные люди выдохнули, и продолжили обсуждать цвета графика для нового дашборда.
Я ещё со школы запомнил и способен написать сортировку слиянием под любой язык, регулярно это делаю в качестве упражнения. Но мне интересно - что это у вас за любимые языки (и платформы) такие, что на них нет стандартных реализаций того же квиксорта?
Видел запросы на нашей молотилке форм с 25 джоинами в одном запросе. Выкинуть ничего, конечно же, нельзя. Писать такое через JDBC, конечно, можно, но не очень-то весело.
А так да, хибернейт сложный, его надо учить, используюмую БД тоже надо учить, вообще много чего надо учить. К сожалению, без этого никуда, такая профессия. Если попробовать выкинуть хибернейт и начать делать своё решение, то рано или поздно так же к самопальному хибернейту и вернетесь — и не факт что получится лучше.
Очень интересно, что со всех сторон раздаются крики и призывы «переписать всё на Раст», финансируемый гуглом, как раз в то самое время, когда гугл выкатывает свою новую ОС… написанную на Си. Гуглу можно, но вы там, давайте, перепишите себе линуксы свои на расте, и пакеты заменяйте, и вообще займите там себя чем-то, главное — не мешайте большим дядям на рынок выходить.
Понятно, что хоть Си хоть плюсы позволяют наделать кучу дырок, но ещё существуют статические анализаторы, best practices, опытные спецы и уже существующая отлаженная за десятилетия кодовая база. При этом никакой раст не защитит от «случайно» допущенной уязвимости, которую пропихнёт опенсорсный контрибьютер ДжонСмит1984, который на самом деле — отдел хакеров из спецслужб. Наоборот, под тотальной суматохой переписывания всего и вся на «новый безопасный язык» сделать это будет только проще.
Ладно, что это я. Раст сам по себе — язык как язык, а вот тупому нагнетанию паники и фанатизма при защите какого-то одного решения, которое магическим образом должно будет поправить вообще все проблемы в мире — я считаю — на этом сайте не место.
Да знаю, у нас точно так же получилось - решили, что выгоднее прибить вбивалку данных к интерфейсу, чем пытаться сделать хоть какое-то подобие API. Просто теперь вместо старой легаси-системы, которую сложно переписать, есть старая легаси-система, которую сложно переписать и куча роботов, завязанных на неизменность этой самой легаси-системы, от чего в любой релиз стало выходить ещё сложнее.
Сколько лет развития технологий, форматов API, открытых стандартов и всего вот этого, а в итоге мы приходим к тому, что самый "простой" для бизнеса способ перекачать данные из эксельки в веб - это написать робота, который будет натурально кликать веб форму за нас и ломаться с каждым редизайном интерфейса. Прогресс!
Я вообще на территории РФ не жил, и гражданином никогда не был, не надо на меня ваши ярлыки вешать, пожалуйста. Но, как и любой другой человек, я могу вбить элементарный запрос в гугл и узнать, что русских в стране 81%, в то время как татар 4%, а бурятов, извиняюсь, всего 0,34%.
Теперь к вам два вопроса. Почему всероссийский ресурс не может использовать в изображениях свою основную целевую аудиторию? И в чем именно выражаются «проблемы» того, что не будет абсолютно, на 100% подходящей картинки?
А расизм здесь где? Надо рисовать уродцев серого цвета с крошечными головами, огромными руками и зелёными волосами — «ЧТО БЫ НИКОГО НЕ ОСКОРБИТЬ!!!»?
Как раз вполне адекватное требование и напоминание дизайнерам, что они не в ФААНГ графику рисуют, а на территорию РФ и что нужно придерживаться целевой аудитории.
Большинство из нас слышали мантру «Напиши раз, развертывай везде», которую популяризовали сторонники байткода Java, но Wasm не является просто разновидностью JVM или .NET CLR.
Во-первых, байткод Java по факту не портативен, и разные JVM могут выполнять его совершенно по-своему, исключая возможность переноса. Фреймворк .NET тоже заявляет о портативности, хотя и JVM, и .NET CLR, на мой взгляд, слишком перегружены инструкциями, чтобы уверенно обеспечивать такую возможность. При этом многие из их инструкций буквально нарушают необходимые для портативности условия. К примеру, и JVM, и .NET предоставляют доступ к операционной системе, что уже создает проблемы с переносом, а также вносит риски для безопасности, о чем я расскажу ниже.
Про то, что «JVM могут выполнять по разному» — это ложь, до тех пор, пока автор не предоставит доказательств обратного. Я по памяти могу вспомнить только пример, где Оракловская JVM корректно работает с виндоусовским керберосом, а опенсорсная — нет, но сомневаюсь что такое будет проблемой для большинства пользователей.
Вообще, смешно — убили java applet'ы в браузере, вырезали JVM-ку, «потому что ненадёжно!», что бы в итоге к тому же самому и вернуться. Ах, да! Сейчас она не перегружена инструкциями и не даёт доступ к системе. Потом, внезапно, окажется что существующих команд недостаточно, начнут добавлять, выкатят масштабное дополнение для более прямого доступа к системным ресурсам, а в итоге, внезапно, окажется, что у нас очередной комбайн, изучать который молодые программисты не захотят и от которого надо будет избавляться. Задолбало…
У меня появилась идея сделать пет-подождёт с красивым названием, проверил на namecheap - свободно, стандартная цена около 10 евро. Начал проект, поковырялся, что-то даже собрал, решил брать. Проверяю - доменное имя стоит уже 9000 евро (!!!) и комментарий о том, что более удачные имена они сами выкупают и берегут для бизнеса. Мрази, конечно, эти регистраторы...
Да, в защиту автора — остальная статья написана интересно, понятно что мошенники тоже идут в ногу с прогрессом и пользуются более современными средствами, но посмотреть на детективную работу с помощью гугла на примере конкретных случаев было действительно интересно.
Очень порадовал наезд автора на Инну в банке. Подумать только, вы сообщили дежурному оператору информацию, которая явно выбивается из их привычних скриптов, а вас за это не чмокнули в лобик и не похвалили! Вот что она могла сделать? Заблокировать карты? Позвонить каждому «Здравствуйте, вам звонят из службы безопасности банка, пожалуйста не бросайте трубку, о нет, опять!» (Хотя если эти люди попали в пирамиду, то, может, и тут бы выслушали...)
Информацию получили, информацию передали дальше. Заявка будет гулять по отделам, перенаправляясь от одного дежурного стрелочника на другого («Нет, это не проблема с железом, попробуйте отдел рисования корпоративных рекламок, они, вроде, что-то знали»), дойдёт до нужного отдела, там решат что делать — и делать ли что, составят текст, прогонят через юристов, и попробуют предупредить пользователей, что лучше не ввязываться в пирамиды, но если и ввязываться — то теперь можно очень удобно оформить дополнительную страховку на кредит который вы возьмёте что бы вкатиться в пирамиду. В остальном — банк ничего сделать не может, и уж точно ничего не может сделать дежурный оператор, который сделал ровно то, что и мог — создал заявку и перенаправил её нужным специалистам.
Я нагуглил сайт FVWM, взял первые две из трёх картинок которые там были представлены на главной странице.
Я даже не уверен, есть ли смысл пытаться что-то доказать кому-то, наверное напишу под спойлером. Если вам нравится FVMW и вы не хотите растраиваться или влезать в холивар, то открывать его не надо.
Скрытый текст
Спасибо за ссылку на скриншоты, они иллюстрируют проблему даже лучше: практически все представленные там примеры способны вызвать фонтанирование кровью из глаз у практически любого человека с хоть сколько-нибудь развитым чувством прекрасного. Пользоваться этим могут только программисты-красноглазики, у которых есть время сидеть и ковырять конфиги, пересобирая систему «под себя». Как хобби — почему бы и нет, у людей бывают и худшие увлечения, тем более что «эффект Икеи» помогает поверить что вот это вот — это отличный результат, гораздо лучший чем в айосе или винде.
Только вот для всех остальных — дизайнеров, экономистов, писателей, бизнесменов, мамочек и прочих, прочих пользователей только и остаётся что выбирать что-то из того, что им продают корпорации. Сам я в линуксе какое-то время пытался разобраться с xmonad и i3, после чего плюнул, накатил стандартный гном и забыл о проблеме. Мне не всё нравится, но в те два часа свободного времени, которые я могу для себя выкроить каждый день мне хочется заниматься чем-то, что поможет мне повысить качество жизни. Умение настраивать специфичные оконные менеджеры с количеством пользователей, которое может вместиться в два байта в этот список не входит.
Справедливости ради, некоторые команды действительно могут быть удобны, если тыкаешься по своему же копмьютеру и ищешь что-то в папках или файлах. Можно жаловаться, что они херят юникс-вей, но как по мне - юникс-вей херят 60 флагов на команде ls которые невозможно вспомнить без шпаргалки, и это я ещё не начал вспоминать tar.
Да, половину современных CI/CD систем можно заменить хорошим админом и набором скриптов на баше, но люди всё-равно выбирают почему-то поставить дженкинс и в графическом интерфейсе кликать кнопочки. Так и тут. Для автоматизации процесса лучше брать "старые" юникс команды, но средний пользователь сможем собрать из них пайплайн только по ответам на stackoverflow, и не факт что полученный франкенштейновский монстр будет работать нормально.
Проблема, как и всегда, что чем больше будет таких альтернатив, тем труднее будет сделать хоть какой-то выбор, тем больше сообщество будет размазано между проектами, тем хуже и менее надёжно будет работать каждый проект.
В результате всё идет к тому, что останется "Линукс от РедХат", появится "Линукс от Майкрософт" и будет небольшая выгребная ямка "Линукса для энтузиастов", куда ни один нормальный человек не сунется.
У некоторых моих коллег какое-то нездоровое стремление смигрировать с Оракла на Постгрес, хотя Ораклом занимаются отдельная команда ДБА, платить за лицензии надо не нам, а бизнесу, тестовых стендов для любых игр и экспериментов — хватает более чем, а всё-равно «давайте перепишем, давайте перепишем». Что характерно — какие плюсы это может принести никто объяснить не может, а вот какие минусы могут вылезти в процессе — вот уже целая статья про потенциальные проблемы.
Так потому и в стайлгайдах и в рекомендациях разработчикам пишут (и даже Идея это подсвечивает), что не надо возвращать Optional или принимать его в параметрах. По возможности, конечно. Если ожидаете что вам где-то может вернуться null или быть передан в параметрах — оборачиваете вызов в Optional, работаете с ним. Уверены, что такого не случится — работайте как работалось. Порой выглядит лучше чем код!.. белок!.. истеричек!!!
Именно так и делается с банками. По всей Европе европейские банки попадали на огромные штрафы, директора слетали со своих позиций, а всё потому, что «друзья друзей приятелей Путина отмывали деньги через подставных лиц через ваши бынки, а вы это не проконтролировали». Американские банки даже в Европе почему-то не попали под такие саннции — видимо, проверяли клиентов гораздо лучше. Сейчас поэтому эта KYC повсюду и началась, за ними уже маячат белые и черные списки людей, с которыми можно работать, а так же обязательства отчитываться о всех своих поставщиках — вдруг кто неправильный, или недостаточно «зелёный»?
Писал в блог ответ на статью автора, весь его пример разваливается как только мы попытаемся посчитать треугольник по трём сторонам, а не стороне и высоте.
Да, идея - "взять кусок проблемного кода и оптимизировать" - это, конечно, хорошо, но делать это надо уже на рабочей системе, когда понятно где завтыки и что проблема именно в них. Я бы предположил, что гораздо скорее мы уткнёмся в поблемы "как грузить фиугры и куда сохранять результаты", чем в то, что площадь фиугр считается слишком медленно.
Наглядная демонстрация почему программисты вместо того что бы стать чем-то вроде масонов, держащих мир за глотку, все больше и больше становятся чем-то вроде сантехников, крутящих типовые гайки типовыми инструментами. Может и получающими пока ещё высокую зарплату, но уже будучи абсолютно заменимыми без каких-либо потерь и сожалений.
Выступил менеджер, поставил проблему, нарисовал пути решения, показал графики, расписал процесс. Ворвался программист, заорал что-то невразумительное, потряс каким то мистером Сиай Сиди, всех обосрал, ничего вразумительного не прибавил. Когда он свалил все культурные люди выдохнули, и продолжили обсуждать цвета графика для нового дашборда.
Я ещё со школы запомнил и способен написать сортировку слиянием под любой язык, регулярно это делаю в качестве упражнения. Но мне интересно - что это у вас за любимые языки (и платформы) такие, что на них нет стандартных реализаций того же квиксорта?
Лучший совет: "если у вас нет связей и/или богатых родственников, то просто учитесь, не надо воспринимать стартапы всерьёз"
А так да, хибернейт сложный, его надо учить, используюмую БД тоже надо учить, вообще много чего надо учить. К сожалению, без этого никуда, такая профессия. Если попробовать выкинуть хибернейт и начать делать своё решение, то рано или поздно так же к самопальному хибернейту и вернетесь — и не факт что получится лучше.
Понятно, что хоть Си хоть плюсы позволяют наделать кучу дырок, но ещё существуют статические анализаторы, best practices, опытные спецы и уже существующая отлаженная за десятилетия кодовая база. При этом никакой раст не защитит от «случайно» допущенной уязвимости, которую пропихнёт опенсорсный контрибьютер ДжонСмит1984, который на самом деле — отдел хакеров из спецслужб. Наоборот, под тотальной суматохой переписывания всего и вся на «новый безопасный язык» сделать это будет только проще.
Ладно, что это я. Раст сам по себе — язык как язык, а вот тупому нагнетанию паники и фанатизма при защите какого-то одного решения, которое магическим образом должно будет поправить вообще все проблемы в мире — я считаю — на этом сайте не место.
Да знаю, у нас точно так же получилось - решили, что выгоднее прибить вбивалку данных к интерфейсу, чем пытаться сделать хоть какое-то подобие API. Просто теперь вместо старой легаси-системы, которую сложно переписать, есть старая легаси-система, которую сложно переписать и куча роботов, завязанных на неизменность этой самой легаси-системы, от чего в любой релиз стало выходить ещё сложнее.
Сколько лет развития технологий, форматов API, открытых стандартов и всего вот этого, а в итоге мы приходим к тому, что самый "простой" для бизнеса способ перекачать данные из эксельки в веб - это написать робота, который будет натурально кликать веб форму за нас и ломаться с каждым редизайном интерфейса. Прогресс!
Теперь к вам два вопроса. Почему всероссийский ресурс не может использовать в изображениях свою основную целевую аудиторию? И в чем именно выражаются «проблемы» того, что не будет абсолютно, на 100% подходящей картинки?
Как раз вполне адекватное требование и напоминание дизайнерам, что они не в ФААНГ графику рисуют, а на территорию РФ и что нужно придерживаться целевой аудитории.
Про то, что «JVM могут выполнять по разному» — это ложь, до тех пор, пока автор не предоставит доказательств обратного. Я по памяти могу вспомнить только пример, где Оракловская JVM корректно работает с виндоусовским керберосом, а опенсорсная — нет, но сомневаюсь что такое будет проблемой для большинства пользователей.
Вообще, смешно — убили java applet'ы в браузере, вырезали JVM-ку, «потому что ненадёжно!», что бы в итоге к тому же самому и вернуться. Ах, да! Сейчас она не перегружена инструкциями и не даёт доступ к системе. Потом, внезапно, окажется что существующих команд недостаточно, начнут добавлять, выкатят масштабное дополнение для более прямого доступа к системным ресурсам, а в итоге, внезапно, окажется, что у нас очередной комбайн, изучать который молодые программисты не захотят и от которого надо будет избавляться. Задолбало…
У меня появилась идея сделать пет-подождёт с красивым названием, проверил на namecheap - свободно, стандартная цена около 10 евро. Начал проект, поковырялся, что-то даже собрал, решил брать. Проверяю - доменное имя стоит уже 9000 евро (!!!) и комментарий о том, что более удачные имена они сами выкупают и берегут для бизнеса. Мрази, конечно, эти регистраторы...
Информацию получили, информацию передали дальше. Заявка будет гулять по отделам, перенаправляясь от одного дежурного стрелочника на другого («Нет, это не проблема с железом, попробуйте отдел рисования корпоративных рекламок, они, вроде, что-то знали»), дойдёт до нужного отдела, там решат что делать — и делать ли что, составят текст, прогонят через юристов, и попробуют предупредить пользователей, что лучше не ввязываться в пирамиды, но если и ввязываться — то теперь можно очень удобно оформить дополнительную страховку на кредит который вы возьмёте что бы вкатиться в пирамиду. В остальном — банк ничего сделать не может, и уж точно ничего не может сделать дежурный оператор, который сделал ровно то, что и мог — создал заявку и перенаправил её нужным специалистам.
Я даже не уверен, есть ли смысл пытаться что-то доказать кому-то, наверное напишу под спойлером. Если вам нравится FVMW и вы не хотите растраиваться или влезать в холивар, то открывать его не надо.
Только вот для всех остальных — дизайнеров, экономистов, писателей, бизнесменов, мамочек и прочих, прочих пользователей только и остаётся что выбирать что-то из того, что им продают корпорации. Сам я в линуксе какое-то время пытался разобраться с xmonad и i3, после чего плюнул, накатил стандартный гном и забыл о проблеме. Мне не всё нравится, но в те два часа свободного времени, которые я могу для себя выкроить каждый день мне хочется заниматься чем-то, что поможет мне повысить качество жизни. Умение настраивать специфичные оконные менеджеры с количеством пользователей, которое может вместиться в два байта в этот список не входит.
Справедливости ради, некоторые команды действительно могут быть удобны, если тыкаешься по своему же копмьютеру и ищешь что-то в папках или файлах. Можно жаловаться, что они херят юникс-вей, но как по мне - юникс-вей херят 60 флагов на команде ls которые невозможно вспомнить без шпаргалки, и это я ещё не начал вспоминать tar.
Да, половину современных CI/CD систем можно заменить хорошим админом и набором скриптов на баше, но люди всё-равно выбирают почему-то поставить дженкинс и в графическом интерфейсе кликать кнопочки. Так и тут. Для автоматизации процесса лучше брать "старые" юникс команды, но средний пользователь сможем собрать из них пайплайн только по ответам на stackoverflow, и не факт что полученный франкенштейновский монстр будет работать нормально.
Проблема, как и всегда, что чем больше будет таких альтернатив, тем труднее будет сделать хоть какой-то выбор, тем больше сообщество будет размазано между проектами, тем хуже и менее надёжно будет работать каждый проект.
В результате всё идет к тому, что останется "Линукс от РедХат", появится "Линукс от Майкрософт" и будет небольшая выгребная ямка "Линукса для энтузиастов", куда ни один нормальный человек не сунется.
У некоторых моих коллег какое-то нездоровое стремление смигрировать с Оракла на Постгрес, хотя Ораклом занимаются отдельная команда ДБА, платить за лицензии надо не нам, а бизнесу, тестовых стендов для любых игр и экспериментов — хватает более чем, а всё-равно «давайте перепишем, давайте перепишем». Что характерно — какие плюсы это может принести никто объяснить не может, а вот какие минусы могут вылезти в процессе — вот уже целая статья про потенциальные проблемы.