Hackers & Painters: Big Ideas from the Computer Age
Rate it:
Open Preview
Read between May 31 - June 16, 2017
59%
Flag icon
The result is a kind of language you might call top-heavy: a language whose inner core is not very well designed, but which has enormously powerful libraries of code for solving specific problems.
59%
Flag icon
It’s because staying close to the main branches is a useful heuristic for finding languages that will be good to program in now.
60%
Flag icon
Any programming language can be divided into two parts: some set of fundamental operators that play the role of axioms, and the rest of the language, which could in principle be written in terms of these fundamental operators.
60%
Flag icon
have a hunch that the main branches of the evolutionary tree pass through the languages that have the smallest, cleanest cores.
61%
Flag icon
If we think of the core of a language as a set of axioms, surely it’s gross to have additional axioms that add no expressive power, simply for the sake of efficiency. Efficiency is important, but I don’t think that’s the right way to get it.
61%
Flag icon
The word “essay” comes from the French verb “essayer,” which means “to try.” An essay, in the original sense, is something you write to try to figure something out. This happens in software too. I think some of the best programs were essays, in the sense that the authors didn’t know when they started exactly what they were trying to write.
Ankush Chander
Analogy: essay/programs
61%
Flag icon
Inefficient software isn’t gross. What’s gross is a language that makes programmers do needless work. Wasting programmer time is the true inefficiency, not wasting machine time. This will become ever more clear as computers get faster.
62%
Flag icon
Another way to burn up cycles is to have many layers of software between the application and the hardware. This too is a trend we see happening already: many recent languages are compiled into byte code. Bill Woods once told me that, as a rule of thumb, each layer of interpretation costs a factor of ten in speed. This extra cost buys you flexibility.
62%
Flag icon
Somehow the idea of reusability got attached to object-oriented programming in the 1980s, and no amount of evidence to the contrary seems to be able to shake it free. But although some object-oriented software is reusable, what makes it reusable is its bottom-upness, not its object-orientedness.
Ankush Chander
Bottom-upness vs object orientedness forvreusability
68%
Flag icon
you can use technology that your competitors, glued immovably to the median language, will never be able to match.
71%
Flag icon
biggest win for languages like Lisp is at the other end of the spectrum, where you need to write sophisticated programs to solve hard problems in the face of fierce competition.
72%
Flag icon
If you start a startup, don’t design your product to please VCs or potential acquirers. Design your product to please the users. If you win the users, everything else will follow. And if you don’t, no one will care how comfortingly orthodox your technology choices were.
81%
Flag icon
The difference between design and research seems to be a question of new versus good. Design doesn’t have to be new, but it has to be good. Research doesn’t have to be good, but it has to be new.
87%
Flag icon
If you want to create wealth (in the narrow technical sense of not starving) then you should be especially skeptical about any plan that centers on things you like doing. That is where your idea of what’s valuable is least likely to coincide with other people’s.
« Prev 1 2 Next »