随笔分类 -  程序技术专栏

"差点的更好"设计理念的兴起
摘要:我和几乎所有的Common Lisp和CLOS(Common Lisp Object System)的设计者都极度深受麻省理工学院/斯坦福大学(MIT/Stanford)设计风格的影响。这种风格的本质可以用“正确的做法(the right thing)”这个短语来概括。对于这样的设计者,重要的就是要遵循下面的这些设计理念:简单性—设计必须简单,这既是对实现的要求,也是对接口的要求。接口的简单要比实现的简单更加重要。正确性—设计在任何值得注意的方面都要保证正确。不正确是绝对不允许的。一致性 — 设计必须保持一致兼容。设计可以允许轻微少量的不简单和不完整,来避免不一致。一致性和正确性同等重要。完整 阅读全文
posted @ 2012-03-12 12:39 springside例子 阅读(181) 评论(0) 推荐(0)
编程语言的演化过程
摘要:大型机盛行的60年代开始出现高级编程语言,大大提高了代码编写效率,然后是微机、网络和现在的云计算时代,相继出现结构化、面向对象和服务导向的计算机语言,让程序代码更接近自然语言的表达,更真实地反映现实中的实体关系。本文的信息图展示了过去数十年来编程语言的演化过程。计算机编程语言在过去几十年发现了许多变化。最先出现的语言是用于科学计算的Fortan和逻辑推演的LISP语言,而现在用于网络编程的语言包括C#、Ruby on Rails、Note.JS。下面由Services Angle制作的信息图展示了过去数十年来编程语言的演化过程。1954 Fortran FORTRAN(FORmula TRAN 阅读全文
posted @ 2012-03-09 12:21 springside例子 阅读(419) 评论(0) 推荐(0)
Worse is Better
摘要:原文:http://www.jwz.org/doc/worse-is-better.html太经典了转过来The Rise of ``Worse is Better''By Richard GabrielI and just about every designer of Common Lisp and CLOS has hadextreme exposure to the MIT/Stanford style of design. The essence ofthis style can be captured by the phrase ``the right thing. 阅读全文
posted @ 2012-02-19 23:02 springside例子 阅读(291) 评论(0) 推荐(0)
函数式编程扫盲篇
摘要:1. 概论在过去的近十年的时间里,面向对象编程大行其道。以至于在大学的教育里,老师也只会教给我们两种编程模型,面向过程和面向对象。孰不知,在面向对象产生之前,在面向对象思想产生之前,函数式编程已经有了数十年的历史。那么,接下来,就让我们回顾这个古老又现代的编程模型,让我们看看究竟是什么魔力将这个概念,将这个古老的概念,在21世纪的今天再次拉入了我们的视野。2. 什么是函数式编程在维基百科中,已经对函数式编程有了很详细的介绍。那我们就来摘取一下Wiki上对Functional Programming的定义:In computer science,functional programming is 阅读全文
posted @ 2011-12-01 14:09 springside例子 阅读(162) 评论(0) 推荐(0)
算法的力量(李开复)
摘要:算法的力量 算法是计算机科学领域最重要的基石之一,但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门,就产生了一种误解,认为学计算机就是学各种编程语言,或者认为,学习最新的语言、技术、标准就是最好的铺路方法。其实,大家被这些公司误导了。编程语言虽然该学,但是学习计算机算法和理论更重要,因为计算机语言和开发平台日新月异,但万变不离其宗的是那些算法和理论,例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上,有位同学生动地把这些基础课程比拟为“内功”,把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式,没有功力,是不 阅读全文
posted @ 2008-08-23 21:31 springside例子 阅读(196) 评论(0) 推荐(0)
ADA 语言文档
摘要:第1章 Ada 简介1.1概述(Overview) Ada 语言最初设计是为了构建长周期的、高度可靠的软件系统。它提供了一系列功能来定义相关的数据类型(type)、对象(object)和操作(operation)的程序包(package)。程序包可以被参数化,数据类型可以被扩展以支持可重用库的构建。操作既可以使用方便的顺序控制结构,通过子程序(subprogram)来实现,也可以通过包含并发线程同步控制的入口(entry)来实现。Ada 也支持单独编译(separate compilation),在物理层上支持模块性。 Ada 包含了很复杂的功能以支持实时(real-time),并发程序设计( 阅读全文
posted @ 2006-08-30 20:19 springside例子 阅读(1632) 评论(0) 推荐(2)