Я имел в виду TurboPascal, а также Delphi по 7ю версию включительно. Что там дальше с типами нагромоздили - уже не отслеживал. Ну, развивается - и хорошо... кому-то.
Динамические массивы - они слегка в другую сторону. Статические с индексацией не целыми числами из моего второго примера в давние времена сходили за жалкое подобие словарей и были временами полезны - для таблиц подстановки и т.п.
Из этих простыней получались бинарники меньше сотни КИЛОбайт, которым для работы хватало голой винды, в отличие от десятков мегабайт всякого [censored] с электроном и что там ещё нынче модно. Впрочем, бинарники из-под Delphi по 7ю версию включительно тоже было достаточно компактными, если не тащить туда самосвал сторонних компонентов.
Потому что “каноническим способом”, рекомендованным Microsoft, программа в одно окно содержит до трех тысяч строк кода и требует, соответственно, месяц работы.
Шта?! Какое "одно окно"? "Hello, world" был бы гораздо меньше. Зарегистрировать оконный класс (десяток-полтора строк), написать "оконную процедуру" (ну, два десятка), вызвать CreateWindow и создать цикл обработки сообщений... из трёх строк. Приложение, которое делает что-то осмысленное... ну, пусть три тысячи строк, но один чорт там основное время займёт функциональность, а не GUIта.
Не делает. Потому что есть всякие управляющие символы вроде "теперь будет справа налево" и ч̝̝̼̒̓͌̈́̕͞о̥̤̤͕̞̜̮͂͋ͦͧ̀͑̌̕р͍̣͚̟͓͍̅ͤ̓̌͟͠ͅт̨̻̹̈́̾̎̀̆ͧ͘о̴̷̰͙͓̰ͫ͗̉͜ͅв̵̹͔̠̝̩̻̒ͤ̓ы͚͕̩̣̹̺̘̲ͥ̽̃ͧͪͣ͛͟ ̶̴̡̲̜͉̳͎̮̼̑ͭ̂͗̂͂л̮͔̦̗̖̻͍̝̾̎͗͡и̡͕̗̒͑̉г̸͖̻̰͎͍͙̰ͥ̋͗͟͝а̎͌ͮ̍͗̋҉̧͙̯͎͚̖̙̙̱т͐ͫ̑͗ͧͬ̐̚͏̪̺у͓̞́͒̒̎͋̆̎͞р̵̢͚͚̦̌̏ͩ͡ы̡̡͖͚̲̰̘̪̎̆̉̽̓͑ ̴̷̧̫̣̰̝͉̪ͭ́ͭ͆͐͌͛с̨͙͉͕̽̃̍ͪ͗̓͟ ̛͉̯̠̪̈́͛̂̇̓̿͢͝ӧ̸̵̸̱̲̩̲̝̤̎̈́̌̏в̛̛͚̩̩̓͒͜е̙̱̝͖͍̯͖̞̊́͠р̢͕͙̦̬̟̜̮͊ͪ͘͘л̵͇̱͚ͪ̈́͠е̿͋ͨ͜҉̹̦я̸̬̙̝̦͓̜̤ͤ̏ͫͮͫͅм̶͇̲̭̫̱̇̏̕иͩͧ̇ͮ̐̄̉̐҉͙̠̜̰͚̜͟͝.
Но они хотя бы достаточно широкие. И промежутки что между ними, что между "новой" и "старой" группами контактов достаточные, чтоб не дёргаться на тему "а вдруг замкнёт случайно". И ток через них можно было бы спокойно пустить гораздо больше, чем 0.5А. И, блин, несовместимостей между парами железок "usb3 - usb3", соединённых безымянным кабелем, я как-то не встречал. В отличие от type C.
Слишком мал, контакты тонкие. Чуть окислились или загрязнились - привет проблемам при передаче данных.
Из-за избыточной навороченности. В одном разъёме - и USB, и разлив пива стоя на голове. И поди найди ещё кабель, с которым железка будет стабильно работать хотя бы на скорости USB 3.0 (при условии, что она её реально поддерживает, а не как всегда - "разъём типа Цэ, а внутри USB 2.0"). Я кучу кабелей перебрал - и хоть бы один со всеми моими железками одинаково работал (и вообще со всеми работал хоть как-то). И ещё мода пошла - в комплект с железкой класть кабели, которые годятся только для зарядки. Это если вообще положат. USB 3 micro B при всём своём уродстве просто работали (до физического износа). USB 3 type A убить нужно ещё постараться. А при нынешней моде пихать через USB десятки ватт для зарядки - type A был бы явно надёжнее, чем вот это вот новомодное.
Казалось бы - сделай телефон такой толщины, чтоб камера не торчала - влезет аккумулятор в 2 раза больше и нормальный разъём вместо [censored] type C - неее, нимодна. А я тем временем безнадёжно мечтаю о телефоне с полноразмерным USB 3 type A...
Еще есть отдельный круг ада в виде зоопарка из версий gtk с вишенкой в виде libadwaita
В случая моей федуры - всего-то две версии - 3 и 4. И две Qt (что-то осталось на 5х). В кедо-федоре прикрутил kvantum со скином "под адвайту" - и всё стало единообразно. Кедовые цветовые схемы средствами оных кед подхватываются всем, кроме того огнелиса, а что там под капотом для этого шевелится - мне не слишком интересно.
Удивительно, что в Линуксе до сих пор нет единого механизма настройки стиля всех приложений
Если б/м коротко и упрощенно - то нет никакого "Линукса". Есть ядро Linux, есть концепт в виде "ядро плюс GNU coreutils и чего-то ещё", поверх этого, если на выходе предполагается десктопная, а не серверная ОС, нахлобучена графика в виде Xorg или Wayland, поверх еще Window Manager и/или Desktop Environment, а на основе этого конструктора настрогано 100500 Linux-based операционок, по историческим причинам называемых "дистрибутивами", и в каждом "дистрибутиве" свои заморочки насчёт UI. Где есть общесистемная настройка тем, где частичная (для примера, в KDE Plasma можно единообразно настраивать темы для Qt и GTK, в GNOME на Qt плевать хотели, и т.п.). В общем, конечный пользователь получает Lego, из которого собран некий типовой (с т.з. сборщиков конкретного "дистрибутива") объект, и к нему ещё дают мешок деталей и чертежи.
У вас есть методика, как выловить все баги в коде?
ЕМНИМС, до 2014го у МС был аж целый отдел живых тестировщиков, гонявших ихи продукты на реальном железе разных коньфигураций. Соптимизировали, в пользу модных автотестов и экспериментов прямо в продакшене на живых юзерах за юзерские же деньги.
Я, внезапно, в курсе. Я о другом. Вот кто им мешал в новых тулкитах поддерживать совместимость с тем самым API указания цветов для примитивов? С быстрым переключением цветовой схемы UI проблем бы не было. Вообще такое впечатление, что во времена разработки UI той же чикаки/NT4/2000 головой как-то больше думали. Кроме функций для палитры были же функции рисования базовых элементов виджетов (DrawEdge/DrawFocusRect/и чего-то там ещё). Не, надо, начиная с хрюнделя, навертеть поддержку скинов (и так, чтоб любой желающий их делать не мог). Что там в том WinUI - не знаю, ибо с винды давно ушёл.
Thunar? Dolphin? Nautilus?, ...
Я имел в виду TurboPascal, а также Delphi по 7ю версию включительно. Что там дальше с типами нагромоздили - уже не отслеживал. Ну, развивается - и хорошо... кому-то.
Динамические массивы - они слегка в другую сторону. Статические с индексацией не целыми числами из моего второго примера в давние времена сходили за жалкое подобие словарей и были временами полезны - для таблиц подстановки и т.п.
Можно проще - TSomeArray = array[0..9] of SomeType;
А если приспичит, то и array['A'..'Z'] of SomeType.
...а потом пользователь плюётся на тормозное bloatware. Зато священная корова-программист не перенапрягся, бедняжечка.
Из этих простыней получались бинарники меньше сотни КИЛОбайт, которым для работы хватало голой винды, в отличие от десятков мегабайт всякого [censored] с электроном и что там ещё нынче модно.
Впрочем, бинарники из-под Delphi по 7ю версию включительно тоже было достаточно компактными, если не тащить туда самосвал сторонних компонентов.
Да ничего там особенно ужасного нет, и точно не брейнфак: https://ciprianf.hashnode.dev/win32-api-programming-using-menus
Классическое олдовое ООП "с сообщениями".
Шта?! Какое "одно окно"? "Hello, world" был бы гораздо меньше. Зарегистрировать оконный класс (десяток-полтора строк), написать "оконную процедуру" (ну, два десятка), вызвать CreateWindow и создать цикл обработки сообщений... из трёх строк.
Приложение, которое делает что-то осмысленное... ну, пусть три тысячи строк, но один чорт там основное время займёт функциональность, а не GUIта.
Не делает. Потому что есть всякие управляющие символы вроде "теперь будет справа налево" и ч̝̝̼̒̓͌̈́̕͞о̥̤̤͕̞̜̮͂͋ͦͧ̀͑̌̕р͍̣͚̟͓͍̅ͤ̓̌͟͠ͅт̨̻̹̈́̾̎̀̆ͧ͘о̴̷̰͙͓̰ͫ͗̉͜ͅв̵̹͔̠̝̩̻̒ͤ̓ы͚͕̩̣̹̺̘̲ͥ̽̃ͧͪͣ͛͟ ̶̴̡̲̜͉̳͎̮̼̑ͭ̂͗̂͂л̮͔̦̗̖̻͍̝̾̎͗͡и̡͕̗̒͑̉г̸͖̻̰͎͍͙̰ͥ̋͗͟͝а̎͌ͮ̍͗̋҉̧͙̯͎͚̖̙̙̱т͐ͫ̑͗ͧͬ̐̚͏̪̺у͓̞́͒̒̎͋̆̎͞р̵̢͚͚̦̌̏ͩ͡ы̡̡͖͚̲̰̘̪̎̆̉̽̓͑ ̴̷̧̫̣̰̝͉̪ͭ́ͭ͆͐͌͛с̨͙͉͕̽̃̍ͪ͗̓͟ ̛͉̯̠̪̈́͛̂̇̓̿͢͝ӧ̸̵̸̱̲̩̲̝̤̎̈́̌̏в̛̛͚̩̩̓͒͜е̙̱̝͖͍̯͖̞̊́͠р̢͕͙̦̬̟̜̮͊ͪ͘͘л̵͇̱͚ͪ̈́͠е̿͋ͨ͜҉̹̦я̸̬̙̝̦͓̜̤ͤ̏ͫͮͫͅм̶͇̲̭̫̱̇̏̕иͩͧ̇ͮ̐̄̉̐҉͙̠̜̰͚̜͟͝.
Хехе... гном настолько "популярен", что новость о релизе уже и не комментирует никто?
Но они хотя бы достаточно широкие.
И промежутки что между ними, что между "новой" и "старой" группами контактов достаточные, чтоб не дёргаться на тему "а вдруг замкнёт случайно".
И ток через них можно было бы спокойно пустить гораздо больше, чем 0.5А.
И, блин, несовместимостей между парами железок "usb3 - usb3", соединённых безымянным кабелем, я как-то не встречал. В отличие от type C.
[censored] он потому, что:
Слишком мал, контакты тонкие. Чуть окислились или загрязнились - привет проблемам при передаче данных.
Из-за избыточной навороченности. В одном разъёме - и USB, и разлив пива стоя на голове. И поди найди ещё кабель, с которым железка будет стабильно работать хотя бы на скорости USB 3.0 (при условии, что она её реально поддерживает, а не как всегда - "разъём типа Цэ, а внутри USB 2.0"). Я кучу кабелей перебрал - и хоть бы один со всеми моими железками одинаково работал (и вообще со всеми работал хоть как-то). И ещё мода пошла - в комплект с железкой класть кабели, которые годятся только для зарядки. Это если вообще положат. USB 3 micro B при всём своём уродстве просто работали (до физического износа). USB 3 type A убить нужно ещё постараться. А при нынешней моде пихать через USB десятки ватт для зарядки - type A был бы явно надёжнее, чем вот это вот новомодное.
Казалось бы - сделай телефон такой толщины, чтоб камера не торчала - влезет аккумулятор в 2 раза больше и нормальный разъём вместо [censored] type C - неее, нимодна.
А я тем временем безнадёжно мечтаю о телефоне с полноразмерным USB 3 type A...
Этого уже хватает, чтобы взятый из условной федоры случайный бинарник мог не запуститься в условной убунте и наоборот.
В случая моей федуры - всего-то две версии - 3 и 4. И две Qt (что-то осталось на 5х).
В кедо-федоре прикрутил kvantum со скином "под адвайту" - и всё стало единообразно.
Кедовые цветовые схемы средствами оных кед подхватываются всем, кроме того огнелиса, а что там под капотом для этого шевелится - мне не слишком интересно.
Если б/м коротко и упрощенно - то нет никакого "Линукса".
Есть ядро Linux, есть концепт в виде "ядро плюс GNU coreutils и чего-то ещё", поверх этого, если на выходе предполагается десктопная, а не серверная ОС, нахлобучена графика в виде Xorg или Wayland, поверх еще Window Manager и/или Desktop Environment, а на основе этого конструктора настрогано 100500 Linux-based операционок, по историческим причинам называемых "дистрибутивами", и в каждом "дистрибутиве" свои заморочки насчёт UI.
Где есть общесистемная настройка тем, где частичная (для примера, в KDE Plasma можно единообразно настраивать темы для Qt и GTK, в GNOME на Qt плевать хотели, и т.п.).
В общем, конечный пользователь получает Lego, из которого собран некий типовой (с т.з. сборщиков конкретного "дистрибутива") объект, и к нему ещё дают мешок деталей и чертежи.
Никогда такого не было, и вот опять...
ЕМНИМС, до 2014го у МС был аж целый отдел живых тестировщиков, гонявших ихи продукты на реальном железе разных коньфигураций. Соптимизировали, в пользу модных автотестов и экспериментов прямо в продакшене на живых юзерах за юзерские же деньги.
Кто-то ищет логику в фильмах Камерона?!
тем, что кол-во и расположение плашек на стартовом экране никак не настраивается;
about:config не работает и работать не будет, т.к. заблокировано в релизах и разрешено только в бетах и найтли.
Я, внезапно, в курсе. Я о другом. Вот кто им мешал в новых тулкитах поддерживать совместимость с тем самым API указания цветов для примитивов?
С быстрым переключением цветовой схемы UI проблем бы не было.
Вообще такое впечатление, что во времена разработки UI той же чикаки/NT4/2000 головой как-то больше думали.
Кроме функций для палитры были же функции рисования базовых элементов виджетов (DrawEdge/DrawFocusRect/и чего-то там ещё). Не, надо, начиная с хрюнделя, навертеть поддержку скинов (и так, чтоб любой желающий их делать не мог). Что там в том WinUI - не знаю, ибо с винды давно ушёл.
Но легаси-то при этом не выпилили. И все наслоения между легаси и WinUI 3 тоже.