Mostrando postagens com marcador Programabilidade. Mostrar todas as postagens
Mostrando postagens com marcador Programabilidade. Mostrar todas as postagens

domingo, 9 de janeiro de 2011

Lisp. Maxwell's equations for computation indeed

David Nolens' Posterous blog, Lazy Evaluation vs. Macros. He really appreciates Lisp:

"The key insight of Lisp is that a programmer or a community of programmers should have have the whole of computation at their finger tips." Which goes in the direction I recommend: programmability.

"So the real question moving forward isn't "Is Lisp too powerful?", rather, "Are our mainstream programming languages and paradigms too damn weak?"."

sábado, 25 de dezembro de 2010

Editores de texto e programabilidade

Programabilidade significa ser uma linguagem universal. Turing complete.

Há editores de texto programáveis, assim como planilhas programáveis. Não é o caso das impropriamente chamadas "macros" que permitem uma programação limitada, não universal. Exemplo de editor de texto totalmente programável: Emacs, com seu ELisp.

MarkCC (do excelente blog Good Maths, Bad Maths) está desenvolvendo um editor de textos programável, Apex. Com referências a Teco (de onde vem Emacs), Sam e Acme.

Pista a seguir: programas de uso geral, com interface familiar ao usuário - editores de texto, planilhas - com programabilidade.

sábado, 11 de dezembro de 2010

Computadores são previsíveis?

“Informática não é ciência exata, não é ciência humana... É ciência oculta”
Conversa com Warley Reis, citando Angelo.

Esta frase, e variantes comuns nas conversas sobre TI, mencionando defeitos intermitentes, bugs imprevisíveis, problemas impossíveis de reproduzir, mostra que se perdeu na prática uma característica da máquina universal: a total previsibilidade. O contrôle completo que se tem em uma máquina que executa um algoritmo.

Como recuperar este controle? Programabilidade é uma parte da resposta. Programas corretos é outra. E principalmente não entrar nos caminhos que levam a situações não reproduzíveis, como multitarefa com programas não 100% encapsulados.

Programabilidade é fundamental

It is no exaggeration to regard this as the most fundamental idea in programming:

The evaluator, which determines the meaning of expressions in a programming language, is just another program.
 
To appreciate this point is to change our images of ourselves as programmers. We come to see ourselves as designers of languages, rather than only users of languages designed by others.

Structure and Interpretation of Computer Programs, Harold Abelson and Gerald Jay Sussman, The MIT Press, 2nd edition, 1996, p.297