Existem linguagens de script da Web de tipo estatístico? [fechadas]


12

Parece haver duas maneiras principais de configurar um servidor back-end. Você pode usar uma pilha LAMP, com o código do servidor em algo como PHP ou Python (ou Ruby ou JavaScript, que não começa com um P.) Essas linguagens de script tendem a ser digitadas dinamicamente, com todas as desvantagens em desempenho, correção e capacidade de manutenção que as linguagens digitadas dinamicamente trazem, mas é fácil atualizar o servidor porque toda a lógica de geração de páginas é armazenada em scripts externos.

O outro estilo principal de arquitetura amplamente utilizado é o ASP.NET, onde a lógica de geração de páginas é escrita em código compilado. Isso tende a usar linguagens estaticamente tipadas, para que você obtenha o código que teve o benefício de um compilador, mas toda a lógica de geração de página é compilada no servidor, o que significa que, se você precisar alterar alguma coisa, precisará desligar o servidor e substitua-o por uma nova compilação.

Então isso me faz pensar. Existem linguagens de script do lado do servidor que usam digitação estática, para o melhor dos dois mundos?


2
Você já pensou em usar o Go ?
PSWG


4
"todas as desvantagens de desempenho, correção e manutenção que as linguagens dinamicamente digitadas trazem". Essas asserções são discutíveis, na melhor das hipóteses, e erradas, na pior das hipóteses (as JITs mais rápidas hoje em dia são para idiomas de tipo dinâmico).
Javier

2
"a lógica de geração de páginas é compilada no servidor, o que significa que, se você precisar alterar alguma coisa, será necessário desativar o servidor e substituí-lo por uma nova versão". Existem vários ambientes de servidor que podem transferir para um novo binário sem interrupção do serviço. ie Recarga graciosa do uWSGI
Javier

1
Para a JVM, existem algumas estruturas que permitem recompilar e trocar rapidamente em tempo real.
precisa saber é o seguinte

Respostas:


8

ATUALIZAÇÃO: As soluções mais atuais incluem o AtScript

Você deve tentar o Google Dart .

Possui digitação opcional, o que significa que você pode adicionar anotações de tipo que serão verificadas no modo de desenvolvedor 'checado' em tempo de execução, mas elas não são necessárias e o idioma oferece muitas das vantagens de outros idiomas dinâmicos, como python. No entanto, o editor fará inferência de tipos para tentar ajudá-lo a encontrar erros com antecedência. A dart VM é rápida e pode produzir instantâneos, o que pode acelerar o tempo de inicialização em até 10x. Também compila até javascript e é rápido .

A principal desvantagem aqui é que é uma tecnologia um tanto nova, por isso não há tantas bibliotecas para ela e, honestamente, a interoperabilidade com javascript não é tão simples quanto deveria ser. Além disso, a linguagem ainda está em desenvolvimento, por isso há mudanças de tempos em tempos.


Prefiro recomendar TypeScript. Como o dardo, mas é compatível com JavaScript.
Knerd

4

Sua pergunta é baseada em várias suposições incorretas.

Python, Ruby são ambos compilados no bytecode antes da execução. O processo é automático, mas as alterações no aplicativo exigem uma reinicialização completa. O Node.JS se comporta da mesma maneira, mas é compilado no código da máquina.

O código do ASP.NET pode ser pré-compilado e copiado para o servidor ou compilado dinamicamente sob demanda a partir do código-fonte no servidor. O IIS lida com ambas as formas de atualizações sem tempo de inatividade zero (as primeiras solicitações após a atualização serão lentas.) São possíveis atualizações de tempo de inatividade zero no Python e Ruby, mas com tantas opções de implantação, não é um dado adquirido.

Com base nisso, eu pensaria que você ficaria feliz com qualquer linguagem .NET.


3
Uma linguagem de script é quando você pode gravar alguns bits em um arquivo e executá-lo. Não há motivo para não ser digitado estaticamente.
Florian Margaine

@FlorianMargaine Então C é uma linguagem de script?

@delnan c ++ também.
mikerobi

@mikerobi Na verdade, "mine" também é C ++ (e AFAIK, o sucessor do CINT), eu estraguei tudo.

2
@mikerobi Se você explorar o picoc, perceberá que todo o ponto em que foi escrito foi uma linguagem de script. Não é apenas um intérprete para c, é um intérprete pequeno o suficiente para ser incorporado em aplicativos e dispositivos maiores e oferece aos usuários a capacidade de escrever pequenos scripts em c. Algumas linguagens podem ser melhores em scripts do que outras, mas uma linguagem não é ruim em scripts apenas porque ainda não foi usada para isso. No final do dia, um idioma é apenas sintaxe e semântica, as implementações podem variar bastante.
usar o seguinte comando

0

Não há razão para que um idioma compilado precise ser fortemente digitado ou difícil de atualizar.

Você pode querer olhar para algumas das configurações da Web erlang como Cowboy, Webmachine e nitrogênio. Com o Dialyzer, você pode obter uma verificação de tipo muito agradável quanto à correção e recarregar os módulos em tempo real, pois o erlang foi projetado para atualizar o software no local sem interromper os usuários existentes.

Além disso, o webmachine (o que eu mais usei) pode ser bastante rápido. Eu vi o webmachine ter respostas médias nos pontos de extremidade da API inferiores a 10ms em um pequeno nó da Amazon EC2!

Se você deseja digitar estática, tente a estrutura Yesod , que é para a linguagem Haskell. Haskell é fortemente tipado com um sistema de tipos muito rico.

Eu não o usei pessoalmente, mas as pessoas que conheço que o usam adoram.


3
Não confunda digitação forte e estática. Haskell tem tipos estáticos fortes, Python tem tipos dinâmicos fortes.
mikerobi

0

IMHO, a linguagem de script Web melhor estaticamente digitado é D .

Como as linguagens de script interpretadas, ele pode compilar scripts em tempo real e na velocidade da luz.

A linguagem em si se parece com um JavaScript super-poderoso de tipo forte, muito mais poderoso que o Go, por exemplo.

Todo o material de simultaneidade está oculto, como no PHP, e os modelos são compilados no código nativo.

Difícil de encontrar melhor do que isso ...

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.