Declaração de Missão Groff 2014
(texto inteiramente traduzido, e não revisado, do inglês para o português pelo Google Translator)
Como a implementação mais amplamente implantada do troff em uso hoje, o groff ocupa um lugar importante no universo Unix. Frequentemente e erroneamente descartado como um programa legado para formatação de manuais Unix (manpages), o groff é, na verdade, um sistema sofisticado para produzir material tipográfico de alta qualidade, desde correspondência comercial até relatórios técnicos complexos e livros prontos para impressão. Com um histórico impressionante de compatibilidade com versões anteriores, ele continua a evoluir e a desempenhar um papel de liderança no desenvolvimento de software de composição livre.
O desenvolvimento futuro se concentrará nos recursos de composição do groff, com o objetivo de melhorar a formatação automática de documentos sem perda correspondente do controle do usuário sobre detalhes tipográficos. Além do binário principal, onde grande parte do trabalho será feito, o sistema compreende uma linguagem macro, conjuntos de macros pré-construídos, pré e pós-processadores e drivers para saída em vários formatos. O princípio orientador para mudanças nessas partes será melhorar e estender, não alterar, especialmente com relação ao uso estabelecido.
Uma parte fundamental do mandato do projeto será corrigir problemas que historicamente desencorajaram a adoção generalizada do groff. Os problemas incluem a superioridade percebida do TeX para composição tipográfica de uso geral, a longa e um tanto infeliz associação com manpages e a dificuldade de dominar as solicitações de composição tipográfica de baixo nível do groff.
Em termos gerais, o desenvolvimento será canalizado para duas áreas:
* ♦ [1]core groff
* – o backend de composição tipográfica e solicitações de formatação de baixo nível
♦ [2]uso do programa
* – conjuntos de macros de uso geral e manpages
Melhorias e aprimoramentos em outras áreas do sistema continuarão a formar uma parte rotineira do crescimento do groff, com suporte ativo para contribuições fornecidas por uma equipe de especialistas em groff.
Núcleo groff
O backend
Atualmente, o Groff usa um algoritmo guloso para formatar parágrafos uma linha por vez, mas o algoritmo Knuth-Plass, implementado no TeX, Heirloom troff e em outros lugares, otimiza quebras de linha em parágrafos inteiros e obtém um cinza tipográfico mais uniforme. Um dos desafios mais empolgantes que o Groff enfrentará será implementar um algoritmo de formatação aprimorado, sendo o candidato mais provável o Knuth-Plass. É um trabalho grande, mas com a base de código limpa do Groff e a comunidade útil de especialistas, espera-se que desenvolvedores adicionais se apresentem e contribuam com suas habilidades de programação.
Igualmente importante será instituir suporte nativo para TrueType, Open Type e outras fontes PostScript não Type1, e melhorar o suporte Unicode.
Solicitações de formatação de baixo nível
Solicitações de formatação de baixo nível suplementares continuarão a ser adicionadas, e o comportamento de algumas solicitações existentes será revisado, com cuidado para manter a compatibilidade com versões anteriores sempre que modificações forem consideradas valiosas.
No nível de solicitação, o uso de aritmética de inteiros e avaliação linear de expressões por groff remonta à idade da pedra. Embora não seja prioridade máxima, esses e outros empecilhos históricos (leia-se "aborrecimentos") serão abordados — novamente, com um olhar atento para a compatibilidade com versões anteriores.
Uso do programa
Conjuntos de macros de uso geral
Os conjuntos de macros formam a interface de usuário principal para o groff. Conjuntos bem projetados e bem documentados ajudam a tornar o groff acessível aos usuários — novos usuários em particular. A adoção ou rejeição do programa geralmente se baseia em se os conjuntos disponíveis atendem às necessidades do usuário sem exigir o domínio de solicitações de baixo nível. A curva de aprendizado e a facilidade de uso são igualmente importantes.
A área mais ativa do desenvolvimento do groff na última década foi em conjuntos de macros, com [3]mom sozinho adicionando mais de 13.000 linhas de código e 1 MB de documentação ao projeto. O suporte para conjuntos de macros existentes e o design e desenvolvimento de novos, portanto, desempenharão um papel significativo no futuro do groff.
Manpages
A necessidade de manuais Unix renderizarem de forma limpa para múltiplas mídias de saída favorece a marcação estrutural em vez da de apresentação, no entanto, as macros clássicas man(7) permanecem quase exclusivamente de apresentação. O mdoc(7) fornece uma alternativa semanticamente superior, mas o uso do man(7) está profundamente enraizado no Unix.
O trabalho futuro em manpages envolverá a melhoria da clareza semântica das macros man(7), desacoplando-as o máximo possível de solicitações de apresentação de baixo nível. O objetivo será facilitar a conversão de manpages para linguagens de marcação que não dependem do groff para exibição e impressão, por exemplo, XML, preservando a riqueza de apresentação completa das manpages processadas com o groff.
Simultaneamente ao trabalho no man(7), o mdoc(7) será ativamente suportado e seu uso promovido.
Para resumir, o objetivo desta estratégia dupla é promover a marcação de manpage que:
* ♦ renderiza de forma limpa para o terminal
* ♦ respeita a marcação de apresentação quando a saída para PostScript
* ♦ permite análise semântica
* ♦ é portátil
Olhando para frente, olhando para trás
A compatibilidade com versões anteriores de documentos e uso existentes continuará sendo uma prioridade máxima, assim como evitar o inchaço de recursos e o aumento de despesas gerais. A viabilidade e vitalidade do Groff dependem tanto disso quanto do desenvolvimento voltado para o futuro.
Finalmente, espera-se que os usuários e contribuidores do Groff promovam seu uso, fornecendo uma defesa discreta para encorajar uma adoção mais ampla do programa, aumentando assim o grupo de potenciais contribuidores e desenvolvedores e promovendo a causa da boa tipografia.
©2014 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110, EUA