我们需要一种其他人能使用的编程语言
英文原文:Leaves of code: We need a programming language for the rest of us
最近,我开始从头努力学习Objective-C语言,可是我无法摆脱的事情是:它实在太难了。一位有经验的开发人员可能会嘲笑我讲的这句话,但确实是这样的。我要坦诚地对待我的教育,微积分II是我学过的最高级别的数学,我在美国加州大学柏克莱分校拿到新闻学的高等学位。我是一个熟练的HTML/CSS开发人员,我能把Javascript粘合起来,以解决几乎任何出现的问题。第一次遇到C语言是在一个社区大学中,那时我13岁,我觉得它的语法重复,并且目标不明确,所以很多年来我总是避开着。
现在,过了好多年后又尝试要重新学起,你可能会指责我不够努力,但很明显这是不对的我将继续埋头学习Objective-C语言,直到我能熟练运用它为止。然而,我发现C语言是一种不能扩展学习的语法,背后有着极度复杂的系统。
复杂性的困扰
说C语言太复杂,这是因为它需要非常详细的语法来实现计算机上的所有功能(或可能的功能)。我承认它的特殊性,因为它要跨平台,与多平台的硬件有相互作用,但学习C语言不是一定要自下而上的。我想按着我的奇思妙想使之进行,我想这样做的并不会只有我一人。我不禁想到由博士创造出的语言竟也会遭受复杂性的困扰。换句话说,那些知道了这一点的人对于简化它并不感兴趣,因为这让他们的知识贬值了。
编码逐渐成为计算机基础知识的重要组成部分。在当前信息技术如此重要的社会,这种看法是不能持续的。
要是我们有更好的代码杂货店,事情就较为简单了
最近,我陪女朋友去杂货店买东西,我们在一堆堆的新鲜水果和蔬菜中翻找着做饭要用到的所有材料。这个情景使我想到,为什么编码不能更像这样一点?我想,要更像是在挑选做饭用到的材料。学习C语言就像在学习西红柿的基因序列一样。要长出西红柿当然需要有基因序列,可是要把它切片以及加入我的材料清单中,我并不需要熟悉它。这超出了准备一餐饭菜所需要知道的常识。
最重要的是,如果每个想成为厨师的人,在做一餐饭菜时都需要知道一份番茄的基因序列,那么他们可能就永远都不会抽空出来做饭了。事实上,他们当然不会是一位非常成功的基因学家,所以他们就更可能永远也不会成为一名厨师。
没有足够的库、基础代码、以及其他合适的代码聚集地
我所说的是并不是新时代中的一些Visual Basic程序或C语言的一个WYSIWYG程序,而是一种自然语言的语法,它通过调用C语言的对象库来使其简单易学。
(编注:WYSIWYG,是what you see is what you get的缩写,即所见即所得)
因为电脑程序日益成为人们日常生活中不可缺少的一部分,我们需要帮助孩子学习代码,这将使他们受益终生。可是强制他们学习高级别级的数学技巧和晦涩的计算机语言(用*表示指针,.缩写语法)是不现实的。这使拥有好奇心的小孩学不到基本的技能,阻碍了他们为以后要学习的多变量微积分打好基础。与此同时,其余的人能够受益于一个程序设计语言,他们不需要花几年的时间去学习。简而言之,我们需要有一种语言,它能够让那些数学领域的门外汉懂得使用;它包含有更自然的语法(是的,这是有可能的);它使得初级开发人员不需用到规模庞大的术语库就能为其定义和编写脚本。你知道在所有的各种C语言的分支所使用的方法调用机制的数量吗?
让代码尽可能简单,对于我们中其余的人来说是一种仁慈
可以把复杂的C语言分支机构浓缩成一系列的目对象吗?这些对象可以用自然语言串联到一起。我是这样认为的,可是目前这远远超出我的能力范围。我知道我们不能继续使编程语言日趋复杂下去,否则,它最终会变得过于复杂,只有最专业的用户才能使用。这个人造壁垒,将阻碍几千甚至几百万的人的声音得以实现。
-------------------------------------------------------------------
译文出处:伯乐在线 - 职场博客 - 程序员
译文链接:http://www.jobbole.com/entry.php/1124
原文:Chris Tompkins 翻译:敏捷翻译 - 张瑞霞
如需转载,但请注明原文/译文出处、译文超链接和译者等信息,否则视为侵权,谢谢合作!