Boa tarde Pedro45_vs.
Seja bem-vindo ao fórum da comunidade do AutoHotkey
Dito isso, por que você acha que existe tantas linguagens diferentes?
Por vários motivos na verdade. As linguagens nascem do interesse de pessoas. Algumas, como o SQL, por exemplo, tem um fim bastante específico: gerenciamento de bancos de dados. Já o HTML, tem um forte direcionamento para a web. O XML tem muito a ver com a estruturação da informação em tags (texto), e assim são algumas outras.
Mas também existem linguagens que cumprem papeis semelhantes também, tais como C++ e C# por exemplo. No caso do AutoHotkey, a linguagem nasceu com o intuito de unir a automação facilitada do AutoIt com a funcionalidade das hotkeys. Na época (2003) o Chris, que foi o primeiro desenvolvedor do AutoHotkey, era membro da comunidade do AutoIt, porém suas ideias com relação às hotkeys não foram levadas muito a sério pelos desenvolvedores do AutoIt, e por isso ele decidiu criar o AutoHotkey, que originalmente era um fork (algo como um novo galho) do AutoIt, com essa nova funcionalidade. Mas é claro que a linguagem avançou muito depois disso e hoje seria ridículo dizer que ela seja simplesmente para hotkeys.
As vezes também cria-se uma linguagem para implementar um novo paradigma de programação. As linguagens do tipo OOP (Programação Orientada a Objetos) são um exemplo. Também se pode criar uma nova linguagem por motivos mais banais, como manter uma reserva de mercado de desenvolvedores (como o swift da Apple, por exemplo). Objetivamente não tem nada que impeça alguém de criar uma nova linguagem simplesmente por interesse pessoal. Tudo que você precisa é criar um conjunto de regras de semântica, sintaxe e um vocabulário inicial que permite o surgimento de um compilador ou interpretador (ou seja, regras que possam ser traduzidas em código de máquina ou mesmo em outra linguagem que por sua vez possa).
Também tem alguns cases interessantes na história das linguagens de programação. Linguagens como COBOL, Basic e etc estão em desuso, mas já foram muito utilizadas no cenário da programação. Enfim, não tem muito o que dizer: parece que os seres humanos ficam sempre criando novos métodos de transmissão de ideias desde a pré-história, então com a informática isso não mudou muito
Por que aprender AutoHotKey e não python ou javascript ou C++?
É muito difícil elencar um porquê sem incorrer em alguma forma de preconceito. Podemos indicar as vantagens que as linguagens tem, mas não dizer que são melhores (ou piores) do que as outras linguagens. No caso do AutoHotkey você tem uma linguagem cujo compilador é gratuito e open source, além de ser uma linguagem muito facilitada para leigos e direcionada diretamente ao uso. Se você já tentou seguir um tutorial de C++, vai ver que eles vão gastar muito tempo te ensinando regras de semântica e sintaxe, de modo que você vai gastar muitas horas de estudo sem saber desenvolver nada praticamente, enquanto que no AutoHotkey você provavelmente já aprendeu usando pra fazer alguma coisa útil. Também temos uma comunidade bastante ativa e é também uma das mais amigáveis por aí (embora que isso não seja exatamente uma vantagem da linguagem em si, mas sim do conjunto). Muitos fórums de outras linguagens costumam ser mais duros com quem está tentando aprender as coisas do início (comunidades tóxicas).
Python é uma linguagem bastante utilizada para simulações matemáticas (NumPy) e aprendizado de machine learning (redes neurais, etc). JavaScript (que é totalmente diferente da linguagem java) é uma das três linguagens mais importantes para desenvolvimento web. C++ é uma das linguagens mais usadas desde o final do século passado, mas tem perdido bastante espaço ultimamente. Então todas elas tem vantagens e desvantagens.
Meu primeiro contato com programação foi com o AutoHotKey. Procurava um ferramenta para escrever textos repetitivos automaticamente e hoje eu uso para facilitar meu trabalho no escritório de contabilidade. Já criei scripts para verificar erros comuns em arquivos SPED, para extrair informações de livros fiscais de sistemas diferentes (RegEx é muito útil...), e a cada dia eu tenho mais ideias para implementar e facilitar minha vida e de meus colegas.
Isso é muito bom. Comigo a história foi bem parecida.
Porém eu sempre fico pensando se devia aprender outra linguagem de programação ainda que superficialmente ou me dedicar a aprofundar meus conhecimentos em autohotkey.
Eu fiz ambas as coisas. Aprendi C, C++, assembly e algumas outras linguagens algum tempo atrás, mas ao mesmo tempo nunca deixei de me aprofundar no AutoHotkey. No fim das contas todo conhecimento meio que se cruza, então a visão geral de programador que adquiri (aprofundando principalmente no AutoHotkey) aliado ao que eu vi nas outras linguagens me faz ter a certeza de que poderia realizar inúmeros projetos em qualquer outra linguagem sem nenhum receio de grandes problemas. Há algum tempo atrás eu traduzi o código de um tutorial em Python para AutoHotkey sem precisar seguir tutoriais de semântica/sintaxe para isso (
link). Não estou dizendo que sou um "especialista em qualquer linguagem", mas sim que o conhecimento geral também conta muito, mesmo quando você se vê obrigado a programar em outra linguagem: nesse caso a curva de aprendizado é bastante reduzida em relação a alguém que não teve muito contato com programação antes.
Mas tendo isso, se eu tivesse que escolher entre uma coisa ou outra (aprender novas linguagens ou me aprofundar na que já sei), eu escolheria me aprofundar na que já sei
com certeza. Acredito que, em se tratando de programação, adquirir a habilidade de fazer algo novo vale mais do que aprender outra forma igualmente válida de fazer a mesma coisa, e mudar totalmente de linguagem é algo que eu só consideraria se houvesse uma razão forte para fazê-lo (tipo pegar um projeto grande em andamento já escrito em outra linguagem ou algo do tipo).
Minha preocupação é de um dia ele for descontinuado ou não ser compatível com novas tecnologias que surgem a todo momento.
É quase impossível o AutoHotkey ser descontinuado em um futuro próximo. Digo isso porque ele é formado por uma comunidade bastante ampla de desenvolvedores (muitos dos quais conhecem C++) e nenhum deles tem direitos autorais impeditivos sobre a linguagem, então se o desenvolvedor principal do interpretador decidir se aposentar, por exemplo, creio que haverá sempre alguém interessado em pegar o lugar dele.
Boa tarde Pedro45_vs.
Seja bem-vindo ao fórum da comunidade do AutoHotkey :thumbup:
[quote]Dito isso, por que você acha que existe tantas linguagens diferentes?[/quote]
Por vários motivos na verdade. As linguagens nascem do interesse de pessoas. Algumas, como o SQL, por exemplo, tem um fim bastante específico: gerenciamento de bancos de dados. Já o HTML, tem um forte direcionamento para a web. O XML tem muito a ver com a estruturação da informação em tags (texto), e assim são algumas outras.
Mas também existem linguagens que cumprem papeis semelhantes também, tais como C++ e C# por exemplo. No caso do AutoHotkey, a linguagem nasceu com o intuito de unir a automação facilitada do AutoIt com a funcionalidade das hotkeys. Na época (2003) o Chris, que foi o primeiro desenvolvedor do AutoHotkey, era membro da comunidade do AutoIt, porém suas ideias com relação às hotkeys não foram levadas muito a sério pelos desenvolvedores do AutoIt, e por isso ele decidiu criar o AutoHotkey, que originalmente era um fork (algo como um novo galho) do AutoIt, com essa nova funcionalidade. Mas é claro que a linguagem avançou muito depois disso e hoje seria ridículo dizer que ela seja simplesmente para hotkeys.
As vezes também cria-se uma linguagem para implementar um novo paradigma de programação. As linguagens do tipo OOP (Programação Orientada a Objetos) são um exemplo. Também se pode criar uma nova linguagem por motivos mais banais, como manter uma reserva de mercado de desenvolvedores (como o swift da Apple, por exemplo). Objetivamente não tem nada que impeça alguém de criar uma nova linguagem simplesmente por interesse pessoal. Tudo que você precisa é criar um conjunto de regras de semântica, sintaxe e um vocabulário inicial que permite o surgimento de um compilador ou interpretador (ou seja, regras que possam ser traduzidas em código de máquina ou mesmo em outra linguagem que por sua vez possa).
Também tem alguns cases interessantes na história das linguagens de programação. Linguagens como COBOL, Basic e etc estão em desuso, mas já foram muito utilizadas no cenário da programação. Enfim, não tem muito o que dizer: parece que os seres humanos ficam sempre criando novos métodos de transmissão de ideias desde a pré-história, então com a informática isso não mudou muito :lol:
[quote]Por que aprender AutoHotKey e não python ou javascript ou C++?[/quote]
É muito difícil elencar um porquê sem incorrer em alguma forma de preconceito. Podemos indicar as vantagens que as linguagens tem, mas não dizer que são melhores (ou piores) do que as outras linguagens. No caso do AutoHotkey você tem uma linguagem cujo compilador é gratuito e open source, além de ser uma linguagem muito facilitada para leigos e direcionada diretamente ao uso. Se você já tentou seguir um tutorial de C++, vai ver que eles vão gastar muito tempo te ensinando regras de semântica e sintaxe, de modo que você vai gastar muitas horas de estudo sem saber desenvolver nada praticamente, enquanto que no AutoHotkey você provavelmente já aprendeu usando pra fazer alguma coisa útil. Também temos uma comunidade bastante ativa e é também uma das mais amigáveis por aí (embora que isso não seja exatamente uma vantagem da linguagem em si, mas sim do conjunto). Muitos fórums de outras linguagens costumam ser mais duros com quem está tentando aprender as coisas do início (comunidades tóxicas).
Python é uma linguagem bastante utilizada para simulações matemáticas (NumPy) e aprendizado de machine learning (redes neurais, etc). JavaScript (que é totalmente diferente da linguagem java) é uma das três linguagens mais importantes para desenvolvimento web. C++ é uma das linguagens mais usadas desde o final do século passado, mas tem perdido bastante espaço ultimamente. Então todas elas tem vantagens e desvantagens.
[quote]Meu primeiro contato com programação foi com o AutoHotKey. Procurava um ferramenta para escrever textos repetitivos automaticamente e hoje eu uso para facilitar meu trabalho no escritório de contabilidade. Já criei scripts para verificar erros comuns em arquivos SPED, para extrair informações de livros fiscais de sistemas diferentes (RegEx é muito útil...), e a cada dia eu tenho mais ideias para implementar e facilitar minha vida e de meus colegas.[/quote]
Isso é muito bom. Comigo a história foi bem parecida.
[quote]Porém eu sempre fico pensando se devia aprender outra linguagem de programação ainda que superficialmente ou me dedicar a aprofundar meus conhecimentos em autohotkey.[/quote]
Eu fiz ambas as coisas. Aprendi C, C++, assembly e algumas outras linguagens algum tempo atrás, mas ao mesmo tempo nunca deixei de me aprofundar no AutoHotkey. No fim das contas todo conhecimento meio que se cruza, então a visão geral de programador que adquiri (aprofundando principalmente no AutoHotkey) aliado ao que eu vi nas outras linguagens me faz ter a certeza de que poderia realizar inúmeros projetos em qualquer outra linguagem sem nenhum receio de grandes problemas. Há algum tempo atrás eu traduzi o código de um tutorial em Python para AutoHotkey sem precisar seguir tutoriais de semântica/sintaxe para isso ([url=https://www.autohotkey.com/boards/viewtopic.php?f=7&t=42420]link[/url]). Não estou dizendo que sou um "especialista em qualquer linguagem", mas sim que o conhecimento geral também conta muito, mesmo quando você se vê obrigado a programar em outra linguagem: nesse caso a curva de aprendizado é bastante reduzida em relação a alguém que não teve muito contato com programação antes.
:arrow: Mas tendo isso, se eu tivesse que escolher entre uma coisa ou outra (aprender novas linguagens ou me aprofundar na que já sei), eu escolheria me aprofundar na que já sei [b]com certeza[/b]. Acredito que, em se tratando de programação, adquirir a habilidade de fazer algo novo vale mais do que aprender outra forma igualmente válida de fazer a mesma coisa, e mudar totalmente de linguagem é algo que eu só consideraria se houvesse uma razão forte para fazê-lo (tipo pegar um projeto grande em andamento já escrito em outra linguagem ou algo do tipo).
[quote]Minha preocupação é de um dia ele for descontinuado ou não ser compatível com novas tecnologias que surgem a todo momento.[/quote]
É quase impossível o AutoHotkey ser descontinuado em um futuro próximo. Digo isso porque ele é formado por uma comunidade bastante ampla de desenvolvedores (muitos dos quais conhecem C++) e nenhum deles tem direitos autorais impeditivos sobre a linguagem, então se o desenvolvedor principal do interpretador decidir se aposentar, por exemplo, creio que haverá sempre alguém interessado em pegar o lugar dele.