Na semana passada a Mozilla liberou o Bespin, seu framework baseado na web para editar código e só alguns dias depois Boris Bokowski e Simon Kaegi implementaram um Servidor Bespin baseado em Eclipse usando headless Eclipse plug-ins. Com a apresentação da workbench do Eclipse baseado na web na EclipseCon e o release dos produtos como Heroku, uma IDE baseada em web e hospedagem de ambiente para aplicações RoR parece que as IDEs baseadas na web logo se tornarão realidade.
Como o Bespin Mozilla tem o objetivo de entregar um framework aberto e extensível, baseado na web para editar código, que tenta aumentar a produtividade do desenvolvedor, habilitar experiência de usuário convincente e promover o uso de padrões abertos:
Baseado nas discussões com centenas de desenvolvedores e em nossa própria experiência desenvolvendo para a Open Web, nós surgimos com um conjunto de propostas de características junto com alguns objetivos de alto nível:
- Fácil de Usar - a experiência do editor não deve ser tímidar e deverá facilitar a obtenção rápida e direta do código
- Colaboração em tempo real - o compartilhamento das sessões de código livre com os colegas deve ser fácil e codificar colaborativamente como um ou mais pessoas deve funcionar.
- Linha de Comando Integrada - ferramentas como vi e Emacs demonstraram o poder de integrar linhas de comando nos editores; Bespin também precisa de uma forma
- Extensibilidade e Auto-Hospedagem - a interface e as capacidades do Bespin deve ser altamente extensíveis e facilmente acessíveis aos usuários através de comandos Ubiquity-like ou via a plug-in API
- Muito Rápido - o editor é apenas um brinquedo a menos que permaneça responsivo ao editar arquivos muito grandes.
- Acessível de qualquer lugar - o editor de código pode trabalhar de qualquer lugar e com qualquer dispositivo, usando qualquer browser compatível com os padrões modernos
O release atual do Bespin é o 0.1 e é um protótipo inicial que inclui suporte para editar características básicas, tais como syntax highlighting, arquivos de tamanhos grandes, desfazer/refazer, visualizar arquivos no browser, importar/exportar projetos, etc.
Para mais informações sobre o Bespin você pode experimentar a demo ou ver o código fonte.
Apenas alguns dias após o release do Bespin, Boris Bokowski e Simon Kaegi implementaram um servidor Bespin baseado em Eclipse usando componentes do Eclipse:
Nós olhamos o Bespin e perguntamos, não seria ótimo se o Eclipse pudesse funcionar neste espaço também? Não seria legal se pudessemos implementar um servidor Bespin usando plug-ins do Eclipse que já existem?
Bem... esse servidor Bespin baseado em Eclipse está disponível agora, depois de dois dias de desenvolvimento!
Simon Kaegi e eu nos trancamos dentro de um quarto e apenas implementamos. Hoje, nós estamos declarando sucesso e estamos compartilhando o código como parte do projeto e4 com qualquer interessado. Se você gostaria de dar uma olhada, veja esta página no wiki.
A Eclipse IDE, como você sabe, é uma aplicação baseada em OSGi e é construída a partir de componentes (chamados plug-ins ou bundles). Muitos destes componentes podem rodar headless, em um servidor, tais como o modelo de recursos básicos, o compilador incremental Java, etc. Usando o componente headless, foi muito fácil de implementar uma API client-server para o Bespin. Como o servidor Bespin do Mozilla, nosso servidor suporta navegação de arquivos e pastas e editação de arquivos. Além disso, nós implementamos features extras tais como compilar mostrando erros e avisos e checar projetos a partir de servidores CVS usando CVS anônimos.
Este projeto é um trabalho contínuo dentro do esforço da comunidade e4, para construir a próxima geração da Plataforma Eclipse e fornece uma implementação experimental da client-server API do Bespin.
Outro produto que segue este paradigma é o Heroku, uma IDE baseada em web e hospedagem de ambiente para aplicações Ruby on Rails que tem características como:
- Deployment Instantâneo
- Edição Online
- Suporte ao Git
- Fácil colaboração
- Stack Completamente Integrado
- Performance Elástica
- Rails Console
- Colaboração de Linha de Comando
- e mais
Parece que o Heroku causou uma primeira impressão muito boa no committer do Eclipse, Elias Volanakis e o fez perguntar sobre os esforços similares na comunidade Java:
Afinal de contas se a app tem que estar na web e a fonte == binary (Ruby é interpretada), por quê não colocar a IDE na web também? Ter as ferramentas, o código e o ambiente em tempo real on-line torna várias coisas mais fáceis:
- Comece a trabalhar em um piscar de olhos: Acesso instantâneo ao código fonte de qualquer lugar. Não precisa de set-up na IDE. Não precisa definir um ambiente local Ruby on Rails. Não precisa checar qualquer código. Seu dado está lá.
- Colaboração Instantânea: criar uma conta para o desenvolvedor. Enviar link para a página de log-in para o desenvolvedor. Comece a colaborar. (Eu espero que ele suporte a edição colaborativa).
- Deployment da app é trivial. Não há necessidade de encontrar e configurar um servidor adequado.
- O aspecto "tudo-hospedado" pode tornar um grande combo "source-forge-com-hospedagem". Imagine encontrar uma aplicação web boa e apenas ter que clicar em "deploy e executar isto na minha conta" para dar-lhe um test drive.
Isso parece ser excelente para o Ruby e eu estou ansioso para fazer um test-drive
Agora, como se aplica a aplicações web em Java?
Outro projeto interessante neste espaço é o codepad, que é um compilador/interpretador online e uma ferramenta simples de colaboração:
codepad.org é um compilador/interpretador online e uma ferramenta simples de colaboração. É um pastebin que executa código para você. Você cola seu código e o codepad o executa e dá para você uma URL curta que você pode usar para compartilhá-lo. Cole a URL no chat ou email para receber ajuda ou mostrar a alguém como fazer alguma coisa. Ou apenas tentar as coisas quando você não tiver um intérprete prático. Ele funciona bem em muitos celulares.
Há mais IDEs baseadas em web com vários graus de maturidade e amplitude de funcionalidades como:
- notepad: Baseado no CodeTextArea widget
- WaveMaker: Também entra em uma cloud-ready edition
- CodeIDE: É destinado a novatos e intermediários
- Aurora SDK: Usa GWT
- WWWorkspace: Outra Java IDE construída baseada no Eclipse
- e mais
Com todos esses novos projetos surgindo o que você acha, nós veremos as IDEs baseadas na web se tornar a regra em um futuro próximo?