Paul Graham (computer programmer)
13 November 1964 |
Weymouth, Dorset, England
|Alma mater||Cornell University
Rhode Island School of Design
Accademia di Belle Arti Firenze
|Thesis||The State of a Program and Its Uses (1990)|
|Doctoral advisor||Thomas E. Cheatham, Jr.|
Paul Graham (born 13 November 1964) is an English programmer, venture capitalist, and essayist. He is known for his work on Lisp, for co-founding Viaweb (which eventually became Yahoo! Store), and for co-founding the Y Combinator seed capital firm. He is the author of some programming books, such as: On Lisp (1993), ANSI Common Lisp (1995), and Hackers & Painters (2004).
In 1996, Graham and Robert Morris founded Viaweb, the first application service provider (ASP). Viaweb's software, originally written mostly in Common Lisp, allowed users to make their own Internet stores. In the summer of 1998 Viaweb was sold to Yahoo! for 455,000 shares of Yahoo! stock, valued at $49.6 million. At Yahoo! the product became Yahoo! Store.
He later gained fame for his essays on his popular website paulgraham.com. Essay subjects range from "Beating the Averages", which compares Lisp to other programming languages and introduced the word Blub, to "Why Nerds are Unpopular", a discussion of nerd life in high school. A collection of his essays has been published as Hackers & Painters  by O'Reilly, which includes a discussion of the growth of Viaweb and what Graham perceives to be the advantages of Lisp to program it.
In 2005, after giving a talk at the Harvard Computer Society later published as "How to Start a Startup", Graham along with Trevor Blackwell, Jessica Livingston and Robert Morris started Y Combinator to provide seed funding to a large number of startups, particularly those started by younger, more technically oriented founders. Y Combinator has now invested in more than 400 startups, including Justin.tv, Xobni, Dropbox, Airbnb and Stripe.
Graham has a Bachelor of Arts in philosophy from Cornell University (1986). He then attended Harvard University, earning Master of Science (1988) and Doctor of Philosophy (1990) degrees in Applied Sciences with a specialization in computer science. He has also studied painting at the Rhode Island School of Design and the Accademia di Belle Arti in Florence.
Arc programming language
In 2001, Paul Graham announced that he was working on a new dialect of Lisp named "Arc". Over the years since, he has written several essays describing features or goals of the language, and some internal projects at Y Combinator have been written in Arc, most notably the Hacker News web forum and news aggregator program.
In the essay Being Popular Graham describes a few of his goals for the language. While many of the goals are very general ("Arc should be hackable," "there should be good libraries"), he did give some specifics. For instance, he believes that it is important for a language to be terse:
It would not be far from the truth to say that a hacker about to write a program decides what language to use, at least subconsciously, based on the total number of characters he'll have to type. If this isn't precisely how hackers think, a language designer would do well to act as if it were.
He also stated that it is better for a language to only implement a small number of "axioms", even when that means the language may not have features that large organizations want, such as object-orientation (OO). In fact, Graham feels that OO is not useful as its methods and patterns are just "good design", and he sees the language features used to implement OO as partially mistaken.
A controversy among Lisp programmers is whether, and how much, the S-expressions of the language should be complemented by other forms of syntax. Graham feels that additional syntax should be used in situations where pure S-expressions would be overly verbose, saying, "I don't think we should be religiously opposed to introducing syntax into Lisp." Graham also feels that efficiency problems should be solved by giving the programmer a good profiler.
Hello world in Arc :
(prn "Hello, World")
A program used by Paul Graham to illustrate Arc's terseness. It produces a form with one field at the url "/said". When the form is submitted, it leads to a page with a link that says "click here", which itself leads to a page with the value of the original input field.
(defop said req (aform [onlink "click here" (pr "you said: " (arg _ "foo"))] (input "foo") (submit)))
The first publicly released version of Arc was made available on 29 January 2008, implemented on top of Racket ("PLT-Scheme" at that time). The release comes in the form of a .tar archive, containing the Racket source code for Arc. A tutorial and a discussion forum are also available. The forum uses the same program that news.ycombinator.com does, and is itself written in Arc.
Due to the slow development of the official Arc branch, some members of the Arc community started unofficial repositories with unofficial emendations, extensions and libraries. One version, Anarki, permitted  anyone to submit changes to the project. The community-managed wiki is a better source of information than the official site at this point.
Blub is a hypothetical programming language; it is an average language "right in the middle of the abstractness continuum. It is not the most powerful language, but it is more powerful than Cobol or machine language." It was used by Graham to illustrate a comparison of power between programming languages that go beyond Turing completeness, and more specifically, to illustrate the difficulty of comparing a programming language one knows to one that one does not:
- "Our hypothetical Blub programmer wouldn't use either [Cobol or assembly]. Of course he wouldn't program in machine language. That's what compilers are for. And as for Cobol, he doesn't know how anyone can get anything done with it. It doesn't even have x (Blub feature of your choice).
- As long as our hypothetical Blub programmer is looking down the power continuum, he knows he's looking down. Languages less powerful than Blub are obviously less powerful, because they're missing some feature he's used to. But when our hypothetical Blub programmer looks in the other direction, up the power continuum, he doesn't realize he's looking up. What he sees are merely weird languages. He probably considers them about equivalent in power to Blub, but with all this other hairy stuff thrown in as well. Blub is good enough for him, because he thinks in Blub.
- When we switch to the point of view of a programmer using any of the languages higher up the power continuum, however, we find that he in turn looks down upon Blub. How can you get anything done in Blub? It doesn't even have y.
- By induction, the only programmers in a position to see all the differences in power between the various languages are those who understand the most powerful one. (This is probably what Eric Raymond meant about Lisp making you a better programmer.) You can't trust the opinions of the others, because of the Blub paradox: they're satisfied with whatever language they happen to use, because it dictates the way they think about programs."
Graham's hierarchy of disagreement 
Graham proposed a "disagreement hierarchy" in a 2008 essay "How to Disagree", putting types of argument into a seven-point hierarchy and observing that "If moving up the disagreement hierarchy makes people less mean, that will make most of them happier."
Although originally written as a simple list, Graham's hierarchy can be represented as a pyramid with the most convincing form of disagreement at the top, and the weakest at the bottom:
Following this hierarchy, Graham notes that articulate forms of name-calling ("The author is a self-important dilettante") are no different from crude insults.
- "Graham, Paul 1964- Authorities & Vocabularies (Library of Congress Name Authority File)". U.S. Library of Congress. 11 March 2005. Retrieved 12 March 2012.
(Paul Graham, b. Nov. 13, 1964)
- "No; I was born in Weymouth, England. My father's Welsh though. | Hacker News". News.ycombinator.com. Retrieved 2013-01-23.
- Graham, Paul (1994). On Lisp: advanced techniques for Common Lisp. Englewood Cliffs, N.J: Prentice Hall. ISBN 0-13-030552-9.
- Graham, Paul (1996). ANSI Common Lisp. Englewood Cliffs, N.J: Prentice Hall. ISBN 0-13-370875-6.
- Graham, Paul (2004). Hackers & painters: big ideas from the computer age. Sebastopol, CA: O'Reilly. ISBN 0-596-00662-4.
- "Yahoo! to Acquire Viaweb". Yahoo! Inc. 8 June 1998. Retrieved 14 April 2008.
- "Y Combinator Companies - Y Combinator Universe". Retrieved 13 March 2013.
- Tsotsis, Alexia (22 December 2011). "Paul Graham: SOPA Supporting Companies No Longer Allowed At YC Demo Day". TechCrunch. Retrieved 23 December 2011.
- "The Papa Bear: Paul Graham". BusinessWeek. 29 September 2008. Retrieved 29 September 2008.
- "Where are we going?". arclanguage.org. 26 October 2008. Retrieved 14 November 2008.
- "Congrats to PG on getting hitched". news.ycombinator.com. 2 June 2008. Retrieved 14 November 2008.
- Graham, Paul (January 2009). "California Year-Round". Y Combinator.
Jessica Livingston and I (who are married despite our different last names) are expecting our first child any day now.
- "Paul Graham biography". PaulGraham.com. Retrieved 22 July 2011.
- Undergraduation. Paul Graham. Retrieved 22 July 2011.
- EZRA: Cornell's Quarterly Magazine (Fall 2011) "Paul Graham '86"
- "Paul Graham biography". SpeakerMix.com. Retrieved 6 March 2012.
- "Why Arc Isn't Especially Object-Oriented". Paulgraham.com. Retrieved 2013-01-23.
- "Arc FAQ". Paulgraham.com. Retrieved 2013-01-23.
- Take the Arc challenge
- Arc's Out (29 January 2008)
- discussion forum
- Anarki Repository on Github
- May 2013 announcement: anarki is no longer world-committable
- The arc language wiki
- Rainbow, an implementation of Arc in java by Conan Dalton
- Paul Graham (2001). "Beating the Averages". Retrieved 28 April 2007.; published in Hackers & Painters, 2004; the essay was also reprinted in The Planning and Scheduling Working Group Report on Programming Languages, by JM Adams, R Hawkins, C Myers, C Sontag, S Speck
- "...These studies would like to formally prove that a certain language is more or less expressive than another language. Determining such a relation between languages objectively rather than subjectively seems to be somewhat problematic, a phenomenon that Paul Graham has discussed in “The Blub Paradox” ." "An Introduction to Aspect Oriented Programming in e", D. Robinson; see also "Expressive power of recursion and aggregates in XQuery", by J Hidders, J Paredaens, R Vercammen, S Marrara
- See "The Perils of JavaSchools", in his book More Joel on Software.
- Graham, Paul (March 2008). "How to Disagree". PaulGraham.com. Retrieved 2 May 2011.
|Wikiquote has quotations related to: Paul Graham|
- Paul Graham's website
- Inc. Magazine profile
- Audio: What Business Can Learn From Open Source
- Video: "Be Good": Paul Graham at Startup School 08
- Paul Graham provides stunning answer to spam e-mails
- Techcrunch interview
- One hour Interview with Paul Graham video
- Roberts, Russ (3 August 2009). "Graham on Start-ups, Innovation, and Creativity". EconTalk. Library of Economics and Liberty.
- Arc website
- The Arc forum for users of the Arc language.
- A terse arc/lisp introductory tutorial
- Arc FAQ
- practical-scheme.net/wiliki/arcxref an arc wiki
- The Hundred-Year Language, an essay