读书人

多核年代的移动开发(二)-F#的由来

发布时间: 2013-01-06 15:44:48 作者: rapoo

多核时代的移动开发(二)-F#的由来
思前想后决定采取还是把这一系列的博客做成一个互动型的东西,以闲话或者说是水煮的形式来说写今天的话题,不论是问题还是意见我都尽量做出回应。首先我想说这么几点

1、其实JAVA和c#能完成面向对向的功能也是编译器的功劳,但是不意味着了解了JAVA的语法就能写出面向对象的JAVA代码了,我刚刚开始从C转C++的时候写的其实还是纯C的方式写的面向过程的代码,是不是有真的转变关键在于是否掌握了面向对象的思想,在多核时代的情况也是一样。

2、我这次写博客的目的也完全不想介绍F#的语法,我想表达的意思其实是就像当初在软件工程不断复杂的情况下面向对象的思想获得了极大的发展一样,多核时代的到来使函数式编程的思想在编程领域的应用带来的很大的机会,所以我想透过这种语法分析到今后软件开发的趋势。

1、其实无论是内行管理模式还是外行管理模式,最关键的还是在正确的环境下使用正确的做法,其实我们上一篇博客所说的List.Map写法在这个小故事中对应的就是外行管理模式,而有些朋友在博客回复中所提到的ERLANG其实就是内行管理模式,无论采取哪种模式最需要避免其实就是其实是外行还要给制订相应的规则与流程,如果这家医院本身的医生很多,候诊室很大,但还是要坚持号牌法的管理,那恐怕要出问题。

2、其实无论是内行管还是外行管的方式,都不能保证一定可以系统增加吞吐量。一个最简单的例子:假如整个医院空间不足,同时只能接待一位病人,那医院配再多的医生也不解决问题。同理数据处理中计划瓶颈可能不在CPU的数量,那么针对多CPU优化的模式肯定不会起到作用。当然也可能内行管的模式下规则制订有问题,或者外生管理模式下医院请的职业经理人有问题都有效率降低的可能。

3、做一个简单的类比:ERLANG这种对应内行管理的语言,类似于单核时代的汇编语言,而F#这种对应外行管理类的语言,类似于单核时代的C语言。当然这个类比并不够严谨,但是可以表达我要说的事情了,汇编语言执行效率肯定会更高,但是他的代价就是软件开发成本高。而C语言虽然会牺牲部分效率,但是掌握及开发成本相对低,在EARLOG VS F#的时代基本上是类似的情况(请注意我不是指掌握语法的难易)。

好了,要说的就这么多,我发现做一篇以闲话F#的形式写博客真的是很难,看各位的接受程度吧,如果没什么问题,而且12月22日的太阳还是照常升起的话:),我还将延续这种形式来继续下一个-延时计算。

1楼sure32121893昨天 16:34
顶一个

读书人网 >移动开发

热点推荐