por que as línguas não mais de programação têm construído em interfaces para o gerenciador de janelas?

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

Pergunta

A programação está no coração sobre como automatizar tarefas em um computador.
Presumivelmente aquelas tarefas que normalmente seria feito manualmente por um ser humano.
Os seres humanos usam o computador através do teclado, mouse e interação com o console ou o gerenciador de janelas.
Mas muito poucas línguas têm construído em funções que fornecem uma interface para esses objetos básicas de computação.
Uma exceção notável é autohotkey, uma linguagem de código aberto em janelas, proporcionando builtin funções que permitem as seguintes tarefas simples:
* Obter informações Pixel
* Get posição do mouse
* Macros de teclado
* principais traços Simular
* Simular clique do mouse
* Gestão Janela
Veja exemplos na rosettacode .

Tem havido várias tentativas no linux, muitos dos quais foram parados sem explicação. Um deles é a biblioteca tcl inativo: android. De pesquisa do Google código para android, lang: TCL

Foi útil?

Solução

Eu escrevo código do servidor web. Nenhum ser humano interage com o código. É simplesmente um monte de plug-ins complexos para Apache.

"Os seres humanos usam o computador através do teclado, mouse e interação com o console ou o gerenciador de janelas."

Isto é completamente falso no meu caso. O "usuário" envia pedidos através de HTTP. No teclado, sem mouse, sem console, sem gerenciador de janelas.

O usuário pode estar usando algum tipo de fantasia GUI, mas não importa para mim ou o meu software. Tudo o que vejo são solicitações HTTP GET e POST. texto puro.

"Mas muito poucas línguas têm construído em funções que fornecem uma interface para esses objetos básicas de computação."

Correto. Eu não tenho nenhum uso para teclado, mouse, console ou gerenciador de janelas.

Outras dicas

Todas as plataformas de computação pessoal tem bibliotecas que vai fazer isso.

O problema é que isso exigiria padronizar interações do usuário sobre todos os sistemas. Java tentei isso, sem grande sucesso. Houve outras bibliotecas com sucesso mais ou menos, Qt provavelmente sendo o mais promissor até o momento.

É certamente possível escrever um idioma para uma única plataforma que irá incluir todos os fundamentos de interface do usuário. Também é possível fingir com uma interface gráfica e uma biblioteca. No entanto, há uma boa razão para querer uma linguagem que é utilizável em qualquer plataforma principal, ou não há uma GUI.

Eu duvido que a premissa é verdadeira. Java pode fazer tudo isso, exceto, talvez, "gerenciamento de janelas" desde que eu não sei o que se entende por isso.

Eu ficaria surpreso se você não pode fazê-lo com c #.

Se há muitas línguas que não pode fazer isso, eu acho que é porque é difícil fazê-lo sem amarrar a língua para o sistema operacional.

Em primeiro lugar, eu acho que você está perguntando por que bibliotecas padrão As linguagens de programação não têm built-in interfaces para o gerenciador de janelas. A própria linguagem e suas bibliotecas são bastante distintos.

Uma grande razão é a portabilidade. Se há muitas funções específicas em bibliotecas de uma linguagem de programação, que será mais difícil para transportá-lo para outros sistemas. Por exemplo, I / O, funções matemáticas, cordas, várias estruturas de dados e algoritmos relacionados, são genéricos e podem ser feitas para o trabalho em praticamente qualquer computador.

Mas coisas como o gerenciador de janelas, GUI, etc., são muito mais específicos para certas plataformas que é porque eles não estão incluídos nas bibliotecas padrão. Isto é o que faz com que C / C ++ tão portátil.

As tarefas executadas por computadores sem qualquer interação do dispositivo de interface humana superam aqueles accionadas directamente por um ser humano por um fator enorme.

As linguagens de programação tentativas (ou pelo menos está tentando) para ser independente com a plataforma. Exemplo em .net, você tem que fazer referência alguma API Win32 para fazer alguns dos materiais especificados acima. Começá-lo embutido no modelo de linguagem de programação core, .net irá tornar-se demasiado juntamente com o OS, assim, criando o seu homólogo Mono vai ser muito tedioso.

Em relação teclas, macros e alguns animais, a maneira mais simples que eu estou fazendo isso agora é verdade VBScript ou em powershell:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top