Novo desenvolvimento
Como se programa um software?
Vc sabe não é?
Eu creio que sim.
O desenvolvedor senta em sua messa. Talvez coloca uma musica para escutar e começa a
escrever.
Esta forma de programar em que todos estamos acostumados. Um desenvolvedor em seu mundo fazendo o seu trabalho.
Vocês já devem conhecer extreme programing (XP) que é uma metodologia de desenvolvimento onde um par de programadores senta e desenvolve o programa. Isso é um exemplo minimalista sobre XP. Mas esta é uma parte muito interessante. Aonde vc cria um ambiente de aprendizado entre as pessoas que não existiria se vc fosse desenvolver sozinho o programa.
Mas esta forma de desenvolvimento também traz problemas.
Tem que se ter os desenvolvedores no mesmo lugar, o que é muito incomodo principalmente para projetos open-source. Nestes projetos os desenvolvedores estão a muitos kilometros uns dos outros e é impossivel aplicar uma metodologia como esta.
Seria legal se existisse uma forma de utilizar este tipo de desenvolvimento em projetos aonde os desenvolvedores estão muito distantes. Algo do tipo uma programação comunitaria entre não apenas dois desenvolvedores mais varios ao mesmo tempo sendo um que escreve o código e outros que vão dando dicas e corrigindo erros. Una isso a uma linguagem que tenha uma curva de aprendizado estranhamente pequena e você vai ver o estrago que isso pode causar.
O problema com o software hoje em dia é que a visão dele não é para o aprendizado acelerado.
Acredito que conhecam o site Java Almanac. Ele é um exemplo de como se pode tornar as coisas mais simples para os programadores. Não adianta criar uma abstração sem que todos possam enteder ela completamente. E não adianta nada não existir formas de se chegar a esta abstração diretamente do problema em que se quer tratar. Por exemplo preciso de uma classe que converta Numeros para strings. Como vou chegar na resposta partindo apenas do conhecimento do meu problema? Sem ter que fuçar por bibliotecas ou perguntar a quem quer que seja.
Não estou falando de documentação, é algo mais abstrato que isso. É mais ou menos como dizer:
-Esta é minha entrada.
-Esta minha saida.
-Quem faz isso pra mim?
Não existem formar de se fazer algo tão complexo quanto isso sem uma comunidade muito forte.
E criando maneiras de unir a comunidade e fazer com que os neófitos entrem em contato com as pessoas certas é que se pode fazer coisas deste genero.
Mas porque implementar tudo isso em software em seu computador? Porque não implementar aonde você possa ter acesso direto conectado diretamente com a internet?
Porque não desenvolver diretamente na web?
Aonde vc pode ver o que outros estão fazendo em seu projeto preferrido e ler as discussões entre os desenvolvedores e como eles cooperam entre si.
Mudanças muito grandes as que proponho. Talvez um dia, nós ou outros implementaram algo assim.
