pourquoi d'autres langages de programmation n'ont-ils pas d'interfaces intégrées avec le gestionnaire de fenêtres?

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

Question

La programmation est au cœur de l’automatisation des tâches sur un ordinateur.
Vraisemblablement, ces tâches seraient normalement effectuées manuellement par un humain.
Les humains utilisent l'ordinateur via le clavier, la souris et en interaction avec la console ou le gestionnaire de fenêtres.
Mais très peu de langages ont des fonctions intégrées qui fournissent une interface à ces objets informatiques de base.

Une exception notable est autohotkey, un langage open source sous Windows, qui fournit des fonctions intégrées permettant les tâches simples suivantes:
    * Obtenir des informations sur les pixels
    * Obtenir la position de la souris
    * Macros clavier
    * Simuler des frappes de touche
    * Simuler un clic de souris
    * Gestion de la fenêtre
Voir des exemples sur rosettacode .

Il y a eu plusieurs tentatives sur Linux, dont beaucoup ont été arrêtées sans explication. L'un est la bibliothèque inactive de tcl: android. Recherche code Google pour Android, lang: tcl

Était-ce utile?

La solution

J'écris le code du serveur Web. Aucun être humain n'interagit avec le code. C'est simplement beaucoup de plug-ins complexes pour Apache.

"Les humains utilisent l'ordinateur par l'intermédiaire du clavier, de la souris et en interaction avec la console ou le gestionnaire de fenêtres. "

Ceci est complètement faux dans mon cas. Le " utilisateur " envoie des demandes via HTTP. Pas de clavier, pas de souris, pas de console, pas de gestionnaire de fenêtres.

L’utilisateur utilise peut-être une interface graphique sophistiquée, mais cela n’a aucune importance pour moi ou mon logiciel. Je ne vois que les requêtes HTTP GET et POST. Texte pur.

"Très peu de langages ont des fonctions intégrées qui fournissent une interface à ces objets informatiques de base."

Corrigez. Je n'ai aucune utilité pour le clavier, la souris, la console ou le gestionnaire de fenêtres.

Autres conseils

Toutes les plates-formes informatiques personnelles ont des bibliothèques qui le feront.

Le problème est que cela nécessiterait de normaliser les interactions des utilisateurs sur tous les systèmes. Java a essayé cela, sans grand succès. Il y a eu d'autres bibliothèques avec plus ou moins de succès, Qt étant probablement la plus prometteuse à ce jour.

Il est certainement possible d’écrire un langage pour une plate-forme unique qui inclura tous les principes fondamentaux de l’interface utilisateur. Il est également possible de le simuler avec une interface graphique et une bibliothèque. Cependant, il existe de bonnes raisons de vouloir un langage utilisable sur n’importe quelle plate-forme majeure, qu’il existe ou non une interface graphique.

Je doute que la prémisse soit vraie. Java peut faire tout cela, sauf peut-être "Gestion des fenêtres". puisque je ne sais pas ce que cela veut dire.

Je serais surpris si vous ne pouvez pas le faire avec c #.

S'il existe de nombreuses langues qui ne peuvent pas faire cela, je suppose que c'est parce qu'il est difficile de le faire sans lier la langue au système d'exploitation.

Tout d’abord, je pense que vous demandez pourquoi les bibliothèques standard des langages de programmation n’ont pas d’interfaces intégrées avec le gestionnaire de fenêtres. Le langage lui-même et ses bibliothèques sont assez distincts.

Une des principales raisons est la portabilité. S'il y a trop de fonctions spécifiques dans les bibliothèques d'un langage de programmation, il sera plus difficile de le porter sur d'autres systèmes. Par exemple, les E / S, les fonctions mathématiques, les chaînes, diverses structures de données et les algorithmes associés sont tous génériques et peuvent fonctionner de manière virtuelle sur n’importe quel ordinateur.

Mais des choses comme le gestionnaire de fenêtres, l'interface graphique, etc., sont beaucoup plus spécifiques à certaines plates-formes, c'est pourquoi elles ne sont pas incluses dans les bibliothèques standard. C’est ce qui rend le C / C ++ si portable.

Les tâches exécutées par des ordinateurs sans interaction d'interface homme-machine sont plus nombreuses que celles directement actionnées par un humain.

Les langages de programmation essaient (ou du moins essaient actuellement) d’être indépendants de la plateforme. Exemple en .net, vous devez faire référence à certaines API Win32 pour effectuer certaines tâches que vous avez spécifiées ci-dessus. En intégrant le modèle de langage de programmation principal, .net deviendra trop couplé au système d’exploitation, donc créer son équivalent Mono sera trop fastidieux.

En ce qui concerne les frappes au clavier, les macros et certaines choses, la façon la plus simple de le faire est de le faire avec vbscript ou dans PowerShell:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top