Outro exemplo muito bom para emergência é a programação procedural. Em vez de se conseguirem resultados recorrendo a descrições estáticas como jpegs, mapas de bits, etc, a programação procedural diz antes quais são as regras a seguir para se conseguir determinado efeito. A animação e a música emergem do processo descrito pelo programa em vez de estarem descritas na programação.
Isto é o modo como também na natureza muitos padrões complicados emergem a partir de regras locais mais simples. Por isso, a informação toda para fazer um animal existe em cada célula do embrião e pode descrever uma coisa tão complexa que se fosse feito um plano seria absolutamente gigantesco. Cada célula sabe o que fazer a cada momento em função do que tem à sua volta e isso chega para dar origem ao ser vivo adulto. Em seres vivos simples, algumas dessas regras estão à vista, como por exemplo: "cresce num sentido e depois divide em 2" dando origem a ramificações.
Na programação normal isto é pouco utilizado. É muito mais difícil programar o processo do que dizer: "agora cola este mapa de bits". Mas se se programar o processo, consegue-se fazer emergir de poucas linhas de código coisas absolutamente incríveis. É como se pudéssemos dizer o que queremos sem ter de por tudo no programa. Os objectos e funções só estão no código em principio, pois resultam da execução do programa. É tudo criado em tempo real.
Mas existem programadores, muitas vezes amadores, que se entretêm a ver com 64k (pode ser outro limite mas nas "intros" esta é a dimensão típica) o que é cada um consegue fazer. Existem mesmo concursos.
Por exemplo, este vídeo dos multi-premiados Farbraush designado por "fr-08: .the .product". é o resultado no ecrãn da execução de um programa de 64k e foi feito em 2000: (enquanto esta a ver lembre-se que são apenas 64kb! - o velho spectrum tinha 48kb, e uma pen usb de 1gb são 1000 x 1000kb, para terem uma ideia). Os vídeos são o resultado de programas que não têm sequer a dimensão do ficheiro de texto que poe este post no ecrã:
http://www.youtube.com/watch?v=LkEsP9H2HGM (não estou a conseguir por aqui os vídeos, por isso vão links)
Uma vencedora do Breakpoint em 2003:
http://www.youtube.com/watch?v=pq-aLBNwpPQ&feature=related
E esta de 2009 tem nada mais nada menos que 4kb:
http://www.youtube.com/watch?v=FWmv1ykGzis
E o jogo Kkrieger, um "first person shooter" que apesar de estar cheio de bugs (nunca foi acabado) consegue fazer coisas incríveis com 96kb. Cheguei a experimentá-lo há uns anos num XP 32 bits e funcionava razoavelmente. A pagina da Wikipédia é esta:
http://en.wikipedia.org/wiki/.kkrieger
Será que já consegui mostrar o poder da programação procedural e ao mesmo tempo ilustrar a emergência de fenómenos na programação?
Por isso é que o nosso genoma é quase igual ao do arroz. A parte mais difícil já estava feita nessa altura. Pequenas alterações a um nível muito baixo dão origem a consequências muito abrangentes e com ramificações. A evolução consegue isto com tentativa e erro, enquanto que os programadores conseguem isto com tentativa e erro, perdão, conhecimento profundo de várias linguagens e do hardware com que estão a trabalhar, para poderem tirar partido da cascata de acontecimentos causada por poucas linhas de código.
PS. os códigos das demos são difíceis de encontrar e como requerem ser feitos à medida do hardware onde correm, tirando até por vezes partido de bugs e efeitos secundários das máquinas, é pouco provável que consiga fazer um código correr sem problemas num computador qualquer. Mas o You Tube está cheio de vídeos dos resultados. Tem demos e intros desde o tempo do Spectrum, altura em que começou a demoscene.
Para saber mais sobre a demoscene:
http://tomaes.32x.de/text/faq.php
E a pagina dos Farbraush na Wikipédia:
http://en.wikipedia.org/wiki/Farbrausch
Cepticismo, naturalismo e divulgação científica. Uma discussão sobre o que é ou não matéria de facto.
Páginas
- Página inicial
- Teoria da Relatividade
- Mecânica Quântica
- Criacionismo
- Ciência
- Teoria da Evolução
- Medicinas Alternativas
- Astrologia
- Aquecimento Global Antropogénico
- Importância do Consenso Científico
- Teorema de Godel
- Evidência Anedótica
- Propriedades emergentes e a mente.
- Leitura a frio vs mediunismo/etc.
- O que é o cepticismo?
Subscrever:
Enviar feedback (Atom)
Sem comentários:
Enviar um comentário