почему во многих языках программирования нет встроенных интерфейсов для оконного менеджера?

StackOverflow https://stackoverflow.com/questions/1020168

Вопрос

Программирование лежит в основе автоматизации задач на компьютере.
Предположительно, эти задачи обычно выполняются человеком вручную.
Люди используют компьютер с помощью клавиатуры, мыши и взаимодействия с консолью или оконным менеджером.
Но очень немногие языки имеют встроенные функции, обеспечивающие интерфейс к этим базовым вычислительным объектам.

Заметным исключением является autohotkey, язык с открытым исходным кодом для Windows, предоставляющий встроенные функции, позволяющие выполнять следующие простые задачи:
* Получить информацию о пикселях
* Получить положение мыши
* Макросы клавиатуры
* Имитировать нажатия клавиш
* Имитировать щелчок мышью
* Управление окнами
См. примеры на розеттакод.

Были различные попытки использовать Linux, многие из которых были остановлены без объяснения причин.Одна из них — неактивная библиотека tcl:андроид.Найдите код Google для Android, lang:tcl

Это было полезно?

Решение

Я пишу код веб-сервера.Ни один человек не взаимодействует с кодом.Это просто множество сложных плагинов для Apache.

«Люди используют компьютер с помощью клавиатуры, мыши и взаимодействия с консолью или оконным менеджером."

В моем случае это совершенно неверно.«Пользователь» отправляет запросы через HTTP.Ни клавиатуры, ни мыши, ни консоли, ни оконного менеджера.

Пользователь может использовать какой-то причудливый графический интерфейс, но для меня и моего программного обеспечения это не имеет значения.Все, что я вижу, это запросы HTTP GET и POST.Чистый текст.

«Однако очень немногие языки имеют встроенные функции, обеспечивающие интерфейс к этим базовым вычислительным объектам».

Правильный.Мне не нужны ни клавиатура, ни мышь, ни консоль, ни оконный менеджер.

Другие советы

На всех платформах персональных компьютеров есть библиотеки, которые будут это делать.

Проблема заключается в том, что для этого потребуется стандартизировать взаимодействие пользователей со всеми системами. Ява попробовала это без особого успеха. Были и другие библиотеки с большим или меньшим успехом, вероятно, Qt является самой многообещающей на сегодняшний день.

Конечно, можно написать язык для одной платформы, которая будет включать все основы пользовательского интерфейса. Также возможно подделать это с GUI и библиотекой. Тем не менее, есть веская причина хотеть язык, который можно использовать на любой основной платформе, независимо от того, есть ли GUI.

Я сомневаюсь, что предпосылка верна. Java может делать все это, за исключением, возможно, «управления окнами» так как я не знаю, что под этим подразумевается.

Я был бы удивлен, если вы не можете сделать это с помощью c #.

Если есть много языков, которые не могут этого сделать, я думаю, это потому, что это трудно сделать без привязки языка к операционной системе.

Прежде всего, я думаю, вы спрашиваете, почему стандартные библиотеки языков программирования не имеют встроенных интерфейсов для оконного менеджера. Сам язык и его библиотеки весьма различны.

Одна из главных причин - мобильность. Если в библиотеках языка программирования слишком много специфических функций, будет труднее перенести его на другие системы. Например, ввод / вывод, математические функции, строки, различные структуры данных и связанные алгоритмы - все они являются общими и могут работать практически на любом компьютере.

Но такие вещи, как оконный менеджер, графический интерфейс и т. д., они намного более специфичны для определенных платформ, поэтому они не включены в стандартные библиотеки. Это то, что делает C / C ++ таким переносимым.

Задачи, выполняемые компьютерами без какого-либо взаимодействия с интерфейсом устройства человека, превосходят по численности те, которые непосредственно выполняются человеком огромным фактором.

Языки программирования пытаются (или, по крайней мере, сейчас пытаются) быть независимыми от платформы. Например, в .net, вы должны ссылаться на некоторые Win32 API, чтобы сделать некоторые вещи, которые вы указали выше. Получив встроенную модель ядра языка программирования, .net станет слишком связанным с ОС, поэтому создание его аналога Mono будет слишком утомительным.

Что касается нажатий клавиш, макросов и некоторых других вещей, самый простой способ, которым я сейчас занимаюсь, - это true vbscript или powershell:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top