A preferência pela tipagem dinâmica e estática é em grande parte uma questão de gosto, e pessoas diferentes as acham mais ou menos adequadas em diferentes situações.
A minha pergunta é: seria tecnicamente possível ter uma alternativa de tipo estatístico ao JavaScript para aumentar a página da Web do lado do cliente etc.?
Respostas:
Certamente não há razão técnica para que tal coisa não possa existir. Não há nada específico no código do lado do cliente que exija o uso de linguagens digitadas dinamicamente.
fonte
Como é altamente improvável que outro idioma encontre ampla adoção, sua melhor aposta seria criar uma versão estaticamente tipada de JavaScript (ou seja, uma linguagem próxima ao java) e um pré-processador que converta isso em JavaScript normal.
Por exemplo, seu script é assim:
e o pré-processador verifica se todas as variáveis, funções, objetos etc. são usados corretamente de acordo com seu tipo e altera o script para
com o qual todo navegador pode lidar.
fonte
Certo. O Google Web Toolkit compila Java para JavaScript estaticamente ... Pense nisso: toda a beleza e flexibilidade do Java, com todo o desempenho do JavaScript gerado por máquina!
Sério, porém, você pode fazer isso para todos os tipos de idiomas, e muitos tentaram (existem ou existem compiladores para C e C # também). Se o resultado final é prático ou não depende do que você está tentando realizar: o Google está atrás de uma plataforma consistente para o desenvolvimento de aplicativos muito grandes do lado do cliente e possui seu próprio mecanismo JavaScript para inicializar; você pode achar que adotar um animal desses para efeitos de pairar e a chamada estranha de AJAX introduz muito mais dor do que simplesmente aprender a viver com um pouco de código não digitado ...
fonte
A maioria dos benefícios das linguagens de tipo estatístico é realizada em tempo de compilação. Se o idioma for interpretado no cliente, muitas dessas vantagens serão perdidas. Se você os compilar no servidor, precisará descobrir como carregá-los e executá-los no cliente (pense em controles ActiveX). Você pode optar por uma abordagem híbrida (compilar para alguma forma tokenizada intermediária), mas basicamente voltará aos applets Java.
fonte
Já existe.
O ActionScript 3 (a linguagem de script por trás do Flash e Flex) é um dialeto do ECMAScript que implementa tipos fortes, e você pode usá-lo mais ou menos da mesma maneira do lado do cliente que o JavaScript (a diferença é que o AS3 requer um plug-in flash e é compilado). Eu, pessoalmente, tento me afastar dela hoje em dia, mas se você estiver no campo "estático", tente.
Isso responde à pergunta principal e, agora que a temos, sua pergunta secundária se torna "O Flash é prático?" A resposta é "sim", com alguns "se" se "mas" s
fonte
Em teoria, você pode colar qualquer script na página que desejar. A
<script>
tag tem umtype
atributo, afinal.A única barreira é obter participação de mercado suficiente em termos de implementação em diferentes navegadores para que valha a pena usar.
Então sim, é meio improvável neste momento.
fonte
</script>
). Você poderia inserir o código Brainf * ck lá, se realmente quisesse. Tudo o que você precisa fazer é implementar um intérprete para o idioma escolhido no navegador que você deseja usar.<script type="vbscript">
de uma vez ...Seria prático? Não.
É possível? Sim!
Desenvolver sua própria alternativa estaticamente tipada ao JavaScript seria demorado, na melhor das hipóteses. Na pior das hipóteses, você não seria capaz de convencer os navegadores existentes a implementar a linguagem de script do cliente e precisaria escrever o seu próprio.
fonte
Talvez você encontre sua resposta aqui: /programming/86426/why-require-javascript-rather-than-supporting-a-standard-browser-virtual-machine
Nota: Na minha opinião, as respostas mais recentes são mais esclarecedoras, apesar de sua pontuação mais baixa.
fonte
Você pode usar idiomas como o haXe para escrever seu código de maneira estática e exportá-lo para javascript. O JavaScript está se tornando muito rápido, portanto é suficiente como idioma de saída. Tentar impor uma linguagem de tipo estaticamente como padrão da Web é quase impossível. As tentativas de introduzir a digitação estática no JavaScript falharam por razões amplas de discussão.
fonte
Seria tecnicamente possível? Se for para ser implementado em Java, eu diria "muito, muito difícil, mas possível" sem perda significativa de desempenho.
Na verdade, estou escrevendo uma DSL de tipo estaticamente em Java agora, e a única maneira que encontrei para evitar a verificação de tipo em tempo de execução é usar genéricos e suprimir avisos "não verificados" ... ou seja, até a hora de implementar matrizes multidimensionais (parâmetros de classe devem ser conhecidos em tempo de compilação e, portanto, são inerentemente finitos, enquanto matrizes multidimensionais representam um número infinito de tipos ...) Ainda tentando descobrir isso, infelizmente-- tenho certeza de que encontrará problemas semelhantes com as classes definidas pelo usuário.
O problema é que continuo tropeçando nesses tipos de problemas, mas depois de ficar um tempo pensando nisso, encontro uma boa solução. Portanto, para fazer isso e ter os benefícios de desempenho da digitação estática (sem verificação de tipo de tempo de execução), eu diria que é extremamente difícil, mas não impossível. Menos o desempenho, eu diria difícil, mas muito possível.
Eu sei que é uma pergunta antiga, apenas pensei que minha experiência poderia ser valiosa para alguém.
fonte
É tecnicamente possível escrever scripts do lado do cliente em qualquer linguagem de script suportada pelo agente do usuário (navegador). Na prática, a única linguagem amplamente suportada é JavaScript / ECMAScript. Convencer os fabricantes de navegadores a implementar e dar suporte a um novo idioma nesse estágio provavelmente não terá sucesso; portanto, se você deseja usar um novo idioma do lado do cliente com estaticamente digitado, será necessário traduzir o novo idioma para JavaScript ou implementar um intérprete para ele em JavaScript.
Existem vários projetos que já fazem algo assim; por exemplo, Google Web Toolkit , conforme mencionado em uma das outras respostas.
fonte
Como você não tem esperança de obter todos os navegadores usados no mundo real para oferecer suporte a um novo idioma; o idioma terá que ser compilado para jscript.
Como todos os exemplos da web estão em jscript, a linguagem deve se parecer principalmente com jscript.
Eu acho que existe um escopo com um "subconjunto" de jscript que é verificado por um verificador estático, mas também é válido. Por exemplo:
fonte
A digitação estática opcional fazia parte do Project Harmony do ECMAScript - acho que isso acontecerá ou não no JavaScript do cliente [baseado no navegador]. Consulte este link da Wikipedia: http://en.wikipedia.org/wiki/ECMAScript#Future_development
fonte