livro-aberto / BookCloud

A collaborative platform to write books based on git
GNU General Public License v3.0
7 stars 2 forks source link

Por que a escolha do Sphynx? #188

Open hjbortol opened 7 years ago

hjbortol commented 7 years ago

Caros, especialmente @simas0 e @gutosurrex,

Uma pergunta: por que a linguagem Sphynx foi escolhida para essa nova versão da plataforma? Eu gostaria de saber os motivos (e talvez a resposta deva estar no relatório para o Itaú justificando a concepção da plataforma). É só para facilitar a conversão para outros formatos (PDF, EPUB, LaTeX) ou existem outros motivos?

Apesar do overload mental, eu não me importo de aprender, em princípio, toda uma nova sintaxe, desde que haja suporte rápido. Haverá?

Vi em vários posts que, em geral, livros gerados em Sphynx e convertidos para LaTeX precisam de ajustes finos manualmente. Isso me lembra o que aconteceu no piloto de Frações: modificações tiveram que ser feitas diretamente no código LaTeX final e, no final, o esforço de se fazer atualizações do código da DokuWiki se perdeu, bem como o esforço de aprender a sintaxe.

augustoteixeira commented 7 years ago

Olá Humberto,

então, a escolha foi feita baseada em vários requisitos do projeto, vou listar alguns aqui:

Isso nos deixa com poucas opções: sphinx e latexsendo duas grandes competidoras.

O sphinx ganhou na minha opinião pelo seguinte motivo. O latex já foi desenvolvido para se escrever materiais impressos, faça por exemplo uma busca sobre conversão de latex para html e você vai ver que é bem complicado. O sphinx por outro lado é uma linguagem que nativamente gera diversos formatos. Um exemplo onde esse problema se torna óbvio é na versão digital do Sesamath (http://mep-outils.sesamath.net/manuel_numerique/?ouvrage=mstsobl_2016), que parece ter dado muito trabalho e mesmo assim é claramente um pdf dentro do navegador, tem vários inconvenientes e não é dinâmica (consequentemente não permitindo edições online).

Quando as pessoas dizem que a conversão de sphinx para pdf exige ajustes finos, isso é um fato. Mas temos que lembrar algumas coisas:

Enfim. Nós pensamos em várias coisas pra escolher a linguagem sphinx, mas estamos abertos a discussões. Isso ainda pode ser mudado até digamos daqui a seis meses sem o custo ser proibitivo.

simas0 commented 7 years ago

Complementando: o Sphinx possui uma funcionalidade bastante interessante, também possível em LaTex, mas pouco provável em outras linguagens: a possibilidade de se diferenciar, ainda no código, o que vai para o PDF e o que vai para o HTML como hyperlinks e referências ao número de uma página.

A meu ver o grande concorrente do Sphinx no momento é o XML criado por Robert Breezer da Pudget Sound University pois já tem uma história em escrita de livros de Matemática e tem uma e equipe trabalhando nela com este propósito. Mas a sintaxe é um pouco mais feia que a do Sphinx e não possui conversor para Epub.

Concordo que esta discussão deve estar na metodologia do projeto para quem quiser saber.

Em 12 de ago de 2017 13:12, "gutosurrex" notifications@github.com escreveu:

Olá Humberto,

então, a escolha foi feita baseada em vários requisitos do projeto, vou listar alguns aqui:

  • diversas coisas já implementadas: referências cruzadas, bibliografia, figuras em tikz, tabelas ricas, ambientes especiais, matemática...
  • possibilidade de estender as funcionalidades para incluir novas estruturas.
  • ser um formato que permita visualizar diferenças entre arquivos (ao contrário de .doc, por exemplo).
  • ser razoavelmente simples de aprender.

Isso nos deixa com poucas opções: sphinx e latexsendo duas grandes competidoras.

O sphinx ganhou na minha opinião pelo seguinte motivo. O latex já foi desenvolvido para se escrever materiais impressos, faça por exemplo uma busca sobre conversão de latex para html e você vai ver que é bem complicado. O sphinx por outro lado é uma linguagem que nativamente gera diversos formatos. Um exemplo onde esse problema se torna óbvio é na versão digital do Sesamath (http://mep-outils.sesamath. net/manuel_numerique/?ouvrage=mstsobl_2016), que parece ter dado muito trabalho e mesmo assim é claramente um pdf dentro do navegador, tem vários inconvenientes e não é dinâmica (consequentemente não permitindo edições online).

Quando as pessoas dizem que a conversão de sphinx para pdf exige ajustes finos, isso é um fato. Mas temos que lembrar algumas coisas:

  • algumas dessas correções devem ser feitas mesmo na conversão de latex para pdf. São ajustes finais que sempre devem ser feitos a cada edição do livro físico. Mas eles devem ser minimizados ao máximo e não podem ser importantes para termos uma versão utilizável e com a estética aceitável.
  • essas conversões devem ser gradualmente automatizadas de forma a não perdemos a conexão com a versão online como ocorreu na Dokuwiki (onde eu mesmo fiz um conversor improvisado).
  • essas conversões são pequenos ajustes, pois sphinx foi feito pensando nisso, por outro lado os ajustes de latex para html nunca foram pensados na linguagem e são muito mais complexos.

Enfim. Nós pensamos em várias coisas pra escolher a linguagem sphinx, mas estamos abertos a discussões. Isso ainda pode ser mudado até digamos daqui a seis meses sem o custo ser proibitivo.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/livro-aberto/BookCloud/issues/188#issuecomment-321990468, or mute the thread https://github.com/notifications/unsubscribe-auth/APpa1X0akl9_rMjG5-gimQSedMr1ix2Lks5sXc8JgaJpZM4O0kKH .

hjbortol commented 7 years ago

@gutosurrex e @simas0, obrigado pelas ponderações. Com relação a essa questão:

ser razoavelmente simples de aprender

é preciso ver o peso que ela tem se um objetivo é permitir que pessoas comuns colaborem. Decididamente, a sintaxe não é simples (a la Python, questões de espaços e indentações). Sem um front end (como o Moodle oferece), as pessoas não vão colaborar. Só os geeks.

Uma pergunta: como o PDF está sendo gerado a partir do Sphynx? Ele passa obrigatoriamente pelo LaTeX primeiro? Ou a conversão é direta?

Eu ainda ainda acho que deveríamos escolher o LaTeX mesmo: há bastante suporte e é mais fácil encontrar pessoas que possam ajudar ...

Acho que deveríamos discutir isso em uma reunião e ouvir Letícia, @cydara e outros membros da equipe (não tão geeks) para ver o que elas acham ...

simas0 commented 7 years ago

O LaTeX praticamente inviabiliza HTML e Epub. Também não me parece muito produtivo parar a equipe para discutir a linguagem neste momento. Mas podemos avaliar esta possibilidade.

Em 12 de ago de 2017 15:11, "hjbortol" notifications@github.com escreveu:

@gutosurrex https://github.com/gutosurrex e @simas0 https://github.com/simas0, obrigado pelas ponderações. Com relação a essa questão:

ser razoavelmente simples de aprender

é preciso ver o peso que ela tem se um objetivo é permitir que pessoas comuns colaborem. Decididamente, a sintaxe não é simples (a la Python, questões de espaços e indentações). Sem um front end (como o Moodle oferece), as pessoas não vão colaborar. Só os geeks.

Uma pergunta: como o PDF está sendo gerado a partir do Sphynx? Ele passa obrigatoriamente pelo LaTeX primeiro? Ou a conversão é direta?

Eu ainda ainda acho que deveríamos escolher o LaTeX mesmo: há bastante suporte e é mais fácil encontrar pessoas que possam ajudar ...

Acho que deveríamos discutir isso em uma reunião e ouvir Letícia, @cydara https://github.com/cydara e outros membros da equipe (não tão geeks) para ver o que elas acham ...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/livro-aberto/BookCloud/issues/188#issuecomment-321997089, or mute the thread https://github.com/notifications/unsubscribe-auth/APpa1ToQlSYv4bRuNFeZ6vn6DyTKoQ2iks5sXerhgaJpZM4O0kKH .

hjbortol commented 7 years ago

Há algum tempo, eu fiz alguns experimentos com o MathJax em HTML (logo, Epub), que me pareceu bastante promissor, reconhecendo ambientes em LaTeX e tudo mais.

A conversão Sphynx para PDF passa por LaTeX? Uma resposta negativa seria uma comprovação da força da linguagem!

Na plataforma, além do formato PDF, o sistema poderia gerar também o formato EPUB e HTML do livro, para termos uma ideia já do poder da linguagem Sphynx.

Eu acho que a discussão sobre a linguagem vai aparecer inevitavelmente quando os demais membros da equipe começarem a usar a plataforma de fato, como está acontecendo comigo agora.

simas0 commented 7 years ago

Eu ficaria muito feliz em usar LaTeX na Plataforma!

GladsonAntunes commented 7 years ago

Humberto, entendo seu ponto de vista, realmente a plataforma ainda está longe de permitir que pessoas comuns a utilizem (mais ainda, desejamos que elas fiquem motivadas a utilizarem e dessa forma colaborarem). De qualquer forma é nítido que muitos avanços já foram feitos e uma nova versão está prestes a ser disponibilizada. Uma coisa que é fundamental é oferecer cada vez mais funcionalidades como a do botão visual (ainda em fase experimental) em que o usuário formata o texto como desejar usando recursos do "tipo word" e depois basta clicar em um botão para que a conversão para o Sphynx seja feita. Mas se fosse possível utilizar o LaTeX diretamente seria fantástico! :)

augustoteixeira commented 7 years ago

Muitas questões, então vamos por partes:

Quanto ao sphinx: Ele passa sim por latex antes de ir para pdf. Isso poderia ser visto como uma fraqueza da linguagem como disse o Humberto, mas eu vejo de outra forma.

Quando a comunidade do sphinx se reúne para decidir incluir uma nova funcionalidade, eles consideram se isso faz sentido em pdf, html e epub. Por isso a conversão é suave. Essas considerações não foram nunca feitas durante a evolução do latex. O sphinx tem várias funcionalidades, mas eles não exageram nisso (às vezes menos é mais).

Quanto ao sphinx já exportar diversos formatos. Eu posso colocar epub na plataforma se vocês quiserem, mas vai ficar sem figuras por mais um tempinho (assim como o pdf). Quanto ao html, ele já está lá! Na verdade é isso que permite que as pessoas vejam o livro online como se fosse uma página web. Se somente tivéssemos o pdf, ele teria que ser incluído dentro da página (como aqui:https://mozilla.github.io/pdf.js/web/viewer.html) mas aí várias coisas não iriam funcionar (como esconder o para-o-professor que foi implementado ontem).

Usabilidade para alguém que vem de fora. Isso eu acho que deve ser trabalhado melhorando a interface web de edição. Eu tenho que admitir que quando começamos a usar sphinx eu achei que seria mais fácil (tipo wikipedia)... agora vejo que temos vários problemas com enumerações e espaçamento.

Quanto a fazer a plataforma em latex, isso é uma possibilidade bem concreta. Mas eu faria da seguinte forma. Eu colocaria um sub-conjunto de latex disponível para as pessoas usarem, que pudesse ser convertido para html facilmente com as ferramentas existentes. Depois, gradativamente colocaria mais funcionalidades nesse sub-conjunto. Isso me parece legal, mas vamos lembrar o preço a ser pago:

Podemos fazer um experimento para ver como isso avança... Uma coisa que podemos fazer também é ter alguém trabalhando especificamente nisso, pois é uma tarefa bem separada do resto da plataforma.

Lembrando que nesses comentários estamos editando uma linguagem markup, parecida com a do sphinx...

hjbortol commented 7 years ago

Quanto ao sphinx já exportar diversos formatos. Eu posso colocar epub na plataforma se vocês quiserem, mas vai ficar sem figuras por mais um tempinho (assim como o pdf).

Usabilidade para alguém que vem de fora. Quanto a fazer a plataforma em latex, isso é uma possibilidade bem concreta.