
How can you program if you're blind? - rayvega
http://stackoverflow.com/q/118984/4872
======
gaius
I've sailed the open oceans with a blind man at the helm. Which sounds like a
line from PoTC but really: he used an audio compass that played a tone at
different points of the compass, higher or lower so he knew how to correct.
The rest was done by feeling the way the boat handled through the deck and the
wheel.

~~~
eney
I'm a blind programmer. I use a 80-character braille display which shows one
line of text at a time. My preferred language is Python although some blind
programmers dislike it for its syntactic use of indentation. I find that
scrolling with the braille display and feeling for the indentations on left
gives me a good feel for the shape of a program. I know another programmer who
prefers Perl because of its rich use of sigils, although he uses speech
synthesis. I prefer to use vim for all types of editing (I hate IDEs although
many blind programmers like Eclipse or Visual Studio). Why do you reckon the
feedback blind programmers use as non-tangible BTW?

~~~
random42
I was just thinking, before reading your response, that python would suck for
the blind, because of its strong preference of "beautification" of the code.
So your response actually surprises me.

Do you think having braces over indentation would have helped for
accessibility. Any other issues with the language syntax?

~~~
eney
Maybe one's preference depends on whether one uses speech or braille. Although
I known of some blind programmers who won't learn Python because of the
indentation, some like it. Some speech users use a piano scale to show
indentation. Some use editor settings that transform the source code on load
so that blocks are delimited and reformat on save. The EdSharp, developed by a
blind programmer, is one such editor.

------
rosejn
We had a blind classmate all through my undergraduate program in CS, and he
was a very capable hacker. He lived inside emacs using emacspeak with a high
speed synthesized reader voice, and you could often hear his terminal talking
to him in the front row if you listened carefully during class.

Blind people develop good memories because they are constantly building
detailed mental models of spaces they need to navigate, and I think this might
give them a leg up programming because they are used to working with mental
models rather than referring to maps, diagrams and documentation. Their are
obvious drawbacks, but I think programming is probably a pretty good choice of
profession for blind people.

------
samlittlewood
How similar is this to using a line editor (ed/edlin/edit/teco) on a slow
terminal? You have a model in your head, code in a buffer, and you use the
edit commands to update both - with occasional listing sanity checks to check
you are keeping the two in sync, or move to a new region.

I hear some guys wrote a pretty cool operating system like that!

~~~
Someone
It is somewhat similar, but to get the real 'feel', you should also limit your
line width to one to two characters. Braille reading typically is done with
both hands (with one looking ahead, and one doing the actual reading), so it
does 'show' slightly more than that, but you will still be faster at reading
those characters than a blind person would be.

Also, you would have to give up syntax coloring and style and font variations.

Finally, chances are that some characters (braces, asterisk, plus sign) from
your programming language take up more than one braille character. Real nerds
would hack their character-to-braille pattern translator to optimize that
translation table, but the price you pay for that is that you will have to
cope with multiple mappings. Actually, you would have to do that anyways, as
there is disagreement about the encoding to use, even for digits, and because
the U.S. frequently uses a contracted braille system (where, for example, the
single-letter word 't' must be read as 'the' where appropriate; that 'where
appropriate' is for the reader to guess at)

~~~
Avshalom
_Also, you would have to give up syntax coloring and style and font
variations._

I'm pretty sure ed was dead by the time those were invented, the wiki claims
the "one of the first" syntax highlighting editors was in 85.

------
silentbicycle
There's a guy on the Lua mailing list who has mentioned (e.g. <http://lua-
users.org/lists/lua-l/2008-09/msg00513.html>) that he appreciates how its
relatively small and keyword based syntax
(<http://www.lua.org/manual/5.1/manual.html#8>), makes it easy to program in
with a screen reader.

There's also Emacspeak (<http://emacspeak.sourceforge.net/>). I haven't used
it, but there's a chapter about it in _Beautiful Code_.

------
jms
It's interesting how quickly the text to speech setup can be made to run. My
dad's computer talks so quickly I can't understand without slowing it down.

------
lukev
There's a lot of talk about line editors in this thread. From a quick scan of
Wikipedia, it seems that 40 cells is about the biggest braille display you can
buy.

WTF? Why has nobody invented a full-screen braille display? Is there some
reason it's massively more complicated than it seems?

~~~
hugs
Well, I'm working on a full-screen display. :-)

Software demo: <http://www.youtube.com/watch?v=4qnL7479fbU>

Source: <http://github.com/hugs/pinmachine>

Hardware demo: <http://www.youtube.com/watch?v=AUgbu0cE2-Q>

Biggest issues are cost and size. I'm currently at "1977 Apple" stage - a big,
expensive, hand-made prototype. But the biggest issue is cost per pin. Also,
resolution is an issue... I'm going for "big and expensive" first, then will
work on making it small and cheap overtime. I'm working with small dc motors
first, but there are plenty of electromechanical tricks to get this down to
braille-worthy stuff.

~~~
gsivil
This seems like a project that the MIT media lab would like to put its hands
on. Why do not you seek a collaboration.

~~~
hugs
I'd love to chat with the MIT media lab folks. If you're so inclinded, check
out my HN bio and have them contact me via email or twitter. ;-)

I haven't sought a collaboration yet, because "pinmachine" is my weekend
project -- my time is otherwise filled up working on my startup
(saucelabs.com).

------
skbohra123
I know a blind python programmer Krishna kant Mane[0], who works with pylon,
is a FOSS evangelist, leads a foss project GNU Khata[1] and an awesome
speaker[2]. I loved the way he uses all free and open source tools to work on
his laptop, program and deliver. Hats off.

[0]<http://www.blogger.com/profile/07891377863557367515>
[1]<http://gnukhata.gnulinux.in> [2]<http://gnunify.in/speaker/profile/108>

------
kyleslattery
A group of students from Southern Illinois University Edwardsville and
Washington State University is working on a programming language for the
blind:

<http://www.youtube.com/watch?v=lC1mOSdmzFc>

------
staktrace
Has anybody out there who's not blind tried doing a "blind for a day" thing?
Just wear a blindfold for 24 hours and see how much of your life it affects. I
haven't tried it but after reading all this I kind of want to.

~~~
kellishaver
I'm legally blind and have been since birth. I only have vision on my right
eye. My visual acuity is low (around 20/180) and my field of vision very
narrow (less than 20deg). Still, it doesn't really stop me from doing much. I
program-and I also design.

A couple of years ago I developed narrow-angle glaucoma, in addition to my
other problems. After several laser surgeries failed to resolve the problem, I
had a more invasive surgical procedure done. Afterwards, I was completely
blind for 48hrs. Aside from the fact that it was terrifying, because at that
point we didn't know how much of my vision would come back, I found that I was
able to adjust fairly quickly. In just a few hours, I was able to get around
the house, get dressed, shower, brush teeth, etc. unassisted. Eating was a
little more difficult. It's hard to fork food you can't see. I stuck to
sandwiches. I didn't attempt reading (I don't know Braille) or using the
computer.

I'm sure this was made easier by the fact that I'm very familiar with my house
and by the fact that my vision was already poor, so I'm more used to doing
more things by feel/sound/memory, especially at night.

Which, I guess, answers your question, but to finish off the story:

After a couple of days, my vision started to slowly come back, though it was
very blurry for a long time. I was able to start using the computer, via a
combination of the screen reader, enlarging, and inverting the colors on the
display. All I could see at that point were shapes, and, after about a week,
in order to read text, it had to be about 128pt and high contrast.

Fortunately, most of my vision returned. The first couple of months were slow
going, but after that, it got to the point where I could pretty much function
as I did before. It took around 6 months to recover completely, though. I did
end up losing some contrast sensitivity and as a result, I can no longer read
printed text. There's just not enough contrast. I mean, I can see the words,
reading for more than just a few minutes gives me a headache. So now I read
books on an iPad and with the backlit screen (a backlit display helps a ton)
and zoom capabilities, I can read without headaches.

------
smackfu
The answers seem to reflect the technical "how", but I still don't get how you
can efficiently program if it takes minutes to read a page of existing code.

------
learner4life
One of the lead programmers of JAWS is Glen Gordon. He is blind is one of the
smartest programmers I have known.

<http://en.wikipedia.org/wiki/JAWS_%28screen_reader%29>

<http://www.afb.org/afbpress/pub.asp?DocID=aw070204>

------
jim_h
There are plenty of 'impossible' things you can do blind.

For example, there are blind golf players. They have their own golf
associations and tournaments. One of my old co-workers used to assist blind
golfers by describing the location, distance, etc. The golfer does the rest.

------
dingle_thunk
I think the biggest thing for me would be living without
intellisense/autosuggest - I mean it'd be OK to code ifs and fors and whatnots
without them, but I can't imagine how I'd quickly navigate the large,
enterprise software libraries I deal with regularly...

------
dugmartin
The key is to use a good screenreader like JAWS. As I posted here its next to
impossible using Window's built in screenreader, Narrator.

<http://news.ycombinator.com/item?id=1799588>

------
arnemart
Amazing. It's really hard to imagine programming blind and jumping between
methods/files/debuggers/browsers effectively, but it seems some people do pull
it off.

I was struggling with tendonitis in my right arm a year back and had to do all
my coding left-handed, and that made me feel crippled and annoyingly slow.
It's really impressive what people can overcome.

------
Dramatize
I always wanted to learn braille as a kid so I could read in the dark.

------
balding_n_tired
I worked with a programmer who was legally blind. He used speech-recognition
software plus some sort of display software that blew each character up to
about 10" x 6".

------
dekayed
Are there any other HNers out there with other disabilities that cause you to
modify how you interact with your computer or how you program?

------
signa11
<http://emacspeak.sourceforge.net/raman/resume.html>

------
cbo
A better question would be how can you program graphics if you're blind?

That's something I would love to find out and/or solve.

~~~
eney
I've used Graphviz to make relationship diagrams to aid my communication with
sighted people. There's an interesting Google Developer Podcast with T.V.
Raman where he mentions programming directly in Postscript while he worked at
Adobe. I've used LaTeX for my personal documents (CV etc.) and sighted people
have asked me how on earth I managed to produce such a nice document. I wonder
how feasible it would be to use Metafont for more intense graphical
expressions.

------
raquo
I wonder how useful would be a VoiceOver-optimized editor for iPad.

------
bch
I read this headline as if Agent Smith were asking Mr. Anderson...

------
jbronn
I suggest the person asking this question to watch "Sneakers."

------
lancebailey
with so much crappy apps out there I figured blind people where already
programing. :)

