> an American computer engineer and venture capitalist. He co-founded Sun Microsystems in 1982 along with Scott McNealy, Vinod Khosla, and Andy Bechtolsheim, and served as Chief Scientist and CTO at the company until 2003. He played an integral role in the early development of BSD UNIX while being a graduate student at Berkeley, and he is the original author of the vi text editor.
Or they just used cat: "When I'm writing programs, I can type them in half the time with cat because the programs are six lines - a #include, main and a for loop and one or two variables."
I was a but surprised that he pointed to cost as an advantage of vi over emacs - I never heard anyone claim emacs costs hundreds of dollars; it's free and open source, and to the best of my knowledge always has been.
No, emacs used to be non-free software. Bare in mind open source (as we understand it today) is very different to what it was like in the 80s. Also internet connections (if you were lucky enough to have one in the first place) was several orders of magnitude slower and more expensive thus software was usually distributed via snail mail and usually came with a (hefty) price tag.
In many ways, this is the golden era for developers. Never has so many tools been free, easy to access and in abundance. Though I'll always have fond memories of the 80s development for it's simplicity.
OSS was not a widespread thing until much later, around the time of the early web and Linux. People were sharing code of course but trying to monetize development tools was perfectly reasonable at the time.
Licensing was in general messy and not very formalized (hence the existence of several BSD forks). There were may versions of unix, several of which were proprietary and built by various hardware companies (like Sun's Solaris).
Unix on PCs was even less of a thing at the time as PCs were still pretty limited. The 80386 with 32 bit instructions was only introduced in 1985. I'm not sure there ever was a unix version capable of running on 16 bit intel CPUs before that. So people programming for and using Unix hardware were mainly doing that professionally or in an academic setting and not on some home computer (as they were referred to once upon a time). So, companies donating OSS software was not a big thing.
Bill Joy of course worked on BSD kernels and distributions and would have technically been one of the early OSS developers. So, open sourcing vi was probably a natural thing for him when he created it in 1976 and released it along with the first version of BSD while at Berkeley. So, he was an academic at the time and not selling software for profit yet.
Right, if you look at the early BSD sources [0] it's not a complete OS - there's no kernel. It's just a bunch of utilities that you were supposed to install on an already running AT&T system.
Also, ed wasn't open source. Vi still used ed, so even of vi itself was open source, it wasn't completely functional.
It was only around 2001 / 2003 when Caldera open sourced some UNIX utilities under an open source license as part of the Heirloom project. Parts of that were ed and mailx.
To be fair, RMS a right to fuss and complain, because UniPress did kind of pull the rug out from under him. The display update optimization code that Gosling wrote was pretty ugly but amazingly brilliant dynamic programming stuff, and it had a skull-and-crossbones warning in the comments.
RMS originally used the display update code from Gosling Emacs, but then rewrote it all from scratch for later versions of Gnu Emacs, after UniPress threatened him not to use it. As modems and networks became faster, and people started using window systems instead of terminals, having an "Ultra-hot screen management package" became less important. But it's a really cool algorithm, a great example of dynamic programming, and Gosling even published a paper about it!
DonHopkins 10 months ago | on: Enemy AI: chasing a player without Navigation2D or...
James Gosling's Emacs screen redisplay algorithm also used similar "dynamic programming techniques" to compute the minimal cost path through a cost matrix of string edit operations (the costs depended i.e. on the number of characters to draw, length of the escape codes to insert/delete lines/characters, padding for slow terminals, etc).
>Gosling Emacs was especially noteworthy because of the effective redisplay code, which used a dynamic programming technique to solve the classical string-to-string correction problem. The algorithm was quite sophisticated; that section of the source was headed by a skull-and-crossbones in ASCII art, warning any would-be improver that even if they thought they understood how the display code worked, they probably did not.
/* 1 2 3 4 .... Each Mij represents the minumum cost of
+---+---+---+---+----- rearranging the first i lines to map onto
1 | | | | | the first j lines (the j direction
+---+---+---+---+----- represents the desired contents of a line,
2 | | \| ^ | | i the current contents). The algorithm
+---+---\-|-+---+----- used is a dynamic programming one, where
3 | | <-+Mij| | M[i,j] = min( M[i-1,j],
+---+---+---+---+----- M[i,j-1]+redraw cost for j,2
4 | | | | | M[i-1,j-1]+the cost of
+---+---+---+---+----- converting line i to line j);
. | | | | | Line i can be converted to line j by either
. just drawing j, or if they match, by moving
. line i to line j (with insert/delete line)
*/
In the 1970's there was TECO and then E. Emacs kind of grew out of these editors.
James Gosling of Java fame had his own Gosling Emacs version that I believe was sold for money
GNU Emacs only started in 1984 and had its initial release in 1985. This interview is from 1984 so we would need to know what version of Emacs is Bill Joy referring to specifically.
Also before fast internet connections the FSF used to sell GNU tools on tape and then CD
This newsletter from 1994 says the CD costs $400. I don't know what the price was in 1984 but maybe Bill Joy is referring to that but the Free Software Foundation was only founded in 1985.
Bill was probably referring to what RMS calls "Evil Software Hoarder Emacs" aka "UniPress Emacs", which was the commercially supported version of James Gosling's Unix Emacs (aka Gosling Emacs / Gosmacs / UniPress Emacs / Unimacs) sold by UniPress Software, and it actually cost a thousand or so for a source license (but I don't remember how much a binary license was). Sun had the source installed on their file servers while Gosling was working there, which was probably how Bill Joy had access to it, although it was likely just a free courtesy license, so Gosling didn't have to pay to license his own code back from UniPress to use at Sun.
I worked at UniPress on the Emacs display driver for the NeWS window system (the PostScript based window system that James Gosling also wrote), with Mike "Emacs Hacker Boss" Gallaher, who was charge of Emacs development at UniPress. One day during the 80's Mike and I were wandering around an East coast science fiction convention, and ran into RMS, who's a regular fixture at such events.
Mike said: "Hello, Richard. I heard a rumor that your house burned down. That's terrible! Is it true?"
RMS replied right back: "Yes, it did. But where you work, you probably heard about it in advance."
Everybody laughed. It was a joke! Nobody's feelings were hurt. He's a funny guy, quick on his feet!
Here's an old photo of RMS (in the center) and Mike (on the right), with RMS holding a gerbil wrapped in duct tape, pondering about how to answer the question "Why do you wrap a gerbil in duct tape?" (You can google the answer... And it's only fake stuffed gerbil for cats.)
Here's mmccaff's story about working for UniPress, and my reply, explaining the "Evil Software Hoarder" expression, and linking to RMS's infamous natalism flame:
And a description of UniPress Emacs's vi emulation mode, which addressed the usage pattern of people who liked to quickly run vi to edit a file, then save and quit back into the shell, which you couldn't just emulate by firing up a new emacs every time, since emacs takes so much longer than vi to start up:
>DonHopkins on Apr 18, 2015 | on: Spacemacs – Emacs advanced kit focused on Evil
>UniPress "Evil Software Hoarder [TM]" Emacs had a vi emulation mode such that when you typed ":q", it flipped you over into an Emacs shell window with key bindings to behave just like you'd expect had you actually exited your text editor. Of course the shell mode was hacked so "vi foo.c" would flip you back into a vi-mode buffer on foo.c. Poor innocent vi users didn't even realize they hadn't left the editor! It was kind of like being in the Ematrix.
Here's some more stuff about the tabbed windows and pie menus I implemented for the NeWS display driver for UniPress Emacs (with some links to MockLisp and PostScript source code) -- at the time (around 1988), Gnu Emacs did not have multiple windows, pie menus, or tabbed windows (and still doesn't have pie menus or tabbed windows 33 years later, alas):
>Bill Joy’s Law: 2^(Year-1984) Million Instructions per Second
>The peak computer speed doubles each year and thus is given by a simple function of time. Specifically, S = 2^(Year-1984), in which S is the peak computer speed attained during each year, expressed in MIPS. -Wikipedia, Joy’s law (computing)
>Introduction: These are some highlights from a prescient talk by Bill Joy in February of 1991.
>“It’s vintage wnj. When assessing wnj-speak, remember Eric Schmidt’s comment that Bill is almost always qualitatively right, but the time scale is sometimes wrong.” -David Hough
>C++++-=: “C++++-= is the new language that is a little more than C++ and a lot less.” -Bill Joy
>In this talk from 1991, Bill Joy predicts a new hypothetical language that he calls “C++++-=”, which adds some things to C++, and takes away some other things. [...]
On Nov 8, 2018, I sent Bill Joy a birthday greeting: "Happy 17,179,869,184 MIPS Birthday, Bill"! (2 to the (year - 1984))
Bill Joy is antithetical to modern computer science. He isn't even in the top 1% of the rich. That's the textbook definition of a very bad programmer. While this nerd was spending literally 10,000 hours on some lame time share computer Elon Musk was already requesting his first government subsidies for a poopy diaper bailout.
"The MIRVing of the Alto user interface into multiple new metaphors means that we are moving into very unfamiliar ground. Everybody should get a Macintosh and understand what’s special about it. We still have a long way to go." -Bill Joy, January 31, 1999
From dgh@dgh Thu Feb 7 12:09:13 1991
Date: Thu, 7 Feb 91 12:07:38 PST
From: dgh@dgh (David Hough)
Subject: Highlights of Bill Joy talk, re-broadcast
This has been given around the world, most recently at the quarterly directors
meeting on 31 Jan. A tape was made that will be available from somebody somewhere
later. It’s vintage wnj. When assessing wnj-speak, remember Eric Schmidt’s comment
that Bill is almost always qualitatively right, but the time scale is sometimes wrong.
John Gage collaborated with Bill. Note that some of the specific Sun and SPARC
projections are confidential.
It was from a Cringely series called NerdTV and the tagline for this episode:
Bill Joy -- the father of Berkeley UNIX -- explains why he was fired from the International House of Pancakes.
23 comments
[ 3.8 ms ] story [ 56.9 ms ] thread> an American computer engineer and venture capitalist. He co-founded Sun Microsystems in 1982 along with Scott McNealy, Vinod Khosla, and Andy Bechtolsheim, and served as Chief Scientist and CTO at the company until 2003. He played an integral role in the early development of BSD UNIX while being a graduate student at Berkeley, and he is the original author of the vi text editor.
[1] https://en.wikipedia.org/wiki/Bill_Joy
"The program worked, but it was almost 200 lines long - almost too big for the Pascal system."
sounds like something written in a totally different universe.
Also, it seems that those were times when almost every programmer had his own editor, ed, em, en, be, hed if I managed to catch all of them.
In many ways, this is the golden era for developers. Never has so many tools been free, easy to access and in abundance. Though I'll always have fond memories of the 80s development for it's simplicity.
That surprised me too.
Licensing was in general messy and not very formalized (hence the existence of several BSD forks). There were may versions of unix, several of which were proprietary and built by various hardware companies (like Sun's Solaris).
Unix on PCs was even less of a thing at the time as PCs were still pretty limited. The 80386 with 32 bit instructions was only introduced in 1985. I'm not sure there ever was a unix version capable of running on 16 bit intel CPUs before that. So people programming for and using Unix hardware were mainly doing that professionally or in an academic setting and not on some home computer (as they were referred to once upon a time). So, companies donating OSS software was not a big thing.
Bill Joy of course worked on BSD kernels and distributions and would have technically been one of the early OSS developers. So, open sourcing vi was probably a natural thing for him when he created it in 1976 and released it along with the first version of BSD while at Berkeley. So, he was an academic at the time and not selling software for profit yet.
[0] https://github.com/dspinellis/unix-history-repo/tree/BSD-1-S...
It was only around 2001 / 2003 when Caldera open sourced some UNIX utilities under an open source license as part of the Heirloom project. Parts of that were ed and mailx.
RMS originally used the display update code from Gosling Emacs, but then rewrote it all from scratch for later versions of Gnu Emacs, after UniPress threatened him not to use it. As modems and networks became faster, and people started using window systems instead of terminals, having an "Ultra-hot screen management package" became less important. But it's a really cool algorithm, a great example of dynamic programming, and Gosling even published a paper about it!
https://news.ycombinator.com/item?id=22849522
DonHopkins 10 months ago | on: Enemy AI: chasing a player without Navigation2D or...
James Gosling's Emacs screen redisplay algorithm also used similar "dynamic programming techniques" to compute the minimal cost path through a cost matrix of string edit operations (the costs depended i.e. on the number of characters to draw, length of the escape codes to insert/delete lines/characters, padding for slow terminals, etc).
https://en.wikipedia.org/wiki/Gosling_Emacs
>Gosling Emacs was especially noteworthy because of the effective redisplay code, which used a dynamic programming technique to solve the classical string-to-string correction problem. The algorithm was quite sophisticated; that section of the source was headed by a skull-and-crossbones in ASCII art, warning any would-be improver that even if they thought they understood how the display code worked, they probably did not.
https://donhopkins.com/home/archive/emacs/skull-and-crossbon...
Trivia: That "Skull and Crossbones" ASCII art is originally from Brian Reid's Scribe program, and is not copyrighted.
https://donhopkins.com/home/archive/emacs/mw/display.c
https://donhopkins.com/home/documents/EmacsRedisplayAlgorith...https://dl.acm.org/doi/10.1145/1159890.806463
A redisplay algorithm, by James Gosling.
Abstract
This paper presents ...
https://en.wikipedia.org/wiki/Emacs
In the 1970's there was TECO and then E. Emacs kind of grew out of these editors.
James Gosling of Java fame had his own Gosling Emacs version that I believe was sold for money
GNU Emacs only started in 1984 and had its initial release in 1985. This interview is from 1984 so we would need to know what version of Emacs is Bill Joy referring to specifically.
Also before fast internet connections the FSF used to sell GNU tools on tape and then CD
This newsletter from 1994 says the CD costs $400. I don't know what the price was in 1984 but maybe Bill Joy is referring to that but the Free Software Foundation was only founded in 1985.
https://www.gnu.org/bulletins/bull16.html#SEC38
https://www.lugaru.com/
Epsilon was initially released in 1984 for PC/DOS and is still under development.
https://en.wikipedia.org/wiki/Gosling_Emacs
I worked at UniPress on the Emacs display driver for the NeWS window system (the PostScript based window system that James Gosling also wrote), with Mike "Emacs Hacker Boss" Gallaher, who was charge of Emacs development at UniPress. One day during the 80's Mike and I were wandering around an East coast science fiction convention, and ran into RMS, who's a regular fixture at such events.
Mike said: "Hello, Richard. I heard a rumor that your house burned down. That's terrible! Is it true?"
RMS replied right back: "Yes, it did. But where you work, you probably heard about it in advance."
Everybody laughed. It was a joke! Nobody's feelings were hurt. He's a funny guy, quick on his feet!
Here's an old photo of RMS (in the center) and Mike (on the right), with RMS holding a gerbil wrapped in duct tape, pondering about how to answer the question "Why do you wrap a gerbil in duct tape?" (You can google the answer... And it's only fake stuffed gerbil for cats.)
http://www.art.net/~hopkins/Don/images/jsol-rms-gerbil-liz-m...
Here's mmccaff's story about working for UniPress, and my reply, explaining the "Evil Software Hoarder" expression, and linking to RMS's infamous natalism flame:
https://news.ycombinator.com/item?id=6646978
And a description of UniPress Emacs's vi emulation mode, which addressed the usage pattern of people who liked to quickly run vi to edit a file, then save and quit back into the shell, which you couldn't just emulate by firing up a new emacs every time, since emacs takes so much longer than vi to start up:
https://news.ycombinator.com/item?id=9398028
>DonHopkins on Apr 18, 2015 | on: Spacemacs – Emacs advanced kit focused on Evil
>UniPress "Evil Software Hoarder [TM]" Emacs had a vi emulation mode such that when you typed ":q", it flipped you over into an Emacs shell window with key bindings to behave just like you'd expect had you actually exited your text editor. Of course the shell mode was hacked so "vi foo.c" would flip you back into a vi-mode buffer on foo.c. Poor innocent vi users didn't even realize they hadn't left the editor! It was kind of like being in the Ematrix.
Here's some more stuff about the tabbed windows and pie menus I implemented for the NeWS display driver for UniPress Emacs (with some links to MockLisp and PostScript source code) -- at the time (around 1988), Gnu Emacs did not have multiple windows, pie menus, or tabbed windows (and still doesn't have pie menus or tabbed windows 33 years later, alas):
https://news.ycombinator.com/item?id=18837730
>That's how I implemented tabbe...
https://news.ycombinator.com/item?id=20484547
and in 2015:
https://news.ycombinator.com/item?id=10145982
and in 2012:
https://news.ycombinator.com/item?id=4940918
I previously commented and linked to an article I wrote about Bill Joy's Law: "2^(Year-1984) MIPS":
Wow, an interview from Year 1 MIP!
https://medium.com/@donhopkins/bill-joys-law-2-year-1984-mil...
>Bill Joy’s Law: 2^(Year-1984) Million Instructions per Second
>The peak computer speed doubles each year and thus is given by a simple function of time. Specifically, S = 2^(Year-1984), in which S is the peak computer speed attained during each year, expressed in MIPS. -Wikipedia, Joy’s law (computing)
https://en.wikipedia.org/wiki/Joy%27s_law_(computing)
>Introduction: These are some highlights from a prescient talk by Bill Joy in February of 1991.
>“It’s vintage wnj. When assessing wnj-speak, remember Eric Schmidt’s comment that Bill is almost always qualitatively right, but the time scale is sometimes wrong.” -David Hough
>C++++-=: “C++++-= is the new language that is a little more than C++ and a lot less.” -Bill Joy
>In this talk from 1991, Bill Joy predicts a new hypothetical language that he calls “C++++-=”, which adds some things to C++, and takes away some other things. [...]
On Nov 8, 2018, I sent Bill Joy a birthday greeting: "Happy 17,179,869,184 MIPS Birthday, Bill"! (2 to the (year - 1984))
https://donhopkins.medium.com/bill-joys-law-2-year-1984-mill...
It was from a Cringely series called NerdTV and the tagline for this episode: Bill Joy -- the father of Berkeley UNIX -- explains why he was fired from the International House of Pancakes.