视觉是大多数程序员认为理所当然的感官之一。大多数程序员会花几个小时盯着电脑显示器(尤其是在他们全神贯注的时候),但我知道有些程序员是盲人(比如目前在谷歌工作的T.V. Raman)。

如果您是一个盲人(或逐渐失明),您将如何设置您的开发环境来帮助您编程?

(每个回答一个建议。这个问题的目的是把好的想法带到最高层。此外,屏幕阅读器可以更早地阅读到好的想法。)


当前回答

来自南伊利诺伊大学爱德华维尔分校和华盛顿州立大学的一组学生正在为盲人开发一种编程语言:

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

其他回答

I am a blind developer and I work under Windows, GNU Linux and MacOS X. Each of platform has different workflows for blind users. This depends on the screen reader that the blind developer uses. Development tools are not completely accessible for blind developers. I can type code and use compiling functions in all IDEs but there are many problems if I have to design an interface using designing tools as Interface Builder, XGlade or other. When I was developing with Borland Delphi I could add a control, a Button for example, and I could modify each visual attribute of the control using object inspector window. Many IDEs use object inspector windows to modify visual and non visual attributes but the problem for a blind developer is add new controls because the method to add a new control consists of dragging and dropping a control from the palette to the canvas. Visual studio 200x uses alternative methods to do this but the interface of the IDE changes in each new version and this is a big problem because screen readers for Windows need special support, using scripts, to identify each area of some non standar applications. A blind developer can use Visual studio 2008 with his screen reader but when a new version of this IDE appears he has to wait for a new version of scripts for this version of the IDE. Xcode with Interface builder has no alternative for dragging and dropping tasks yet. I asked it to Apple many times but they are working in other things. I published 3 apps in the App store (Accessible minesweeper, accessible fruitmachine and Programar a ciegas RSS) and I had to design all the interface by code. It's a hard work but I can manage all features of each control. Eclipse has an accessible code editor but other development tools as debug console,plugins for designing or documentation area present problems for assistive tools for blind users.

对于盲目的开发人员来说,文档也是一个问题。许多示例和演示使用图像来显示解释(在图片中设置环境设置)

我认为问题不在于盲目。问题是,公司和开发团队认为可访问性会影响最终的软件,但它不会影响开发软件。他们认为盲人用户可以成为客户,但盲人用户不能成为开发伙伴。

盲人协会要求产品和服务的可访问性,但他们忘记了盲人开发者。盲人可以当律师、记者、教师,但盲人开发者即使对盲人来说也是一个奇怪的概念。很多时候我感到孤独,因为我的一些盲人朋友不能理解我的工作。

你可以在这篇西班牙文的文章中阅读我对这个问题的看法,在我的博客http://www.programaraciegas.net/2010/11/05/la-accesibilidad-en-crisis-para-los-desarrolladores-ciegos/ 网页中有一个翻译工具。对不起,我没有翻译。

我是个盲人,已经在Windows、Mac、Linux和DOS上编程了大约13年,使用的语言包括C/ c++、Python、Java、c#和各种较小的语言。虽然最初的问题是关于配置环境的,但我认为最好的回答是看看盲人如何使用计算机。

有些人使用谈话环境,比如在其他答案中提到的拉曼和Emacspeak环境。到目前为止,更常见的解决方案是有一个屏幕阅读器,它在后台监控操作系统活动,并通过合成语音或物理盲文显示(通常一次显示20到80个字符)提醒用户。这意味着盲人可以使用任何可访问的应用程序。

因此,我个人现在使用Visual Studio 2008,并且运行它时只做了很少的修改。我关闭了某些功能,比如在打字时显示错误,因为我觉得这会让人分心。在加入微软之前,我所有的开发都是在一个标准的文本编辑器(如记事本)中完成的,所以同样没有定制。

可以配置屏幕阅读器来宣布缩进。我个人不使用这个,因为Visual Studio会处理这个问题,而c#使用大括号。但这在Python这样的语言中是非常重要的,因为这里有空格。最后,Emacspeak使用不同的声音/音调来表示语法的不同部分(关键字、注释、标识符等)。

Hanselman最近与一位盲人开发人员进行了一次非常有趣的播客。

在我读研究生的时候,我们的研究团队中有一个盲人。他年纪大一点,大概四十五岁左右。他向我们讲述了他如何编写自己的第一台计算机(那时候文本语音转换还不普及),以莫尔斯电码输出屏幕上的内容。为了克服这个明显的“先有鸡还是先有蛋”的问题,他每次都必须从头开始重写代码,直到代码能够正常工作,可以重新读给他听为止。

现在他使用文本转语音,尽管他在实际编写任何代码之前都非常彻底地计划了代码,以最小化调试循环。

他还非常擅长做ppt演讲,尽管他视力不好,但格式和其他视力正常的演讲者一样好。

我是一个完全失明的大学生,有过几次编程实习,所以我的答案将基于这些。我使用windows xp作为我的操作系统,“大白鲨”用合成语音来阅读屏幕上出现的内容。对于java编程,我使用eclipse,因为它是一个可访问的功能齐全的IDE。

根据我的经验,使用SWT作为GUI工具包的java程序比使用Swing的程序更容易访问,这就是为什么我远离netbeans的原因。对于任何。net编程,我都使用visual studio 2005,因为它是我实习时使用的标准版本,使用Jaws和一组脚本非常容易访问,这些脚本是为了使表单设计器等东西更容易访问而开发的。

对于C和c++编程,我使用cygwin和gcc作为我的编译器,emacs或vim作为我的编辑器,这取决于我需要做什么。我的很多实习工作都是为Z/OS编程。我使用rlogin会话通过Cygwin访问大型机上的USS子系统,并使用C3270作为我的3270模拟器访问大型机的ISPF部分。

我通常依赖于合成语音,但也有盲文显示。我发现我通常用语音工作得更快,但在标点符号很重要且复杂的情况下使用盲文显示。这方面的例子是带有大量嵌套括号和JCL的if语句,其中标点符号非常重要。

更新

我正在cygwin http://emacspeak.sourceforge.net下使用Emacspeak,我不确定这是否可以用作编程编辑器,因为它似乎有点反应不太好,但我还没有查看任何配置选项。