E o Emacs? ;-) É muito disponível, tem uma história de 30 anos, é totalmente programável e personalizável, tem uma horda de modos de edição para qualquer tipo de linguagem de programação que você possa imaginar, pode editar arquivos remotos, e é bem leve hoje em dia, comparado ao monstro IDSs como Eclipse. Eu ficaria surpreso se não houvesse alguns recursos de colaboração já criados. ;-)
E algo semelhante está agora disponível na Web: www.ymacs.org ;-)
Considero o Emacs um dos melhores editores do mercado, mas ainda assim totalmente inadequado.
Minhas reclamações, aproximadamente na ordem dos requisitos que descrevi na postagem:
- Eu pessoalmente odeio os atalhos de teclado e suspeito que eles contribuam para o RSI. Isso pode ser uma questão puramente estética, mas os atalhos do vi atendem ao meu gosto e as combinações de teclas do Emacs simplesmente não. Sim, eu sei que existem maneiras de contornar isso, mas o ecossistema Emacs maior pressupõe que você usará as combinações de teclas padrão e, de outra forma, terá um custo.
- Também no que diz respeito à interface do usuário, o Emacs não é acessível e não possui uma curva de aprendizado suave do "modo bloco de notas" até o usuário avançado. "Qualquer pessoa com quem eu possa colaborar deve considerar o editor de texto que uso uma ferramenta produtiva e agradável" estabelece um padrão elevado que o Emacs não atende.
- Não atende aos meus requisitos de colaboração. Se estou editando um buffer no Emacs e quero colaborar nesse arquivo em tempo real, minha melhor aposta é copiá-lo e colá-lo no Etherpad ou algo parecido. Provavelmente isso não vai mudar tão cedo, já que muitas outras pessoas nem sequer têm o Emacs instalado. Os navegadores da Web, por outro lado, são onipresentes.
- O Emacs não atende aos meus requisitos para salvar o histórico. É claro que isso pode ser feito com um sistema de controle de revisão externo, como o git, que eu uso, mas não vejo razão para que isso não seja algo que meu editor cuide para mim, silenciosa e continuamente.
- O Emacs possui excelentes recursos de análise; em particular, o modo nxml de James Clark torna o trabalho com XML quase tolerável e é o principal motivo pelo qual ainda uso o Emacs para algumas tarefas.
- O Emacs não é tão onipresente quanto eu gostaria, embora, é claro, seja bastante popular entre os programadores, especialmente entre os especialistas. Algo que funcione em um navegador seria muito mais conveniente.
O Emacs atende aos meus outros requisitos (participação, existência, disponibilidade, acessibilidade (com o Emacspeak em particular isso é excelente), longevidade e licenciamento). Infelizmente, trazer o Emacs para o restante dos meus requisitos me parece mais problemático do que começar de novo.
Ymacs, por outro lado, parece promissor.
— "Eu pessoalmente odeio os atalhos de teclado e suspeito que eles contribuam para o RSI"
Eu adoro os atalhos de teclado, na verdade, mas na verdade eles provavelmente contribuem para a LER (eu mesmo tenho dores aleatórias nos pulsos). No entanto, acho que isso acontece porque sou extremamente produtivo e consigo pressionar muitas teclas - provavelmente é verdade que uma ferramenta que faz você trabalhar mais devagar não *parecerá* contribuir para o RSI, mas trabalhar com um teclado 10 horas por dia dia durante 20 anos inevitavelmente levará a isso, mesmo se você estiver no Bloco de Notas...
- "O Emacs não é acessível e não tem uma curva de aprendizado suave desde o" modo Bloco de Notas "até o usuário avançado."
Não sei por que você pensa isso. A única coisa que os iniciantes não acham óbvio é como sair (quando iniciam o Emacs em um console). Fora isso, você pode usar o Emacs da mesma forma que usa o Bloco de Notas, e não há necessidade de aprender nada, a menos que queira se tornar mais produtivo.
Minha esposa escreveu uma tese de 80 artigos em Emacs depois de apenas cerca de 30 minutos de treinamento da minha parte. Ela calculou, no final das contas, que levaria muito mais tempo e o resultado teria sido mais feio se ela fizesse isso com o Open Office.
— "«Qualquer pessoa com quem eu possa colaborar deve considerar o editor de texto que utilizo uma ferramenta produtiva e agradável» estabelece um padrão elevado que o Emacs não atinge."
Esperar que todos os outros sejam capazes de usar uma ferramenta tão bem quanto você só pode significar duas coisas: (1) você acha que todos são tão inteligentes (ou tão burros) quanto você, ou (2) essa ferramenta é o menor denominador comum . Você não deveria desejar nada disso. Se uma ferramenta é ótima e você pode usá-la, use-a sem dúvida e não espere que ela ganhe popularidade. A história nos mostra que as melhores ferramentas não são populares, e isso inclui linguagens de programação, sistemas operacionais e, claro, editores.
— "Ele não atende aos meus requisitos de colaboração. Se estou editando um buffer no Emacs e quero colaborar nesse arquivo em tempo real, minha melhor aposta é copiá-lo e colá-lo no Etherpad ou algo parecido."
Na verdade, estou trabalhando em algo assim para o Ymacs. :-) Mas tenho certeza de que deveria haver um complemento semelhante para o Emacs. Provavelmente não é popular. ;-) Vou procurar.
De qualquer forma, obrigado pela sua resposta! :)
Pela minha experiência, as combinações de teclas do vi são tão rápidas de usar quanto as do Emacs, mas parecem melhores do ponto de vista do RSI devido ao uso reduzido de acordes. De qualquer forma, não quero ter que escolher uma ferramenta com base no fato de gostar ou não dos atalhos de teclado. Quero que a ferramenta esteja de acordo com minhas preferências, e não o contrário.
O Bloco de notas não possui recursos desnecessários e, para iniciantes, isso é um recurso. O Emacs é intimidante e tem vários modos. É necessário mais experiência e habilidade para usar uma serra de mesa do que uma faca de mesa, mas estamos falando apenas de bits aqui; não há razão para termos de escolher entre poder e acessibilidade. Idealmente, o 'modo bloco de notas' seria o padrão e os recursos seriam adicionados somente quando o usuário desejasse adicioná-los.
Para pessoas que não ganham a vida escrevendo código ou que não estão escrevendo uma tese de 80 páginas, aprender Emacs simplesmente não vale o poder adicional que ele traz, e é uma pena que tenhamos que ter aulas de ferramentas em vez de apenas uma variedade de modos para acomodar diferentes usuários. Imagine se tivéssemos navegadores diferentes com interfaces de usuário incompatíveis para usuários avançados e pessoas normais.
"Uma ferramenta produtiva e agradável":
"Esperar que todos os outros possam usar uma ferramenta tão bem quanto você [...]"
Na verdade, não espero isso, e é por isso que o que foi dito acima é tão importante. O que exijo é que a ferramenta seja útil e acessível a todos, independentemente do seu nível de especialização.
Em cada estágio do uso da ferramenta, você poderá dedicar, digamos, 5 minutos aprendendo um novo recurso e obter um retorno do investimento do seu tempo ao usar esse recurso. Dependendo da frequência com que você usa um editor de texto, você pode aprender os recursos que o ajudam e ignorar o resto. Sempre deve haver uma ligeira inclinação em termos de escolher passar mais tempo aprendendo a ferramenta ou optar por apenas trabalhar com o que você já sabe. Emacs e vi são como escalar um penhasco nesse aspecto.
Fico feliz em saber que você está trabalhando nisso para o Ymacs e estou ansioso para ver o que você vai descobrir!