Как ни пробовал, всё равно отвлекаюсь дома. В итоге вернулся в офис.
Еще, кстати, не понимаю все эти «подарки самому себе». Какой-то это вещизм, господа, когда человеку приятнее иметь при себе вещь чем ее денежный эквивалент, пусть эта вещь и сомнительно полезна (на что указывает то, что вы ее себе не купили не в качестве подарка).
Китайцам это сложно, диалекты + омонимы + сложно передаваемые через латиницу фонемы. А вот у японцем и вправду абсолютно упоротая письменность, латиница вполне естественно там ложится на язык, вместо этого используется, наверное, самая сложная письменность во всем мире.
Проблема в том, что современное чтение построено на восприятии слов целиком, а потому точная передача звуков, особенно в языках, где слова меняются (русский) или взаимодействуют с соседними словами (французский) только затрудняет распознавание этих отдельных элементов.
Кстати, если придерживаться фонетического принципа строго, в русском надо придумать эквивалент буквы для каждого мягкого звука и убрать мягкий знак как костыль. А в английском одних гласных около 20, не думаю, что им понравится алфавит из 45 где-то букв.
Конечно, приятно тешится своей элитарностью, но я вот видел уйму народа в роли программистов. С разными характерами, заморочками и тараканами.
Кстати говоря, по мне так в ИТ, учитывая прозрачные правила игры и высокую ЗП, рвутя очень и очень немногие. Большинство же сидят на своих низкооплачиваемых работах и как раз выражают мнение автора.
В Android Studio запрятано окно с возможностью выполнить код во время остановки программы – Evaluate Expression. После Xcode, где это одна из основ дебага, сперва непонятна где искать это окно.
Да, правила различны во время компиляции и выполнения.
Во время выполнения забывается тип дженерика, если он не важен в контексте значения энума.
Но это не такой type erasure как в Java, потому что если тип таки значим, так не выйдет.
Сведение кOptional<Never> не является особым поведением для View. Optional<Never> может принимать только значение nil. Соответственно, .none любого типа есть Optional<Never>, а .some любого типа не Optional<Never>.
Часто можно встретить мнение, что программисты уже не те…
Но почему тогда всякий раз, когда я вижу легаси код, я встречаю заковыристую неработающую иерархию классов, файлы по 4 тысячи строк кода, изменение глобального состояния из неожиданных мест, классы, отвечающие за все на свете.
А, ну да, надо ведь было за каждым байтом следить, на архитектуру уже времени не хватало.
Если бы дженерики были не нужны, стандартный массив не были бы дженериком неявным.
А так получается, что вшитому в язык типу можно то, что нельзя остальным.
Это и не нравится в подобных языках.
Мне кажется, такие проблемы более характерны для госконтор или очень крупных компаний «с историей». Как правило же я наблюдаю, что руководители на проектах имеют огромную квалификацию и трудятся намного больше работников (потому они и стали руководителями).
Не имел ввиду его полное отсутствие, скорее, почти полное. По-моему, ни одного нативного приложения даже нет в опенсорсе, хоть для примера бы сделали какую-нибудь Погоду.
Это не говоря уже о куче компонентов, которые используются в интерфейсе iOS годами, а потом появляются в списке фишек, добавленных в последней версии, которые ты не будешь использовать еще несколько лет.
Для большинства компаний создание опенсорса – больше проблема. За универсальность приходится платить временем, а разработчиков со стороны вычитывать и исправлять случайно занесенные баги.
А вот крупные компании действительно зачастую в этом недорабатывают.Особенно бесит отсутствие опенсорса от Apple и Samsung (стиль их оболочки можно было бы использовать для сторонних приложений на андроиде).
Да я же не против этих новшеств, просто я так понимаю, что если они не могут сохранить обратную совместимость, то каждый раз, добавляя новый компонент, они хардкодят его в UIKit, меняя предыдущие кода (иначе бы компонент мог бинарником идти вместе с софтом).
А хардкодить в своем же фреймворке для добавления таких вещей – не самый крутой архитектурный подход…
И вот имея кучу примеров реализации в виде сторонних библиотек и 100500 способов это сделать руками в UIKit, Apple должна была зашивать это в iOS 15 без обратной совместимости.
Зачем?
Удивлён, что это вызвало такую большую дискуссию. Всегда был уверен, что переход от N к N2 – ну никак не незначительная потеря производительности. И классики говорили все же про оптимизации, изменяющие константу возле big O.
А уж если ради того, чтобы убрать одну строку кода на такое идут – что ж, теперь я понимаю, почему так много плохих сайтов в Интернете.
Как ни пробовал, всё равно отвлекаюсь дома. В итоге вернулся в офис.
Еще, кстати, не понимаю все эти «подарки самому себе». Какой-то это вещизм, господа, когда человеку приятнее иметь при себе вещь чем ее денежный эквивалент, пусть эта вещь и сомнительно полезна (на что указывает то, что вы ее себе не купили не в качестве подарка).
Китайцам это сложно, диалекты + омонимы + сложно передаваемые через латиницу фонемы. А вот у японцем и вправду абсолютно упоротая письменность, латиница вполне естественно там ложится на язык, вместо этого используется, наверное, самая сложная письменность во всем мире.
Проблема в том, что современное чтение построено на восприятии слов целиком, а потому точная передача звуков, особенно в языках, где слова меняются (русский) или взаимодействуют с соседними словами (французский) только затрудняет распознавание этих отдельных элементов.
Кстати, если придерживаться фонетического принципа строго, в русском надо придумать эквивалент буквы для каждого мягкого звука и убрать мягкий знак как костыль. А в английском одних гласных около 20, не думаю, что им понравится алфавит из 45 где-то букв.
И на что же менять в современном русском Щ? На шшь?
Конечно, приятно тешится своей элитарностью, но я вот видел уйму народа в роли программистов. С разными характерами, заморочками и тараканами.
Кстати говоря, по мне так в ИТ, учитывая прозрачные правила игры и высокую ЗП, рвутя очень и очень немногие. Большинство же сидят на своих низкооплачиваемых работах и как раз выражают мнение автора.
В Android Studio запрятано окно с возможностью выполнить код во время остановки программы – Evaluate Expression. После Xcode, где это одна из основ дебага, сперва непонятна где искать это окно.
Да, правила различны во время компиляции и выполнения.
Во время выполнения забывается тип дженерика, если он не важен в контексте значения энума.
Но это не такой type erasure как в Java, потому что если тип таки значим, так не выйдет.
Сведение к
Optional<Never>
не является особым поведением для View.Optional<Never>
может принимать только значение nil. Соответственно, .none любого типа естьOptional<Never>
, а .some любого типа неOptional<Never>
.То, что опционал это View – очевидный костыль. В ResultBuilder’ах же есть встроенный способ обработки условий buildIf…
Вот вам и «начать все с чистого листа»…
Часто можно встретить мнение, что программисты уже не те…
Но почему тогда всякий раз, когда я вижу легаси код, я встречаю заковыристую неработающую иерархию классов, файлы по 4 тысячи строк кода, изменение глобального состояния из неожиданных мест, классы, отвечающие за все на свете.
А, ну да, надо ведь было за каждым байтом следить, на архитектуру уже времени не хватало.
Если бы дженерики были не нужны, стандартный массив не были бы дженериком неявным.
А так получается, что вшитому в язык типу можно то, что нельзя остальным.
Это и не нравится в подобных языках.
Мне кажется, такие проблемы более характерны для госконтор или очень крупных компаний «с историей». Как правило же я наблюдаю, что руководители на проектах имеют огромную квалификацию и трудятся намного больше работников (потому они и стали руководителями).
Не имел ввиду его полное отсутствие, скорее, почти полное. По-моему, ни одного нативного приложения даже нет в опенсорсе, хоть для примера бы сделали какую-нибудь Погоду.
Это не говоря уже о куче компонентов, которые используются в интерфейсе iOS годами, а потом появляются в списке фишек, добавленных в последней версии, которые ты не будешь использовать еще несколько лет.
Для большинства компаний создание опенсорса – больше проблема. За универсальность приходится платить временем, а разработчиков со стороны вычитывать и исправлять случайно занесенные баги.
А вот крупные компании действительно зачастую в этом недорабатывают.Особенно бесит отсутствие опенсорса от Apple и Samsung (стиль их оболочки можно было бы использовать для сторонних приложений на андроиде).
Да я же не против этих новшеств, просто я так понимаю, что если они не могут сохранить обратную совместимость, то каждый раз, добавляя новый компонент, они хардкодят его в UIKit, меняя предыдущие кода (иначе бы компонент мог бинарником идти вместе с софтом).
А хардкодить в своем же фреймворке для добавления таких вещей – не самый крутой архитектурный подход…
И вот имея кучу примеров реализации в виде сторонних библиотек и 100500 способов это сделать руками в UIKit, Apple должна была зашивать это в iOS 15 без обратной совместимости.
Зачем?
Rust – это пример такого в вакууме идеального и продуманного языка, который не хотят использовать из-за сложности.
Пойдет по пути Scala и Haskell.
Уникальные специалисты есть и набирают их по-своему, но логично, что описанный процесс массового набора не рассчитан на уникальных специалистов.
К сожалению, выверенная и понятная документация – редкость в наше время, хотя принципы ее составления вроде бы и очевидны.
Удивлён, что это вызвало такую большую дискуссию. Всегда был уверен, что переход от N к N2 – ну никак не незначительная потеря производительности. И классики говорили все же про оптимизации, изменяющие константу возле big O.
А уж если ради того, чтобы убрать одну строку кода на такое идут – что ж, теперь я понимаю, почему так много плохих сайтов в Интернете.