
Bill Joy's greatest gift to man – the vi editor - sytelus
http://www.theregister.co.uk/2003/09/11/bill_joys_greatest_gift/print.html
======
enobrev
My favorite quote in the article:

> "So you didn't really write vi in one weekend like everybody says?"

> No. It took a long time.

Nearly every day I come to this site and skim past headlines resembling "Check
out my weekend project!" or "Look at the awesome business idea I put together
in 12 hours!!"

While I understand there can be a great sense of accomplishment to come up
with an idea and pull it together in a short amount of time, I far more
appreciate projects that people have dedicated months and years of their lives
to.

Forget weekend whims. Dedicate yourself to an interesting project for 6 months
or a year and then tell me what you've learned. You may suddenly find yourself
in high enough demand that you're no longer able to spare the weekends to
waste on something to show off on HN.

~~~
alister
> "So you didn't really write vi in one weekend like everybody says?"

Whenever I hear that someone whipped up an impressive piece of code in a
weekend or in an hour, I am skeptical.

Time passes quickly when you're doing work that you love. Since you're not
tracking the time, what seemed like a brilliant 10-minute hack may have taken
an hour.

My rule of thumb--based on personal observation--is to multiply by 5 to get a
truer estimate of how long an impressive programming project must have taken.
And when speaking to a lawyer or bureaucrat, I need to _divide_ by 8.

~~~
city41
A project I've been working on recently arrived at a good milestone, so I
shelved it for a bit. I was _very_ surprised to see github's 52 week
participation graph showing me I had been working on it for 3 months. If
someone asked me how long it took me, I very honestly would have said 1 month.
Not trying to dupe anyone, not even myself, it just felt that way to me.

------
Jach
A nice bit of history. Of course, even more interesting bits on the Wikipedia
page: <http://en.wikipedia.org/wiki/Vi#Creation>

> Many of the ideas in ex's visual mode (a.k.a. vi) were taken from other
> software that existed at the time. According to Bill Joy,[2] inspiration for
> vi's visual mode came from the Bravo editor, which was a bimodal editor. In
> an interview about vi's origins, Joy said:[2]

> > A lot of the ideas for the screen editing mode were stolen from a Bravo
> manual I surreptitiously looked at and copied. Dot is really the double-
> escape from Bravo, the redo command. Most of the stuff was stolen. There
> were some things stolen from ed—we got a manual page for the Toronto version
> of ed, which I think Rob Pike had something to do with. We took some of the
> regular expression extensions out of that.

And fortunately for those of us in the modern world, we have vim.

~~~
meepmorp
What I find sad about that anecdote is that he fully and freely admits
stealing software features from other places to make a more serviceable piece
of software, and that doing so now and owning up to it would get you an
automatic loss in a patent suit.*

* Yes, I know this is a bit of an oversimplification.

~~~
gerggerg
I think that's a bit doom and gloom. We now have github, it's easier than ever
before to copy code and release it as your own.

~~~
pconf
What exactly has github contributed to code accessibility? (that FreeBSD's
ports system didn't do 15 years ago)

~~~
jodrellblank
Popularity and accessibility itself. Real, normal people have heard of, and
use, Github.

~~~
pconf
Real, normal people? I wish it were true but in my experience github is just
another source code repository.

As for BSD a search of my (partial) ports tree finds 19326 Makefiles of which
102 contain the string github. Thats 0.5 percent, which tends to argue against
your claim.

That's just the easiest measure I have at hand. Would be interested in others
and their findings.

~~~
jodrellblank
_Real, normal people?_

I don't mean my mom, but I do mean to imply (without evidence) ordinary non-
Norvig coders who aren't steeped in Unix lore.

Does ports really do what Github does, or does it do what
apt/rpm/yum/pacman/etc do?

~~~
meepmorp
It's been a few years since I've been a regular (Free)BSD user, but I think
github has a very different use case.

The ports tree is for handling distribution of compilable/installable software
for the platform, and you synch it from a server, then build. It's not really
intended to promote the branching and modification, and social aspects that
github does.

~~~
pconf
I largely agree with your points about branching but less so about
modification. It's easy to submit patches though they do go through a
sometimes rigorous code review. Does github have a formal mechanism for code
reviews? Does that differ from Sourceforge, Google Code or other source
repositories
<[http://en.wikipedia.org/wiki/Comparison_of_open_source_softw...](http://en.wikipedia.org/wiki/Comparison_of_open_source_software_hosting_facilities>)?

------
nezumi
But that world does still exist: I often find myself ssh'd into a desktop tmux
session, via my laptop tethered to my phone's internet connection. In that
situation, I am highly appreciative of vi's 300 baud history.

~~~
kabdib
In 1979 I needed a terminal, so I wired-in a UART to my homebrew Z-80 system
and hooked it up to a Cat acoustic (300 baud) modem.

I wanted to use Emacs on my guest account on the MIT PDP-10s to do my editing
of school projects, so I could FTP and compile them on NBS-10's Pascal
compiler, print out the results in the machine room at NBS, drive 20 miles,
and hand in the work.

Rather than use punchcards. /Now/ you understand. Anything but that.

To make Emacs usable at 300 baud, I wrote a SUPDUP terminal emulator. SUPDUP
was an abstract terminal type that MIT Emacs understood internally. It sported
character and line insert/delete, and region scrolling, and it made the screen
update tolerable.

It's hard to convey the electric sense of an editor that self-inserted
characters. The productivity boost was amazing. It was worth all the effort,
and I'm sure I was having a lot more fun than the other poor sots at the U who
were having to line up for keypunch machines and deal with two-hour job
turnarounds.

~~~
rizumu
Also there is zile, a 130Kb emacs clone. [http://damnsmalllinux.org/cgi-
bin/forums/ikonboard.cgi?act=S...](http://damnsmalllinux.org/cgi-
bin/forums/ikonboard.cgi?act=ST;f=14;t=2176;st=15)

~~~
kabdib
There are a number of small Emacs clones (I wrote one for the 6502-based Atari
800 back in the day). They are certainly better than nothing. None of them
existed until the mid 80s.

Ironically, 130K is tiny todya, but more than half the address space of a
PDP-10 :-)

------
StavrosK
> Now that computers are so much faster than you can think, nobody understands
> this anymore.

Are you kidding me? Only vi is much faster than I can think. I still have to
wait for Eclipse. Hence, I use vi, because there's too much friction in
waiting for my editor. I find that I miss lots of the convenience features of
Eclipse, but when I can alrady get productive in vim by the time Eclipse has
loaded, it's too easy to just work in vim.

~~~
sjs
Eclipse is a dog. If you compare vim to other text editors such as BBEdit,
TextMate, Emacs, Gedit, Sublime Text 2, e, etc. then your argument falls flat
on its face.

~~~
nostrademons
The nice thing about vi is its ubiquity. I can ssh into basically every UNIX
system in the world and be reasonably certain that vi will be available. The
same can't be said for BBEdit, TextMate, EMacs, Gedit, etc.

I picked up vi because I was stuck doing development over SSH from my
college's public computer lab when my PC died. I stayed because once I'd
learned the keystrokes, it really was a pretty decent editor. I think that
Eclipse/TextMate/Gedit/etc. have some nice points and are definitely better in
some respects (like, say, visual presentation), but vi is Good Enough and
available basically everywhere.

~~~
Florin_Andrei
> _The nice thing about vi is its ubiquity._

I could name a very long list of things that are ubiquitous, yet are not nice
at all.

~~~
StavrosK
He said that it's nice that it's ubiquitous, not that _being_ ubiquitous makes
_vi itself_ nice.

------
pschlump
That world is not completely gone! I use VI to connect to amazon AWS servers
over a satellite link. It is faster than 1200 baud but with horrible latency.
VI is the only editor that works.

~~~
pschlump
Right now I am sitting on a Sailboat in the Bahamas.

~~~
nathanwdavis
You really should get off HN and enjoy the sea.

~~~
Marwy
Maybe he did? Maybe he has been enjoying the sea for the past 12 hours? Jesus,
you really don't have better things to do than making assumptions and sharing
them with people?

~~~
apu
Please be nice.

------
jamesrcole
_...I was trying to make it usable over a 300 baud modem. ...the editor was
optimized so that you could edit and feel productive when it was painting
slower than you could think._

Seems a good example of how constraints can produce innovation.

~~~
StavrosK
Well, no, slowness was the problem they were trying to solve. It wasn't
incidental.

~~~
jamesrcole
Yes, my point was that it was a product of facing that constraint.

------
Yuioup
I beg to differ!

I have several clients with which I connect to remotely via Windows Terminal
Server or VNC. I usually have to connect to via the webbrowser by opening a
link and then the session is opened. I usually have no option to change the
performance or quality options.

We have a fast connection here but our clients have ADSL. Yes that's right,
the A stands for really slow uploads.

I don't know about you but have you ever tried using
Notepad/Notepad++/UltraEdit via a slow internet connection with all the
options on full blast (32-bit color, themes, etc ..)?

I'm so glad that I can download PortableVim and run it off the "My Documents"
folder and quickly do my editing without being too bothered by the refresh
rate.

So the "world that doen't exists anymore" is very much alive if you ask me!

------
martincmartin
This is from 2003. Can we put [2003] in the title?

~~~
bcrescimanno
Actually, it's from 2003 but the entirety of the interview is from 1999. I had
that issue of Linux Magazine and I remember reading the interview back then.
Sad that it took me over 10 years to really dig into vim after reading about
the history of vi.

~~~
ez77
In case anybody is interested, here is the link to the 1999 interview:
<http://www.linux-mag.com/id/349/>

------
sgt
As I read the article, "Joy leaves a lasting legacy " gave me a small shock,
causing me to fire up Bill Joy's wikipedia page to ensure myself that he
hasn't passed away. Phew, thankfully he's fine. Too many great people are
dying these last few years.

~~~
verisimilitude
You aren't imagining that. With the increase in population and the number of
people classified as celebrities, in the future, we'll see what Kottke called
"An abundance of death"[0].

[0]: <http://kottke.org/09/08/an-abundance-of-death>

------
bch
It's been pointed out that world -does- exist (just not as pervasively
distributed as it was): people are using slow satellite connections, or low-
powered devices where vi is the perfect fit. Regardless, whether vi was
written "for a world which doesn't exist anymore", vi still works perfectly
well in the world we live in, and a lot of people produce a lot of value with
it, and enjoy using it. vi was written for a world that doesn't exist anymore;
welcome vi to the world in which we live today.

------
g3orge
Vim is my favorite editor ever, and I'm not gonna change it for the world.

~~~
hamax
I started using it few months ago and I love it. My usage patterns are very
basic and still I can write code faster then in any visual editor.

In our office 3/10 engineers are using vim as primary tool.

------
gonzo
I used to work for wnj. I asked him about vi.

His retort, "I wrote that when I didn't know how to program."

He uses Textedit (on a Mac) these days. (Emacs bindings, if you didn't know.)

He hasn't used vi in years.

~~~
cmkrnl
Nice - always interested in hearing what the old geniuses are up to now.

------
saddino
As someone who was limited to 300 baud for learning UNIX and C, I actually
preferred Joy's ex over vi. I found that I could type ahead very quickly and
just let the edits scroll in as they were echoed from the mainframe. Watching
the edits cascade in a scroll made much more sense to me than a slowly
updating vi screen.

------
zerostar07
Understandable why it's the most fond of his achievements, i _spend more time
thinking about it_ more than any of his other inventions. You get a glimpse of
that old world he's talking about when you use it over a slow data connection
on your smartphone.

~~~
billybob
You use vi on a smartphone? I love vim, but I think it would be excruciating
without a full keyboard.

~~~
exDM69
I have been using Vim over ssh with my Nokia N900 not-so-smart-phone, and it
works great compared to anything else I can think of. The phone has a physical
qwerty keyboard but it does not have all the non-alphabetic keys you'd want
and esc, ctrl and some other keys are accessed via touchscreen.

I have made some key mappings in Vim to get my non-US native keyboards keys
that are normally not used in coding do something meaningful. I have ö and ä
mapped to curly/square brackets, å is another escape and 0 and + (next to each
other on the number row) are home and end. This makes it pretty convenient to
write code on a qwerty keyboard and it also works nicely with a laggy phone
internet connection over ssh.

~~~
dave1010uk
I had a N900 and used to write lots of code in nano. It had python, ruby and
PHP and was a great tool for quickly coding ideas or scraping and grepping web
APIs. It ran vi and emacs too but I never really used them.

Now I have an Android device that's 5x faster and 10 more usable as a phone
but I've only written about 10 lines of code in total on it's virtual
keyboard. Hoping my next phone combines the best of both worlds.

------
pconf
Still my most used piece of software ever. No other text editor comes close in
efficiency. Let those who can't learn vi remain tethered by the mouse, they'll
never be able to write or edit text as quickly.

Now if only the sc spreadsheet could be retrofitted with Lotus 123 menus. With
that, vi, and screen I'd be nearly as efficient as 15 years ago with 123, MKS
vi, and Desqview.

Sad that today's software interfaces have so little to do with efficiency (and
that includes the 'pc' keyboard layout).

------
ojbyrne
This seems like a back-handed endorsement of Emacs ;-)

------
kahirsch
In another interview, Coulouris said:

> By the way, 'em' stands for 'editor for mortals' - I christened it that
> after Ken Thompson visited our lab at QMC while I was developing it and said
> something like: "yeah, I've seen editors like that, but I don't feel a need
> for them, I don't want to see the state of the file when I'm editing".

------
quattrofan
I wish the title of the article was "Joy leaves Sun", dual meanings are always
more fun.

------
mlopes
I don't know which world he lives in, but in mine, it is used every day... and
it's not even my main editor.

------
16s
vi is the lowest common denominator among *nix text editors. It's a huge
advantage to know how to use it.

~~~
pessimizer
Yes, it is, in the sense that it is a common factor across every *nix system
that you may need to deal with. Emacs isn't going to be everywhere.

~~~
tomjen3
Vi isn't everywhere either, though it may be on more systems than Emacs.

But almost any system is going to have ed installed.

------
zaph0d
Many vi users don't know that they don't use vi but use ViM which was created
by Bram Moolenaar.

------
MPSimmons
And yet, it still works great.

------
dextorious
So, besides democracy, theater, abstract math and the debt crisis, we Greeks
also (sorta) gave vi to the world!

~~~
sgt
Bill Joy is greek? Perhaps Joy is short for Joyalakinakis?

~~~
dextorious
No, he's American alright. Talking about George Coulouris, mid-way and in the
end of TFA, and also here:

[http://en.wikipedia.org/wiki/George_Coulouris_(computer_scie...](http://en.wikipedia.org/wiki/George_Coulouris_\(computer_scientist\))

"""He was instrumental in the development of ICL's Content Addressable File
Store (CAFS) and he developed em, the Unix editor, which inspired Bill Joy to
write vi."""

~~~
sgt
Found his photo;
[http://members.fortunecity.com/tylorhan/faces3/george_coulou...](http://members.fortunecity.com/tylorhan/faces3/george_coulouris.jpg)

------
funkah
Maybe that's why I feel so crazy whenever I try to use it. We can have
bitmapped interfaces now, no need for the arcaneness of vi and similar
editors.

------
rio197
awesome history

------
zobzu
vi(m) rock my world.

If that means I don't exist anymore, there's only one ascii art I can think of
for Mr Bill Joy.

.i. (o.o) .i.

------
blhack
"Hammers were invented for a world that doesn't exist anymore".

"Manual screwdrivers were invented for a world that doesn't exist anymore"

"Chisels were invented for a world that doesn't exist anymore".

Etc.

The mere fact that people are still using vi[m] is evidence that this author
is wrong.

