自下而上的编程
来源:互联网 发布:人民日报图文数据库 编辑:程序博客网 时间:2024/06/07 03:49
这段时间在复习这两年掌握的编程技能,碰巧读了《黑客与画家》这本书,文中提到的“自下而上”的编程方法可以成为我复习的方法。
下面记下一些观点:
“自下而上”
编程语言进化缓慢,原因在于它们并不是真正的技术。语言只是一种书写法,而程序则是一种严格复合规则的描述,以书面形式记录计算机应该如何解决你的问题。所以,编程语言的进化速度更像数学符号的进化速度,而不像真正的技术(比如交通或通信技术)的进化速度。数学符号的进化是缓慢的渐变式变化,而不是真正技术的那种跳跃式发展。一百年后的程序员最需要的编程语言就是可以让你毫不费力地写出程序第一版的编程语言,哪怕它的效率低下得惊人(至少按我们今天的眼光来看是如此)。他们会说,他们想要的就是很容易上手的编程语言。应用程序使用多层开发是一种很强大的技巧。自下而上的编程方法意味着要把软件分成好几层,每一层都可以充当它上面那一层的开发语言。这种方法往往会产生更小、更灵活的程序。它也是通往软件圣杯——可重用性——的最佳路线。从定义上看,语言就是可以重用的。在编程语言的帮助下,你的应用程序越是采用这种多层形式开发,它的可重用性就越好。面向对象编程具有可重用性,但是这不是因为它使用了面向对象编程,而是因为它的开发方法是自下而上的。以函数库为例,它们具有可重用性,是因为他们属于语言的一部分,而不是因为它们采用面向对象或者其他编程方法。
“一次性程序”
为了吸引黑客,一种编程语言必须善于完成黑客想要完成的各种任务。这意味着它必须很适合开发一次性程序。这一点可能出乎很多人的意料。所谓一次性程序,就是指为了完成某些很简单的临时性任务而在很短时间内写出来的程序。比如,自动完成某些系统管理任务的程序,或者(为了某项模拟任务)自动生成测试数据的程序,以及在不同格式之间转化数据的程序等。令人吃惊的是,一次性程序往往不是真的只用一次,就像二战期间很多美国大学造的一大批临时建筑后来都成了永久建筑。许多一次性程序后来也都变成了正式的程序,具备了正式的功能和外部用户。
下面记下一些观点:
“自下而上”
编程语言进化缓慢,原因在于它们并不是真正的技术。语言只是一种书写法,而程序则是一种严格复合规则的描述,以书面形式记录计算机应该如何解决你的问题。所以,编程语言的进化速度更像数学符号的进化速度,而不像真正的技术(比如交通或通信技术)的进化速度。数学符号的进化是缓慢的渐变式变化,而不是真正技术的那种跳跃式发展。一百年后的程序员最需要的编程语言就是可以让你毫不费力地写出程序第一版的编程语言,哪怕它的效率低下得惊人(至少按我们今天的眼光来看是如此)。他们会说,他们想要的就是很容易上手的编程语言。应用程序使用多层开发是一种很强大的技巧。自下而上的编程方法意味着要把软件分成好几层,每一层都可以充当它上面那一层的开发语言。这种方法往往会产生更小、更灵活的程序。它也是通往软件圣杯——可重用性——的最佳路线。从定义上看,语言就是可以重用的。在编程语言的帮助下,你的应用程序越是采用这种多层形式开发,它的可重用性就越好。面向对象编程具有可重用性,但是这不是因为它使用了面向对象编程,而是因为它的开发方法是自下而上的。以函数库为例,它们具有可重用性,是因为他们属于语言的一部分,而不是因为它们采用面向对象或者其他编程方法。
“一次性程序”
为了吸引黑客,一种编程语言必须善于完成黑客想要完成的各种任务。这意味着它必须很适合开发一次性程序。这一点可能出乎很多人的意料。所谓一次性程序,就是指为了完成某些很简单的临时性任务而在很短时间内写出来的程序。比如,自动完成某些系统管理任务的程序,或者(为了某项模拟任务)自动生成测试数据的程序,以及在不同格式之间转化数据的程序等。令人吃惊的是,一次性程序往往不是真的只用一次,就像二战期间很多美国大学造的一大批临时建筑后来都成了永久建筑。许多一次性程序后来也都变成了正式的程序,具备了正式的功能和外部用户。
阅读全文
0 0
- Lisp.自下而上的编程
- Lisp.自下而上的编程
- 自下而上的编程
- 自下而上的开发流程
- 自下而上的一点想法
- 自下而上的革命
- 一个疯狂的希腊神话 革命成功自下而上
- 自下而上语法分析器的设计与实现
- 常见分享自下而上的弹出窗实现
- wm 自下而上的了解其的系统架构
- ListView的精确定位 和 自下而上展示的ListView
- 自下而上的语法分析和算符优先分析法
- 自上而下的软件开发和自下而上软件开发
- 【编译原理】自下而上的语法分析之LR分析法
- 归并排序--自上而下和自下而上两种方法的实现
- 软件工程中重要的思想:至上而下 自下而上
- 自上而下,自下而上
- 结构化分析方法是一种自下而上逐步求精的分析方法【软件项目管理】
- 练习 2017-08-13 获取进程数据-编译和运行Java代码 问题在截图上 留待解决。
- BlockingQueue的使用
- poj3250翻译+题解(单调栈)
- python爬虫学习第二十天
- 二进制1的个数(剑指Offer)
- 自下而上的编程
- redis 内存管理zmalloc
- React-navigation 官方文档中文翻译(四) intro to Navigators
- Linux下的进程和作业概念,以及作业管理
- 博科光交详解
- java小程序数组版电话本1.0版本(有问题尚未解决)
- poj2559Largest Rectangle in a Histogram
- win 10 主题 美化
- 并查集的定义及实现