LINUX.ORG.RU

История изменений

Исправление byko3y, (текущая версия) :

Сишные макросы работают также. И GObject/GTK только благодаря ним в Си более-менее нормально выглядит

Спорны тезис. Спорный потому, что можно сильно лучше, можно было вообще не упарываться объектами — сейчас уже написание интерфейсов «с нуля» не считается таким моветоном, как в 90-е. Проблема объектного подхода заключается в том, что на самом деле GUI не состоит из независимых объектов, а является цельной сущностью — интерфейсом, отображающимся на один экран, и воспринимаемым ввод из очень ограниченного числа устройств ввода. Даже если это мультитач-экран — все равно пользователь вводит жесты как единое целое, а не как независимые нажатия.

А это так и есть: всё описано в документации. Также как в ООП языках есть неявные переменные типа this, так и в макросах могут быть неявные переменные (например внутри loop есть it, в котором результат условия)

Нет, это хреновый пример. Сколько копий поломато об this в JS или в питоне.

Нет. loop и for/list

И каким образом это нельзя сделать функциями?

Так динамический линковщик до запуска программы отрабатывает

Уже ответили — dlopen/dlsym же.

Исходная версия byko3y, :

Сишные макросы работают также. И GObject/GTK только благодаря ним в Си более-менее нормально выглядит

Спорны тезис. Спорный потому, что можно сильно лучше, можно было вообще не упарываться объектами — сейчас уже написание интерфейсов «с нуля» не считается таким моветоном, как в 90-е. Проблема объектного подхода заключается в том, что на самом деле GUI не состоит из независимых объектов, а является цельной сущностью — интерфейсом, отображающимся на один экран, и воспринимаемым ввод из очень ограниченного числа устройств ввода. Даже если это мультитач-экран — все равно пользователь вводит жесты как единое целое, а не как независимые нажатия.

А это так и есть: всё описано в документации. Также как в ООП языках есть неявные переменные типа this, так и в макросах могут быть неявные переменные (например внутри loop есть it, в котором результат условия)

Нет, это хреновый пример. Сколько копий поломато об this в JS или в питоне.

Нет. loop и for/list

И каким образом это нельзя сделать функциями?

Так динамический линковщик до запуска программы отрабатывает

Уже ответили — dlload же.