如果你看不见你还能编程吗?
这是个StackOverflow上的问题 How can you program if you’re blind? 。在看到这个问题的时候,我感到应该不可能,但是我错了,这个问题的前两个答案让我深深地震憾了。
第一个答案的回复人是Jared(其在StackOverflow上的积分有将近14K),但是你能想得到他是一个盲人吗?他回复到――
我是一个完全失明的大学学生,我做过一些程序员的实习工作,所以我的回复基于我的这些经历。我使用Windows XP 和 Jaws 来为了读出屏幕上的内容。
对于Java 编程,我使用eclipse这个强大的IDE。他使用SWT开发GUI。对于.NET编程,其使用Visual Studio 2005,使用Jaws可以非常容易地操作VS2005,而且其还有一些很不错的脚本来可容易地用来做表单设计。
对于C/C++,我使用cygwin + gcc 也使用emacs 和 vim 做出编辑器(使用Emacspeak虽然有时候有点迟钝)。在实习过程中,我做了很多和Z/OS相关的编程工作。我使用rlogin通过cygwin登录大型机的USS系统,并使用C3270作为其3270仿真器来访问大型机的ISPF部分。
我依赖于合成语音系统,也需要 Braille display, 我发现使用合成语音系统很快,但是使用 Braille display有时候有些问题。比如程序有太多的嵌套括号。
关于Braille display,又叫盲文显示机,是能以盲文进行输出的电子机械式设备。一般来说,该设备通过在平坦表面上打孔来实现点阵的表现。有了该设备的帮助,无法使用一般的显示设备的失明用户也能够阅读文字。如下所示。
第二个答案是Saqib提供的,其个人主页是http://www.saqibshaikh.com/,目前在Microsoft的Bing项目组,他回答到:
我是盲人,我对Windows, Mac, Linux 和 DOS有13年的编程经验了,我会的编程语言是C/C++, Python, Java, C#或是其它相似的语言,虽然问题问的是怎么来设置盲人的环境,但是我想从盲人怎么使用电脑来回答。
有些人使用“语音环境”,如T. V. Raman和Emacspeak 环境。这样的环境需要有读屏程序来监控操作系统的行为,并通过合成语音系统或是Braille display 来告诉盲人屏幕上有什么。这样一样,盲人就可以操作任何的应用程序了。
我个人这段时候使用Visual Studio 2008(注:作者是09年回的这个贴的),用其来做一些修改。我关闭了一些VS2008的功能,如显示错误,因为这会让我分心。在加入微软以前,我都是在用notepad这样的东西开发程序。
对于读屏软件,我需要设置一下,以便其告诉我缩进。老实说我不太关心这个事,因为VS2008对程序缩进做得很好。但是对于Python来说,这个功能 相当重要。最终,Emacspeak 可以使用不同的声音来让我区分缩进的语句块,以及一些语法(关键词,注释,标识,等等。)
对于Saqib,大家有兴趣可以看看他的视频访谈:Saqib Shaikh and Scott Hanselman: Designing for Accessibility
这个问题中多次提到了Google的盲人程序员 T.V. Raman,我在网上搜了一下他,他前段时间来过北京,新京报在今年早期报道过他――《T.V 拉蒙,互联网界也有“盲剑客” ――Google盲人工程师讲述软件设计之路》
在这篇报道中,他经历过IBM, Adobe和Google 这三个公司,他可以在23秒内复原盲人魔方,1989年他就得到一台给盲人用的语音合成器和当时最先进的读屏软件。他现在使用电脑 没有任何障碍,他天天都上网浏览信息,他可以使用特别的手机来看地图。
不知道你看完这些人的经历后,你有什么感觉?
建议继续学习:
- 面向“接口”编程和面向“实现”编程 (阅读:12559)
- 我学编程时犯的最大两个错误 (阅读:6914)
- 提高编程技能最有效的方法 (阅读:5573)
- 我是如何学习计算机编程的 (阅读:4794)
- 函数式编程很难,这正是你要学习它的原因 (阅读:4496)
- 那些曾伴我走过编程之路的软件 (阅读:3754)
- 函数式编程 (阅读:3667)
- 也谈编程改革 (阅读:3480)
- 你从未听说过的一种编程方式 (阅读:3315)
- 编程的首要原则(s)是什么? (阅读:2663)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:陈皓 来源: 酷壳 - CoolShell.cn
- 标签: 编程
- 发布时间:2011-09-21 13:39:28
- [67] Go Reflect 性能
- [67] Oracle MTS模式下 进程地址与会话信
- [67] 如何拿下简短的域名
- [61] IOS安全–浅谈关于IOS加固的几种方法
- [60] 图书馆的世界纪录
- [59] 【社会化设计】自我(self)部分――欢迎区
- [58] android 开发入门
- [56] 视觉调整-设计师 vs. 逻辑
- [49] 给自己的字体课(一)——英文字体基础
- [47] 界面设计速成