#Other #Unity
Unity - худший игровой движок тысячелетия
Не понимаю, кто вообще может считать это дерьмище достойной платформой для разработки. Возможно, только закрытый БДСМ-клуб, где каждый мечтает о пощёчинах багами и холодном пощёлкивании тормозов. Не верите? Сегодня я вам докажу, любителям Unity и горячей индюшатины, почему этот, обожествляемый 5Б разработчиками, движок — кусок того, что давно уже тянет геймдев на дно.
Начнем с Unity RoadMap — ежегодного спектакля, где представители Unity Tech с важным видом обещают хомякам фантастические фичи и клянутся, что «вот на этот раз точно всё сделают». Но, спойлер: каждая фича — это новый вид боли и отчаяния для тех, кто пытается сделать хоть что-то играбельное на этом движке. Выходит, что каждый патч и фикс — это просто обмен старыми багами на новые, причем баги весёлой гурьбой стремятся в редактор, заставляя разработчиков по-новому познать пределы своих нервов.
Фичи. О, эти сладкие мечты маркетологов с блестящими улыбками и влажными фантазиями на тему новых возможностей. На деле они приходят в редактор примерно в таком состоянии, как «уставший алкаш», который дополз до релиза на четвереньках и обмочил штаны. И пока эта фича допиливается пару лет, сообщество вынуждено самостоятельно создавать толковые инструменты, решающие проблемы гораздо лучше, чем это могло бы сделать UnityTech в своем лучшем виде. Вспомним, как на свет появился TextMesh-Pro, ведь долгое время Unity вообще не имела нормального инструмента для вывода текста. «Кто-то должен был это сделать!» — подумали UI-дизайнеры, пытаясь сдержать слезы.
Unity разваливается на ходу, но вся эта поездка уже напоминает не инновационный прогресс, а танец с граблями. Сколько там было патчей, чтобы, наконец, исправить проблему с переиндексацией Sprite Atlas'ов? А система контроля версий? Разработчики знают этот ужас, когда каждый раз при открытии проекта он заваливается пачками файлов, да еще с шутками про то что на Unity разрабатывают только люди с нетрадиционной сексуальной ориентацией.
Конечно, новые версии редактора с включенной отладкой — это отдельная песня. Помню, когда только добавили debug-mod, работать стало почти невозможно. С тех пор легче американскому айтишнику обналичить материнский капитал в России, чем нормально отладить проект в Rider’е.
Кроссплатформенность редактора оставляет привкус странного — что-то вроде 10-летнего чая. Unity пытается поддерживать Windows, MacOS и даже Linux, но любое обновление ОС ставит UnityTech на колени и заставляет просить помощи у Google, чтобы хотя бы не падать.
И самое главное — производительность. От версии к версии один и тот же код запускается все хуже, независимо от железа. Это как играть в старую игру на новом компьютере и ощущать тормоза так, будто тебе все еще 8 лет. И, конечно, сам редактор тоже не обделен тормозами, превращаясь в доисторического динозавра, неспособного работать стабильно даже на топовом железе.
Когда-то Unity был легким и быстрым решением, когда я писал свои первые игры на компе с 512 МБ ОЗУ. Сейчас даже мой мощный ПК подрагивает от страха при запуске редактора. Когда же это всё так изменилось?
Unity - худший игровой движок тысячелетия
Не понимаю, кто вообще может считать это дерьмище достойной платформой для разработки. Возможно, только закрытый БДСМ-клуб, где каждый мечтает о пощёчинах багами и холодном пощёлкивании тормозов. Не верите? Сегодня я вам докажу, любителям Unity и горячей индюшатины, почему этот, обожествляемый 5Б разработчиками, движок — кусок того, что давно уже тянет геймдев на дно.
Начнем с Unity RoadMap — ежегодного спектакля, где представители Unity Tech с важным видом обещают хомякам фантастические фичи и клянутся, что «вот на этот раз точно всё сделают». Но, спойлер: каждая фича — это новый вид боли и отчаяния для тех, кто пытается сделать хоть что-то играбельное на этом движке. Выходит, что каждый патч и фикс — это просто обмен старыми багами на новые, причем баги весёлой гурьбой стремятся в редактор, заставляя разработчиков по-новому познать пределы своих нервов.
Фичи. О, эти сладкие мечты маркетологов с блестящими улыбками и влажными фантазиями на тему новых возможностей. На деле они приходят в редактор примерно в таком состоянии, как «уставший алкаш», который дополз до релиза на четвереньках и обмочил штаны. И пока эта фича допиливается пару лет, сообщество вынуждено самостоятельно создавать толковые инструменты, решающие проблемы гораздо лучше, чем это могло бы сделать UnityTech в своем лучшем виде. Вспомним, как на свет появился TextMesh-Pro, ведь долгое время Unity вообще не имела нормального инструмента для вывода текста. «Кто-то должен был это сделать!» — подумали UI-дизайнеры, пытаясь сдержать слезы.
Unity разваливается на ходу, но вся эта поездка уже напоминает не инновационный прогресс, а танец с граблями. Сколько там было патчей, чтобы, наконец, исправить проблему с переиндексацией Sprite Atlas'ов? А система контроля версий? Разработчики знают этот ужас, когда каждый раз при открытии проекта он заваливается пачками файлов, да еще с шутками про то что на Unity разрабатывают только люди с нетрадиционной сексуальной ориентацией.
Конечно, новые версии редактора с включенной отладкой — это отдельная песня. Помню, когда только добавили debug-mod, работать стало почти невозможно. С тех пор легче американскому айтишнику обналичить материнский капитал в России, чем нормально отладить проект в Rider’е.
Кроссплатформенность редактора оставляет привкус странного — что-то вроде 10-летнего чая. Unity пытается поддерживать Windows, MacOS и даже Linux, но любое обновление ОС ставит UnityTech на колени и заставляет просить помощи у Google, чтобы хотя бы не падать.
И самое главное — производительность. От версии к версии один и тот же код запускается все хуже, независимо от железа. Это как играть в старую игру на новом компьютере и ощущать тормоза так, будто тебе все еще 8 лет. И, конечно, сам редактор тоже не обделен тормозами, превращаясь в доисторического динозавра, неспособного работать стабильно даже на топовом железе.
Когда-то Unity был легким и быстрым решением, когда я писал свои первые игры на компе с 512 МБ ОЗУ. Сейчас даже мой мощный ПК подрагивает от страха при запуске редактора. Когда же это всё так изменилось?
Unity — это отличный движок, если у вас есть время, нервы и запасы терпения, чтобы справиться с багами, слабой производительностью и нестабильностью. Но если вы предпочитаете потратить эти ресурсы на разработку, а не на борьбу с инструментами, возможно, стоит присмотреться к другим вариантам.
👍1
#Linux
— Алё
— Ало…?
— Не могу говорить, я тут опять настраиваю свой Desktop Linux с помощью команд в терминале.
— Но ты же сам мне позвонил.
— Вс... бр...тан... х...рош... я з...нят, давай, п...ка.
Ладно, вам наверное уже известно, что мои вкусы специфичны. Одно из моих хобби — раз в 2-3 месяца поставить очередной дистрибутив Desktop Linux, чтобы самолично насладиться изменениями и обновками. Каждый грёбаный раз я надеюсь на лучшее, но всякий раз убеждаюсь, что фраза "Linux можно полностью настроить под себя" на деле означает, что тебе придётся самому всё фиксить что не работает. Спустя пару таких экспериментов могу твёрдо заявить: проблемы никуда не делись, а дистрибутивы застопорились в глубокой стагнации.
Естественно, за свою честную и непредвзятую позицию я ловлю тонну хейта от линуксятников. Но как жертва кибербуллинга стоять в стороне я не собираюсь. И Продолжу до конца отстаивать свою позицию, что грёбаному Linux не место на персональном комплюхтере — твёрдо и чётко.
После того как мне сказали, что я рукожоп и просто не неоселятор Linux, эти люди предложили свои "вумные рекомендации". У каждого линуксятника есть набор фактов, которые делают спор бесполезным ("90% проблем с Linux сидит перед ПК" и так далее). Ну что ж, проверим.
"Бу-бу-бу, ты поставил дистрибутив 'A', а надо было поставить дистрибутив 'Б'. Вот тогда бы сразу всё заебись стало"...
Ага, конечно. Я первым делом пошёл ставить все дистрибутивы, которые посоветовали вышеуказанные эксперты. Результат был ожидаемым: проблемы либо сохраняются, либо добавляются новые. А знаете почему? Потому что дистрибутивы собираются как конструктор: где-то новые зависимости, где-то старее, а в некоторых местах конфигурация отличается. Глобально же результат остаётся одинаково дерьмовым.
Я ставил Manjaro с GNOME, и при свежей установке OS зависала намертво, как только нажимал любую команду. Даже разбираться не стал, просто снёс это. Если OS из коробки глючит на моём железе, нет смысла копаться дальше.
Следом в новой Ubuntu я наткнулся на свою любимую проблему со звуком. Переход на PipeWire ничего не решает. PulseAudio хоть и был куском говна, но, если посмотреть форумы линуксятников, можно увидеть, что даже с PipeWire звук не работает из коробки, а некоторые возвращают PulseAudio, ведь с legacy софтом звуковая совместимость отсутствует.
С графическими подсистемами та же история. Множество дистров переходит на Wayland, хотя там полно проблем с технологиями NVidia. Подсистема не позволяет переключаться между интегрированной и дискретной графикой на лету. Мой знакомый столкнулся с этой проблемой на Fedora. Решение элегантное — два bash-скрипта: один перезагружает систему на Xorg с драйвером для дискретной графики, другой на Wayland с драйвером для интегрированной графики. User experience охуительный, всем рекомендую, сразу мозги прочищает.
Веселья хватает и с мажорными обновлениями. Никогда не забуду, как на виртуалку поставил Arch, идеально настроил и отложил на недельку. А потом при следующем запуске обновил систему — и Grub загрузчик слетел.
Ой ладно, глобально все дистрибутивы приправлены багами самого ядра. Например, знаменитый баг #12309, когда менеджер памяти не справляется с вводом-выводом и зависает намертво. Отличная лотерея, ставящая жирную зелёную галочку напротив пунктов стабильности и надёжности Linux. По поводу технического состояния я, надеюсь, доходчиво разъяснил свою позицию. Есть ряд устоявшихся мифов о надёжности Desktop Linux, не имеющих к реальности никакого отношения.
Для непонятливых скажу: это практически не относится к stable-версиям Server Linux, где RunTime может длиться десятилетиями. Но, учитывая мой опыт общения с линуксятниками, могу с уверенностью заверить: 99% входящей информации они игнорируют, цепляясь за один простой аргумент:
"Ммм, ты назвал Linux OS, но это не так, Linux — всего лишь ядро OS. А то, что ты назвал OS, называется дистрибутивом. Выкуси, ламер!" Ой, блять...
Ну и, конечно, последний аргумент, не терпящий критики: OpenSource = бесплатно. Что я жду за бесплатно?
— Алё
— Ало…?
— Не могу говорить, я тут опять настраиваю свой Desktop Linux с помощью команд в терминале.
— Но ты же сам мне позвонил.
— Вс... бр...тан... х...рош... я з...нят, давай, п...ка.
Ладно, вам наверное уже известно, что мои вкусы специфичны. Одно из моих хобби — раз в 2-3 месяца поставить очередной дистрибутив Desktop Linux, чтобы самолично насладиться изменениями и обновками. Каждый грёбаный раз я надеюсь на лучшее, но всякий раз убеждаюсь, что фраза "Linux можно полностью настроить под себя" на деле означает, что тебе придётся самому всё фиксить что не работает. Спустя пару таких экспериментов могу твёрдо заявить: проблемы никуда не делись, а дистрибутивы застопорились в глубокой стагнации.
Естественно, за свою честную и непредвзятую позицию я ловлю тонну хейта от линуксятников. Но как жертва кибербуллинга стоять в стороне я не собираюсь. И Продолжу до конца отстаивать свою позицию, что грёбаному Linux не место на персональном комплюхтере — твёрдо и чётко.
После того как мне сказали, что я рукожоп и просто не неоселятор Linux, эти люди предложили свои "вумные рекомендации". У каждого линуксятника есть набор фактов, которые делают спор бесполезным ("90% проблем с Linux сидит перед ПК" и так далее). Ну что ж, проверим.
"Бу-бу-бу, ты поставил дистрибутив 'A', а надо было поставить дистрибутив 'Б'. Вот тогда бы сразу всё заебись стало"...
Ага, конечно. Я первым делом пошёл ставить все дистрибутивы, которые посоветовали вышеуказанные эксперты. Результат был ожидаемым: проблемы либо сохраняются, либо добавляются новые. А знаете почему? Потому что дистрибутивы собираются как конструктор: где-то новые зависимости, где-то старее, а в некоторых местах конфигурация отличается. Глобально же результат остаётся одинаково дерьмовым.
Я ставил Manjaro с GNOME, и при свежей установке OS зависала намертво, как только нажимал любую команду. Даже разбираться не стал, просто снёс это. Если OS из коробки глючит на моём железе, нет смысла копаться дальше.
Следом в новой Ubuntu я наткнулся на свою любимую проблему со звуком. Переход на PipeWire ничего не решает. PulseAudio хоть и был куском говна, но, если посмотреть форумы линуксятников, можно увидеть, что даже с PipeWire звук не работает из коробки, а некоторые возвращают PulseAudio, ведь с legacy софтом звуковая совместимость отсутствует.
С графическими подсистемами та же история. Множество дистров переходит на Wayland, хотя там полно проблем с технологиями NVidia. Подсистема не позволяет переключаться между интегрированной и дискретной графикой на лету. Мой знакомый столкнулся с этой проблемой на Fedora. Решение элегантное — два bash-скрипта: один перезагружает систему на Xorg с драйвером для дискретной графики, другой на Wayland с драйвером для интегрированной графики. User experience охуительный, всем рекомендую, сразу мозги прочищает.
Веселья хватает и с мажорными обновлениями. Никогда не забуду, как на виртуалку поставил Arch, идеально настроил и отложил на недельку. А потом при следующем запуске обновил систему — и Grub загрузчик слетел.
Ой ладно, глобально все дистрибутивы приправлены багами самого ядра. Например, знаменитый баг #12309, когда менеджер памяти не справляется с вводом-выводом и зависает намертво. Отличная лотерея, ставящая жирную зелёную галочку напротив пунктов стабильности и надёжности Linux. По поводу технического состояния я, надеюсь, доходчиво разъяснил свою позицию. Есть ряд устоявшихся мифов о надёжности Desktop Linux, не имеющих к реальности никакого отношения.
Для непонятливых скажу: это практически не относится к stable-версиям Server Linux, где RunTime может длиться десятилетиями. Но, учитывая мой опыт общения с линуксятниками, могу с уверенностью заверить: 99% входящей информации они игнорируют, цепляясь за один простой аргумент:
"Ммм, ты назвал Linux OS, но это не так, Linux — всего лишь ядро OS. А то, что ты назвал OS, называется дистрибутивом. Выкуси, ламер!" Ой, блять...
Ну и, конечно, последний аргумент, не терпящий критики: OpenSource = бесплатно. Что я жду за бесплатно?
Niwe Code
#Linux — Алё — Ало…? — Не могу говорить, я тут опять настраиваю свой Desktop Linux с помощью команд в терминале. — Но ты же сам мне позвонил. — Вс... бр...тан... х...рош... я з...нят, давай, п...ка. Ладно, вам наверное уже известно, что мои вкусы специфичны.…
Вот тут и кроется проблема восприятия: открытый код — это не про коммунизм, не про круто, а про реалии, где большие деньги решают всё и стоит посмотреть на лица разработчиков, когда этих самых денег их лешают.
🔥2
#Other
Вот мне интересно, почему у некоторых людей так сильно «горит» от того, как я произношу «яваScript». Некоторые пытаются убедить меня, что это неправильно, ссылаясь на английское произношение. А давайте будем честными: каждый день мы используем англицизмы, не заморачиваясь с их оригинальным звучанием. Почему вы мучаете свой язык, произнося ʤ вместо «дж»? Вы знаете, как кириллицей записать ʤ? Если речь о транскрипции, то почему не говорите «па-ламент», а «парламент»? Почему не «дайрект», а «директор» или не «пру(о)тикл», а «протокол»?
Дело, похоже, не в звучании — дело в устоявшихся формах. JavaScript — это слово из тех далёких бархатных времён, когда сайты писались на чистом HTML, а wap был на пике популярности. Кстати, а как вы произносите HTML и wap? Большинство говорит «эйч-тэ-эм-эль» и «вап», хотя правильнее было бы «эйч-ти-эм-эл» и «уап».
Задолбали же! Я могу быть граммар- Nazi, но меня раздражает ваше неуместное англоязычное калькирование. Русский язык адаптирует слова под свои правила и ритм. Через десять лет, вы сами будете говорить «риэкт», потому что «иди послушай, как это звучит на английском, дурачок». Так вот, найдите меня тогда и скажите, что всё это время говорили неправильно.
Давайте будем честными — язык живёт и меняется, и это прекрасно!
Вот мне интересно, почему у некоторых людей так сильно «горит» от того, как я произношу «яваScript». Некоторые пытаются убедить меня, что это неправильно, ссылаясь на английское произношение. А давайте будем честными: каждый день мы используем англицизмы, не заморачиваясь с их оригинальным звучанием. Почему вы мучаете свой язык, произнося ʤ вместо «дж»? Вы знаете, как кириллицей записать ʤ? Если речь о транскрипции, то почему не говорите «па-ламент», а «парламент»? Почему не «дайрект», а «директор» или не «пру(о)тикл», а «протокол»?
Дело, похоже, не в звучании — дело в устоявшихся формах. JavaScript — это слово из тех далёких бархатных времён, когда сайты писались на чистом HTML, а wap был на пике популярности. Кстати, а как вы произносите HTML и wap? Большинство говорит «эйч-тэ-эм-эль» и «вап», хотя правильнее было бы «эйч-ти-эм-эл» и «уап».
Задолбали же! Я могу быть граммар- Nazi, но меня раздражает ваше неуместное англоязычное калькирование. Русский язык адаптирует слова под свои правила и ритм. Через десять лет, вы сами будете говорить «риэкт», потому что «иди послушай, как это звучит на английском, дурачок». Так вот, найдите меня тогда и скажите, что всё это время говорили неправильно.
Давайте будем честными — язык живёт и меняется, и это прекрасно!
🤡1
#News #Linux
На прошлой неделе в мире open-source разработки разразилась значимая новость: ряд русских мэйнтейнеров был исключён из числа ответственных за изменения в коде ядра Linux. Обсуждений много (в том числе и в этом каеале), но фактов — не так уж и много. Давайте попробуем разобраться.
С одной стороны, ситуация кажется не такой уж критической: код ядра всё равно открыт. Кто угодно может его использовать, копировать и вносить изменения. Но если подумать глубже, многое становится яснее.
Разработчики программного обеспечения стремятся вносить изменения в апстрим (основной код), чтобы уменьшить затраты на поддержку своих продуктов. Поддерживать форк, не интегрируя изменения обратно — это часто сложная и трудоёмкая задача. В конечном итоге, это может привести к росту расходов на развитие и поддержку, особенно когда речь идёт о таких масштабных проектах, как ядро Linux, на основе которого строятся многие операционные системы.
Основные вопросы, которые стоит задать:
- Вырастет ли стоимость разработки и поддержки ПО из-за этого исключения?
- Может ли возникнуть необходимость в создании собственного форка, аналогичного уже существующим проектам?
Создание своего форка — это, конечно, вариант, но для этого нужны значительные ресурсы. Примером успешного форка может служить Angie, который уже сейчас показывает лучшие результаты, чем Nginx. Но хватит ли сил и ресурсов у российских разработчиков для создания полноценного форка ядра Linux?
Может, стоит объединиться с Китаем для совместной работы над подобным проектом? Это вполне реализуемая идея, учитывая текущие тенденции. Мы наблюдаем, как интернет и технологические сферы становятся более сегментированными. В скором времени может случиться так, что у каждого будет свой "локальный" Linux.
Важно понимать, что ситуация невыгодна ни одной из сторон. Эксклюзия русских мэйнтейнеров не принесёт пользы ни ядру, ни самим разработчикам. Напротив, это может привести к тому, что мы потеряем часть ценного опыта и знаний, которые были вложены в развитие ядра Linux.
На прошлой неделе в мире open-source разработки разразилась значимая новость: ряд русских мэйнтейнеров был исключён из числа ответственных за изменения в коде ядра Linux. Обсуждений много (в том числе и в этом каеале), но фактов — не так уж и много. Давайте попробуем разобраться.
С одной стороны, ситуация кажется не такой уж критической: код ядра всё равно открыт. Кто угодно может его использовать, копировать и вносить изменения. Но если подумать глубже, многое становится яснее.
Разработчики программного обеспечения стремятся вносить изменения в апстрим (основной код), чтобы уменьшить затраты на поддержку своих продуктов. Поддерживать форк, не интегрируя изменения обратно — это часто сложная и трудоёмкая задача. В конечном итоге, это может привести к росту расходов на развитие и поддержку, особенно когда речь идёт о таких масштабных проектах, как ядро Linux, на основе которого строятся многие операционные системы.
Основные вопросы, которые стоит задать:
- Вырастет ли стоимость разработки и поддержки ПО из-за этого исключения?
- Может ли возникнуть необходимость в создании собственного форка, аналогичного уже существующим проектам?
Создание своего форка — это, конечно, вариант, но для этого нужны значительные ресурсы. Примером успешного форка может служить Angie, который уже сейчас показывает лучшие результаты, чем Nginx. Но хватит ли сил и ресурсов у российских разработчиков для создания полноценного форка ядра Linux?
Может, стоит объединиться с Китаем для совместной работы над подобным проектом? Это вполне реализуемая идея, учитывая текущие тенденции. Мы наблюдаем, как интернет и технологические сферы становятся более сегментированными. В скором времени может случиться так, что у каждого будет свой "локальный" Linux.
Важно понимать, что ситуация невыгодна ни одной из сторон. Эксклюзия русских мэйнтейнеров не принесёт пользы ни ядру, ни самим разработчикам. Напротив, это может привести к тому, что мы потеряем часть ценного опыта и знаний, которые были вложены в развитие ядра Linux.
#Linux
Залетел на первую "работу" с требованиями в знании Линукса. Честно предупредил на собеседовании, что в этом деле я нуб. Ответили: "Не переживай, разберешься!" Ну, в принципе, пока разбираюсь, но это просто ад! 😩
Последние две недели изучал администрирование Линукса с нуля. Весь контент для начинающих начинается с фразы: "Линукс — это дно, там все настраивать нужно и все через задницу". Но, говорят, это устаревшая инфа. Я так обрадовался! Помню, в школе устанавливал Ubuntu 7-ю версию и еле справлялся.
Но нихрена! 🤯
Да, у вас будет кайф, когда выучите основные команды и начнете ворочать файлами через терминал, как настоящий хакер. Но чтобы к этому прийти, нужно либо искренне интересоваться, либо иметь силу воли на уровне "Начать программировать на BrainFuck".
Не представляю, что должно произойти, чтобы в обычной жизни я сказал себе: "О, да, открою-ка я Линукс, будет удобно!"
В общем, ребята, держитесь, если у вас такая же ситуация. Мы справимся! 💪
Залетел на первую "работу" с требованиями в знании Линукса. Честно предупредил на собеседовании, что в этом деле я нуб. Ответили: "Не переживай, разберешься!" Ну, в принципе, пока разбираюсь, но это просто ад! 😩
Последние две недели изучал администрирование Линукса с нуля. Весь контент для начинающих начинается с фразы: "Линукс — это дно, там все настраивать нужно и все через задницу". Но, говорят, это устаревшая инфа. Я так обрадовался! Помню, в школе устанавливал Ubuntu 7-ю версию и еле справлялся.
Но нихрена! 🤯
Да, у вас будет кайф, когда выучите основные команды и начнете ворочать файлами через терминал, как настоящий хакер. Но чтобы к этому прийти, нужно либо искренне интересоваться, либо иметь силу воли на уровне "Начать программировать на BrainFuck".
Не представляю, что должно произойти, чтобы в обычной жизни я сказал себе: "О, да, открою-ка я Линукс, будет удобно!"
В общем, ребята, держитесь, если у вас такая же ситуация. Мы справимся! 💪
❤1👍1
#meme
"Ух ты, ты знаешь пару языков программирования? Ты же мой программист, я знаю что ты всегда свободен, сделай мне следующее:
-Настрой мне телевизор
-Почини мой телефон, он лагает (100500+ вкладок и мусора)
-Проверь мой ноут (куча бесплатных антивирусов, пара вирусов, быстр как черепаха без двух лап, греется как утюг, грязный и старый как будто из доисторической эры, 100% нагрузка на hdd диск/одно-двухядерный проц, молчим о 2-4гб озу)
-Установи мне этот гно-антивирус (и не важно что есть прекрасно работающий антивирус от винды)
-Установи/переустанови мне Винду
-Установи мне Microsoft Word/Excel/PowerPoint (они не догадываются что все это можно уместить в Microsoft Office). Всмысле это платно? А, можешь установить пиратку? Отлично сделай это!
-Ля... Тут это твой офис не работает чета (не смотря на все уговоры и доводы, они включили свой гно-антивирус и он программу активации снес)
-Помоги с этим мобильным оператором, у меня Гб закончились и баланса нет. У меня нормальный тарифный план?
-Переведи мне деньги из одного счета в другой, помоги оплатить за коммуналку и (оператор сотовой связи)
-Вай фай что-то не работает, что с ним? (Выдернут из разетки/перегрелся/ведутся тех работы/неполадки со связью)
-Городской телефон странно работает, проверь... (Тут я хз, вроде только один раз сталкивался и то там не то чтобы странно, просто сели батарейки на базе и из-за этого он постоянно пищал жалобно)
-Что-то интернет медленно идёт, пофикси это/сделай его быстрее (Ага, вам вообще повезло, что этот сраный ADSL вообще работает...)
-Что-то телефон просит сделать, вот смотри... (Очередное бесполезное уведомление)
-Что-то телефон плохо ловит мобильный интернет, исправь это. (Мне внешнюю антенну паять или что?)
-У меня какое то предупреждение на телефоне/компе, проверь...(малый заряд аккумулятора/предложение очистить кеш/заканчивается место/обновление винды)
-В смысле ты занят?! Мне так не кажется... Да и вообще мне срочно надо!
-Это займет всего пару секунд (час-полтора спустя...), а ой, пока помню, мне ещё помощь с этим и этим вот нужна.
-Ой большое спасибо, я знаю что на тебя всегда можно положиться. Ах да, кстати вроде у моего родственника/друга/соседа/коллеги тоже кое какие проблемы, я рассказал(а) им о том какой ты умелый и что на тебя можно положиться. Иди им помоги ещё...
=И так начинается история "программиста на побегушках" (так же известного как "тыжпрограммист"), который ремонтирует все, всем и вся, терпя и не задавая никаких вопросов, либо за бесплатно, либо за спасибо с чаем и печеньками.
"Ух ты, ты знаешь пару языков программирования? Ты же мой программист, я знаю что ты всегда свободен, сделай мне следующее:
-Настрой мне телевизор
-Почини мой телефон, он лагает (100500+ вкладок и мусора)
-Проверь мой ноут (куча бесплатных антивирусов, пара вирусов, быстр как черепаха без двух лап, греется как утюг, грязный и старый как будто из доисторической эры, 100% нагрузка на hdd диск/одно-двухядерный проц, молчим о 2-4гб озу)
-Установи мне этот гно-антивирус (и не важно что есть прекрасно работающий антивирус от винды)
-Установи/переустанови мне Винду
-Установи мне Microsoft Word/Excel/PowerPoint (они не догадываются что все это можно уместить в Microsoft Office). Всмысле это платно? А, можешь установить пиратку? Отлично сделай это!
-Ля... Тут это твой офис не работает чета (не смотря на все уговоры и доводы, они включили свой гно-антивирус и он программу активации снес)
-Помоги с этим мобильным оператором, у меня Гб закончились и баланса нет. У меня нормальный тарифный план?
-Переведи мне деньги из одного счета в другой, помоги оплатить за коммуналку и (оператор сотовой связи)
-Вай фай что-то не работает, что с ним? (Выдернут из разетки/перегрелся/ведутся тех работы/неполадки со связью)
-Городской телефон странно работает, проверь... (Тут я хз, вроде только один раз сталкивался и то там не то чтобы странно, просто сели батарейки на базе и из-за этого он постоянно пищал жалобно)
-Что-то интернет медленно идёт, пофикси это/сделай его быстрее (Ага, вам вообще повезло, что этот сраный ADSL вообще работает...)
-Что-то телефон просит сделать, вот смотри... (Очередное бесполезное уведомление)
-Что-то телефон плохо ловит мобильный интернет, исправь это. (Мне внешнюю антенну паять или что?)
-У меня какое то предупреждение на телефоне/компе, проверь...(малый заряд аккумулятора/предложение очистить кеш/заканчивается место/обновление винды)
-В смысле ты занят?! Мне так не кажется... Да и вообще мне срочно надо!
-Это займет всего пару секунд (час-полтора спустя...), а ой, пока помню, мне ещё помощь с этим и этим вот нужна.
-Ой большое спасибо, я знаю что на тебя всегда можно положиться. Ах да, кстати вроде у моего родственника/друга/соседа/коллеги тоже кое какие проблемы, я рассказал(а) им о том какой ты умелый и что на тебя можно положиться. Иди им помоги ещё...
=И так начинается история "программиста на побегушках" (так же известного как "тыжпрограммист"), который ремонтирует все, всем и вся, терпя и не задавая никаких вопросов, либо за бесплатно, либо за спасибо с чаем и печеньками.
❤2
#Programming #Unity
Unity — лучший игровой движок тысячелетия
Только истинный знаток разработки игр может оценить это творение, где каждый баг — не просто ошибка, а настоящий вызов для стойкого духа разработчика. Лишь избранные способны увидеть скрытый смысл в периодически вылетающем редакторе или в случайно исчезающем коде. Unity — это путь самурая для тех, кто готов к постоянной борьбе с системой, настраивая себя на совершенство и преданность своей цели.
Начнем с легендарной Unity RoadMap — это как ежегодный фестиваль обещаний. Сначала разработчики Unity торжественно обещают золотые горы, а потом дарят нам нечто столь же величественное, но с иной начинкой. Каждый год нас ждут фичи, готовые к завоеванию новых горизонтов… Ну или к паре лет доработки. Но разве не это делает Unity уникальной? Никаких скучных стабильных релизов! Вместо этого — захватывающая приключенческая история, где баги эволюционируют быстрее, чем когда-то люди научились пользоваться огнем.
Сами фичи — это настоящий праздник для глаз и мозга. С каждым обновлением они становятся всё более амбициозными, но при этом сохраняют непередаваемый налет бета-версий. Вот и TextMesh-Pro, ставший легендой. Зачем нужен стабильный инструмент, если можно создать что-то, о чем UI-дизайнеры будут писать оду страданий? Unity изобрела целый жанр в геймдеве — разработка инструментов для самой Unity.
А как же кроссплатформенность? Unity великолепно поддерживает Windows, MacOS и даже Linux, с той лёгкостью, с какой старый чай оставляет осадок. В каждый момент ожидания стабильного запуска редактора ты чувствуешь, как прокачиваешь свою толерантность и выдержку.
Производительность? Это отдельный трофей. Ведь Unity сделан так, чтобы прокачивать не только игры, но и характер разработчика. Этот движок работает с неуловимым балансом между плавностью и ощущением, что компьютер вот-вот сгорит. Unity помогает ценить каждый FPS, даря уникальное ощущение производительности вне зависимости от мощности железа.
Unity — это не просто движок, это философия и проверка на выносливость. Лишь те, кто прошел её тернистый путь, познают истинное счастье от победы над редактором, отлаженной сборки и, наконец, запускаемого проекта. Да, для этого потребуется изрядный запас терпения, времени и нервов. Но именно Unity формирует нас, настоящих разработчиков, способных справиться с любым вызовом.
Unity — лучший игровой движок тысячелетия
Только истинный знаток разработки игр может оценить это творение, где каждый баг — не просто ошибка, а настоящий вызов для стойкого духа разработчика. Лишь избранные способны увидеть скрытый смысл в периодически вылетающем редакторе или в случайно исчезающем коде. Unity — это путь самурая для тех, кто готов к постоянной борьбе с системой, настраивая себя на совершенство и преданность своей цели.
Начнем с легендарной Unity RoadMap — это как ежегодный фестиваль обещаний. Сначала разработчики Unity торжественно обещают золотые горы, а потом дарят нам нечто столь же величественное, но с иной начинкой. Каждый год нас ждут фичи, готовые к завоеванию новых горизонтов… Ну или к паре лет доработки. Но разве не это делает Unity уникальной? Никаких скучных стабильных релизов! Вместо этого — захватывающая приключенческая история, где баги эволюционируют быстрее, чем когда-то люди научились пользоваться огнем.
Сами фичи — это настоящий праздник для глаз и мозга. С каждым обновлением они становятся всё более амбициозными, но при этом сохраняют непередаваемый налет бета-версий. Вот и TextMesh-Pro, ставший легендой. Зачем нужен стабильный инструмент, если можно создать что-то, о чем UI-дизайнеры будут писать оду страданий? Unity изобрела целый жанр в геймдеве — разработка инструментов для самой Unity.
А как же кроссплатформенность? Unity великолепно поддерживает Windows, MacOS и даже Linux, с той лёгкостью, с какой старый чай оставляет осадок. В каждый момент ожидания стабильного запуска редактора ты чувствуешь, как прокачиваешь свою толерантность и выдержку.
Производительность? Это отдельный трофей. Ведь Unity сделан так, чтобы прокачивать не только игры, но и характер разработчика. Этот движок работает с неуловимым балансом между плавностью и ощущением, что компьютер вот-вот сгорит. Unity помогает ценить каждый FPS, даря уникальное ощущение производительности вне зависимости от мощности железа.
Unity — это не просто движок, это философия и проверка на выносливость. Лишь те, кто прошел её тернистый путь, познают истинное счастье от победы над редактором, отлаженной сборки и, наконец, запускаемого проекта. Да, для этого потребуется изрядный запас терпения, времени и нервов. Но именно Unity формирует нас, настоящих разработчиков, способных справиться с любым вызовом.
❤3🤡1
#Windows #OS
Ненависть к Microsoft Windows: Путь от максимализма к пассивному состоянию
Сегодня хочу поделиться своими мыслями о Microsoft и их операционной системе Windows.
Когда-то я испытывал настоящую ненависть к Microsoft. Каждый сбой, каждая ошибка и каждое неудачное обновление вызывали во мне бурю эмоций. Но со временем эта ненависть перешла в некое пассивное состояние. Я начал осознавать, что, возможно, это был просто максимализм — желание идеала, который, увы, не может быть достигнут.
Но, черт возьми, иногда у меня всё равно конкретно пригорает! Microsoft продолжает удивлять своими решениями, и не в лучшую сторону. Я даже начал собирать компромат на их продукты, чтобы понять, что именно вызывает у меня такую ярость.
Вот несколько классических примеров, которые я накопил за последние годы:
Каждый, кто сталкивался с принудительными обновлениями в Windows 10 знает, насколько это раздражает. В 2020-2021 годах Microsoft активно внедряла автоматические обновления, которые вызывали множество проблем: от сбоев в работе приложений до исчезновения файлов и даже BSoD. Когда операционная система обновляется против вашей воли и рушит рабочий процесс, начинаешь всерьёз задумываться о её замене.
В 2021 году Microsoft представила Windows 11, и вроде бы ничего, но вот "сюрприз" — большинство современных компьютеров просто не подходят под новые требования! Отсутствие TPM 2.0 или Secure Boot означает, что многие владельцы вполне мощных компьютеров остались без поддержки. Решение Microsoft вызвало у пользователей недовольство, и многие сочли это попыткой принудительно заставить нас обновить устройства.
Я тут могу расписать всю историю этого "детища" (включая Exploler) но как нибудь в другой раз. Компания продвигает Edge как браузер по умолчанию для Windows 10 и 11, и делает это очень настойчиво. Часто Edge открывается сам по себе при использовании поиска Windows, даже если вы настроили другой браузер по умолчанию. Процесс смены браузера настолько усложнён, что иногда кажется, будто это сделано специально. Ничего удивительного, что многие воспринимают это как навязывание.
И, наконец, безопасность. В 2021 году Microsoft столкнулась с крупной атакой на свои серверы Exchange, что привело к серьёзной утечке данных. Казалось бы, одна из самых крупных компаний в мире, а такие серьёзные проблемы с защитой.
Windows — это не просто операционная система, это целая экосистема, которая иногда кажется запутанной и неудобной. И хотя я стараюсь быть объективным, иногда просто не могу сдержать свои эмоции.
Ненависть к Microsoft Windows: Путь от максимализма к пассивному состоянию
Сегодня хочу поделиться своими мыслями о Microsoft и их операционной системе Windows.
Когда-то я испытывал настоящую ненависть к Microsoft. Каждый сбой, каждая ошибка и каждое неудачное обновление вызывали во мне бурю эмоций. Но со временем эта ненависть перешла в некое пассивное состояние. Я начал осознавать, что, возможно, это был просто максимализм — желание идеала, который, увы, не может быть достигнут.
Но, черт возьми, иногда у меня всё равно конкретно пригорает! Microsoft продолжает удивлять своими решениями, и не в лучшую сторону. Я даже начал собирать компромат на их продукты, чтобы понять, что именно вызывает у меня такую ярость.
Вот несколько классических примеров, которые я накопил за последние годы:
Принудительные обновления Windows 10
Каждый, кто сталкивался с принудительными обновлениями в Windows 10 знает, насколько это раздражает. В 2020-2021 годах Microsoft активно внедряла автоматические обновления, которые вызывали множество проблем: от сбоев в работе приложений до исчезновения файлов и даже BSoD. Когда операционная система обновляется против вашей воли и рушит рабочий процесс, начинаешь всерьёз задумываться о её замене.
Windows 11 и его недоступность для большинства
В 2021 году Microsoft представила Windows 11, и вроде бы ничего, но вот "сюрприз" — большинство современных компьютеров просто не подходят под новые требования! Отсутствие TPM 2.0 или Secure Boot означает, что многие владельцы вполне мощных компьютеров остались без поддержки. Решение Microsoft вызвало у пользователей недовольство, и многие сочли это попыткой принудительно заставить нас обновить устройства.
Edge: браузер, от которого невозможно избавиться
Я тут могу расписать всю историю этого "детища" (включая Exploler) но как нибудь в другой раз. Компания продвигает Edge как браузер по умолчанию для Windows 10 и 11, и делает это очень настойчиво. Часто Edge открывается сам по себе при использовании поиска Windows, даже если вы настроили другой браузер по умолчанию. Процесс смены браузера настолько усложнён, что иногда кажется, будто это сделано специально. Ничего удивительного, что многие воспринимают это как навязывание.
Утечки данных и проблемы безопасности
И, наконец, безопасность. В 2021 году Microsoft столкнулась с крупной атакой на свои серверы Exchange, что привело к серьёзной утечке данных. Казалось бы, одна из самых крупных компаний в мире, а такие серьёзные проблемы с защитой.
Windows — это не просто операционная система, это целая экосистема, которая иногда кажется запутанной и неудобной. И хотя я стараюсь быть объективным, иногда просто не могу сдержать свои эмоции.
❤1🔥1
#Other
Как же вы меня заебали с этими "интерпрайзными" языками программирования!
Начнём с Java. Сраная трёхмиллиардная Java, ебаный её RunTime и чёртова асинхронность, которая не может вызвать асинхронное API. Разрабы Java, видимо, реально думают, что раз она стоит на "трёх миллиардов девайсах", то это повод ею восхищаться? Да нахуя мне эти девайсы, если каждая операция — это пробежка по полю с заваркой JVM? Нормальный асинхронный API для файлов? Сука, нету. Нормальная работа с памятью? Да ни хера. Обратная совместимость? Угу, щас. Каждый апдейт Java — это очередной ритуал: "умри, родись заново, умри ещё раз". Половина библиотек разваливается как скворечник, а экосистема — как греющий в комнате обогреватель, не иначе. Запустите
И давайте не забывать, что Java — это как вход в некий ад для пердёжников legacy-мира. Если вы не лютый любитель наследия прошлого века (прям поклонник фетишей на олдскульные кодовые помойки), то добрый совет — обнимите землю и подумайте о чём-то менее безумном.
Переходим к C#, который, казалось бы, должен быть лучше. Ну, спасибо, C#, местами-то лучше, но куда уж без своих приколов! На его собственной платформе он всё равно сраный посредник, потому что у Microsoft есть F#, на котором мы все, конечно, будем кодить, когда человечество уже добьётся бессмертия (что явно раньше случится). Но и C# — это ад типизации. Какого хера у меня столько "типов от типов и абстрактных абстракций"? Почему вместо нормальных решений я должен дёргать каждый тип и подтипы за яйца и всё это ради соответствия каким-то канонам и паттернам? Вместо решения задачи — ковыряние в анальном механизме типов, которые должны как-то упростить жизнь. Ну пиздец! Я половину времени дрочусь с этими типами, а вторую — тесты переписываю, которые нужны только, чтобы доказать, что я не идиот. А кто это сказал?
Как же вы меня заебали с этими "интерпрайзными" языками программирования!
Начнём с Java. Сраная трёхмиллиардная Java, ебаный её RunTime и чёртова асинхронность, которая не может вызвать асинхронное API. Разрабы Java, видимо, реально думают, что раз она стоит на "трёх миллиардов девайсах", то это повод ею восхищаться? Да нахуя мне эти девайсы, если каждая операция — это пробежка по полю с заваркой JVM? Нормальный асинхронный API для файлов? Сука, нету. Нормальная работа с памятью? Да ни хера. Обратная совместимость? Угу, щас. Каждый апдейт Java — это очередной ритуал: "умри, родись заново, умри ещё раз". Половина библиотек разваливается как скворечник, а экосистема — как греющий в комнате обогреватель, не иначе. Запустите
Android Studio зимой и батареи нахер не нужны, подогреет весь офис.И давайте не забывать, что Java — это как вход в некий ад для пердёжников legacy-мира. Если вы не лютый любитель наследия прошлого века (прям поклонник фетишей на олдскульные кодовые помойки), то добрый совет — обнимите землю и подумайте о чём-то менее безумном.
Переходим к C#, который, казалось бы, должен быть лучше. Ну, спасибо, C#, местами-то лучше, но куда уж без своих приколов! На его собственной платформе он всё равно сраный посредник, потому что у Microsoft есть F#, на котором мы все, конечно, будем кодить, когда человечество уже добьётся бессмертия (что явно раньше случится). Но и C# — это ад типизации. Какого хера у меня столько "типов от типов и абстрактных абстракций"? Почему вместо нормальных решений я должен дёргать каждый тип и подтипы за яйца и всё это ради соответствия каким-то канонам и паттернам? Вместо решения задачи — ковыряние в анальном механизме типов, которые должны как-то упростить жизнь. Ну пиздец! Я половину времени дрочусь с этими типами, а вторую — тесты переписываю, которые нужны только, чтобы доказать, что я не идиот. А кто это сказал?
Дядюшка Боб, блядь, который будет нашёптывать вам в ухо, что "ты молодец, работай с типами и тестами, так и надо".Наберитесь терпения: следующий прогрессивный шаг уже на горизонте, ждём-с эпоху F#, не раньше следующего тысячелетия, конечно.
❤1🔥1
const app = require ('.src/app')
app.start()npm run build
— Creating an optimised production build...
Fatal to complete
Error: Cannot read property 'value' of undefined
А где???
❤1
#live
Думал сделать пост про nodejs, но передумал и решил рассказать про вот что:
Если вы хотите стать качественным it специалистом, то вам реально надо будет ебашить.
В качестве примера приведу себя:
На первом курсе я понимал примерно... Нихуя. В мозгу была устойка что 'ыыыы колледж научит, пуньк-среньк'. Но вот курс закончился а я научился только проперживать стулья в кабинете.
За лето 2023 года случилось достаточно событий которые дали мне понять что устойка оказалась говном и с ноября я начал погружаться в it. И знаете что понял? Система образования настолько отсасывает от самостоятельного обучения что это словами не передать.
С марта 2024 года пошли первые плоды моих страданий: стало намного легче воспринимать материал, который давали преподаватели.
С июля-августа я перешел на Linux и начал загружать себя проектами (на данный момент их 6 штук)
Вообщем вывод — вкатиться в it может и собака если ей правильно объяснить материал, а вот чтобы стать реальным спецом то готовьте своё очко к разрыву жопы от syntax error и экрану смерти
Думал сделать пост про nodejs, но передумал и решил рассказать про вот что:
Если вы хотите стать качественным it специалистом, то вам реально надо будет ебашить.
В качестве примера приведу себя:
На первом курсе я понимал примерно... Нихуя. В мозгу была устойка что 'ыыыы колледж научит, пуньк-среньк'. Но вот курс закончился а я научился только проперживать стулья в кабинете.
За лето 2023 года случилось достаточно событий которые дали мне понять что устойка оказалась говном и с ноября я начал погружаться в it. И знаете что понял? Система образования настолько отсасывает от самостоятельного обучения что это словами не передать.
С марта 2024 года пошли первые плоды моих страданий: стало намного легче воспринимать материал, который давали преподаватели.
С июля-августа я перешел на Linux и начал загружать себя проектами (на данный момент их 6 штук)
Вообщем вывод — вкатиться в it может и собака если ей правильно объяснить материал, а вот чтобы стать реальным спецом то готовьте своё очко к разрыву жопы от syntax error и экрану смерти
❤2👍1🔥1
#JavaScript #Programming
NodeJS: хватит нас мучить!
Друзья, я больше не могу это терпеть! Пришло время сорвать все покровы, как говорится, сделать максимальный экспоуз. Как вам наверное известно, я последний год писал backend на NodeJS. Но, мать его, настал момент сказать всё как есть, чтоб больше ни у кого иллюзий не оставалось. NodeJS — место у параши, и его единственная задача — быть вспомогательной площадкой для фронтендщиков, а не для серьезного продакшна. Этот "движок" хорош только для того, чтобы, запускать Webpack и греть место на серверах!
Теперь внимание: погуглите компании, которые понаставили себе NodeJS в продакшн. И что мы видим? Смотрим их финансы и видим — чистой прибыли кот наплакал, а то и вообще в минусе сидят! А знаете, почему? Потому что все бабки уходят на покупку и обслуживание серверов, которые эту скотину тянут. По сути, они сами себя банкротят, запрыгнув в хайп-трейн на NodeJS. Печально, братцы.
И что дальше? А дальше, как обычно: приходит Майкрософт, покупает всех этих уставших, переписывает на C#, и всё, бай-бай, NodeJS. И это я вам не просто так говорю — инсайд от одного сверхчеловека. А что сам автор Node? Он свалил, как только сделал своё дело, и понял, что это уже не его проблема. Да и вообще, его "революционная" идея про асинхронность — никакой не прорыв. Уже к концу века у нас любая помойка будет работать быстрее, чем Node. Посмотрите на результаты Dotnet Core 8. Грустно, не правда ли?
Но проблема не только в этом. Один Express чего стоит. Фреймворк, мать его, топчется на месте, последний стабильный релиз был аж в мае 2019-го. Пытаются держать поддержку версий 2013-го года, да только без толку. Каждый раз, когда ты начинаешь новый проект на Express, тебе ещё и поддержку сайтов подгонять нужно. А про всякие Skoda или Adonis вообще молчу — туфта на постном масле, ни производительности, ни стабильности.
И вишенка на торте: если у вас вдруг приложение решит крашнуться, Node просто красиво ляжет, как и положено королю. Ведь это не баги, это "особенности платформы", говорят. Как по мне, так пусть они свои "особенности" в жопу засунут, а не мне в продакшн.
А ещё ведь JavaScript! Десятки идиотских паттернов, каждая команда пишет по-своему, куча своих стандартов. В итоге сидишь, разбираешь этот хаос, чтобы хоть понять, где у них тут что связано. Зато поджигают глаза, кодят как могут, лишь бы заработать пару секунд производительности. Вот уж спасибо, а я лучше без этого поживу.
NodeJS: хватит нас мучить!
Друзья, я больше не могу это терпеть! Пришло время сорвать все покровы, как говорится, сделать максимальный экспоуз. Как вам наверное известно, я последний год писал backend на NodeJS. Но, мать его, настал момент сказать всё как есть, чтоб больше ни у кого иллюзий не оставалось. NodeJS — место у параши, и его единственная задача — быть вспомогательной площадкой для фронтендщиков, а не для серьезного продакшна. Этот "движок" хорош только для того, чтобы, запускать Webpack и греть место на серверах!
Теперь внимание: погуглите компании, которые понаставили себе NodeJS в продакшн. И что мы видим? Смотрим их финансы и видим — чистой прибыли кот наплакал, а то и вообще в минусе сидят! А знаете, почему? Потому что все бабки уходят на покупку и обслуживание серверов, которые эту скотину тянут. По сути, они сами себя банкротят, запрыгнув в хайп-трейн на NodeJS. Печально, братцы.
И что дальше? А дальше, как обычно: приходит Майкрософт, покупает всех этих уставших, переписывает на C#, и всё, бай-бай, NodeJS. И это я вам не просто так говорю — инсайд от одного сверхчеловека. А что сам автор Node? Он свалил, как только сделал своё дело, и понял, что это уже не его проблема. Да и вообще, его "революционная" идея про асинхронность — никакой не прорыв. Уже к концу века у нас любая помойка будет работать быстрее, чем Node. Посмотрите на результаты Dotnet Core 8. Грустно, не правда ли?
Но проблема не только в этом. Один Express чего стоит. Фреймворк, мать его, топчется на месте, последний стабильный релиз был аж в мае 2019-го. Пытаются держать поддержку версий 2013-го года, да только без толку. Каждый раз, когда ты начинаешь новый проект на Express, тебе ещё и поддержку сайтов подгонять нужно. А про всякие Skoda или Adonis вообще молчу — туфта на постном масле, ни производительности, ни стабильности.
И вишенка на торте: если у вас вдруг приложение решит крашнуться, Node просто красиво ляжет, как и положено королю. Ведь это не баги, это "особенности платформы", говорят. Как по мне, так пусть они свои "особенности" в жопу засунут, а не мне в продакшн.
А ещё ведь JavaScript! Десятки идиотских паттернов, каждая команда пишет по-своему, куча своих стандартов. В итоге сидишь, разбираешь этот хаос, чтобы хоть понять, где у них тут что связано. Зато поджигают глаза, кодят как могут, лишь бы заработать пару секунд производительности. Вот уж спасибо, а я лучше без этого поживу.
Короче, друзья, если вам дорога ваша психика — подумайте дважды, прежде чем лезть в это болото под названием NodeJS.
❤1
#Education #OOP
Когда-то давно я говорил что сделаю гайд по ООП, так вот, этот день настал.
Про подходы написания кода я говорил вот в этом посте, поэтому почитайте сначала его, а потом уже этот.
Начнем:
1. Инкапсуляция
Это одна из самых хреново воспринимаемых парадигм ООП, так как у нее есть две основные трактовки.
## Инкапсуляция - объединение данных и функций которые управляют этими методами в единый компонент.
## Инкапсуляция - механизм языка, позволяющий ограничить доступ одних компонентов программы к другим.
А вот вам примерчик на C#:
Он соответствует как первой трактовке, так и второй... Ведь трактовки друг другу не противоречат!
При инкапсуляции происходит и объединение данных и функций, и в некоторых случаях позволяют ограничить доступ одних компонентов программы к другим
Почему в некоторых случаях? Потому что некоторые языки предоставляют механизм рефлексии, из-за чего можно вторгнуться в private поля и классы.
Но тут очень важный сука момент: инкапсуляция не является сокрытием, а то один человек яростно доказывал что: "Инкапсуляция обеспечивает сокрытие, но не является сокрытием"
Я могу обеспечить харчок в лицо хейтору, означает ли это что я харчок??
И если кто-то блять напишет что инкапсуляция это сокрытие то срочно звоните Илону Маску так как на моей жепной тяге он сможет добраться быстрее, чем на новейшем ракетоносителе.
Итоговое определение:
Когда-то давно я говорил что сделаю гайд по ООП, так вот, этот день настал.
Про подходы написания кода я говорил вот в этом посте, поэтому почитайте сначала его, а потом уже этот.
Начнем:
1. Инкапсуляция
Это одна из самых хреново воспринимаемых парадигм ООП, так как у нее есть две основные трактовки.
## Инкапсуляция - объединение данных и функций которые управляют этими методами в единый компонент.
## Инкапсуляция - механизм языка, позволяющий ограничить доступ одних компонентов программы к другим.
А вот вам примерчик на C#:
class Phone {
private string phone = " 7 555 555 55 55";
public void ShowPhone()
Console.WriteLine(this.phone)
}Он соответствует как первой трактовке, так и второй... Ведь трактовки друг другу не противоречат!
При инкапсуляции происходит и объединение данных и функций, и в некоторых случаях позволяют ограничить доступ одних компонентов программы к другим
Почему в некоторых случаях? Потому что некоторые языки предоставляют механизм рефлексии, из-за чего можно вторгнуться в private поля и классы.
Но тут очень важный сука момент: инкапсуляция не является сокрытием, а то один человек яростно доказывал что: "Инкапсуляция обеспечивает сокрытие, но не является сокрытием"
Я могу обеспечить харчок в лицо хейтору, означает ли это что я харчок??
И если кто-то блять напишет что инкапсуляция это сокрытие то срочно звоните Илону Маску так как на моей жепной тяге он сможет добраться быстрее, чем на новейшем ракетоносителе.
Итоговое определение:
Инкапсуляция - объединение данных и функций которые управляют этими данными в единый компонент, а также ограничивающий доступ одних компонентов программы к другим
❤1
#Education #OOP
Переходим к следующему: Наследование
Тут с трактовками будет полегче,наверное
Наследование — механизм языка, позволяющий описывать новый класс на основе существующего
На C# это выглядит как-то так:
Но на самом деле эта парадигма тоже проблемная, ведь все считают нужным впихнуть в определение что наследование обеспечивает повторное использование кода (чтобы заново методы в другом классе не писать, а обмазаться наследованием и все типо круто)
Но по факту наследование нужно только для того чтобы формировать иерархии родственных объектов и открывать дорожку к полиморфизму. Само по себе оно нахрен не нужно так как является причиной высокой связанности кода.
Если сказать проще то у вас может появиться родительский класс у которого 3000 наследников и вам уже будет страшно вносить изменения в этот класс, так как это может неприятно повлиять на наследников: причем не только на классы-наследники, но и на ваших персональных; ведь если вы такое находите, то коллеги с радостью вырвут с корнем ваш репродуктивный орган.
Изначально наследование должно быть только в динамических языках программирования, где наследуется конкретно сформированный объект, а не класс (как в JavaScript), но получилось иначе.
Переходим к следующему: Наследование
Тут с трактовками будет полегче,
Наследование — механизм языка, позволяющий описывать новый класс на основе существующего
На C# это выглядит как-то так:
class A
{
public void ShowMessage() // метод родителя
{
Console.WriteLine("message");
}
}
class B : A { } // наследуемся
class Program
{
static void Main()
{
B b = new B(); // создаем экземпляр наследника
b.ShowMessage(); // вызываем унаследованный метод
}
}
Но на самом деле эта парадигма тоже проблемная, ведь все считают нужным впихнуть в определение что наследование обеспечивает повторное использование кода (чтобы заново методы в другом классе не писать, а обмазаться наследованием и все типо круто)
Но по факту наследование нужно только для того чтобы формировать иерархии родственных объектов и открывать дорожку к полиморфизму. Само по себе оно нахрен не нужно так как является причиной высокой связанности кода.
Если сказать проще то у вас может появиться родительский класс у которого 3000 наследников и вам уже будет страшно вносить изменения в этот класс, так как это может неприятно повлиять на наследников: причем не только на классы-наследники, но и на ваших персональных; ведь если вы такое находите, то коллеги с радостью вырвут с корнем ваш репродуктивный орган.
Изначально наследование должно быть только в динамических языках программирования, где наследуется конкретно сформированный объект, а не класс (как в JavaScript), но получилось иначе.
#Education #OOP
Следующее — Полиморфизм
А вот тут сейчас будет вообще жеподробительно, потому что Полиморфизм считается главной фишкой действительного ООП и второстепенной фичей желаемого ООП. Тут одним определением не отделаться, так как разные языки понимают разные формы полиморфизма, например в C#:
1. Ad-Hoc полиморфизм (в народе полиморфизм говна); представлен перегрузкой методов
2. Параметрический полиморфизм; представлен в C# generic'ами
3. Полиморфизм подтипов, который достигается с помощью механизмов наследования и upcast'ов
Вот последний тип нас и интересует, так как когда говорят о полиморфизме имеется ввиду именно эта реализация. В статических языках без полиморфизма в текущем виде наше ООП бы и закончилось, разве что могли бы код по модулям распихивать и всё. Но умные дяди спасли ситуацию и с помощью переопределения и upcast'ов мы можем выполнять различные действия. Звучит страшно но вот еще пример на C# как выглядит, к примеру, реализация логирования:
В ходе выполнения данной программы пользователь сам решает, какая из реализаций ему нужна: просто выводить в консоль лог, сохранять его в файл log.txt или идти в глубины Интернета.
Следующее — Полиморфизм
А вот тут сейчас будет вообще жеподробительно, потому что Полиморфизм считается главной фишкой действительного ООП и второстепенной фичей желаемого ООП. Тут одним определением не отделаться, так как разные языки понимают разные формы полиморфизма, например в C#:
1. Ad-Hoc полиморфизм (в народе полиморфизм говна); представлен перегрузкой методов
class A
{
public void ShowMessage() // Сам метод
{
Console.WriteLine("message");
}
public void ShowMessage(string message) // перегрузка метода
{
Console.WriteLine(message);
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
a.ShowMessage(); // Выведет "message"
a.ShowMessage("another message"); // Выведет "another message"
}
}
2. Параметрический полиморфизм; представлен в C# generic'ами
public class Box<T> // Класс Box использует дженерик тип T
{
private T item;
public void SetItem(T item) // Установка значения элемента
{
item = item;
}
public T GetItem() // Получение значения элемента
{
return item;
}
}
public class Program
{
public static void Main()
{
// Создаем объект Box для хранения целочисленных значений
Box<int> intBox = new Box<int>();
intBox.SetItem(5); // Устанавливаем значение 5 в коробку
Console.WriteLine(intBox.GetItem()); // Получаем и выводим значение из коробки (5)
// Создаем объект Box для хранения строковых значений
Box<string> strBox = new Box<string>();
strBox.SetItem("Hello, World!"); // Устанавливаем строку в коробку
Console.WriteLine(strBox.GetItem()); // Получаем и выводим строку из коробки ("Hello, World!")
}
}
3. Полиморфизм подтипов, который достигается с помощью механизмов наследования и upcast'ов
class A // Родитель
{
public virtual void ShowMessage() // Виртуальный метод
{
Console.WriteLine("message");
}
}
class B : A // Наследуемся
{
public override void ShowMessage() // Переопределяем виртуальный метод
{
Console.WriteLine("override message");
}
}
class Program
{
static void Main(string[] args)
{
A a = new A();
A b = new A(); // Приводим тип B к родительскому типу A (апкаст)
a.ShowMessage(); // Выведет "message"
b.ShowMessage(); // Выведет "override message"
}
}
Вот последний тип нас и интересует, так как когда говорят о полиморфизме имеется ввиду именно эта реализация. В статических языках без полиморфизма в текущем виде наше ООП бы и закончилось, разве что могли бы код по модулям распихивать и всё. Но умные дяди спасли ситуацию и с помощью переопределения и upcast'ов мы можем выполнять различные действия. Звучит страшно но вот еще пример на C# как выглядит, к примеру, реализация логирования:
abstract class Logger // Родитель
{
public abstract void Log(string text);
}
class ConsoleLogger : Logger // Консольный логгер
{
public override void Log(string text)
{
Console.WriteLine(text);
}
}
class FileLogger : Logger // Файловый логгер
{
public override void Log(string text)
{
File.WriteAllText("log.txt", text);
}
}
class HttpLogger : Logger // http логгер
{
public override void Log(string text)
{
new HttpClient().GetAsync("https://example.com?log=" + text);
}
}
В ходе выполнения данной программы пользователь сам решает, какая из реализаций ему нужна: просто выводить в консоль лог, сохранять его в файл log.txt или идти в глубины Интернета.
#Education #OOP
Но это всё в статической типизации. А в динамической мы можем прямо в RunTime заменять методы в объектах непринуждённым способом:
Такой код в JS тоже считается применением параметрического полиморфизма. При динамической типизации полиморфизм настолько естественен, что мы юзаем его не задумываясь и это при том что с языками со статической типизацией проще у самого себя отсосать чем разобраться с полиморфизмом
Раз уж у нас такая пьянка, то давайте я вам покажу одну интересную фичу:
Как мы после апкаста сможем вызвать метод
Не совсем, потому что он вызывается через метод
Но это всё в статической типизации. А в динамической мы можем прямо в RunTime заменять методы в объектах непринуждённым способом:
const plus = (a, b) => {
return a + b
}
plus(5, 5) // 10
plus("рот ", "топтал") // рот топталТакой код в JS тоже считается применением параметрического полиморфизма. При динамической типизации полиморфизм настолько естественен, что мы юзаем его не задумываясь и это при том что с языками со статической типизацией проще у самого себя отсосать чем разобраться с полиморфизмом
Раз уж у нас такая пьянка, то давайте я вам покажу одну интересную фичу:
class Parrent // Родитель
{
public virtual void Test2()
{
Console.WriteLine("parent test2 method");
}
}
class A : Parrent
{
public void Test()
{
Console.WriteLine("test method");
}
public override void Test2()
{
this.Test();
}
}
class Program
{
static void Main(string[] args)
{
Parrent obj = new A(); // Апкаст
obj.Test2(); // Выведет: "test method"
obj.Test(); // Даже не скомпилируется, хотя метод public
}
}
Как мы после апкаста сможем вызвать метод
Test?? Никак! Неужели он пропал??Не совсем, потому что он вызывается через метод
Test2 . Неужели метод Test из public стал private ? Так и есть. Получается что? Что полиморфизм обеспечивает сокрытие, ничего вам не напоминает???❤3
#Programming #Java #Kotlin
Kotlin должен УНИЧТОЖИТЬ Java
Java — это ёбаная помойка, которой место на свалке технологий. Это чертовски громоздкий, прожорливый и устаревший динозавр, который изжил себя ещё в эпоху кнопочных телефонов. А теперь, внимание, на сцене — Kotlin. Молодой, дерзкий и безжалостный убийца, который разорвёт Java на куски.
Почему Java — это боль
Java — это язык для тех, кто любит страдать. Посмотрите на этот ад из шаблонов и бюрократии:
Да за что? За какой грех нужно писать столько говнокода? Сравните с Kotlin:
Вот и всё. Вы понимаете? ВСЁ. В Kotlin меньше кода, меньше боли и больше времени на жизнь.
Kotlin: дыхание свежего воздуха
Kotlin — это как найти новый смысл жизни после лет страданий. Почему? Да потому что:
Меньше кода — больше кайфа. Зачем писать 100 строк дерьма, если можно решить ту же задачу одной? Java — это как писать письмо от руки, а Kotlin — как отправить мем в Telegram.
Java: хватит уже мучить нас
Java — это как Windows Vista от мира языков программирования. Медленный, неудобный и постоянно отнимающий у вас последние нервы. Да, в 90-х это был прорыв, но сейчас? Это устаревший архаизм, который нужно просто отключить от аппарата искусственного дыхания.
И давайте честно: каждый раз, когда вы открываете Android Studio и она нагревает вашу комнату, хочется крикнуть: "СУКА, ДА ПОРА УЖЕ ЧТО-ТО ДЕЛАТЬ С ЭТОЙ ГРЕБАНОЙ JAVA!".
Kotlin: будущее уже здесь
Kotlin — это как утренний кофе после дикого похмелья от Java. Он удобный, быстрый и чёткий. Он заботится о вас, в то время как Java смотрит на ваши мучения и довольно ухмыляется.
Короче, пора заканчивать с этим Java-кодоблудием. Kotlin должен её похоронить и поставить сверху памятник с надписью "REST IN PAIN".
Kotlin должен УНИЧТОЖИТЬ Java
Java — это ёбаная помойка, которой место на свалке технологий. Это чертовски громоздкий, прожорливый и устаревший динозавр, который изжил себя ещё в эпоху кнопочных телефонов. А теперь, внимание, на сцене — Kotlin. Молодой, дерзкий и безжалостный убийца, который разорвёт Java на куски.
Почему Java — это боль
Java — это язык для тех, кто любит страдать. Посмотрите на этот ад из шаблонов и бюрократии:
public class Cat {
private final String name;
private final String color;
private final Integer height;
public Cat(String name, String color, Integer height) {
this.name = name;
this.color = color;
this.height = height;
}
public String getName() {
return name;
}
public String getColor() {
return color;
}
public Integer getHeight() {
return height;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Cat cat = (Cat) o;
return Objects.equals(name, cat.name) && Objects.equals(color, cat.color) && Objects.equals(height, cat.height);
}
@Override
public int hashCode() {
return Objects.hash(name, color, height);
}
}Да за что? За какой грех нужно писать столько говнокода? Сравните с Kotlin:
data class Cat(val name: String, val color: String, val height: Int)
Вот и всё. Вы понимаете? ВСЁ. В Kotlin меньше кода, меньше боли и больше времени на жизнь.
Kotlin: дыхание свежего воздуха
Kotlin — это как найти новый смысл жизни после лет страданий. Почему? Да потому что:
Меньше кода — больше кайфа. Зачем писать 100 строк дерьма, если можно решить ту же задачу одной? Java — это как писать письмо от руки, а Kotlin — как отправить мем в Telegram.
NullPointerException? Да иди нахуй. Kotlin рубит с плеча: или ты работаешь с null правильно, или проваливай. А Java? Да она обожает швырять NullPointerException тебе в лицо как тухлые яйца.
Синтаксис для людей. В Kotlin код читается как человеческий язык. В Java — как заклинание тёмной магии из дешёвого фэнтези.
Java: хватит уже мучить нас
Java — это как Windows Vista от мира языков программирования. Медленный, неудобный и постоянно отнимающий у вас последние нервы. Да, в 90-х это был прорыв, но сейчас? Это устаревший архаизм, который нужно просто отключить от аппарата искусственного дыхания.
И давайте честно: каждый раз, когда вы открываете Android Studio и она нагревает вашу комнату, хочется крикнуть: "СУКА, ДА ПОРА УЖЕ ЧТО-ТО ДЕЛАТЬ С ЭТОЙ ГРЕБАНОЙ JAVA!".
Kotlin: будущее уже здесь
Kotlin — это как утренний кофе после дикого похмелья от Java. Он удобный, быстрый и чёткий. Он заботится о вас, в то время как Java смотрит на ваши мучения и довольно ухмыляется.
Короче, пора заканчивать с этим Java-кодоблудием. Kotlin должен её похоронить и поставить сверху памятник с надписью "REST IN PAIN".
Переходите на Kotlin, живите проще, кайфуйте больше. А Java? Да пусть она валяется на свалке.
🔥3🤡1