Visite também: Currículo ·  Efetividade BR-Mac

O que é LinuxDownload LinuxApostila LinuxEnviar notícia


Tufão: Framework para desenvolvimento web em C++

Enviado por Vinícius dos Santos Oliveira (vini·ipsmakerΘgmail·com):

“Olá a todos, mês passado anunciei na lista de C/C++ Brasil sobre o desenvolvimento de um port da API do Node.js, projeto cada vez mais popular entre desenvolvedores web, para C++/Qt e essa semana, após passar por uma bateria de testes automatizados, anuncio o lançamento de sua versão 0.1.

Atualmente o Tufão possui as seguintes funcionalidades: * Servidor standalone de alta performance (usa o mesmo parser HTTP que o Node.js) * Suporte a várias plataformas (escrito completamente em Qt) * Suporta funcionalidades modernas do protocolo HTTP * Suporte a HTTPS * Muitos testes automatizados que cobrem uma grande variedade de possibilidades * Suporte a timeout

Após baixar o processo de instalação é bem simples e está documentado no arquivo README e na página inicial do projeto. Convido todos os desenvolvedores a testarem o Tufão: [code.google.com/…]” [referência: vinipsmaker.wordpress.com]


• Publicado por Augusto Campos em 2012-01-23

Comentários dos leitores

Os comentários são responsabilidade de seus autores, e não são analisados ou aprovados pelo BR-Linux. Leia os Termos de uso do BR-Linux.

    Revol (usuário não registrado) em 23/01/2012 às 3:37 pm

    Parabéns! Continue.

    Allan Taborda dos Santos (usuário não registrado) em 23/01/2012 às 5:01 pm

    Não sabia que existia desenvolvimento web com C++.

    IanLiu (usuário não registrado) em 23/01/2012 às 5:30 pm

    Allan Taborda dos Santos, o Apache é escrito em C, :P

    Dielson Sales (usuário não registrado) em 23/01/2012 às 7:28 pm

    Ótimo trabalho!

    Allan Taborda dos Santos (usuário não registrado) em 23/01/2012 às 8:06 pm

    O Apache é escrito em C, mas não é uma aplicação web.

    Manoel Pinho (usuário não registrado) em 23/01/2012 às 8:45 pm

    É possível fazer aplicações web com C++ usando FastCGI, como neste pequeno exemplo

    http://imasters.com.br/artigo/16167/programacao/c_na_web_com_fastcgi_e_nginx/

    mas existem até alguns toolkits C++ para desenvolmento web de forma mais prática, como o Wt

    http://www.webtoolkit.eu/wt

    (vejam os exemplos para ter uma idéia do que esse toolkit pode fazer…)

    Hell (usuário não registrado) em 23/01/2012 às 9:16 pm

    Legal, interessante, mas fora a performance qual a vantagem de escrever uma aplicação web em c++? Só por dúvida mesmo.

    Weber Jr. (usuário não registrado) em 23/01/2012 às 9:20 pm

    Manoel Pinho

    Bem legal esse projeto. Bom pra saber que existe vida na web além das linguagens de script e java.

    Desenvolvimento web para freepascal também anda recebendo atenção dos desenvolvedores da linguagem. Apesar de ter muito para melhorar, já é bem rápido de criar algo como (fast)cgi e até módulos do apache.

    vinipsmaker (usuário não registrado) em 23/01/2012 às 10:44 pm

    @Hell:
    Primeiramente, _desempenho_ não é *apenas* uma vantagem, pois é uma necessidade crescente perante a aplicações inovadores, que enfrentam o desafio de servir cada vez mais requisições por segundo/cliente. E C++ se destaca muito bem nesse cenário, visto que sua linguagem-base tem 2 objetivos principais (portabilidade e desempenho) e C++ adiciona poder de abstração sem gargalo desnecessário em cima disso. Qualquer linguagem nova que tente objetivar desempenho e poder de abstração vai tender a C++ ou algo muito próximo. E com o padrão de C++ do ano passado, C++ torna-se ainda melhor.

    Mas, deixando de lado minha visão e respondendo a sua pergunta, uma das vantagens de escrever aplicações web em C++ seria sua integração com bibliotecas já existentes para a linguagem.

    Há linguagens, por exemplo, que são ditas “adequadas a web”, mas que na verdade não passam de linguagens que “só servem para web”. C++ é uma linguagem que possui suporte a muitos paradigmas de programação e a pergunta seria “por que não”. Seu único problema era a falta de uma boa framework para desenvolvimento web e é justamente esse buraco que eu estou tentando corrigir.

    Pense em aplicações web inovadoras que sejam *um pouco* diferentes do convencional, aplicações da nova geração da web. Como um exemplo, pensemos em uma aplicação multimídia. O principal ponto de uma aplicação multimídia é seu suporte a uma vasta quantidade de codecs, que é justamente o que não falta em C e C++. E com os recentes padrões da web (que está perdendo cada vez mais a dependência de ferramentas extras, como o Flash Player, por exemplo), embutir o processamento dessas tarefas no servidor torna-se algo natural.

    O caso anterior foi somente um exemplo e cada caso necessitaria de uma nova discussão que apenas tornaria minha respota confusa.

    Ian Liu (usuário não registrado) em 24/01/2012 às 5:07 am

    Eu não sei se entendi, e não sei se o pessoal entendeu também. O que vocês entendem por “Aplicação Web”? Pelo que eu vi, esse Node.js e o Tufão são servidores Web, isto é, eles esperam por requisições HTTP e retornam alguma coisa. O Apache faz exatamente isso.

    zer0c00l (usuário não registrado) em 24/01/2012 às 9:41 am

    Ian, o Apache é só um servidor Web, sem nenhum módulo extra, tu não consegue desenvolver em Javascript (do lado do servidor) com ele. O NodeJS é um servidor web (HTTP) e contém um engine Javascript grudado, que te permite escrever aplicações (do lado servidor) em javascript.

    Leandro Santiago (tenchi) (usuário não registrado) em 24/01/2012 às 9:45 am

    Ian Liu, vc é que não entendeu. O apache “retorna alguma coisa” por meio de uma aplicaão ou móduloexterno, um interpretaqdor de linguagem via cgi ou fcgi. O node é um interpretador javascript q permite q vc implemente um servidor, que, além de receber e responder requisições, interpreta-as com alguma linguagem.

    Webtoolkit, tntnet, thefrogframework, etc. são frameworks para desenvolvimento de aplicações web que implementam um servidor também, mas processam as requisições por meio de uma linguagem de programação (c++, no caso). O apache httpd pode ser usado como servidor de aplicações (odeio aquelas parafernalhas do java, glassfish, etc.), mas ele é burro e não consegue, por si próprio, interpretar as requisições com uma linguagem de programação, somente com coisas externas (perl, php, cgi, etc.).

    Ou seja, um framework como descrito no texto permite criar aplicações que instanciam servidores web, e não somente criar servidores web que rodam aplicações, como no caso do apache.

    E quem disse que não dá pra desenvolver pra web com c++? O difícil é achar um host compartilhado onde hospedar a aplicação. Mas é algo extremamente viável. Quem conhece mais ou menos sabe que qualquer coisa capaz de manipular socket e que implemente o protocolo http pode ser usado para criar aplicações web.

    Inclusive o netcat!

    Weber Jr. (usuário não registrado) em 24/01/2012 às 10:59 am

    Tenchi

    “O difícil é achar um host compartilhado onde hospedar a aplicação.”

    Nem tanto, tem bastante que aceita fastcgi. Mesmo em planos bem fuleiros.

    “Quem conhece mais ou menos sabe que qualquer coisa capaz de manipular socket e que implemente o protocolo http pode ser usado para criar aplicações web.”

    Isso é efeito de estudar frameworks sem entender o funcionamento. A pessoa se perde em tantos objetos, xmls e serviços de um JBoss da vida.

    José Fernando (usuário não registrado) em 24/01/2012 às 1:58 pm

    Gostei muito da sua ideia, vinipsmaker. Quando se desenvolve aplicações web usando FastCGI, o gargalo acaba sendo justamente o I/O e não a CPU (que é justamente o ponto no qual o C++ beneficia). Com o seu framework, não existe mais gargalo de I/O (aproveitando as ideias do node) nem de CPU.

Este post é antigo (2012-01-23) e foi arquivado. O envio de novos comentários a este post já expirou.