Как написали выше, пифагоровы тройки — не очень удачный пример. Вообще же вы подняли старую проблему push vs pull iteration. push-iteration, которая на коллбэках, делается проще — но гораздо хуже ведёт себя в композиции.
Да ладно вам. Винду точно так же плющит и таращит. У меня по работе ноут с UHD экраном и монитор FullHD. При отключении-подключении постоянно были проблемы с поехавшими системными (!) элементами управления. Пока я принудительно не поставил везде масштаб 100% и скейлинг через принудительно заданное разрешение.
Примеры:
Выпадающая панелька трея на внешнем мониторе распухала после его подключения, как будто была на встроенном экране
У ряда приложений менюбар и строка заголовка рандомно меняли размер шрифта и свой собственный размер.
Вишенка на торте — для приведения всего в порядок МС предлагает логаут-логин. Т.е. корректно перезапустить композитор или чего у них там они не могут.
Я извиняюсь если вопрос покажется некорректным. Но мне правда интересно. Вы бы стали писать на Golang если бы за ним не стоял Гугл? И что произойдёт если гипотетически Гугл скажет "голанг неудачен, пилим всё на тайпскрипт"?
Озвученная вами проблема — извечная проблема курицы и яйца. Никто не хочет писать на новом языке т.к. на нём не пишут толстые корпорации — которые на нём не пишут т.к. пишет мало кто, goto 1. Почти гарантирую, что если бы С++ был создан сейчас в текущем виде, он бы помер не родившись — но его держат мегатонны легаси.
Проблема в том, что в ответ на почти любые претензии о косяках или явном примитивизме получаешь ответ "Ты ничего не понимаешь, малыш! Так надо!". Помню как на вопрос почему вообще допустили такой косяк как non-nil nil interfaces, я получил ответ именно в таком стиле, с жонглированием значения термина "указатель". Ссылку, к сожалению, уже не найду. Ответ был не от Пайка если что.
Там таки есть вполне валидные замечания. Для меня лично — переиспользование структур и поля в трэйтах, в качестве требований. Первую проблему можно было бы решить как в Go — alias член автоматом торчит из структуры всеми своими трейтами. Вторая ЕМНИП решена в Scala — но не в близких к системным языках. Могу конечно ошибаться.
Моё скромное мнение — серьёзный продакшен GUI подался в web или electron. Там уже не ролляет, на чём писать бизнес-логику. А старые крупные проекты просто не имеют желания шевелиться куда-то.
Мне кажется, тут идёт вопрос разграничения между "клиентским" и "библиотечным" кодом. Названия условные. "Клиентский код" — условно тот, который решает вашу задачу. "Библиотечный" — набор базовых строительных кирпичиков. Так вот. Односвязный список, граф и т.п. для меня — как раз такие кирпичики. И при их реализации вы будете использовать техники, которые в нормальном коде не будете. К примеру unsafe. Который не является Exterminatus Incoming, а всего лишь возможностью обойти некоторые ограничения — если вы знаете что делаете. Вы пишете в основном на Java, поэтому просто для справки — в С++, к примеру, unsafe у вас по факту везде.
Это всего лишь перенос ручной конфигурации в другое место. Сравните с CMake target_include_directories. Вы задаёте "публичные" и "приватные" пути у самого таргета. Далее, при подключении этого таргета как зависимости все его публичные include paths, а также include paths от всех его публичных зависимостей (в т.ч. транзитивных) автоматом попадают в ваш зависимый таргет. Таким же образом это работает для libraries, definitions etc.
Наследуемые include пути добавили? Чтобы не прописывать в зависимом проекте include paths зависимостей руками. Или для полноценной работы по-прежнему нужен CMake?
Поддержка CMake по-прежнему требует Tools for Linux? Или эту странную зависимость (при этом неявную) всё-таки убрали?
Не знаю насчёт SJW, но на npmjs.org (если вы о нём) хотя бы вменяемые переходы цвета. Белый-голубой-синий-голубой-белый. А не малиновый-зелёный-чёрный-канареечный...
Новый дизайн откровенно ужасен. Такое впечатление, что авторов покусали бешеные маркетоиды, ментально доминируемые инвесторами, уж извините за прямоту.
Как написали выше, пифагоровы тройки — не очень удачный пример. Вообще же вы подняли старую проблему push vs pull iteration. push-iteration, которая на коллбэках, делается проще — но гораздо хуже ведёт себя в композиции.
Да ладно вам. Винду точно так же плющит и таращит. У меня по работе ноут с UHD экраном и монитор FullHD. При отключении-подключении постоянно были проблемы с поехавшими системными (!) элементами управления. Пока я принудительно не поставил везде масштаб 100% и скейлинг через принудительно заданное разрешение.
Примеры:
Вишенка на торте — для приведения всего в порядок МС предлагает логаут-логин. Т.е. корректно перезапустить композитор или чего у них там они не могут.
А как насчёт идеи срезать лишние компоненты и прекратить держать пользователей за идиотов?
Самая большая неоднозначность — парадигма полностью ручного ресурс менеджмента. Т.е. при отсутствии GC они не предоставляют ничего кроме куцего defer.
Не обязательно — если у человека стойкая ассоциация "рекламируемая вещь == шлак". Как с рекламой лутбокс-шопов, мобильных гриндилок и т.п.
Многим авторам и сейчас ничто не мешает так делать. Или ставьте либу мохнатой версии — или крутитесь как хотите.
Я извиняюсь если вопрос покажется некорректным. Но мне правда интересно. Вы бы стали писать на Golang если бы за ним не стоял Гугл? И что произойдёт если гипотетически Гугл скажет "голанг неудачен, пилим всё на тайпскрипт"?
Озвученная вами проблема — извечная проблема курицы и яйца. Никто не хочет писать на новом языке т.к. на нём не пишут толстые корпорации — которые на нём не пишут т.к. пишет мало кто, goto 1. Почти гарантирую, что если бы С++ был создан сейчас в текущем виде, он бы помер не родившись — но его держат мегатонны легаси.
Проблема в том, что в ответ на почти любые претензии о косяках или явном примитивизме получаешь ответ "Ты ничего не понимаешь, малыш! Так надо!". Помню как на вопрос почему вообще допустили такой косяк как non-nil nil interfaces, я получил ответ именно в таком стиле, с жонглированием значения термина "указатель". Ссылку, к сожалению, уже не найду. Ответ был не от Пайка если что.
Там таки есть вполне валидные замечания. Для меня лично — переиспользование структур и поля в трэйтах, в качестве требований. Первую проблему можно было бы решить как в Go — alias член автоматом торчит из структуры всеми своими трейтами. Вторая ЕМНИП решена в Scala — но не в близких к системным языках. Могу конечно ошибаться.
Моё скромное мнение — серьёзный продакшен GUI подался в web или electron. Там уже не ролляет, на чём писать бизнес-логику. А старые крупные проекты просто не имеют желания шевелиться куда-то.
А Rust — как системный. И Go, вследствие наличия GC, для GUI и граф-подобных структур, должен подходить сильно больше. Но поди ж ты.
Не факт. Контрпример — назовите пример хорошего GUI фреймворка для Golang. Который на порядок проще.
Мне кажется, тут идёт вопрос разграничения между "клиентским" и "библиотечным" кодом. Названия условные. "Клиентский код" — условно тот, который решает вашу задачу. "Библиотечный" — набор базовых строительных кирпичиков. Так вот. Односвязный список, граф и т.п. для меня — как раз такие кирпичики. И при их реализации вы будете использовать техники, которые в нормальном коде не будете. К примеру unsafe. Который не является Exterminatus Incoming, а всего лишь возможностью обойти некоторые ограничения — если вы знаете что делаете. Вы пишете в основном на Java, поэтому просто для справки — в С++, к примеру, unsafe у вас по факту везде.
GUI фреймворк это как правило всё же дерево, причём готовое.
Это всего лишь перенос ручной конфигурации в другое место. Сравните с CMake target_include_directories. Вы задаёте "публичные" и "приватные" пути у самого таргета. Далее, при подключении этого таргета как зависимости все его публичные include paths, а также include paths от всех его публичных зависимостей (в т.ч. транзитивных) автоматом попадают в ваш зависимый таргет. Таким же образом это работает для libraries, definitions etc.
Несколько скромных вопросов от С++ разработчика.
Не совсем понятно, как это защитит от eval. Или если плохой пакет будет воровать чужие импорты.
Не знаю насчёт SJW, но на npmjs.org (если вы о нём) хотя бы вменяемые переходы цвета. Белый-голубой-синий-голубой-белый. А не малиновый-зелёный-чёрный-канареечный...
Новый дизайн откровенно ужасен. Такое впечатление, что авторов покусали бешеные маркетоиды, ментально доминируемые инвесторами, уж извините за прямоту.
Прочитал. Со статьёй он то ли не связан, то ли противоположен ей. Или это как в байке про Ландау: