Hello World
Spiga

标签:F#

匿名类型的硬伤:围绕this的成员捕获策略

2011-06-15 09:27 by 老赵, 3176 visits
摘要:时不时听到一些C#程序员说,希望在C#里出现像Java匿名类一样的特性。以前我也觉得Java里的匿名类是个不错的特性,C#应该吸取进来。不过前段时间我仔细地理解了Java语言规范中关于内部类、匿名类的部分之后,一下子就被恶心到了。恶心过后,我忽然也意识到有些问题的确也是硬伤,也不能指责Java设计者的“品位”。例如,现在我想要谈的关于匿名类中this使用的问题——如果C#没法漂亮地实现这个特性,我宁愿它继续保持现状。 阅读全文

演出季上“异步编程模型的演变”幻灯片

2010-12-11 14:01 by 老赵, 1706 visits
摘要:演出季终于过去了,现在就来做一个收尾吧。这次的主题是“异步编程模型的演变”,主要回顾了微软在.NET平台上异步编程上的进化:基于回调,基于迭代生成器,基于类库,基于语言。不过这样的编程模型其实并非微软独有,而是一些运用比较广泛的异步编程方式,因此在SD 2.0大会上我其实完全用JavaScript进行演示。从结果上来看,除了最早的TUP,其他两场演讲(.NET技术大会和SD 2.0)的反响都不错。 阅读全文

Why Java Sucks and C# Rocks(补2):标准事件模型

2010-07-13 01:17 by 老赵, 1927 visits
摘要:这又是一篇“补”,本来并不想写这方面的内容,因为这并非完全是“语言”相关。打个比方,如果您觉得.NET中的事件模型不友好,那么就按Java的做法去做咯(反之就做不到了)。不过既然正好看到有些涉及到这方面的讨论,那么我也趁此机会发表一下自己的看法吧。这次谈的是两种语言(其实在这个话题上也是平台)下“标准”的事件模型。“标准”二字意味着是被双方社区各自接受的模型,而不仅仅是为了实现“事件”这一理念而使用的任意做法。 阅读全文

盛大创新院赞助首届.NET技术交流会 - 演讲录像及下载

2010-06-24 06:40 by 老赵, 5024 visits
摘要:经过几天的努力,终于将盛大创新院赞助的首届.NET技术交流会的演讲录像制作完成了。本来在现在的高清视频以外,我还想像Channel 9一样提供一些低码率的格式下载,但多次尝试都以失败告终,各中滋味难以言喻。因此目前只能给大家提供mov格式的高清视频下载,对于Windows下各类强大的播放器都不成问题。您也可以在线观看这些视频,不过上传至优酷后,发现除了清晰度较低外,甚至还有音画不同步的问题。我正在联系酷六网,会尽快用上质量更好的视频。 阅读全文

盛大创新院赞助首届.NET技术交流会 - 各场演讲幻灯片

2010-06-19 15:48 by 老赵, 3049 visits
摘要:今天是近期最热的一天,气温高达35度,异常闷热,但是依然有160多位朋友冒着酷暑参加了盛大创新院赞助的首届.NET技术交流会,这让我感到很欣慰,因此这里首先要感谢大家的支持。我刚才浏览了一下三场演讲的桌面录像,可谓异常完美,现在只等酷六网的摄影师的讲师录像到手,便可以合成为最终的演讲视频了,希望能够尽快展示给大家。不过现在,大家可以在第一时间浏览本次活动新鲜出炉的幻灯片。 阅读全文

盛大创新院赞助首届.NET技术交流会即将召开

2010-06-17 03:45 by 老赵, 875 visits
摘要:由盛大创新院赞助的首届.NET技术大会将于6月19号下午1点召开,本次交流会请到了四位讲师,议题覆盖了F#、C#、Rails及架构等多个方面。我已经看过了各场演讲的幻灯片草稿,也很期待各位讲师在正式演讲中的表现。本次大会中,我们还获得了人民邮电出版社图灵教育赠送的20册图书,将会作为奖品赠送给在交流会中表现积极的听众。此外,我们还请到了酷六网的专业摄影师对演讲过程进行全程拍摄,并配合各位讲师自身的屏幕录像,将在后期合成为适合独立观看的演讲视频,让不能到场的朋友在线或是下载后观看。 阅读全文

趣味编程:在JavaScript中实现简单的yield功能(2 - 循环支持及解释执行)

2010-06-11 12:41 by 老赵, 1260 visits
摘要:在上一篇文章里,我们构造了$yield和$yieldSeq两个基础编程组件,于是我们可以“在一定程度上”使用C#中的yield功能来构造一个迭代器。从表面上看来似乎不错,不过它的实际价值还是有值得推敲的。例如,我们目前还必须使用递归来代替循环,那么我们有办法改变这种变成方式吗?此外,在评论中有朋友谈到,这样写代码其实不是一个格式化就混乱了吗?至少,您是否觉得这种编程方法的function和括号实在多了些呢?这次我们就来探索这些问题的解决办法。 阅读全文

2010年5月《程序员》杂志“架构师接龙”栏目中的问答

2010-05-21 01:48 by 老赵, 3217 visits
摘要:上个月《程序员》杂志向我约稿,希望我可以参加5月份的“架构师接龙”栏目,我略为犹豫了一下便答应了。“架构师接龙”是一个问答形式的栏目,每期由一个人提问,并由另一个人回答。回答的一方便是下期的提问者。这次提问的架构师是新浪微博的技术经理杨卫华。他提出的问题包括语言选择与架构设计、NoSQL存储方案的取舍、微博类系统的架构等多个方面。杨卫华是国内技术社区一等一的高手,这使得我在回答问题时更有小心翼翼地班门弄斧之感。如果您对某些问题感兴趣,也不妨来一起讨论一下。 阅读全文

盛大创新院赞助首届.NET技术交流会开始报名了!

2010-05-13 06:30 by 老赵, 3060 visits
摘要:自从上次在博客中提到盛大创新院赞助.NET技术会议已经过去了一个半月,如今这件事情终于落实了。我为此准备了数千字的申请书,但老大看也不看便表示支持。他的说法是,只要办得热烈,有影响力,那么这样的活动绝对支持。为此,各场次演讲内容及会场等诸多事宜之后,现在“首届.NET技术交流会”正式进入报名阶段了。人数不设上限,多多益善,怕只怕会场会显得空旷。除了.NET社区的群众以外,也欢迎其他技术社区的朋友前来参与交流。事实上,我组织技术交流会的目的之一便是希望能够促进.NET社区与其他技术社区的交流及相互学习。 阅读全文

编程语言的发展趋势及未来方向(3):函数式编程

2010-05-04 11:09 by 老赵, 11090 visits
摘要:这是Anders Hejlsberg在比利时TechDays 2010所做的开场演讲。由于最近我在博客上关于语言的讨论比较多,出于应景,也打算将Anders的演讲完整地听写出来。在上一部分中,Anders阐述了他眼中声明式编程的理念及DSL,并演示C#中一种内部DSL的形式:LINQ。在这一部分中,Anders谈及了声明式编程的另一个重要组成部分:函数式编程,并使用.NET平台上的函数式编程语言F#进行了演示。 阅读全文

在QCon中了解到的一些有关Groovy和F#的内容

2010-04-23 17:39 by 老赵, 2539 visits
摘要:今天参加了QCon Beijing 2010的活动,第一天采访了Groovy和F#两种语言的技术领袖,在交流的过程中了解了不少内容,趁着还有一些印象就记点下来吧。Groovy方面这次来的是社区中贡献最多(没有之一)的Paul King,他也是《Groovy in Action》的作者之一。F#方面参加QCon的是Timothy Ng,年轻高大帅气,生于香港,四岁去加拿大,毕业后加入微软至今,目前是F#开发团队的Senior Dev Lead。与Tim晚餐时聊了许多,最大的收获是……发现我的英语也不是太哑巴嘛。 阅读全文

F#与ASP.NET(2):使用F#实现基于事件的异步模式

2010-04-05 12:37 by 老赵, 1208 visits
摘要:在上一篇文章中,我们的简单讨论了.NET中两种异步模型以及它们在异常处理上的区别,并且简单观察了ASP.NET MVC 2中异步Action的编写方式。从中我们得知,ASP.NET MVC 2的异步Action并非使用了传统基于Begin/End的异步编程模型,而是另一种基于事件的异步模式。此外,ASP.NET MVC 2对于这种异步模式提供了必要的支持,使此方面的程序设计变得相对简单一些。但是,简单的原因主要还是在于已经由其他组件提供了良好的,基于事件的异步模式。那么现在我们就来看看一般我们应该如何来实现这样的功能,以及F#是如何美化我们的生活的吧。 阅读全文

F#与ASP.NET(1):基于事件的异步模式与异步Action

2010-04-01 16:09 by 老赵, 2366 visits
摘要:提高ASP.NET应用程序伸缩性的有效手段之一便是使用异步请求。而在ASP.NET MVC 1中是不能直接支持异步Action的,因此我们需要使用一些简单的Hack方式来实现这一点。不过简单的Hack毕竟无法利用ASP.NET MVC的完整功能,幸好ASP.NET MVC 2已经正式支持ASP.NET中的异步请求处理方式,并且通过一种比较易于使用的方式提供给开发人员使用。只可惜,由于语言层面的约束,这种使用方式还是有些不便,而此时便是F#的用武之地了。 阅读全文

最容易令初学者混乱的F#命令

2010-03-31 04:36 by 老赵, 1196 visits
摘要:话说,其实我也是F#的初学者,至少相对于C#等语言来说一定是这样的。而对于初学者,或是C#和F#混用的程序员来说,我认为最F#中最容易令人混乱的命令是Reference Cells的取值操作了。下面便详细谈谈这么说的原因,及建议的应对方法。 阅读全文

F#中的异步及并行模式(3 - 下):代理的进一步使用

2010-03-21 10:19 by 老赵, 2225 visits
摘要:之前的文章中我们了解了F#中并行及交互式程序的编程方式。在本系列的第3部分中,我们会来探索F#中轻量级的,交互式的代理,以及与代理有关的一些模式,包括隔离的内部状态。(译注:由于原文内容较多,译文拆成两段进行。在上半段文章中讨论了代理的基本使用方式,而下半段则讨论关于代理使用中更进一步的模式。) 阅读全文

F#中的异步及并行模式(3 - 上):代理的基本使用

2010-03-14 17:35 by 老赵, 3483 visits
摘要:之前的文章中我们了解了F#中并行及交互式程序的编程方式。在本系列的第3部分中,我们会来探索F#中轻量级的,交互式的代理,以及与代理有关的一些模式,包括“隔离的内部状态”。(译注:由于原文较长,因此译文分为两段,目前是第一段,讲解了F#中异步代理的基本使用方式。) 阅读全文

F#中的异步及并行模式(2):反馈进度的事件(包含Twitter示例)

2010-03-07 16:33 by 老赵, 4441 visits
摘要:上一篇文章中谈到,“异步CPU并行”与“异步I/O并行”两个模式的限制之一便是无法通知组合操作的进度或结果。在这篇文章中,我们讲关注一个常见的异步模式:反馈进度的事件(Reporting Progress with Events),这是一种用于强大而优雅的做法,用于在某个边界之后对并行的执行过程加以封装,并同时汇报执行的结果或是进度。在文章最后,我们会使用这个设计模式开发一个示例,从Twitter中获取一系列记录。 阅读全文

F#中的异步及并行模式(1):并行CPU及I/O计算

2010-03-03 15:37 by 老赵, 5729 visits
摘要:F#是一门并行(parallel)及响应式(reactive)语言。这个说法意味着一个F#程序可以存在多个进行中的运算(如使用.NET线程进行F#计算),或是多个等待中的回应(如等待事件或消息的回调函数及代理对象)。 F#的异步表达式是简化异步及响应式程序编写的方式之一。在这篇及今后的文章中,我会探讨一些使用F#进行异步编程的基本方式──大致说来,它们都是F#异步编程时使用的模式。我们从两个简单的设计模式开始:CPU异步并行(Parallel CPU Asyncs)和I/O异步并行(Paralle I/O Asyncs)。 阅读全文

按月统计博客园单个用户的发文数量

2010-01-10 16:07 by 老赵, 5884 visits
摘要:这几天在家闲着,便试着写一些小程序。之前有朋友问到“F#能不能写Web”,于是我也就打算这么一试。虽然我能肯定,用F#写Web应用程序不会是问题,不过倒真还没有做过这方面的尝试。我想,如果用F#写Web应用程序,那么它很重要的一点,应该是利用其在异步编程方面的强大特性。最后我决定,使用F#编写一个按月统计博客园单个用户发文数量的简单服务。尝试的结果是——还有些问题没有解决。不管怎么样,我先把其主体逻辑描述一下吧。 阅读全文

一次批量修改博客文章的经验(下):操作过程

2010-01-05 11:40 by 老赵, 4111 visits
摘要:上一篇文章中我们进行了一些预备工作,主要是了解了该如何使用MetaWeblog API读取和修改博客园的文章——包括同步和异步两种调用方式。此外,由于F#在异步调用方面的优势,我决定使用F#来完成批量修改文章任务。这个任务并不困难,但很“危险”,一旦出错可能之前的文章就无法恢复了。因此,我把这个任务拆成多个步骤,每个步骤都会将数据保存在硬盘上。由此,即便出错,还是有挽回的余地。 阅读全文
1 2 Next >
使用Live Messenger联系我