Original Article: C++: A language for next generation web apps
Author: Steve Hanov

C ++: um idioma para aplicativos da próxima geração

Na segunda-feira, fiquei satisfeito por ser um orador não convidado na Waterloo Devhouse, hospedado em Postrank's escritório magnífico. Depois de fazer algumas alterações subrepticias na sua parede de desenvolvimento ágil, eu dei uma conversa linguística sobre como o C ++ pode caber em uma aplicação web.

Havia outras apresentações legais ali também. Confira oot! Er, fora!

Durante esta apresentação, espero convencê-lo de que a linguagem de programação C ++ é ideal para desenvolver sua próxima aplicação web.

Você pode estar perguntando, Steve, por que C ++? Por que eu me sujeito a essa linguagem horrível onde você precisa gerenciar sua própria memória?

Uma razão é a eficiência. Não só C ++ é inerentemente rápido. Também obriga você a pensar de forma diferente. Desestimula o uso de estruturas de dados excessivamente complicadas que são construídas em outras línguas. Em C ++, o aninhamento de mais de uma ou duas estruturas resulta em algo que é simplesmente muito estranho de usar. Em vez disso, você é forçado a considerar seriamente a utilização da representação mais simples possível.

Além disso, praticamente qualquer biblioteca que você deseja usar já foi escrita e possui uma implementação gratuita disponível na internet. Json, e CGI os descodificadores estão disponíveis gratuitamente. Além disso, como muitas vezes esquecido, você tem que lidar UTF8 para conversão de caracteres largos, Mas isso é facilmente alcançado em uma função de 10 linhas.

O único que você precisa ter cuidado com o acesso ao banco de dados SQL. MySql é GPL'd, então você não pode nem se conectar à sua biblioteca de clientes em um aplicativo fechado. SQLite parece ser gratuito, exceto se você fizer negócios na Alemanha isto é $1000 porque eles têm uma definição diferente de domínio público.

Aqui está a primeira estratégia que você pode usar para incorporar o C ++ no seu aplicativo da Web. Neste diagrama, existem duas coisas entre o navegador e sua aplicação - o servidor web e o script php. Não é tão eficiente como poderia ser, e também há implicações de segurança com a chamada de programas de linha de comando de php.

Neste modelo, você escreve seu programa C ++ como um script CGI diretamente, usando uma das bibliotecas de análise de string de consulta livremente disponíveis. É eficiente e limpo. Quando o seu navegador solicita informações, o servidor web inicia seu programa, que escuta a resposta no formato json. Esta resposta é então retransmitida para o navegador.

Eu uso a estratégia acima para RhymeBrain. Inclui algoritmos estatísticos avançados que permitem soar qualquer palavra que você colocou. Por exemplo, você pode inserir a palavra "postrank" e ver que rima com gemas como "em branco, brincadeira, bebia, tanked e fedia".

Porque está escrito em C ++, posso executá-lo no meu datacenter super-poderoso. Está sentado no topo da minha gaveta de meia na sede da RhymeBrain.

Esta poderosa besta de 1GHz pode carregar todo o banco de dados de 2,6 milhões de palavras e desativar a resposta em cerca de 50 milissegundos. Isso faz isso de um começo frio, para cada pedido.

Mas há uma terceira estratégia: se você escrever seu próprio servidor web, você pode cortar o intermediário e atender a solicitação diretamente. Seu código javascript faz um pedido, e todo o seu servidor web tem que fazer é chamar uma função para enviar os resultados.

Escrever um servidor web não é tão difícil. Aqui está a implementação completa do Hibachi servidor web. Ele suporta hosts virtuais, e scripts perl e php, entre outras coisas. Foi escrito pelo ex-Waterloo-ite Anthony Howe, e ganhou o concurso internacional de codificação C 2004.

Inspirado por Hibachi, escrevi meu próprio servidor e construiu WebSequenceDiagrams (que é executado em um centro de dados real ...). Fazê-lo dessa maneira revela um novo modelo de negócios. É possível empacotar todo o aplicativo da Web em um único instalador que é executado no Windows e no Linux. Uma vez que tudo está integrado, não há necessidade de os clientes mexerem com o Apache ou as inúmeras outras partes móveis que poderiam quebrar se eu enviasse componentes separados. (Você pode executá-lo em sua organização para tão pequeno quanto $99).

A única desvantagem é que o executável final é realmente pequeno - cerca de 700K. Pode ser um pouco menor do que alguns clientes esperam. durante a apresentação, sugeriu-se que eu o envie como um aparelho, em um huge box, para compensar.

Conclusão

Espero que eu tenha convencido você sobre os benefícios do C ++ no seu próximo aplicativo da Web:
  • Redução de custos de hardware
  • Bibliotecas disponíveis para tarefas na web
  • Portabilidade
  • Flexibilidade extrema na implantação