segunda-feira, 14 de setembro de 2009

C# Cosmos - valerá a pena apoiar?

Embora eu nunca o tenha dito neste blogue, eu estou a seguir o projecto Cosmos (página no CodePlex) desde à muito tempo atrás - mais de 5 meses. Para quem não sabe - é justo que não saiba -, o Cosmos é uma espécie de um «kit» para criação de sistemas operativos em C#. Sim, criar um sistema operativo em C# já é possível - mas independentemente dos seus conhecimentos nesta linguagem de programação, neste ponto de desenvolvimento do projecto ainda não vai conseguir criar um sistema operativo como os principais que conhecemos hoje em dia - com um ambiente de trabalho, interface de janelas, enfim, uma interface de utilizador gráfica. Isto porque ainda só é possível criar sistemas operativos com interface em modo de texto - como o prompt de comando do Windows. Eu estou a seguir muito de perto o projecto, pois está mesmo quase quase terminado o suporte a VGA, e já estão a fazer testes com interfaces com controles (labels, botões, caixas de texto, etc) - ou seja, está a chegar a parte que me interessa. Eu não me vou escrever muito sobre o Cosmos. Se tiver acedido às páginas dos links acima, provavelmente ficará com água na boca como eu.

Agora, vem o meu «problema»: depois de ler a entrevista nesta página (em inglês), com dois dos criadores/administradores do projecto (agora um deles já não é, já lá iremos mais adiante), fiquei a conhecer a «face negra» do projecto. Face negra de quem, como eu, apoia o software livre. Certamente irá perceber se o Google Translate lhe traduzir um excerto da entrevista:

12. Por que a licença BSD, e porquê o Codeplex para acolher este projecto? É fácil de contribuir para o seu projeto e onde podemos encontrar os pontos de partida (comunicação on-line, fóruns, listas de discussão, IRC, specs - you name it, queremos que ele)?
Chad Hower: A licença do FreeBSD permite a distribuição de largura e permissividade. Pelo menos pessoalmente, eu não gosto de GPL como eu acredito que as forças de crenças sobre os outros.

CodePlex fornece-nos com o Team Foundation Server como o nosso VCS que é extremamente rico. Em vez de depender de um único fornecedor, escolhemos o melhor de muitos. O nosso site (www.GoCosmos.org) é o principal ponto de entrada, não CodePlex. Nós também usamos os grupos Yahoo para listas de e-mail e Skype para bate-papos e mensagens instantâneas.

No licenciamento, gestão, infra-estrutura e temos basicamente repetido o que foi feito e aprendido ao longo de muitos anos no Projeto Indy

Scott Balmos: A licença BSD é um compromisso reconhecendo o pragmatismo da indústria de software atual. Como desenvolvedor, congratulo-me com a liberdade e cooperação que o mundo do código aberto proporciona. Eu gosto do projeto na comunidade de configuração do tipo, e nela participaram muitas vezes. No entanto, para um projeto como um sistema operacional a ser realmente viável e aceito pela estrada, é preciso reconhecer o carácter pragmático da closed-fonte de negócios. Não há nenhum ponto de negar a existência, e nenhum ponto de negar a mentalidade do desenvolvedor em potencial.

Enquanto GPL com exceções classpath faz um bom compromisso nestas situações, não se pode superar o fato de que alguns componentes fanático do movimento Linux e da Free Software Foundation deram a GPL um mau nome aos olhos de negócios ao longo da última década. Não importa que a excepção classpath existe, tal como as pessoas ainda estão lutando sobre a definição da vinculação em uma situação VM (como a JVM e CLR). A licença de base ainda é a GPL, que traz muitas percepções negativas a um negócio. O sucesso tranquila da família de sistemas operacionais BSD mostrou que um equilíbrio pragmático da ideologia da comunidade open source, e fechou os interesses das empresas de origem, pode coexistir com êxito.

Chade foi a pessoa original que estabeleceu recursos do projeto, especialmente com a seleção da TFS, o uso do CodePlex, ea utilização do Yahoo Grupos. Ele tem um fundo de alto nível da Microsoft, junto com vários de seus contatos, e pelo menos um desenvolvedor de outros grandes. Eu tendo a concordar com a utilização dessas ferramentas, mas elas funcionam dado o nosso propósito. Nosso objetivo é usar o que as ferramentas são melhores - se eles também são livres e abertas, ou que ser fechada e comercial. O Visual Studio é um deles (embora apoiamos plenamente Visual C # Express), juntamente com alguns dos desenvolvedores usando ReSharper (um favorito pessoal minha, uma vez que minha IDE principal é IntelliJ IDEA para Java). Isto pode negar algumas habilidades para alguns desenvolvedores por aí, mas a habilidade básica para ajudar com Cosmos design e codificação ainda está lá. Temos um canal de Skype, onde a maioria real-tempo conversar desenvolvimento tem lugar. A lista de discussão no Yahoo Groups está fechado apenas para membros. Mas qualquer pessoa interessada em aderir ao programa podem entrar em contato Chade, a fim de obter acrescentou. É certo que provavelmente não é tão aberto como desejado. Mas, como tudo nesta altura, é tudo um trabalho em progresso.

Como você provavelmente percebeu da não muito boa tradução do Google, o projecto não é licenciado sob a GNU GPL, mas sim sobre a FreeBSD - o Chad Hower diz mesmo que não gosta muito da GNU GPL. OK, mas qual é o problema? É verdade, continua a ser opensource à mesma mas é menos «livre» - a BSD restringe mais. De qualquer forma, não foi isso que me fez «torcer o nariz» pela primeira vez desde que conheci o projecto - até porque isto da licensa eu já sabia mais ou menos dede o início. O que me fez gostar menos do Cosmos foi isto que o Chad Hower (mais uma vez) disse, em resposta a outra pergunta. O Google traduz, mas só a parte da resposta em questão:

13. Há outras tentativas de criação de um sistema baseado em C # operacional. Apartes o fechado - investigação Singularity fonte do sistema operacional da Microsoft, há o SharpOS opensource também liberado. Existem diferenças substanciais no projeto sobre o seu?
Chad Hower: Uma diferença importante é o licenciamento. Estamos BSD, eles são baseados GPL. Nosso compiladores também trabalho muito diferente. Eles só usar o "software" livre como em open source completo. Não apenas para internals SharpOS, mas todas as suas ferramentas.

Cosmos seu próprio código-fonte aberto, mas as ferramentas que nós usamos usamos tudo o que sinto se adapte melhor a tarefa. Assim, a utilização do sistema de controle de versão como o TFS (Team Foundation System). Apoiamos o Visual Studio. Apoiamos o Express Edition do VS, que é livre de custos - mas é claro que não tem fonte disponível. Mas para a Cosmos, a todas as fonte disponível .. mas nós não usar muitas ferramentas de código aberto em nosso desenvolvimento.

Isto foi a resposta de Chad Hower. Sim, e você leu bem: Apoiamos o Visual Studio. Apoiamos as Express Editions do Visual Studio, que é grátis - mas é claro que não tem fonte disponível. Bom, isto de ele (eu já não digo o ex-«colega») e o seu projecto apoiarem o Visual Studio, juntamente com o facto de estarem «hospedados» no CodePlex, cheira-me não a esturrro, mas a... Micro$oft por detrás. O mais certo é estar enganado, mas o que é facto é que o Cosmos não parece a ser bem o que se mostra. Isto porque... Nos comentários desse mesmo artigo, pode encontrar-se um intitulado «Clarifications of my own», ou seja, num português aproximado "Esclarecimentos sobre mim". Esse comentário foi escrito pelo Scott Balmos. O Google vai traduzir:

Esclarecimentos sobre a minha própria

Em primeiro lugar, a partir de ontem (2 / 7), já não sou um desenvolvedor do Cosmos. Eu estou voltando para o meu desenho original Ensemble, por duas razões principais:

1) As metas de longo prazo do Cosmos, eu vim a descobrir, eu não gostei. Não é destinado a ser um sistema operacional completo, como eu tinha pensado. Por todas as informações que eu me poderia determinar, Cosmos, deve ser um kit OS *, por exemplo, como um núcleo só, mas ainda mais despojado. É destinado a pessoas para construir outros sistemas operacionais em cima da faixa. Além disso, parece que muitas peças de outros projetos Indy (do qual é chefe do Chade) serão reutilizados no Cosmos, para melhor ou para pior. Assim, a razão para, pelo menos, alguma contradição nas respostas do Chade e para mim. Eu estava a basear minhas respostas fora da idéia de um desktop completo / OS servidor, ao passo que o Chade foi baseando-off da idéia de um kit de núcleo embutida, por falta de melhor descrição.

2) O desejo de simplesmente aprender tudo sozinho, com minhas próprias ideias, no meu próprio ritmo. Afinal, este é o hobby de desenvolvimento OS é em sua essência - uma experiência de aprendizagem.

William:

É bom ver que vocês ganharam de tração na área de execução. Eu estarei por perto, e provavelmente vamos conversar. Não sei se vou voltar para SharpOS, principalmente por causa da licença (uma escolha pessoal - uma das razões pelas quais a codificação é parte ciência e da arte), mas mais uma vez eu quero aprender coisas sobre o meu próprio. Desde que eu espero Ensemble será um sistema operacional completo, espero que nós vamos ter um pouco de cooperação competitiva amigável. Eu odeio indústrias onde os pesos pesados assumir que eles são mutuamente exclusivas.

Quanto ao argumento do compilador, olhar para dentro .. IIRC ... x86/Instructions.cs & Engine.cs. * Lots of opcode e operando decisões tipo de dados, pelo que eu posso dizer, são feitas através de comparações seqüência de caracteres (utilizando a memória / registrar taquigrafia do docs Intel), ao invés de usar tipos de dados objeto. Isso é o que eu quis dizer com analisador léxico textual. Eu ainda podia estar errado, como eu estou olhando para o SVN repo velho espelho que eu tinha de volta em setembro.

Em qualquer caso, só queria pelo menos colocar no meu 2 º C da contraprova.

Ele fala mesmo em «diferença entre as respostas dele e do Chad». Se você ler o artigo original na íntegra, vai notar perfeitamente essa diferença. Ele diz também que parece (e agora todos os que estamos a seguir o projecto de perto sabemos que já não é parecença, é realidade) que o projecto Cosmos vai utilizar partes do projecto Indy, do Chad. Já agora, acho que é uma boa altura para dizer que o «webname» do Chad é «kudzu». Scott Balmos acrescenta nesse comentário/opinião que não sabe se vai voltar para o SharpOS (concorrente directo com o projecto Cosmos), principalmente por causa da licença. Concluindo o comentário, parece que Scott está arrependido de se ter juntado ao projecto Cosmos - tão arrependido que na altura em que escreveu o comentário, já não era administrador do projecto.

Agora, sobre mim. Ontem, avisei, lá no projecto no CodePlex, que não conseguia compilar o Cosmos, disse o que se passava e ainda disse bem do projecto. Hoje, de manhã, tinha um comentário/resposta no meu «Issue post»: era o «kudzu» a dizer porque é que não conseguia compilar. Agora, depois de ler o artigo e fazer a minha «análise», parece que estou a fazer mal em seguir o Cosmos. Afinal de contas - e pelo que eu concluo essa também é a opinião de Scott Balmos -, parece que o Cosmos é uma espécie de «projecto de promoção» do Indy Project do Chad. Eu já sabia que o Cosmos é um facilitador de construção de sistemas operativos; no entanto a ideia do Chad (kudzu) sobre o projecto não me agrada muito. Pelo que vejo no andar da carruagem, o Cosmos é opensource, mas (seja de propósito, seja sem querer) o Cosmos está a ficar cada vez mais «closedsource». Site desactulizado; o que eles fazem está no segredo dos deuses; o código fonte, ao qual eu tenho acesso de leitura via SVN (o que significa que o posso actualizar sempre que quiser sem ter de fazer download do código inteiro), não há revisão que funcione correctamente - dão todas um erro de compilação, já dentro do compilador do Sistema operativo, não dentro da IDE, mas sim na aplicação que é gerada na IDE e que então irá compilar o Cosmos. A resposta do Kudzu para estes erros de compilação é (em inglês):
«Its possible our work on the new scanner has impacted the older IL2CPU. Please use an older revision as there are no functional changes to the older compiler. We are close to finalizing the new rebuilt compiler.» Ele diz que estão prestes a finalizar o trabalho no novo compilador, e agora a equipa de desenvolvedores está à prova: se não finalizarem o trabalho no novo compilador dentro de um mês, esqueço o Cosmos e vou apoiar o SharpOS (que por sinal está muito mais parado que o Cosmos, precisa de uma ajudinha).

Sem comentários:

Enviar um comentário