<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://rss.zhenghui.org/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://rss.zhenghui.org" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/huizheng" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 27 Aug 2009 02:28:50 GMT</lastBuildDate><title>冒号空间</title><description>自然、人类、机器</description><link>http://blog.zhenghui.org</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Thu, 27 Aug 2009 04:24:33 GMT</pubDate><item><title>冒号课堂§1.3：语言选择</title><link>http://blog.zhenghui.org/2009/08/27/colon-class-1_3/</link><content:encoded>&lt;h1 style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号课堂&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 13pt; font-family: 宋体&quot;&gt;第一课 开班导言(3)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.3&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;语言选择——合适的就是好的&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;尺有所短，寸有所长&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;——《楚辞》&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;关键词：计算机语言&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;低级语言&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;高级语言&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;中级语言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;摘要：简要回顾计算机语言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;！&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;预览&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;·&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;评判语言优劣，如同争论兵器高下，倘若撇开使用的主体和对象，皆为空泛之谈&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;·&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;高级语言好比长兵器，威力强大却难免滞重，长于大型应用，可谓“一寸长，一寸强”；低级语言好比短兵器，轻便灵活却难免风险，长于底层应用，可谓“一寸短，一寸险”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;·&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;西门吹雪的西来一剑，那是C语言；李寻欢的小李飞刀，那是汇编语言；陆小凤的灵犀一指，那是机器语言&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;？&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;提问&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;语言好坏的标准是什么？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;计算机语言的发展经历了哪几个阶段？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第四代语言和第五代语言与前三代语言相比，有什么不同？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;什么是低级语言和高级语言？各自的特点与应用范围是什么？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;为什么称&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;语言为中级语言？&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;：&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;讲解&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt; &lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;问号觉得自己的问题并未解决，追问：“这么多种语言，仅凭流行度就能分出主次优劣吗？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“流行度当然不是唯一的指标。”冒号答道，“语言的主次优劣因人而异，答案在你们自己身上。还是刚才那句话，真正的老师就是你自己。 ”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;期待的目光如风中之烛般开始黯淡。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号又道：“评书里名师授艺时，常常要徒弟自己挑选称手的兵器。威武的刀，灵活的枪，飘逸的剑，浑厚的棍，粗犷的斧，霸道的锤，诡异的鞭，无不谙合武者的个性。评判语言优劣，如同争论兵器高下，倘若撇开使用的主体和对象，皆为空泛之谈。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;句号若有所悟：“所以&lt;strong&gt;好的语言就是适合编程者和解决对象的语言&lt;/strong&gt;。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“非常正确！”冒号赞许道，“这就是问号同学要的答案。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;引号并不满足：“可我记得评书里经常描述高手的一句话&lt;/span&gt;­&lt;span style=&quot;font-family: 宋体&quot;&gt;：十八般兵器样样精通。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号一笑：“兵器虽多，其理相通，高手精通多种兵器何足为奇？但如果让赵云使锤，李元霸使枪，武力恐怕还是要大打折扣吧？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;逗号依然困惑：“我们如何判断一种语言是否适合自己，是否适合解决对象呢？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号看出大家共同的疑惑，不紧不慢地说：“要想从中选择，自然先得了解，不然怎知兵器称不称手、合不合用？现在进入正题，我们先对计算机语言作个简要的回顾。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;大伙均想，总算要挠着痒处了。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“计算机语言按其发展历程通常分为五代。”冒号说完，在黑板上写下——&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第一代语言（&lt;/span&gt;1GL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）：机器语言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第二代语言（&lt;/span&gt;2GL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）：汇编语言——&lt;/span&gt;IA-32 Assembly&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;SPARC Assembly&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;等&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第三代语言（&lt;/span&gt;3GL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）：高级语言——&lt;/span&gt;Fortran&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;Pascal&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;C&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;Java&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;VB&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;等&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第四代语言（&lt;/span&gt;4GL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）：面向问题语言&lt;/span&gt;­&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;——&lt;/span&gt;SQL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;SAS&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;SPSS&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;等&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第五代语言（&lt;/span&gt;5GL&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）：人工智能语言——&lt;/span&gt;Prolog&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;Mercury&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;OPS5&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;等&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“谁能简要地谈谈这段历史？”冒号又开始踢回传球了。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“最新的两代语言我不是特别熟悉，就说一下前几代吧。”&lt;/span&gt; &lt;span style=&quot;font-family: 宋体&quot;&gt;一阵沉默后，引号终于毛遂自荐，“计算机语言是人用来指挥计算机的语言，而计算机只懂一种语言—— 由&lt;/span&gt;0&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;1&lt;span style=&quot;font-family: 宋体&quot;&gt;组成的&lt;span style=&quot;text-decoration: underline;&quot;&gt;机器语言&lt;/span&gt;（&lt;/span&gt;machine language&lt;span style=&quot;font-family: 宋体&quot;&gt;）。最初人们直接用这种语言下达指令，可它们实在太难记忆和阅读了，开发和维护起来既费时又易错，严重桎梏了程序员的生产力。后来人们发明了&lt;span style=&quot;text-decoration: underline;&quot;&gt;汇编语言&lt;/span&gt;（&lt;/span&gt;assembly language&lt;span style=&quot;font-family: 宋体&quot;&gt;），用接近英语单词的&lt;span style=&quot;text-decoration: underline;&quot;&gt;助记码&lt;/span&gt;（&lt;/span&gt;mnemonic code&lt;span style=&quot;font-family: 宋体&quot;&gt;）来代替&lt;/span&gt;0&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;1&lt;span style=&quot;font-family: 宋体&quot;&gt;串，由助手——&lt;span style=&quot;text-decoration: underline;&quot;&gt;汇编器&lt;/span&gt;（&lt;/span&gt;assembler&lt;span style=&quot;font-family: 宋体&quot;&gt;）将其转化为机器语言。这些助手很称职，但有两个缺点：一是毫无主见，基本上只会一一对应地翻译，程序员必须不厌其烦地交代每一个细节；二是不知变通，换种机器就傻眼了。于是人们陆续引进了各种&lt;span style=&quot;text-decoration: underline;&quot;&gt;高级语言&lt;/span&gt;（&lt;/span&gt;high- level programming language&lt;span style=&quot;font-family: 宋体&quot;&gt;），同时启用更得力的助手——编译器（&lt;/span&gt;compiler&lt;span style=&quot;font-family: 宋体&quot;&gt;）和解释器（&lt;/span&gt;interpreter&lt;span style=&quot;font-family: 宋体&quot;&gt;）。这些助手除了能理解更简洁更抽象的高级语言外，还能因地制宜地对一些指令进行优化处理。程序员的劳动力得以极大的解放，生产效率得以大幅的提升。直到现在，高级语言还是最主要的开发语言，包括前面提到的十二种最流行的语言。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;引号发言甫毕，冒号立即献上溢美之词：“精彩！精当！一气呵成！看看，你还怀疑自己不够格作老师吗？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;一种晕眩感向引号袭来。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号继续引号的讲述：“从机器语言到汇编语言、再到高级语言的演变，堪比从徒步行走到乘自行车、再到乘汽车的变革，越来越省时、省力、省心。循此方向，第四代语言更专注业务逻辑和问题领域。程序员主要负责分析和描述问题，不再花大量时间去考虑具体的算法和逻辑。事实上，最初提出第四代语言的概念，就是希望非专业程序员都能做应用开发。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;逗号心下一惊：“那我等岂不是要失业了？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号宽慰道：“倒不用太担心。正如引号所说的，语言越来越高级，背后靠的是越来越能干的助手。这些助手本身就是软件，还是需要专业程序员开发的。更何况，这种理想的全面实现依然任重而道远。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;问号百思莫解：“第四代语言到第五代语言的发展路线似乎不够清晰，在逻辑上如何解释呢？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号作出解答：“第四代语言虽然足够强大，但过于局限某些特定领域，基本上属于&lt;span style=&quot;text-decoration: underline;&quot;&gt;领域特定语言&lt;/span&gt;&lt;/span&gt;&lt;sup&gt;[1]&lt;/sup&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;Domain Specific Language&lt;span style=&quot;font-family: 宋体&quot;&gt;，简称&lt;/span&gt;DSL&lt;span style=&quot;font-family: 宋体&quot;&gt;），而不是我们所熟悉的&lt;span style=&quot;text-decoration: underline;&quot;&gt;通用编程语言&lt;/span&gt;（&lt;/span&gt;General- Purpose Programming Language&lt;span style=&quot;font-family: 宋体&quot;&gt;，简称&lt;/span&gt;GPPL&lt;span style=&quot;font-family: 宋体&quot;&gt;）。专门用于数据库操作的&lt;/span&gt;SQL&lt;span style=&quot;font-family: 宋体&quot;&gt;、用于统计分析的&lt;/span&gt;SAS&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;SPSS&lt;span style=&quot;font-family: 宋体&quot;&gt;、用于科学计算的&lt;/span&gt;Mathematica&lt;span style=&quot;font-family: 宋体&quot;&gt;都是典型的第四代语言。然而一个系统往往横跨多个领域，如果每个领域使用不同的语言，并且不同领域的语言在概念和方法上也不统一，必然会给集成和整合带来的困难。第五代语言在保持第三代语言的通用性的前提下，继承了第四代语言的优点，即重在目标而非过程、重在描述而非实现。如果把这种优点用在汽车上，那么下一代的交通工具也许是无人驾驶的智能汽车。只要输入目的地，它会自动通过&lt;/span&gt;GPS&lt;span style=&quot;font-family: 宋体&quot;&gt;寻找最佳路径，自动根据路况变速转向，一直驶到终点。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;叹号身形微颤：“坐这种车我可不放心。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号一撇嘴：“这当然只是一种假想。同样地，第五代语言号称人工智能语言，虽然雄心勃勃，试图让机器理解人类的自然语言，并且具备人类的思维能力，但目前看来这一目标还显得遥不可及。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;句号很赞同：“是啊，超级计算机虽然可以战胜国际象棋的世界冠军，但在围棋上弱智得很。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号提纲挈领：“也有人简单地将前两代语言统称为低级语言，其他的统称为高级语言。语言从低级到高级，离机器语言更远，离人类语言更近，因而更易读写、调试和维护，安全性、通用性和可移植性更强，开发效率更高，更加抽象和宏观；但同时运行速度和效率下降，用法和功能上局限性更大。如果拿兵器作比，高级语言好比长兵器，威力强大却难免滞重，长于大型应用，可谓‘一寸长，一寸强’；低级语言好比短兵器，轻便灵活却难免风险，长于底层应用，可谓 ‘一寸短，一寸险’。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;大伙心里话，敢情来这儿不是学编程，是学武术的。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;叹号说道：“我看还是高级语言好，现在谁还学低级语言啊？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号纠正道：“低级语言并不低级，只是随着高级语言的出现，计算机硬件性能的提高，渐渐有些边缘化了。虽然几乎没有人再用机器语言编程了，汇编语言仍有其用武之地。常见的有：包括嵌入式系统在内的系统开发，如操作系统、编译器、驱动程序、无线通讯、&lt;/span&gt;DSP&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;PDA&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;GPS&lt;span style=&quot;font-family: 宋体&quot;&gt;等；其他对资源、性能、速度和效率极为敏感的软件开发；以信息安全、软件维护与破解等为目的的逆向工程等等。即使你不打算从事系统开发，也不想作红客、黑客或骇客，掌握汇编语言对你深入了解计算机内部运行机制、调试软件和改进程序中某些关键代码的算法也是有帮助的。 ”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;引号提出：“好像有些书上把&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;语言称为中级语言。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号答道：“这是因为&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;兼具高级语言和低级语言的特征。一方面它提供了高层抽象和可移植性，使程序员更多地专注问题逻辑而不是机器逻辑；另一方面它也提供诸如指针、&lt;span style=&quot;text-decoration: underline;&quot;&gt;位字段&lt;/span&gt;（&lt;/span&gt;bitfield&lt;span style=&quot;font-family: 宋体&quot;&gt;）等工具进行底层操作，甚至可直接内嵌汇编代码。&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;语言既简洁灵活又高效强大，是迄今为止最具影响力的语言。几乎所有的操作系统和大多数高级语言都用它来实现，&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;家族的语言&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;C++&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;Java&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;C#&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;D&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;Objective C&lt;span style=&quot;font-family: 宋体&quot;&gt;等占据主流语言的半壁江山。如果再拿兵器作比，&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;语言就是一把剑，轻灵飘逸、锐利快捷。一名武将无论擅用什么兵器，往往都会腰悬宝剑。不会&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;的程序员正如不会使剑的武将，无论如何都是一种缺憾。相比之下，汇编语言就像小刀匕首，而机器语言则近乎赤手空拳了。 ”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;句号灵光一闪：“我明白了——西门吹雪的西来一剑，那是&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;语言；李寻欢的小李飞刀，那是汇编语言；陆小凤的灵犀一指，那是机器语言。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;大家会心地笑了。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;逗号冷不防冒出一句：“我会跆拳道哦！”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;句号一乐：“哈哈，等你打赢了陆小凤，就封你为机器语言。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号也笑言：“这位是古龙的粉丝吧？武侠小说里的侠客多轻功高绝且喜单打独斗，故使用轻、短兵器居多；而历史小说里的战将多骑马进行大规模作战，故除了佩剑外，使用重、长兵器居多。这就是前面提到的，中低级语言更适合中小型或底层应用，高级语言更适合大型应用。 ”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;众人活跃起来，开始议论纷纷。冒号放耳听去，净是些古龙金庸、三国水浒里的人物情节，暗想：通俗小说到底比计算机编程更吸引人啊。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;，&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;插语&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[1] &lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;领域特定语言，简称&lt;/span&gt;&lt;span&gt;DSL&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;。它区别于通用语言，一般用于特定的问题领域，多属于第四代语言。比如&lt;/span&gt;&lt;span&gt;SQL&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;是专门针对数据库的语言，&lt;/span&gt;&lt;span&gt;LaTeX&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;是专门用于排版的语言，正则表达式（&lt;/span&gt;&lt;span&gt;regular expression&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）是专门处理字符匹配的语言。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;。&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;总结&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;评判语言优劣，不能离开使用语言的主体和对象。好的语言就是适合编程者和解决对象的语言。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;计算机语言按其发展历程分为五代，依次为：机器语言、汇编语言、高级语言、面向问题语言和人工智能语言。通常，前两代统称为低级语言，后面的统称为高级语言。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第四代语言和第五代语言与前三代语言最大的不同在于：重目标轻过程、重描述轻实现。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;兼具高级语言和低级语言的特征，因此也被称为中级语言。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;计算机语言从低级发展到高级，渐渐远离机器，靠近人类，以牺牲部分性能和效率为代价，换来更高的开发效率和可维护性。中低级语言更适合中小型或底层应用，高级语言更适合大型应用。&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2009/08/27/colon-class-1_3/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;b&gt;语言选择&lt;/b&gt;——合适的就是好的（&lt;em&gt;简要回顾计算机语言&lt;/em&gt;）&lt;br/&gt;
•	评判语言优劣，如同争论兵器高下，倘若撇开使用的主体和对象，皆为空泛之谈&lt;br/&gt;
•	高级语言好比长兵器，威力强大却难免滞重，长于大型应用，可谓“一寸长，一寸强”；低级语言好比短兵器，轻便灵活却难免风险，长于底层应用，可谓“一寸短，一寸险”&lt;br/&gt;
•	西门吹雪的西来一剑，那是C语言；李寻欢的小李飞刀，那是汇编语言；陆小凤的灵犀一指，那是机器语言</description><category>低级语言</category><category>高级语言</category><category>中级语言</category><category>计算机语言</category><category>冒号课堂</category><pubDate>Thu, 27 Aug 2009 10:28:50 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2009/08/27/colon-class-1_3/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=78</guid><dc:creator>郑晖</dc:creator></item><item><title>冒号课堂§1.2：首轮提问</title><link>http://blog.zhenghui.org/2009/08/26/colon-class-1_2/</link><content:encoded>&lt;h1 style=&quot;text-align: center&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号课堂&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 13pt; font-family: 宋体&quot;&gt;第一课 开班导言(2)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.2&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;首轮提问——什么语言好？&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;敬畏老师莫如敬畏真理&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;——题记&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;strong&gt;&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;关键词：计算机语言&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;程序语言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;摘要：讨论流行的计算机语言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;z-index: 7; left: -1px; width: 558px; position: relative; top: 8px; height: 50px;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;！&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;预览&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;·&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;真正的老师是你自己&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;·&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;没有激情作氧气，灵感的火花注定转瞬即灭&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;？&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;提问&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;谁是你真正的老师？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;程序员是吃青春饭的吗？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;计算机语言这么多，到底学哪个好？&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;：&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;讲解&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;众人面面相觑，一阵沉默后开始窃窃私语，显然有些不太习惯这种教学方式——笔记本上还没写两个字呢，老师就把球给踢回来了。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号也不说话，只是微笑地望着大家。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;还是问号打破僵局，开始发问：“老师——”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号扬手打断他：“请不要管我叫老师，&lt;strong&gt;真正的老师是你自己&lt;/strong&gt;。本班的一个特色是：师生角色模糊，大家自主学习，相互启发，教学相长。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“老冒——”问号顿了顿，全班哄堂大笑，“学软件开发，当然得先学语言，计算机语言这么多，到底哪个好，或者说学哪个好？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号笑道：“这个问题很典型，很实在，也很初级。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;问号被“初级”这个字眼刺得面上一红。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“如果信奉流行的就是好的，那么也许可以给你一个参考答案。”冒号转身在黑板上写下一串清单&lt;/span&gt;­&lt;span style=&quot;font-family: 宋体&quot;&gt;——&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;span&gt;Java&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;&lt;span&gt;(19.40%) &lt;strong&gt;C&lt;/strong&gt;(15.84%)&lt;strong&gt; C++&lt;/strong&gt;(9.63%) &lt;strong&gt;VB&lt;/strong&gt;(8.84%) &lt;strong&gt;PHP&lt;/strong&gt;(8.78%)&lt;strong&gt; C#(&lt;/strong&gt;5.06%)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;em&gt;&lt;span&gt;Python&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;&lt;span&gt;(4.57%) &lt;strong&gt;Perl&lt;/strong&gt;(4.12%) &lt;strong&gt;Delphi&lt;/strong&gt;(3.62%) &lt;strong&gt;JavaScript&lt;/strong&gt;(3.54%) &lt;strong&gt;Ruby&lt;/strong&gt;(3.28%) &lt;strong&gt;D&lt;/strong&gt;(1.26%) &lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“根据&lt;/span&gt;TIOBE&lt;sup&gt;[1]&lt;/sup&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;截至&lt;/span&gt;2009&lt;span style=&quot;font-family: 宋体&quot;&gt;年&lt;/span&gt;2&lt;span style=&quot;font-family: 宋体&quot;&gt;月份的统计结果，选出以上流行度超过&lt;/span&gt;1&lt;span style=&quot;font-family: 宋体&quot;&gt;％的&lt;/span&gt;12&lt;span style=&quot;font-family: 宋体&quot;&gt;种程序语言。从中可以看出，它们的总占有率接近&lt;/span&gt;90&lt;span style=&quot;font-family: 宋体&quot;&gt;％，应该算得上是当今主流语言的代表。尽管有人置疑&lt;/span&gt;TIOBE&lt;span style=&quot;font-family: 宋体&quot;&gt;排名的权威性和合理性，但这份名单应该还是八九不离十的。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;引号很疑惑：“怎么可能那么流行的&lt;/span&gt;ASP&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;JSP&lt;span style=&quot;font-family: 宋体&quot;&gt;都不在其中呢？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“对啊，”逗号附和着，“还有&lt;/span&gt;HTML&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;怎么不算呢？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号解释道：“&lt;/span&gt;ASP&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;JSP&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;PHP&lt;span style=&quot;font-family: 宋体&quot;&gt;是动态网页最流行的三种解决方案。动态网页的实现方式很多，但它们采取的几乎是同样的方式——在静态网页中植入一些能在服务器端运行的代码。在&lt;/span&gt;ASP&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;JSP&lt;span style=&quot;font-family: 宋体&quot;&gt;中，这些代码并不涉及新的语言，故称之为模板、框架或脚本环境更合适些。&lt;/span&gt;PHP&lt;span style=&quot;font-family: 宋体&quot;&gt;则不同，本身是一种新的程序语言，并且除了应用于服务端外，还能编写命令行脚本和桌面应用程序。至于&lt;/span&gt;HTML&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;，还有&lt;/span&gt;XHTML&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;WML&lt;span style=&quot;font-family: 宋体&quot;&gt;等，均为&lt;/span&gt;SGML&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;Standard Generalized Markup Language&lt;span style=&quot;font-family: 宋体&quot;&gt;）的子集，属于&lt;span style=&quot;text-decoration: underline;&quot;&gt;标记语言&lt;/span&gt;（&lt;/span&gt;Markup Language&lt;span style=&quot;font-family: 宋体&quot;&gt;）。与通常意义上的程序语言有所不同，它们是处理的对象而不是处理的主体。可以说它们更接近数据格式标准，正如&lt;/span&gt;CSV&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;JSON&lt;span style=&quot;font-family: 宋体&quot;&gt;一样。当然也不绝对，&lt;/span&gt;XSLT&lt;span style=&quot;font-family: 宋体&quot;&gt;是一种特殊的&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;，但却包含变量定义和处理逻辑，更学术地说，它是图灵完备的（&lt;/span&gt;Turing-complete&lt;span style=&quot;font-family: 宋体&quot;&gt;）&lt;/span&gt;&lt;sup&gt;[2]&lt;/sup&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;，应当属于程序语言。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;问号杀了个回马枪：“那&lt;/span&gt;CSS&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;RSS&lt;span style=&quot;font-family: 宋体&quot;&gt;算是程序语言吗？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号从容作答：“与&lt;/span&gt;XSLT&lt;span style=&quot;font-family: 宋体&quot;&gt;类似，&lt;/span&gt;CSS&lt;span style=&quot;font-family: 宋体&quot;&gt;是一种&lt;span style=&quot;text-decoration: underline;&quot;&gt;样式语言&lt;/span&gt;（&lt;/span&gt;Stylesheet Language&lt;span style=&quot;font-family: 宋体&quot;&gt;），但不是以&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;的形式出现。它将传统的&lt;/span&gt;HTML&lt;span style=&quot;font-family: 宋体&quot;&gt;中的样式逻辑提炼出来，大大丰富和简化了&lt;/span&gt;HTML&lt;span style=&quot;font-family: 宋体&quot;&gt;。不过它没有执行指令或运算，更谈不上图灵完备，因此不属程序语言。至于&lt;/span&gt;RSS&lt;span style=&quot;font-family: 宋体&quot;&gt;，只是一种用&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;来描述的数据交换规范，甚至连语言都算不上。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;叹号也插了进来：“近来网络开发语言&lt;/span&gt;AJAX&lt;span style=&quot;font-family: 宋体&quot;&gt;特别火，难道不算程序语言吗？”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号摇头道：“的确有不少人以为&lt;/span&gt;AJAX&lt;span style=&quot;font-family: 宋体&quot;&gt;是一门语言，但如果知道&lt;/span&gt;AJAX&lt;span style=&quot;font-family: 宋体&quot;&gt;是&lt;/span&gt;&lt;strong&gt;A&lt;/strong&gt;synchronous &lt;strong&gt;J&lt;/strong&gt;avaScript.&lt;strong&gt;A&lt;/strong&gt;nd &lt;strong&gt;X&lt;/strong&gt;ML&lt;span style=&quot;font-family: 宋体&quot;&gt;的简称，便知其谬矣。事实上，它是综合了&lt;/span&gt;JavaScript&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;XML&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;HTML&lt;span style=&quot;font-family: 宋体&quot;&gt;、&lt;/span&gt;CSS&lt;span style=&quot;font-family: 宋体&quot;&gt;等多种语言的一种网络应用技术。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“就算这些不是程序语言，那也是计算机语言或者与语言密切相关的技术，该学的还是得学。”句号想起问号开始问的是计算机语言，老冒有偷换概念之嫌。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“不错，”冒号点点头，“不仅要学语言，还要熟悉相应的开发环境和开发工具等等，当然最重要的是学习其中的思想。 ”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“唉，学完这些头发都白了，程序员可是吃青春饭的。”叹号叹息道。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号扫视了一下，说道：“现在班上每个人都尊口已开，这是一个很好的开始。开放言论才能解放思想，思想解放了才能产生灵感和激情。缺乏灵感和激情的程序员，学习起来吃力，工作起来辛苦，最后就会感慨这是吃青春饭的职业。”&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;叹号不好意思地挠了挠头。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;逗号接言：“灵感嘛，偶尔也许能闪一下，激情可就难喽！&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号注视着他，一字一顿地说：“没有激情作氧气，灵感的火花注定转瞬即灭。”&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;，&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;插语&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[1] TIOBE&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;&lt;span&gt;http://www.tiobe.com&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）是一家评估编程语言流行度的权威机构，每月公布一次编程语言排行榜。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;[2] &lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;一个能计算出每个&lt;span style=&quot;text-decoration: underline;&quot;&gt;图灵可计算函数&lt;/span&gt;（&lt;/span&gt;&lt;span&gt;Turing-computable function&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）的计算系统被称为图灵完备的。一个语言是图灵完备的，意味着该语言的计算能力与一个&lt;span style=&quot;text-decoration: underline;&quot;&gt;通用图灵机&lt;/span&gt; （&lt;/span&gt;&lt;span&gt;Universal Turing Machine&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;）相当，这也是现代计算机语言所能拥有的最高能力。&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;。&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;总结&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;本班倡导自主学习、相互启发，真正的老师不是别人，正是自己。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;当今主流语言的代表：&lt;/span&gt;Java&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;C&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;C++&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;VB&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;PHP&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;C#&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;Python&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;Perl&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt; Delphi&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt;JavaScript&lt;span style=&quot;font-family: 宋体&quot;&gt;，&lt;/span&gt; Ruby&lt;span style=&quot;font-family: 宋体&quot;&gt;和&lt;/span&gt;D&lt;span style=&quot;font-family: 宋体&quot;&gt;。&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;“程序员是吃青春饭的职业”出自那些缺乏灵感和激情的人之口。&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2009/08/26/colon-class-1_2/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;b&gt;首轮提问&lt;/b&gt;——什么语言好（&lt;em&gt;讨论流行的计算机语言&lt;/em&gt;）&lt;br/&gt;
•	真正的老师是你自己&lt;br/&gt;
•	没有激情作氧气，灵感的火花注定转瞬即灭</description><category>计算机语言</category><category>程序语言</category><category>冒号课堂</category><pubDate>Wed, 26 Aug 2009 13:18:17 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2009/08/26/colon-class-1_2/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=65</guid><dc:creator>郑晖</dc:creator></item><item><title>冒号课堂§1.1：开班发言</title><link>http://blog.zhenghui.org/2009/08/24/colon-class-1_1/</link><content:encoded>&lt;h1 style=&quot;text-align: center&quot; align=&quot;center&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号课堂&lt;/span&gt;&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 13pt; font-family: 宋体&quot;&gt;第一课 开班导言(1)&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;课前导读&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;第一课为整个课堂学习的内容和风格定调，主要围绕三个问题进行展开：要成为一个优秀的程序员，最需要学习什么知识？领会什么思想？具备什么精神？&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;本课共分五节&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin: 0cm 0cm 0pt; text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 'Times New Roman'&quot;&gt;1.&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;开班发言&lt;/span&gt;&lt;/em&gt;&lt;strong&gt;&amp;#8212;&lt;/strong&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8212;程序员的四层境界&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt&quot;&gt;&lt;em&gt;2.&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;首轮提问&amp;#8212;&amp;#8212;什么语言好？&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt&quot;&gt;&lt;em&gt;3.&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;语言选择&amp;#8212;&amp;#8212;合适的就是好的&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt&quot;&gt;&lt;em&gt;4.&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;初识范式&amp;#8212;&amp;#8212;程序王国中的世界观与方法论&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt&quot;&gt;&lt;em&gt;5.&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;软件技术&amp;#8212;&amp;#8212;实用还是时髦？&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.1&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;开班发言&amp;#8212;&amp;#8212;程序员的四层境界&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;授人以鱼不如授人以渔&lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8212;&amp;#8212;古语&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;strong&gt;&lt;em&gt;&amp;nbsp;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;关键词：程序员&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;学习&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;知识&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;思想&lt;/span&gt;,&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;精神&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;摘要：对程序员的一些忠告和建议&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;！&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;预览&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;学会不如会学，会学不如会用，会用不如被用&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;如果知识是水，我们要挖掘最先涌动的泉眼&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;如果知识是火，我们要捕捉起初点燃的火花&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;如果知识是树，其树大根深，不究立固之本则无以知过去；其枝繁叶茂，不握支撑之干则无以知当下；其蓬勃旺盛，不察生长之点则无以知将来&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;越是喧嚣的世界，越需要宁静的思考，让躁动的心灵得以平息，让蕴藏的灵性得以释放&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 39pt; text-indent: -21pt&quot;&gt;&lt;span style=&quot;font-family: Symbol&quot;&gt;&amp;#183;&lt;span style=&quot;font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: 楷体&quot;&gt;知识之上是思想，思想之上是精神&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;？&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;提问&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;strong&gt; &lt;/strong&gt;&amp;nbsp; 
&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;软件开发者的成长需要经历有哪些阶段？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;要想在&lt;/span&gt;IT&lt;span style=&quot;font-family: 宋体&quot;&gt;业中生存与发展，传统的学习方式是否够用？&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;优秀程序员应该具备哪些素质？&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;：&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;讲解&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;冒号开了个程序员提高班，今天迎来了首期学员，他们是问号、句号、逗号、引号和叹号，皆为&lt;/span&gt;IT&lt;span style=&quot;font-family: 宋体&quot;&gt;业的新兵。望着台下洋溢着青春与渴望的脸庞，冒号开始了他的开班发言&amp;#8212;&amp;#8212;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;大家好！先自我介绍一下，本人姓冒名号字解之。诸位不必叫我老师，就叫老冒好了。比在座各位痴长几岁，&amp;#8220;老&amp;#8221;是担得的，&amp;#8220;师&amp;#8221;却不敢妄言。在下编程多年，自觉小有所成，不敢专藏，特开此班与众共享。虽系一家之言、一孔之见，若能抛砖引玉，又何惧方家之哂？疏谬之处，还望海涵斧正，不致自误误人。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;客套已毕，言归正传。本班主要采取讨论的形式，只要是软件开发中值得讨论的，但凡本人力之所及，均可共同探讨。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;本班的宗旨是：&lt;strong&gt;学会不如会学，会学不如会用，会用不如被用&lt;/strong&gt;。对于一个软件开发者来说，这意味着四个阶段：&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;学会&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（知其所然）&amp;#8212;&amp;#8212;掌握一些具体编程知识的初级程序员&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;会学&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;知所以然）&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8212;&amp;#8212;能快速而深刻地理解技术并举一反三的程序员&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;会用&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;人为我用）&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8212;&amp;#8212;能将所学灵活运用到实际编程设计之中的高级程序员&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;被用&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;（&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;我为人用）&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8212;&amp;#8212;能设计出广为人用的应用程序（&lt;/span&gt;application&lt;span style=&quot;font-family: 宋体&quot;&gt;）、库（&lt;/span&gt;library&lt;span style=&quot;font-family: 宋体&quot;&gt;）、工具包（&lt;/span&gt;toolkit&lt;span style=&quot;font-family: 宋体&quot;&gt;）、框架（&lt;/span&gt;framework&lt;span style=&quot;font-family: 宋体&quot;&gt;）等的系统分析师和架构师&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;至于被用的更高层次，如发明出主流的设计模式、算法、语言乃至理论等，则可称得上计算机专家了。本班的目的，正是为各位向更高阶段的提升助一臂之力。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;大家可能都习惯了在小学、中学和大学里的课堂，那里的知识大多是系统而完备且貌似终极的，那里的学习大多是单向而被动的。但习惯并不意味着享受，更多的是因为别无选择。你们曾被引入一座座知识殿堂，被告知它们如何美轮美奂、巧夺天工，尽管很多时候你们或不以为然、或不解其妙，但还是不得不记下每一处被指点的细微结构。很少有人带你们看看当初为建造这些殿堂而打下的地基、搭设的脚手架，哪怕只是上漆前的模样也好，更遑论一瞻数易其稿的设计图纸了。那些与殿堂相比显得有些原始、甚至丑陋的东西，被有意无意地挡在视线之外。可没有那些，你们将来如何为这些宫殿添砖加瓦，又如何另起楼阁呢？&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;中国学生恐怕是世界上最擅长考试、最习惯考试、也最厌倦考试的群体了。你们告别了学生生涯，踏上了职业之旅。首先我要恭喜你们，脱离苦海了！同时也要悲告你们，掉进火坑了！危言耸听吗？如果你选择了做程序员，你时时都得学习，没有手把手教你的老师，没有指定的教科书和参考书，有的是层出不穷令人眼花缭乱的新概念、新技术、新问题，好不容易学到一些皮毛，有的已成明日黄花。你时时都得考试，每提交一段代码就是上交一份答卷，你不知道什么时候、什么人会批改，直到&amp;#8212;&amp;#8212;开发组同事发现你的代码难以看懂，系统分析员指出你的程序不符合规范，测试工程师检验到你的软件有缺陷，客户抱怨你的产品太慢太难用，最后老板倒可能告诉你一个好消息：明天起放长假！&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;其实，又有哪行哪业的人不需要学习和考试呢？&lt;/span&gt;IT&lt;span style=&quot;font-family: 宋体&quot;&gt;业只是相对更激烈、更富挑战性而已。在这个瞬息万变、适者生存的时代，如果还沿用封闭、被动的学习方式，恐有淘汰之虞。有鉴于此，本班的风格与你们习惯的课堂有所不同：这里的知识不一定是系统或完备的，但一定是生动鲜活的。如果知识是水，我们要挖掘最先涌动的泉眼；如果知识是火，我们要捕捉起初点燃的火花；如果知识是树，其树大根深，不究立固之本则无以知过去；其枝繁叶茂，不握支撑之干则无以知当下；其蓬勃旺盛，不察生长之点则无以知将来。这里的问题不一定是预设的，结论不一定是终极的，甚至不一定是正确的，但一定是有的放矢、发人深思的。由此决定了这里的学习方式将是开放多元、双向互动的。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;越是喧嚣的世界，越需要宁静的思考，让躁动的心灵得以平息，让蕴藏的灵性得以释放。学习编程没有速成大法、没有必杀之技、没有锦囊秘笈、没有终南捷径，只有思考、实践、再思考、再实践。中国的&lt;/span&gt;IT&lt;span style=&quot;font-family: 宋体&quot;&gt;界乃至整个学术界过于浮躁和急功近利了，既盲从又自大，缺乏务实精神与研究精神、独立精神与合作精神、批判精神与自省精神。如果一个程序员沾染这种风气，哪怕有再好的学习方法和学习能力，他都注定与&amp;#8220;优秀&amp;#8221;绝缘。这就是本班极力倡导并将贯穿始终的理念&amp;#8212;&amp;#8212;&lt;strong&gt;知识之上是思想，思想之上是精神&lt;/strong&gt;。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt; text-align: justify&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;我的开场白到此为止，现在把话语权交给你们，大家自由发问吧。&lt;/span&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;&lt;span style=&quot;color: #3366ff&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 18pt; font-family: 宋体&quot;&gt;。&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-size: 14pt; font-family: 宋体&quot;&gt;总结&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p style=&quot;text-indent: 18pt&quot;&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;软件开发者的成长阶段：&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;学会&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: Symbol&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;会学-&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;会用-&amp;gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;被用。&lt;/span&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-left: 36pt&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;这是一个从&amp;#8220;&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;知其所然&amp;#8221;到&amp;#8220;&lt;/span&gt;&lt;strong&gt;&lt;span style=&quot;font-weight: normal; font-family: 宋体&quot;&gt;知所以然&amp;#8221;、从&amp;#8220;人为我用&amp;#8221;到&amp;#8220;我为人用&amp;#8221;的历程。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;传统的学习方式大多有如下特征：&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-left: 18pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;封闭&amp;#8212;&amp;#8212;系统完备的终极式知识&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;单向&amp;#8212;&amp;#8212;师教生学的单向式传输知识&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;被动&amp;#8212;&amp;#8212;师命生从的被动式接受知识&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 18pt; text-indent: 18pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;静态&amp;#8212;&amp;#8212;只注重知识的现状，忽略知识的起源、历程和未来趋势&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;margin-left: 36pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;继续沿袭这种学习方式，是很难在竞争日趋激烈、技术日新月异的&lt;/span&gt;IT&lt;span style=&quot;font-family: 宋体&quot;&gt;业中求生存、谋发展的。&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;开放多元、双向互动的现代&lt;/span&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;课堂乃大势所趋。&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;&amp;#8220;知识之上是思想，思想之上是精神。&amp;#8221;&lt;/span&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;margin-left: 36pt&quot;&gt;&lt;span style=&quot;font-family: 宋体&quot;&gt;一个优秀的程序员，除了要迅速掌握知识、善于领悟思想外，还必须具备务实与研究精神、独立与合作精神、批判与自省精神。&lt;/span&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2009/08/24/colon-class-1_1/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;b&gt;开班发言&lt;/b&gt;——程序员的四层境界（&lt;em&gt;对程序员的一些忠告和建议&lt;/em&gt;）&lt;br/&gt;
•	学会不如会学，会学不如会用，会用不如被用&lt;br/&gt;
•	如果知识是水，我们要挖掘最先涌动的泉眼；如果知识是火，我们要捕捉起初点燃的火花&lt;br/&gt;
•	如果知识是树，其树大根深，不究立固之本则无以知过去；其枝繁叶茂，不握支撑之干则无以知当下；其蓬勃旺盛，不察生长之点则无以知将来&lt;br/&gt;
•	越是喧嚣的世界，越需要宁静的思考，让躁动的心灵得以平息，让蕴藏的灵性得以释放&lt;br/&gt;
•	知识之上是思想，思想之上是精神</description><category>程序员</category><category>精神</category><category>思想</category><category>学习</category><category>知识</category><category>冒号课堂</category><pubDate>Mon, 24 Aug 2009 22:38:57 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2009/08/24/colon-class-1_1/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=49</guid><dc:creator>郑晖</dc:creator></item><item><title>《冒号课堂》目录</title><link>http://blog.zhenghui.org/2009/08/21/contents-of-colonclass/</link><content:encoded>&lt;h3 style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;margin-top: 0cm; list-style-type: none;&quot;&gt;
&lt;li style=&quot;font-size: 14pt; color: #3366ff;&quot;&gt;上篇：&lt;strong&gt;编程范式与编程语言&lt;/strong&gt;&lt;/li&gt;
&lt;li style=&quot;font-size: 14pt; color: #3366ff;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第一课 开班导言&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.zhenghui.org/2009/08/24/colon-class-1_1/&quot;&gt;§1.1：开班发言——&lt;em&gt;程序员的四层境界&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.zhenghui.org/2009/08/26/colon-class-1_2/&quot;&gt;§1.2：首轮提问——&lt;em&gt;什么语言好？&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://blog.zhenghui.org/2009/08/27/colon-class-1_3/&quot;&gt;§1.3：语言选择——&lt;em&gt;合适的就是好的&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;§1.4：初识范式——&lt;em&gt;程序王国中的世界观与方法论&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§1.5：开发技术——&lt;em&gt;实用还是时髦？&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第二课 重要范式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§2.1：命令范式——&lt;em&gt;一切行动听指挥&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§2.2：声明范式——&lt;em&gt;目标决定行动&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§2.3：对象范式——&lt;em&gt;民主制社会的编程法则&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§2.4：并发范式——&lt;em&gt;合作与竞争&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第三课 常用范式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§3.1：泛型范式——&lt;em&gt;抽象你的算法&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§3.2：超级范式——&lt;em&gt;提升语言的级别&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§3.3：切面范式——&lt;em&gt;多角度看问题&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§3.4：事件驱动——&lt;em&gt;有事我叫你，没事别烦我&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第四课 重温范式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§4.1：函数范式——&lt;em&gt;精巧的数学思维&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§4.2：逻辑范式——&lt;em&gt;当算法失去了控制&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§4.3：汇总范式——&lt;em&gt;一张五味俱全的大烙饼&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§4.4：情景范式——&lt;em&gt;餐馆里的编程范式&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第五课 语言小谈&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§5.1：教学计划——&lt;em&gt;接下来的故事&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§5.2：数据类型——&lt;em&gt;规则与变通&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§5.3：动态语言——&lt;em&gt;披着彩衣飞舞的脚本语言&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§5.4：语言误区——&lt;em&gt;语言的宗教情结&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第六课 语言简评&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§6.1：系统语言——&lt;em&gt;权力的双刃剑&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§6.2：平台语言——&lt;em&gt;先搭台后唱戏&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§6.3：前台语言——&lt;em&gt;视觉与交互的艺术&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§6.4：后台脚本——&lt;em&gt;敏捷开发的利器&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;margin-top: 0cm; list-style-type: none;&quot;&gt;
&lt;li style=&quot;font-size: 14pt; color: #3366ff;&quot;&gt;下篇：&lt;strong&gt;抽象机制与对象范式&lt;/strong&gt;&lt;/li&gt;
&lt;li style=&quot;font-size: 14pt; color: #3366ff;&quot;&gt;&lt;strong&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第七课 抽象封装&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§7.1：抽象思维——&lt;em&gt;减法和除法的学问&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§7.2：数据抽象——&lt;em&gt;“做什么”重于“怎么做”&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§7.3：封装隐藏——&lt;em&gt;包装的讲究&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第八课 抽象接口&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§8.1：软件应变——&lt;em&gt;随需而变，适者生存&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§8.2：访问控制——&lt;em&gt;代码的多级管理&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§8.3：接口服务——&lt;em&gt;讲诚信与守规矩&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第九课 继承机制&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§9.1：继承关系——&lt;em&gt;继承财富，更要继承责任&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§9.2：慎用继承——&lt;em&gt;以谨慎之心对待权力&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第十课 多态机制&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§10.1：多态类型——&lt;em&gt;静中之动&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§10.2：抽象类型——&lt;em&gt;实中之虚&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第十一课 值与引用&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§11.1：语法类型——&lt;em&gt;体用之分&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§11.2：语义类型——&lt;em&gt;阴阳之道&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第十二课 设计原则&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§12.1：间接原则——&lt;em&gt;柔胜于刚，曲胜于直&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§12.2：依赖原则——&lt;em&gt;有求皆苦，无欲则刚&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§12.3：内聚原则——&lt;em&gt;不是一家人，不进一家门&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§12.4：保变原则——&lt;em&gt;与魔鬼打交道的艺术&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第十三课 设计模式&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;§13.1：创建模式——&lt;em&gt;不要问我从哪里来&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§13.2：结构模式——&lt;em&gt;建筑的技巧&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§13.3：行为模式——&lt;em&gt;君子之交淡如水&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;§13.4：闭班小结——&lt;em&gt;软件无形，编程有道&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2009/08/21/contents-of-colonclass/feed/</wfw:commentRss><slash:comments>6</slash:comments><description>《冒号课堂》一书的目录</description><category>OOP</category><category>编程范式</category><category>冒号课堂</category><category>目录</category><pubDate>Fri, 21 Aug 2009 23:34:27 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2009/08/21/contents-of-colonclass/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=4</guid><dc:creator>郑晖</dc:creator></item><item><title>关于信息系统组织方式的一个提案</title><link>http://blog.zhenghui.org/2008/05/19/a-proposal-on-organization-of-information-system-cn/</link><content:encoded>&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体; font-style: normal;&quot;&gt;关于信息系统组织方式的一个提案&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;序言&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;昨日整理&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;信箱之时，觉有不便之处，于是进入“&lt;/span&gt;Suggest a feature for Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;”的页面，准备提些建议。不意一只灵感的小虫悄悄爬上脑梢，急欲捕之而后快。遂作“&lt;/span&gt;&lt;a href=&quot;http://blog.zhenghui.org/2008/05/18/a-proposal-on-organization-of-information-system/&quot;&gt;&lt;span style=&quot;color: blue; text-decoration: none;&quot;&gt;A Proposal on Organization of Information System&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;”一文，以备&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;参考之用。甘冒不谦之嫌，窃以为该提案是对包括文件系统、邮件系统等在内的信息系统的组织方式的一种创新。为让更多的国内同仁了解，现将此文译成中文。仓促成文，还望诸位方家不吝赐教。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; align=&quot;right&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;郑晖于&lt;/span&gt;2008&lt;span style=&quot;font-family: 宋体;&quot;&gt;年&lt;/span&gt;5&lt;span style=&quot;font-family: 宋体;&quot;&gt;月&lt;/span&gt;19&lt;span style=&quot;font-family: 宋体;&quot;&gt;日&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1. &lt;em&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;引言&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;我们生活在一个信息 时代，但有时信息带来的负担甚至超过收益。从用户的角度看，大多数信息系统包括文件系统、邮件系统和各类基于菜单的系统本质上都是层级 （hierarchical）结构的。随着信息量的递增，系统的可用性却在递减。这种结构的主要缺陷是它仅提供了通往目标信息的&lt;em&gt;单一通道&lt;/em&gt;。用户在任何一个转角处走错都可能导致最终迷路。如果一个信息系统能支持&lt;em&gt;多路通道&lt;/em&gt;，情况就会得到改善。有鉴于此，本文借助&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;系统的一些思想提出了一个切实可行的方案。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;2.&lt;em&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;信息检索之困&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;信息是个好东西，可储存和重新获取却令人头痛。日复一日地，一个典型的计算机用户浏览并保存网页，收集心仪的书签和&lt;/span&gt;RSS&lt;span style=&quot;font-family: 宋体;&quot;&gt;，从&lt;/span&gt;BT&lt;span style=&quot;font-family: 宋体;&quot;&gt;或&lt;/span&gt;emule&lt;span style=&quot;font-family: 宋体;&quot;&gt;上 下载文件，收发电子邮件，编写文档或程序。他愉悦地享受着这一切，直到有一天他发现自己逐渐为信息超载所困扰。一个明显的迹象是他时不时感到有点头晕—— 他的桌面凌乱不堪，各种图标如沙丁鱼般“济济一堂”；他的书签菜单展开来如巨毯般一直拖到地上；他的信箱塞满邮件，鼓鼓囊囊、几欲暴裂。他开始意识到如果 这种状况不改变，他的脑袋一定比硬盘或邮箱更早爆炸。此后，他养成了将文件、书签和邮件整理到层级文件夹中的习惯。情况果然大为改观。惜乎好景不长，文档 数量增长迅猛，文件夹越来越多、越来越深。将一个文档保存到合适的地方需要花费时间，而找回当初下载或创建的文档则更花时间。整日在树状结构中穿梭，他有 些倦恼和迷失了。他知道自己拥有一棵遮天蔽日的圣诞树，上面挂满了琳琅满目的礼物，可是没有多少是触手可及的。每每在掘地三尺仍一无所获之后，他不得不怀 疑自己的记忆，偶尔也忍不住怀疑机器的记忆。明知那些失踪之物从来不会自动跳出来，他还是情不自禁地冲着电脑歇斯底里：那些该死的文档到底躲到哪里去了？ 时不时地，他又滑回老习惯：将所有最新的文件保存到桌面，不为别的，只是那里似乎更方便更令人放心。我们不禁要问：这种困境的根源是什么？&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;3. &lt;em&gt;Gmail&lt;/em&gt;&lt;em&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;解决方案&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;问题出在传统的信息组织方式上，即树（或森林）型结构。这种层级结构应付大量信息尚胜任有余，但对于海量信息则有些不堪重负。随着信息量的膨胀，树型结构越来越力不从心。许多文件夹中的列表不可避免地变长，一些文件夹被深层嵌套。在文件系统中，通过在&lt;/span&gt;Windows&lt;span style=&quot;font-family: 宋体;&quot;&gt;中创建捷径或在&lt;/span&gt;Unix&lt;span style=&quot;font-family: 宋体;&quot;&gt;类的操作系统中创建符号链接（&lt;/span&gt;symbolic link&lt;span style=&quot;font-family: 宋体;&quot;&gt;）能一定程度上缓解一些症状，但显然不能根治。作为一种有趣的替代方案，&lt;/span&gt;Google&lt;span style=&quot;font-family: 宋体;&quot;&gt;的&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;提供了他们称作“标签”（&lt;/span&gt;label&lt;span style=&quot;font-family: 宋体;&quot;&gt;） 的工具。一个标签是一种文字标记，它能与其他的标签同时应用到一条信息上。开始许多用户抱怨它，因为他们习惯了文件夹风格。但这种抱怨慢慢减少，用户发现 他们的信息不再是藏于密密丛林的游击队，而是一字排开等待检阅的正规军。所有最近的信息都在顶部，而这在精心组织的文件夹系统中是不可能的。用户不再为如 何分类信息而犯难，他们可以在每条信息上贴上任意多的标签。找一个特定的信息也很容易，既可用自定义标签来过滤，也可用系统标签如&lt;/span&gt;inbox, sent, star, chat, trash&lt;span style=&quot;font-family: 宋体;&quot;&gt;等来过滤。他们还能通过收信人、发信人、主题和信息内容来搜索。更好的是，用户可定义过滤器自动为来信贴标签。&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;这种解决方案，今后我们称为&lt;em&gt;标签结构&lt;/em&gt;，不必囿于邮件管理系统，它能有效地用于文件系统和其他诸如知识管理系统之类的信息系统。&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;4. &lt;em&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;改进方案&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;标签结构并非尽善尽美。尽管与信息数量比，标签要少得多，但依然会泛滥。在&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;的 标签结构中，所有用户定义的标签是独立而平等的，但事实上——不同的标签在重要性、紧急性和常用性上可能大相径庭；一些标签有着内在联系；同一信息上的不 同标签在相关度上也有所不同。比如，“工作”或“家庭”的标签更重要，“待做”或“考试”的标签更紧急，“体育”或“电影”的标签对一个体育迷或电影迷来 说更常用。当一个程序员将一些资料标记为“&lt;/span&gt;Java&lt;span style=&quot;font-family: 宋体;&quot;&gt;”或“&lt;/span&gt;C++&lt;span style=&quot;font-family: 宋体;&quot;&gt;”后，他很希望它们能自动加上“程序语言”和“&lt;/span&gt;OOP&lt;span style=&quot;font-family: 宋体;&quot;&gt;”的标签，以便今后它们能出现在一个列表中。最后，一些标签可能比另外的标签更能描述一条信息。综合以上考虑，我们提出如下可行方案。&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;在标签结构中引入层级结构。&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;我们将标签视作信息的元数据，并将它们以传统的树型结构来组织。这样我们将两个世界最好的部分结合起来，取长补短。实际上我们可以走得更远。我们知道，层级树型结构在图论中是&lt;em&gt;有向树&lt;/em&gt;，只要有意义，我们可以把标签结构推广为&lt;em&gt;有向图&lt;/em&gt;（&lt;/span&gt;digraph&lt;span style=&quot;font-family: 宋体;&quot;&gt;）。这意味着一个标签可以有多个上级，有点类似一些&lt;/span&gt;OOP&lt;span style=&quot;font-family: 宋体;&quot;&gt;语言中的多继承。显然当所有的标签都是树根（即无子标签）时，就退化为&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;的标签结构&lt;/span&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;为标签引入重要性、紧急性和常用性权重，标签可按权重排序。&lt;/span&gt;&lt;/strong&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;的星号标签可作此用，但粒度过粗。常用性权重可在每次访问后自动增值，这样最常用的标签总在前面。标签还能按最近访问时间来排序。如是，用户最关心的信息抬眼即是、垂手可得。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;引入主标签。&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;一项信息的某个标签可设为主标签。从这种意义上讲，传统的树型结构是我们这种结构的特例：每个文件夹名正是一个标签名。（但有一个细微差别：同样的文件夹名在不同的路径下不会象标签名那样发生冲突）如果主标签的相关度是&lt;/span&gt;1&lt;span style=&quot;font-family: 宋体;&quot;&gt;，那么其他标签的相关度应在&lt;/span&gt;0&lt;span style=&quot;font-family: 宋体;&quot;&gt;和&lt;/span&gt;1&lt;span style=&quot;font-family: 宋体;&quot;&gt;之间，这为搜索和排序提供了新的准则。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;引入别名标签。&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;标签允许有多个名字，这些名字可以是同义词、缩写甚至是不同的语种。别名还能更强大：用户可一个标签定义为其他标签的逻辑组合。例如，“我的程序”可定义为“我的文档&lt;/span&gt;and&lt;span style=&quot;font-family: 宋体;&quot;&gt;程序”，“娱乐”可定义为“体育&lt;/span&gt;or&lt;span style=&quot;font-family: 宋体;&quot;&gt;小说&lt;/span&gt;or&lt;span style=&quot;font-family: 宋体;&quot;&gt;电影”等等。&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;引入线信（&lt;/span&gt;thread&lt;/strong&gt;&lt;strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;）。&lt;/span&gt;&lt;/strong&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;用户能建立&lt;/span&gt;thread&lt;span style=&quot;font-family: 宋体;&quot;&gt;将相关信息连接起来。&lt;/span&gt;Gmail&lt;span style=&quot;font-family: 宋体;&quot;&gt;中有会话（&lt;/span&gt;conversation&lt;span style=&quot;font-family: 宋体;&quot;&gt;），但用户无法自己合并相关邮件。&lt;/span&gt;thread &lt;span style=&quot;font-family: 宋体;&quot;&gt;对信息跟踪和保留不同版本的信息非常有用，这种聚合使得信息系统更加紧凑连贯。&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;5. &lt;em&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;结论&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 宋体;&quot;&gt;要定位一项信息，用户在层级系统中需要点击文件夹在展开，在标签系统中需要点击标签来过滤。我们没有提及搜索是因为搜索较慢且有些信息不以文本形式存在。标签系统是更好的解决方案，但仍有不足之处。为了进一步方便信息检索，我们设计了&lt;em&gt;含权有向图标签结构&lt;/em&gt;（&lt;/span&gt;weighted diagraph tag structure&lt;span style=&quot;font-family: 宋体;&quot;&gt;），这是一种结合树型结构的优点的标签结构。一个具此结构的信息系统应该更加平易近人且令人愉快，它的用户可以象悠闲的养鱼人，不管往池塘里投入多少条鱼，只要一声口哨，他想要的那条就会摇头摆尾地游过来。&lt;/span&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2008/05/19/a-proposal-on-organization-of-information-system-cn/feed/</wfw:commentRss><slash:comments>2</slash:comments><description>昨日整理Gmail信箱之时，觉有不便之处，于是进入“Suggest a feature for Gmail”的页面，准备提些建议。不意一只灵感的小虫悄悄爬上脑梢，急欲捕之而后快。遂作“A Proposal on Organization of Information System”一文，以备Gmail参考之用。甘冒不谦之嫌，窃以为该提案是对包括文件系统、邮件系统等在内的信息系统的组织方式的一种创新。。。</description><category>信息管理</category><pubDate>Mon, 19 May 2008 10:05:21 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2008/05/19/a-proposal-on-organization-of-information-system-cn/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=17</guid><dc:creator>郑晖</dc:creator></item><item><title>A Proposal on Organization of Information System</title><link>http://blog.zhenghui.org/2008/05/18/a-proposal-on-organization-of-information-system/</link><content:encoded>&lt;h2 style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-style: normal;&quot;&gt;A Proposal on Organization of Information System （另见：&lt;a href=&quot;http://blog.zhenghui.org/2008/05/19/a-proposal-on-organization-of-information-system-cn/&quot;&gt;中文版&lt;/a&gt;）&lt;br /&gt;
&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: right;&quot; align=&quot;right&quot;&gt;Authored by Hui Zheng on May 18, 2008&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;1. &lt;em&gt;Introduction&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;We are living in an age of information, but sometimes information imposes more burden than benefit. From a user’s view, most information systems including file systems, mail systems and various menu-based systems are essentially organized in hierarchical structure. As information increases, yet the usability of the sytems decreases. The major flaw of this kind of structure is that it only provides a &lt;em&gt;single path&lt;/em&gt; to the target information. If a user misses one corner, he will possibly lose his way. This situation could be improved if an information system supports &lt;em&gt;multipath routing&lt;/em&gt;. Aiming at this, this article proposes a practical solution by borrowing some ideas from Gmail system.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;2.&lt;em&gt; Information retrieval problem&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Information itself is great, but storing and retrieving information sucks. Day by day, a typical computer user browses and saves web pages, collects favorite bookmarks and RSS, downloads files from BT or emule, composes and receives email, writes documents or programs etc. He enjoys all of these until someday, he finds himself gradually suffering information overload. As an evidence, he now and then feels a little bit dizzy: his desktop is terribly messy with miscellaneous icons packed like sardines, his bookmark menu pulls all the way down like a huge blanket and his inbox is cluttered with mails like a bulging bag. He comes to realize that if this situation cannot be changed, his brains must explode before his hard disk or mailbox does. Thereafter, He cultivates the habit of organizing files, bookmarks and mails into hierarchical folders. As a result, things improve a lot. Unfortunately, good times don&amp;#8217;t last long. He finds that as his documents grow rapidly, his folders become more and more, deeper and deeper. It takes some time for him to save a document to appropriate position, and it does even more time to find a document he downloads or composes. He tends to get tired, vexed and somewhat lost when he navigates the hierarchical trees. He knows he possesses a gigantic Christmas tree with tremendous gifts hanging on, but few of them are handy. Time and time again, he fails to find an important document after exhaustive search. He doubts his memory, and occasionally, he doubts machine&amp;#8217;s memory. Although he knows those missing stuffs will never automatically jump upon to him, he still cannot help yelling at the machine: where the hell are the damn documents hiding? From time to time, he slips back to the old habit: saving all recent files to desktop, just for better convenience and confidence. So, what is the root of the plague?&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;3. &lt;em&gt;Gmail&amp;#8217;s solution&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;It turns out that the evil root is the traditional manner of information organization, namely, tree (or forest) structure. This hierarchical structure is reasonable for large but not huge quantities of information items. As the information volume swells, the tree structure becomes unmanageable little by little. The item lists in many folders are inevitably long and some folders are deeply nested. In file systems, this symptom can be alleviated to some degree by creating shortcuts in Windows or symbolic links in Unix-family OS. But that is not a final cure. As an interesting alternative, Google&amp;#8217;s Gmail presents what they call &amp;#8220;label&amp;#8221;. A label is basically a tag which could be applied to a message together with other ones. Many users complain about it at the beginning because they are used to old folder fashion. But the complaints are waning as the time passes by. The users find that their messages are no longer like guerilla hiding in deep forest, instead, they are like regular army in one-line arrangement waiting for inspection. The most recent messages are on the top to access, which is impossible in the well-organized folder system; they won&amp;#8217;t be bewildered where to sort the messages since they can apply as many labels as they&amp;#8217;d like to the messages; finding a specific message is easy too: users can filter by user-defined labels, or system-defined labels like inbox, sent, star, chat, trash etc. They can also search by sender, receiver, subject and message content. Even better, users can define filters that automatically apply labels to the incoming mails. This solution, henceforth we call &lt;em&gt;tag structure&lt;/em&gt;, is not necessarily limited to mail management system, it should apply well to file system and other information systems such as knowledge management system.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;4. &lt;em&gt;Our solution&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;However, tag structure doesn&amp;#8217;t always suffice for our needs. Even though tags are much fewer than information items, they still can overflow. In Gmail&amp;#8217;s tag structure, all user-defined labels are independent and equal, but as a matter of fact, they are very likely different in their importance, urgency, popularity; some labels have inherent relation; the labels for a given information item vary in correlation. For example, labels like &amp;#8220;work&amp;#8221; or &amp;#8220;family&amp;#8221; are more important; labels like &amp;#8220;todo&amp;#8221; or &amp;#8220;exam&amp;#8221; are more urgent; labels like &amp;#8220;sports&amp;#8221; or “film” are more popular if the user is a sports or film fan. It&amp;#8217;s also desirable that after a programmer user labels some materials as &amp;#8220;Java&amp;#8221; or &amp;#8220;C++&amp;#8221;, those materials can be automatically labeled as &amp;#8220;programming language&amp;#8221; and “OOP” such that he can later get all programming language-related items or OOP items in one list. Lastly, among all labels for a given information item, one may be more correlative than the others. Taking all of these into consideration, we propose a feasible solution as follows.&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0cm;&quot; type=&quot;disc&quot;&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Introduce hierarchical     structure into tag structure&lt;/strong&gt;. That is, we treat tags/labels as     metadata of information, and organize them in the traditional tree     structure. This way we combine two worlds&amp;#8217; best parts together. Actually,     we can go further. As we know, hierarchical tree structure is a &lt;em&gt;directed     tree&lt;/em&gt; in graph theory, but we may generalize the tag structure to &lt;em&gt;digraph&lt;/em&gt; as long as it makes sense. This will allow a tag have more than one     parents, something like multiple inheritance in some OOP languages.     Obviously the gmail&amp;#8217;s tag structure is a special case of our structure     when all labels are the roots(i.e. those having no sublabels).&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Introduce weight of     importance, emergency and popularity&lt;/strong&gt; for each tag so that tags are     sortable by any of these respects. Gmail&amp;#8217;s star label can serve as this     purpose, but it&amp;#8217;s too coarse-grained. The popularity weight of a tag can     be chosen to be auto-incremented by each visit of the tag, which ensures     the most frequently used tags are always on the top. Besides, tags can be     sorted by most recent visited time. Consequently, users will have more     confidence that documents they really care are available to fetch, and     accessing any interesting, active and important items in the system is     just a piece of cake.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Introduce main label&lt;/strong&gt;,     i.e. one of an item&amp;#8217;s labels can be specified as the main label. In this     sense, the traditional tree structure can be viewed as a special case of     our structure: any folder name is exactly a label name (There is one     subtle difference, though: unlike label names, same folder names in     different path wouldn&amp;#8217;t clash). If the main label&amp;#8217;s correlativity is 1,     other labels&amp;#8217; should be between 0 and 1. This provides extra search and     sort criteria.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Introduce alias tag&lt;/strong&gt;.     Tags are allowed to have more than one names, these names can be     abbreviations, synonyms, or even in different languages. Furthermore,     alias can be more powerful: users may define a label as the logical     combination of existing labels. For example, one can define     &amp;#8220;myPrograms&amp;#8221; as &amp;#8220;&amp;#8216;my documents&amp;#8217; &lt;em&gt;and&lt;/em&gt; &amp;#8216;programs&amp;#8217;&amp;#8221;, define &amp;#8220;entertainment&amp;#8221; as &amp;#8220;sports &lt;em&gt;or&lt;/em&gt; novel &lt;em&gt;or&lt;/em&gt; movie&amp;#8221; etc.&lt;/li&gt;
&lt;li style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;Introduce thread&lt;/strong&gt;.     Users can create thread that link related message items. Gmail has     conversation, but it doesn&amp;#8217;t allow users to union mails by themselves. The     thread is good for follow-ups and different document revisions. This     aggregation makes information system more compact and coherent.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;5. &lt;em&gt;Conclusion&lt;/em&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;To locate an information item, users need click folders to expand in a hierarchical system, while they need click labels to filter in a tag system. We don&amp;#8217;t mention search because search is slow and information content may be in binary form. The tag structure is conceivably a better solution, but it still has shortcomings. To further facilitate information retrieval, we&amp;#8217;ve proposed a &lt;em&gt;weighted diagraph tag structure&lt;/em&gt;, which is an improved tag structure integrating advantages of tree structure. An information system featuring this structure should be more accessible and enjoyable, and its users could be like pisciculturists, no matter how many fishes they have thrown into the ponds, any fish they desire will swim to them with waggly tail upon a single whistle.&lt;/p&gt;</content:encoded><wfw:commentRss>http://blog.zhenghui.org/2008/05/18/a-proposal-on-organization-of-information-system/feed/</wfw:commentRss><slash:comments>0</slash:comments><description>&lt;strong&gt;关于信息系统组织方式的一个改进方案&lt;/strong&gt;
Information itself is great, but storing and retrieving information sucks.
From a user’s view, most information systems are essentially organized in hierarchical structure. The major flaw of this kind of structure is that it only provides a single path to the target information. Aiming at this, this article proposes a practical solution by borrowing some ideas from Gmail system.</description><category>信息管理</category><category>英文文章</category><pubDate>Sun, 18 May 2008 09:37:13 +0800</pubDate><author>郑晖</author><comments>http://blog.zhenghui.org/2008/05/18/a-proposal-on-organization-of-information-system/#comments</comments><guid isPermaLink="false">http://blog.zhenghui.org/?p=12</guid><dc:creator>郑晖</dc:creator></item></channel></rss>