标签归档:读书笔记
《常识》:不识庐山真面目
《常识》?什么是常识呢?众人皆知?不证自明?但真正界定什么是常识估计是个无法完成的任务。 除去本能,人的认识是习而得之的,由于个体差异,环境差异,最终形成的认识也是迥异的。 接近真相真理的道路千差万别,但依然是有可能殊途同归的,但这个过程需要求索。 之所以需要求索,是因为遮蔽物太多,这些遮蔽有客观造成的,但更可怕的是人为造成的。谎言的重复灌输,模式的反复训练。用的依然是自己的思维,但路线却是他人所期望的。 梁文道所讨论的《常识》,非生而知之。可贵之处在于:一个香港人,一个佛教徒,用平和之心拨开云雾,展现他眼中的庐山真面目。 俗话说“就事论事”,却是知易行难的。看待问题,往往先预设立场,再找材料佐证自己的观点,这还算好的,更可怕的是只有观点与立场。于是可以听见无数聒噪之声,但无非都是口号而已,口号固然看似有力量,但实则无聊。 常识之可贵,或许在于其不成体系,若认识成了体系,就成了理论,凡是理论皆有其缺陷,但对待批评往往又负隅顽抗。 我见过一种人,看似未受过什么教育,但看问题却常常一针见血,这就是保有了独立思考窥见真理的能力吧。而有的人,在自己设定的观点里越陷越深;有的人,被各种思想跑马,终究是没有想法。 梁文道所言的“常识”,未必就是真的常识,但这种平和分析的能力与修养,却是值得学习的。
《梦断代码》笔记二
程序员把图形界面看做程序的外壳,而对于用户,图形界面几乎是全部。没人为可怜的用户说话。 代码优先还是设计优先,这是个问题。 从普通用户到机器语言的复杂协调过程,用一个俗词形容叫“扯皮”。 分开来运行正常,集成起来变垃圾。“系统”是可怕的。持续集成很麻烦,但”宇宙大爆炸式集成“可能造成更大的麻烦。 做一个基本能用的一般产品,还是憋一口气做伟大的产品,这是个问题。 世界上的事情分两种,规格说明书写明的和规格说明书没有的。可惜这只是代码工人的想法。 简单者就该简单,复杂者亦有可能。上手容易,精通困难。魔兽争霸,围棋,WordPress。 城市不是树,信息也不是树。树易于理解,但湮灭可能性。 软件的成功尽管有其不确定性因素,但基本是可验证的。人生却不是…… tag机制相比树状分类引入了多可能性,但难搞。 对于文字,人能消歧理解(但常常也会误会)。计算机?重名者死! ”吃你自己的狗食“。 标准领域是一片令人畏惧的沼泽地。……想当然的标准是笑话,比如ipv9。 P2P是一种意识形态或一种信仰。……所以中国很难有真正的P2P,只有迅雷。 十月怀胎,欲速不达。 富客户端是程序员的噩梦? 最佳实践的药方不可重开,银弹不会再次装入弹夹,杯具啊杯具。 不该总是这样。——但总是这样。 计划总是停留在纸上,想法总是好的,付诸实施者寥寥。 软件设计模式再完美,也会撞上现实特殊情况的墙。 最常用的软件开发实践就是什么也不用,埋头写代码。巨无霸方法论让痛恨被约束的才智所厌恶。 祖尔测试。能得2、3分算不错了?! 做软件如抓沙。大即险,小即美。 历史上最成功的软件公司是微软。也是软件被骂最多的软件公司? 软件不过是水管。但是……“但是”威武。 “软件工程”是一种愿望,而不是业已实现之事。 程序员是工程师还是艺术家?写代码更像修房子还是写小说? 没有物理学就难有真正的工程,而软件毫无物理学可言。 层级是软件的精髓,但是它们身患痼疾。抽象都有漏洞。 工具越多,成为编程高手却越难。 所谓的面向对象设计语言不过是杂种。 Gordian software?修补还是重装上阵,这是个问题。 何时停机?何时说放弃? 闭门造车之时,世事如过眼云烟。 一切倒塌又得以重建,再造它们的人满心欢喜。 Chandler项目最终基本上半途而废,中译名《梦断代码》真是充满悲情的贴切。(完)
《梦断代码》笔记一
《梦断代码》讲的的OSAF开发PIM软件Chandler的故事,可以当做小说来读的,摘录一些书中有趣的说法以及自己的感想。 “Hello World”程序给程序员以乐观的想法:既然能叫它说话,就能让它做任何事。但事实可能是令人沮丧的。 计算机从0开始计数,用户从1开始计数,所以程序员花了无数精力于此。 人类文明运行于软件之上,但软件何其不靠谱,写过代码的人应该深有体会。 人月神话:往已延误的项目中补充人力,只会使其继续延误。因此,最理想的开发团队是单枪匹马。如果代码经过协调不好的一串人手,结果确实难看。 开源软件给了软件开发模式以新的思考方向,但远未解决软件开发的痼疾。 开源中的Free应理解为”自由“,而且这个自由也有其固有要求,如GPL的传染性,但国内不少公司似乎只看到了免费,大肆盗用开源代码封装商业软件。 软件是为人服务的,但通常也会要求人去适应软件的特性(或者其傻叉的地方)。 让人适应软件还是让软件适应人?这是个问题。软件能否提升人类的智慧? 很多项目开始之初都雄心勃勃,自以为与众不同,但最后都滑入深渊。 软件的制造有时会给人以严重的挫败感。悲观一点的人看目前的软件开发技术是没有希望的。个人以为好的软件如好的小说一样是奇迹。 软件的灵活性只存在于思想中,每一行代码都是毫无灵活性的。所有的想法都要寄生于结构,语言。高级语言相比人类的语言,其实太过低级。 软件领域没有摩尔定律。 变量类型这种小事,可以在代码的国度引发宗教战争般的冲突。 ”雾件“,根本不知道自己在写什么东西。如果需求来自领导,会很纠结。 复用?造轮子还是买轮子,这也是个问题。买的轮子通常满足90%的需求,但剩下的10%会令人抓狂。 像搭积木一样搭房子,是程序员的乌托邦。软件开发依然在手工作坊时代,甚至难以看到彻底工业化的希望。个人觉得理解为艺术可能心安理得一些…… 软件会有自己组织信息的方式,也因此割裂事物之间的联系。比如数字化的文件和非数字化的文件分类上没有多大差别。 快速、便宜、优质,最多三选其二。 程序开发是常常是不断妥协的过程,人的肆意想法与机器的机械无情之间的妥协。 程序员如何沟通,是技术问题,管理问题,哲学问题。写代码太多可能会用机器的方式思考……