BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Scripted: um editor de JavaScript para desenvolvimento local, da SpringSource/VMware

Scripted: um editor de JavaScript para desenvolvimento local, da SpringSource/VMware

O Scripted é um novo editor de JavaScript sendo desenvolvido pela VMware com base no editor Eclipse Orion. Funciona localmente no navegador, sendo entregue por um servidor web Node.js. O objetivo é atender aos desenvolvedores que desejam trabalhar localmente com uma ferramenta simples e leve, sem a necessidade de um IDE completo.

Andy Clement, um dos engenheiros da SpringSource (uma divisão da VMware), destacou algumas das principais funcionalidades do Scripted:

  • Leveza e inicialização rápida.
  • Realce de sintaxe para JavaScript, HTML e CSS.
  • Erros e avisos:
    • O JSLint já vem integrado para oferecer marcadores de erro/avisos no código JavaScript;
    • Resolução de módulos AMD e CommonJS: a resolução é básica, em que referências não resolvidas são marcadas como erros.
  • Assistente de conteúdo:
    • Assistente básico de conteúdo para HTML e CSS;
    • Para código JavaScript, o assistente de conteúdo trabalha com inferência de tipos, a qual conhece as dependências de módulo com AMD/CommonJS e também utiliza os comentários do JSDoc para ajudar na compreensão do código.
  • Passar o mouse sobre um identificador JavaScript mostra a assinatura do tipo inferido.
  • Navegação: ao pressionar a tecla F8 sobre um identificador (reconhecido pelo editor), a declaração será aberta. Isso também funciona para identificadores de módulo (por exemplo, cláusulas define()).
  • Formatação: O JSbeautify é integrado
  • Painel lateral: Ao lado do editor principal pode ser aberto um painel que pode ser utilizado inclusive para abrigar um segundo editor.
  • Associação de comandos de teclado: É possível invocar comandos externos como less, mvn etc.

 As próximas implementações planejadas são assistentes melhores de código e de navegação, novos painéis para diversos conteúdos; resultados de buscas, pré-visualização de código; e um sistema simples de plugins, assim como depuração com as ferramentas de desenvolvimento do Chrome e o Node Inspector. A equipe está avaliando a possibilidade de adicionar suporte a linguagens semelhantes como CoffeeScript e TypeScript.

O InfoQ entrevistou Clement para saber mais sobre o Scripted e os planos da equipe para o projeto.


InfoQ: O Scripted é baseado no Eclipse Orion. Por que um projeto separado do Orion?

Gostamos muito do componente de edição do Orion - que serve como base para o lado cliente do Scripted. O Orion, contudo, é projetado para funcionar principalmente com projetos e workspaces remotos, com uma opção para modo de servidor local. Descobrimos que projetos remotos não agradam a todos os desenvolvedores e queríamos criar algo com base em um servidor local.

Nessa configuração, sentimos que o servidor Orion era muito pesado, com funcionalidades desnecessárias no momento, como a possibilidade de múltiplos usuários simultâneos e integração com o git. Ao escolher uma estrutura cliente/servidor para o Scripted, mantivemos a flexibilidade para mover o servidor para um local remoto no futuro.

InfoQ: Quais são as principais diferenças entre o Scripted e o Orion? À primeira vista, pareceu que o Subeditor e o Navegador são diferentes. Há outra alterações?

O Orion é uma plataforma de ferramentas muito extensível. Não queríamos necessariamente oferecer tanta extensibilidade; a ênfase foi oferecer uma seleção criteriosa de componentes. O caminho que o Scripted está seguindo é o de uma aplicação de página única, buscando oferecer uma experiência familiar para desenvolvedores que utilizam ferramentas como o vi, o Textmate ou o Sublime.

Enquanto o Orion oferece uma interface para trabalhar com sistemas como o Git, o Scripted entende que o usuário já terá uma série de ferramentas para certas tarefas e não pretendemos forçá-lo a aprender outra interface para as mesmas tarefas

A principal funcionalidade que temos desenvolvido, e continuaremos a melhorar, é a compreensão do código. Estamos investindo na construção de bibliotecas que compreendam JavaScript - queremos oferecer um assistente de conteúdo de alta qualidade, assim como uma boa experiência de navegação ao trabalhar com código. O Scripted sabe diferenciar, por exemplo, quando os desenvolvedores utilizam o módulo AMD ou o CommonJS. Marcadores de erros estarão disponíveis (no editor) para referências de módulos que não possam ser encontrados, e a estrutura de módulos será percebida para oferecer melhor assistência de conteúdo ao acessar um módulo de outro. O Scripted é capaz de analisar qualquer JSDoc disponível, para obter melhor entendimento dos parâmetros e valores de retorno.

Em relação ao painel lateral, planejamos trabalhar bastante nele nas próximas releases. Vale pensar nessa parte como um lugar onde qualquer material de apoio possa ser exibido para auxiliar na tarefa em que se está trabalhando no editor principal. Inicialmente, o painel lateral tem sido utilizado como segundo editor, mas temos ideias de painéis para documentação, resultados de busca etc. Idealmente, queremos que contenha não apenas o material escolhido diretamente, mas também itens que o Scripted tenha considerado úteis. Talvez haja um painel que siga o posicionamento do mouse no editor principal e continuamente se atualize para mostrar o código para a destinação de cada chamada sendo feita na posição do cursor (similar ao visto recentemente na "light table"). Queremos também que o painel lateral contenha conteúdo relevante - e que o Scripted buscará garantir ativamente a relevância desse conteúdo.

InfoQ: O Orion utiliza o Jetty do lado servidor; por que vocês escolheram adotar o Node.js?

Foi um desejo nosso que o lado servidor fosse muito leve e o servidor Orion, que utiliza o Jetty, pareceu-nos mais pesado do que precisávamos. A partir do momento que decidimos não usar o servidor Orion, todas as opções se abriram. Uma coisa que vivenciamos em projetos anteriores em que desenvolvíamos ferramentas é que não as usávamos ativamente, simplesmente as entregávamos aos clientes.

Com o Scripted, queremos mudar isso e utilizá-lo ativamente no nosso desenvolvimento do dia a dia. Isso naturalmente nos levou a adotar o JavaScript tanto no lado cliente quanto no lado servidor. A escolha natural para a tecnologia de backend foi o Node.js, que até o momento tem funcionado muito bem para nós. Nosso suporte ao CommonJS foi criado principalmente para facilitar o desenvolvimento do nosso servidor.

InfoQ: O Scripted executa localmente, o que significa respostas mais rápidas do servidor; mas como funciona a integração entre um repositório na web compartilhado com outros desenvolvedores?

No momento, não há integração com repositórios na web ou áreas de trabalho do lado servidor. Está em nossos planos possibilitar o uso remoto do servidor, claro, mas não é um objetivo inicial do projeto. Descobrimos que os desenvolvedores não querem colocar seus códigos em uma área de trabalho remota no momento - mas isso pode mudar no futuro.

InfoQ: Quais são os planos para o Scripted?

Estamos bem no começo; a versão 0.2 é a primeira que lançamos para coletar feedback. As próximas releases devem continuar a dar enfoque na experiência de edição de JavaScript: continuidade nas melhorias de compreensão do código e do assistente de conteúdo. Gostaríamos também de começar a adicionar painéis ao painel lateral, por exemplo para busca e documentação. Testes integrados também estão na nossa mira; queremos oferecer uma maneira fácil de lançar testes e revisar resultados. Por último, queremos investir na integração com depuradores de código.

InfoQ: Qual o envolvimento e planos da VMware em relação ao Scripted?

A VMware já está envolvida ativamente no desenvolvimento de ferramentas para desenvolvedores há algum tempo, tanto com o Sprint Tool Suite como com o Groovy/Grails Tool Suite. A VMware criou o Scripted como tentativa de explorar alternativas à abordagem tradicional de oferecer plugins para um IDE. Estamos percebendo que alguns desenvolvedores preferem editores mais leves, mas infelizmente hoje isso significa abrir mão de muitas funcionalidades do IDE que melhoram a produtividade, como assistentes de código e de refatoração. O Scripted está buscando provar que não é necessário que seja assim. A equipe do projeto trabalha com a equipe do Orion e contribui de volta com melhorias, sempre que possível.


O Scripted está disponível no GitHub sob a Licença Pública 1.0 do Eclipse.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT