上一页 1 2 3 4 5 6 7 8 ··· 11 下一页
摘要: “面向对象编程是一个极其糟糕的主意,只有硅谷里的人能干出这种事情。” — Edsger Dijkstra(图灵奖获得者)“面向对象设计是用罗马数字做计算。” —Rob Pike(Go语言之父)““面向对象”这个词包含很多意思。有一半是显而易见的,而另一半是错误的。“ — Paul Graham(美国互联网界如日中天的教父级人物)“实现上的继承就跟过度使用goto语句一样,使程序拧巴和脆弱。结果就是,面向对象系统通常遭受复杂和缺乏复用的痛苦。” — John Ousterhout(TclandTk的创始人)Scripting, IEEE Computer, March 1998“90%的这些胡说 阅读全文
posted @ 2013-02-23 10:00 Marvin 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 我非常认同能对=有认识的文章。编程语言里的=是一个哲学,不要轻易告诉别人你懂了。John Backus据说说过下面的话,“赋值语句将程序割裂为两个世界。第一个世界是赋值语句右边的世界。这是一个有序的表达式世界,这个世界有许多有用的代数特性…….。最有用的计算都发生在这里。第二个世界是语句的世界,这是一个无序的世界,在那里找不到什么有用的数学特性。结构化编程一定层度上为这个混乱的世界带来一些秩序,但是它那些原始的循环,子函数,分支流程技术从未击中过冯诺依曼型语言的本质问题---一次一条指令的控制流模式”。“远古邪恶巨咪,有他的看法。现在我也发表点我的意见。在我看,他说的赋值,不如说是定义。因为如 阅读全文
posted @ 2013-02-02 20:07 Marvin 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 先来看个例子。两个工匠制作国际象棋,其中一个工匠使用传统的工具——各种规格的凿子、锉刀和锤子,首选的材料是石头。他仔细地雕刻细节,像他的父亲做的那样。另一种工匠使用更现代的技术去熔化金属、使用模具制作,他使用火以及可以承受极高温度和压力的模具和工具。最终,这两个工匠的作品同样精致、细腻、美丽。谁的方法更好?这两个工匠产生了同等价值的东西——美丽的国际象棋。你可能更喜欢经典样式的石质棋盘,或者更喜欢冰冷的沉甸甸的金属制品。你的选择与工匠们所使用的方法没有任何关系,你只关心最终产品。同样,开发一个应用程序,选择什么语言真的不是很重要。自各种编程语言诞生以来,关于孰优孰劣的争论一直没有停止过,比如“ 阅读全文
posted @ 2013-01-24 13:36 Marvin 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 在过去的25年里,编程世界发生了巨大的变化,如今,我们有大量的有用的、灵活的数据类型可以使用,但在25年前,你需要花大量的额外时间自己去构造这些类型。C和Pascal语言——当时的标准语言——提供了少量的面向机器的数据类型:数字,指针,数组,形式上的字符串,以及把多种数据组合到一起的结构体或record。重要的是,以这些基本的类型为基石,我们可以构造出更多有趣的类型,例如栈,树,链接表,哈希表,可变数组等。在Perl或Python,或Erlang语言里,我不需要考虑这些东西。我在使用list、string或array时,根本不关心它们能容纳多少元素,或放在内存的什么地方。最常使用的还有字典,同 阅读全文
posted @ 2013-01-12 23:42 Marvin 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Go语言是由Google在2009年11月份公布的,它的目标是要应对软件开发所面临的最新挑战。Go语言特别被设计为快速(包括在编译时)、支持多核的语言,并且兼顾了动态语言的简单性和静态类型语言的安全性。Mark Summerfield最近出版了《Go语言编程》一书,目的是要帮助当前的程序员学习Go语言。InfoQ最近有幸和Mark一起讨论了Go语言和他的著作。InfoQ:你喜欢Go语言的哪些特点?Mark Summerfield:Go语言有很多特点我都非常喜欢,其中最主要的是:像闪电一样快的编译。这使得编辑/编译/运行的周期和Python的编辑/运行周期一样快。非常高级的并发。你可以很轻松地使 阅读全文
posted @ 2012-12-21 20:17 Marvin 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 原文见:http://www.infoq.com/news/2012/11/Panel-WinRT-AnswersChris Anderson,Chris Guzak,Jerry Dunietz,Kamen Moutafov,Martyn Lovell,Elliot H Omiya, lead developers working on various WinRT components, have taken questions during the BUILD 2012 panelThe Windows Runtime Q&A, answering some of the devel 阅读全文
posted @ 2012-11-16 21:06 Marvin 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 1. 可以使用托管语言编写,非本地代码,可以跨平台,需要.net运行2. 可以使用C++/CX编写,C++/CX内部可以使用C或C++的库.3. 导出类似于COM, 有3个函数DllCanUnloadNow, DllGetActivationFactory , DllGetClassObject4. 不同于COM,不使用类型库, 产生.net可识别的winmd5. 也可以使用WRL编写,WRL类似于ATL.内部也可以使用C或C++的库.6. 单独一个runtime库,无法知道是否可以跨平台7. 目前这些技术不能用于desktop程序,只能用于metro程序.8. .net地位十分尴尬,只是语言 阅读全文
posted @ 2012-11-08 17:46 Marvin 阅读(830) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.raychase.net/777本文翻译自这篇文章,这篇文章写于1998年,作者是Scott Ambler,真的挺久远了。看看上个世纪末的时候,程序员的视角和观点。想从面向对象复用技术中真正获益,你就必须理解不同种类的复用,并且自如地在不同场合下使用它们。可复用资源业务对象根源复用性是面向对象技术带来的很棒的潜在好处之一。遗憾的是,很多情况下这个好处并不能真正兑现。原因在于复用并不是毫无代价的,它并不是你使用面向对象开发工具的时候就能轻而易举得到的。相反,它是你为了成功而努力工作得来的。首先要知道的是,这个世界上有比代码复用多得多的可复用的东西。代码复用只不过是最基本 阅读全文
posted @ 2012-10-12 10:31 Marvin 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 我们这个世界真的需要另外一种C语言风格的编程语言吗?很显然,谷歌很早就这么认为了,在2009年,它借用雷蒙斯乐队的歌“Hey!Ho!Let’s Go”,正式推出了Go语言。现在Go语言开发团队已经开发出了这种语言的第一个稳定版本,他们称之为Go 1,他们将这种语言推向世界,希望人们用这种语言“开发出健壮的软件产品和作品。”那么,现在人们对这种语言的使用情况又是如何呢?让我们先回顾一下,什么是Go语言,是什么促使谷歌决定推出这样一种语言?按Go语言的“常见问题”里的说法,自从那个“重要的系统级编程语言”诞生距今已超过十几年了,这段时间计算机世界已经发生了很大的变化。谷歌的才人们对目前现有的各种语 阅读全文
posted @ 2012-10-10 08:27 Marvin 阅读(335) 评论(0) 推荐(0) 编辑
摘要: Rust是由Mozilla开发的专门用来编写高性能应用程序的系统编程语言。以下是对Rust的创始人——Graydon Hoare的采访。Graydon Hoare,自称为职业编程语言工程师,从2006年开始开发名为Rust的程序语言。Mozilla对这门新的编程语言非常感兴趣,并专门成立了一个团队来继续它的开发,而且还将它运用在了实验项目Servo Parallel Browser Project中。Rust是一门系统编程语言,专门用来编写以往都是由C或者C++编写的高性能程序,但C和C++都非常容易出现类似无效内存访问(segmentation faults )并由此引发的一系列相关的问题, 阅读全文
posted @ 2012-10-09 15:10 Marvin 阅读(1031) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 11 下一页