A program is one or more functions that work together.
— Stephen Bloch
(via PLT)
A program is one or more functions that work together.
— Stephen Bloch
(via PLT)
Lately I’ve noticed three key traits about software that is generally recognized as “excellent” by technical folks. At its core, said software is simple (it does a few things, very, very well), it its highly reliable (correct, predictable, stable), and it is extensible (by the user).
No amount of language design can force a programmer to write clear programs. If the programmer’s conception of the problem is badly organized, then his programs will also be badly organized. The extent to which a programming language can help a programmer to organize his problem is precisely the extent to which it provides features appropriate to his problem domain. The emphasis should not be on eliminating “bad” language constructs, but on discovering or inventing helpful ones.
— AIM-353: LAMBDA: The Ultimate Imperative
The poster of this thread on the PLT discussion list wondered why Scheme code is so much slower than Python. It was interesting to see how the question was answered because there were at least 3 levels to the problem:
Finding an explanation didn’t just involve comparing the code, it required understanding that the Python code actually called into C functions, and then converting the Scheme code into a similar “stateful” style of program. In programming, thinking is required!
While reading a discussion on the R6RS ratification, I came upon a comment explaining that there were features under consideration that were considered to be “Controversial or difficult but necessary“.
It is a virtuous goal towards which all of us ought to work in both our personal and professional life.
The computer is a medium that can dynamically simulate the details of any other medium, including media that cannot exist physically. It is not a tool, although it can act like many tools. The computer is the first metamedium, and as such it has degrees of freedom for representation and expression never before encountered and as yet barely investigated. The protean nature of the computer is such that it can act like a machine or like a language to be shaped and exploited.
— Alan Kay
I’ve never before heard it put quite so well.
(via R.P. James)
Is looking cool and going through the motions all that it takes to be a good programmer?
(via Zhong)
Make no little plans. They have no magic to stir men’s blood and probably themselves will not be realized. Make big plans; aim high in hope and work, remembering that a noble, logical diagram once recorded will never die, but long after we are gone will be a living thing, asserting itself with ever-growing insistency. Remember that our sons and grandsons are going to do things that would stagger us. Let your watchword be order and your beacon beauty. Think big.
— Daniel Burnham, Chicago architect. (1864-1912)
Studying anything takes both discipline and perseverance. There is just no avoiding it.
These are also the same skills you need to practice when you do those things.
Work hard!