Frage

Die Programmierung ist im Herzen über Aufgaben auf einem Computer zu automatisieren.
Vermutlich würden diese Aufgaben normalerweise manuell von einem Menschen durchgeführt werden.
Der Mensch nutzt den Computer über die Tastatur, die Maus und die Interaktion mit der Konsole oder dem Fenstermanager.
Aber nur sehr wenige Sprachen haben in Funktionen eingebaut, die eine Schnittstelle zu diesen grundlegenden Rechenobjekte bieten.
Eine bemerkenswerte Ausnahme ist autohotkey, eine Open-Source-Sprache an Fenstern und bietet eingebaute Funktionen, die den folgenden einfachen Aufgaben ermöglichen:
    * Get Pixel Informationen
    * Get Mausposition
    * Tastaturmakros
    Simulieren * Tastenanschläge
    * Simulieren Mausklick
    * Fensterverwaltung
Beispiele auf rosettacode .

Es gibt unter Linux verschiedene Versuche unternommen worden, von denen viele ohne Angabe von Gründen gestoppt wurden. Eine davon ist die inaktive tcl Bibliothek: Android. Search Google Code für Android, lang: tcl

War es hilfreich?

Lösung

Ich schreibe Web-Server-Code. Kein Mensch interagiert mit dem Code. Es ist einfach eine Menge von komplexen Plug-In zu Apache.

„Die Menschen nutzen die Computer über die Tastatur, die Maus und die Interaktion mit der Konsole oder dem Fenstermanager.“

Das ist völlig falsch in meinem Fall. Der „Benutzer“ sendet Anfragen über HTTP. Keine Tastatur, keine Maus, keine Konsole, keine Fenster-Manager.

Der Benutzer kann eine Art von Phantasie GUI, aber es mir spielt keine Rolle, oder meine Software. Alles was ich sehe ist HTTP GET und POST-Requests. Reiner Text.

„Aber nur sehr wenige Sprachen haben in Funktionen eingebaut, die eine Schnittstelle zu diesen grundlegenden Rechenobjekten bieten.“

Richtig. Ich habe keine Verwendung für Tastatur, Maus, Konsole oder Window-Manager.

Andere Tipps

Alle Personal Computing Plattformen haben Bibliotheken, die dies tun wird.

Das Problem ist, dass die Benutzer-Interaktionen über alle Systeme zu standardisieren erfordern würde. Java versuchte dies, ohne viel Erfolg. Es gab andere Bibliotheken mit mehr oder weniger Erfolg, wahrscheinlich Qt die vielversprechendste bisher zu sein.

Es ist sicherlich möglich, eine Sprache für eine einzige Plattform zu schreiben, die alle UI Grundlagen umfassen wird. Es ist auch möglich, zu fälschen sie mit einer grafischen Benutzeroberfläche und einer Bibliothek. Allerdings gibt es gute Gründe, eine Sprache zu wollen, die auf jeder größere Plattform verwendbar ist, ob oder nicht, dass es eine GUI.

Ich bezweifle, dass die Prämisse wahr ist. Java kann all das tun, außer vielleicht „Fenster-Management“, da ich nicht weiß, was damit gemeint ist.

würde ich überrascht, wenn Sie es nicht mit c # tun können.

Wenn es gibt viele Sprachen, die dies nicht tun, würde ich denke, es ist, weil es schwierig ist, es zu tun, ohne die Sprache für das Betriebssystem zu binden.

Zunächst einmal, ich glaube, Sie fragen, warum die Bibliotheken Programmiersprachen Standard nicht integrierte Schnittstellen zu den Window-Managern haben. Die Sprache selbst und seine Bibliotheken sind ganz verschieden.

Ein wichtiger Grund ist die Portabilität. Wenn es in einer Programmiersprache Bibliotheken zu viele spezifische Funktionen ist, wird es schwieriger, die Portierung auf andere Systeme sein. Zum Beispiel, I / O, mathematische Funktionen, Strings, verschiedene Datenstrukturen und zugehörige Algorithmen sind alle allgemeinen und kann gemacht werden, arbeiten auf nahezu jedem Computer.

Aber Dinge wie der Window-Manager, GUI, usw., sind sie viel mehr spezifisch für bestimmte Plattformen, weshalb sie in den Standardbibliotheken nicht enthalten sind. Das macht C / C ++, so tragbar.

Erfüllung der Aufgaben durch Computer ohne menschliche Interaktion Schnittstelleneinrichtung, die direkt angesteuert durch einen Menschen durch einen enormen Faktor wiegen.

Programmiersprachen versucht (oder zumindest versucht derzeit,) mit der Plattform unabhängig zu sein. Beispiel in .net, haben Sie einige Win32-API verweisen einige der Materialien tun Sie oben angegeben. Erste es den Kern Programmiersprache Modell eingebaut, wird .net auch mit dem Betriebssystem gekoppelt werden und somit wird die Schaffung seiner Mono Pendant zu langweilig sein.

In Bezug auf Tastenanschläge, Makros und einige Stoffe, die einfachste Art und Weise ich es jetzt tue, ist wahr vbscript oder in Powershell:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top