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?"."
What happened to software? Why is there so few creative software (2010)? Are we at the end of software? What are the forces which led to this situation, looking like a bit step backward to the epoch of non-programmable accounting machines? Is there a way out of this situation? Yes, and a very simple one: make good software. With invention. Developing models and abstractions. It is difficult but absolutely possible. It this re-start of software I wish to explore here in this blog. Welcome
Mostrando postagens com marcador Programabilidade. Mostrar todas as postagens
Mostrando postagens com marcador Programabilidade. Mostrar todas as postagens
domingo, 9 de janeiro de 2011
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
Structure and Interpretation of Computer Programs, Harold Abelson and Gerald Jay Sussman, The MIT Press, 2nd edition, 1996, p.297
Assinar:
Postagens (Atom)