Joy was born in the Detroit suburb of
Farmington Hills, Michigan, to William Joy, a school vice-principal and counselor, and Ruth Joy. He earned a
Bachelor of Science in
electrical engineering from the
University of Michigan and a
Master of Science in
electrical engineering and
computer science from the
University of California, Berkeley, in 1979. While a graduate student at Berkeley, he worked for
Bob Fabry's
Computer Systems Research Group (CSRG) on the
Berkeley Software Distribution (BSD) version of the
Unix operating system. He initially worked on a
Pascal compiler left at Berkeley by
Ken Thompson, who had been visiting the university when Joy had just started his graduate work. Some of his most notable contributions were the
ex and
vi editors and the
C shell. Joy's prowess as a computer programmer is legendary, with an oft-told anecdote that he wrote the vi editor in a weekend. Joy denies this assertion. A few of his other accomplishments have also been sometimes exaggerated;
Eric Schmidt, CEO of
Novell at the time, inaccurately reported during an interview in
PBS's documentary
Nerds 2.0.1 that Joy had personally rewritten the BSD kernel in a weekend. In 1980, he also wrote cat -v, about which
Rob Pike and
Brian W. Kernighan wrote that it went against
Unix philosophy. According to a
Salon article, during the early 1980s,
DARPA had contracted the company
Bolt, Beranek and Newman (BBN) to add
TCP/IP to Berkeley UNIX. Joy had been instructed to plug BBN's stack into Berkeley Unix, but he refused to do so, as he had a low opinion of BBN's TCP/IP. So, Joy wrote his own high-performance TCP/IP stack. According to
John Gage: Rob Gurwitz, who was working at BBN at the time, disputes this version of events. ==Sun Microsystems==