2014最值得学习的语言—必须是R

来源:互联网 发布:sql2005数据库安装教程 编辑:程序博客网 时间:2024/06/09 03:08

 

 

NODE,LUA,Python,Ruby,R ,哪个在2014年的应用前景会更好?小编为此特别约稿了粉丝日志创始人张丹。张丹毫不犹豫的选择R。这也是意料之中的事。R不仅是2014年,也是以后更长一段时间的主角。

 


     

    前言

    以下5种语言 NODE、LUA、Python、Ruby、R ,哪个在2014年的应用前景会更好?

    我毫不犹豫的选择R。R不仅是2014年,也是以后更长一段时间的主角。

    目录

    1. 我的编程背景
    2. 为什么我会选择R?
    3. R的应用前景
    4. 时代赋予R的任务
    5. 作者介绍

    1. 我的编程背景

    本人程序员、架构师,从编程入门到今天,一直深信着Java是改变世界的语言,Java已经做到了,而且一直很辉煌。但当Java的世界越来越大,变得无所不能的时候,反而不够专业,给了其他语言发展的机会。

    本次要比较要5种编程语言(NODE,LUA,Python,Ruby,R),这些都是非常优秀的,在特定领域发展壮大的语言。

    我已使用Java语言 11年,R语言 3年,Node 1年,对于本次问题 “哪个语言在2014年的应用前景会更好?”,我选择R语言。

    2. 为什么我会选择R?

    我会从下面的几个方面,来说明我选择R的原因。

    • R的基因
    • R的发展
    • R的社区和资源
    • R的哲学
    • R的使用者
    • R的语法
    • R的思维模式
    • R解决的问题
    • R的不足

    1). R的基因

    R是统计学家发明的语言,天生具有统计的基因。

    从我开始学习R语言,我就开始了知识的跨界思考。统计基于概率论,概率论又基于数学,用计算机的方式编程,解决某个领域的实际问题。简单一算,4个学科知识的交集,决定着我们解决问题的能力。统计的基因,让R语言与众不同!

    2). R的发展

    R一直在小众领域成长着,最早也只有统计学家在用,主要用R来代替SAS做统计计算。时代在进步,随着大数据的爆发,R终于在这一波浪潮中,被工业 界所发现。然后,有越来越多的工程背景的人加入到这个圈子,对R计算引擎,R的性能,R的各种程序包进行改进和升级,让R获得了新生。

    我们现在用到的R语言软件,已经越来越接近工业软件的标准了。由工程师推动的R的发展速度,远远地超过了由统计学家推动的步伐。随着人们对数据分析要求的进一步增加,R会以更快的脚步继续发展,将成为免费的、开源的、数据分析软件的代名词。

    3). R的社区和资源

    R的发展,离不开R的社区支持。当然,我不得不承认R的官方社区,从Web页上看起来太简陋了,稍微调整一下CSS样式表,都会比现在好看很多。也许这种简单、无修饰也是统计学家的基因吧。

    在R的社区中,我们可以下载到R语言软件,R的第三方软件包,和R的其他支持软件。可以找到开发者论坛,R-Journal列表,软件包列表,R语言图书列表,R用户组等的信息,同其他语言的社区资源一样丰富。

    R是自由软件,开发者可以开发自己的软件包,封装自己的功能,然后在CRAN上面发布。截止到2014年2月,共有5236个R包在CRAN上面发布。

    可能很多人会说只有5236个包,数量太少了。这是因为CRAN是需要提交申请的,R语言小组审核,检查后再会发布的出来。而且审核非常严格的,高 质量是发布一个新的R包基本要求。由于CRAN过于严格的审查,让很多的开发者选择在RForge上发布,还有些R包是基于Github发布的

     

    4). R的哲学

    每种语言都有自己的设计理念和哲学,而我体会的R的哲学,就是“静下心做事情”。

    R不需要很长的代码,R也不需要设计模式。一个函数调用,传几个参数,就能实现一个复杂的统计模型。我们需要思考,用什么模型,传什么参数,而不是怎么进行程序设计。

    我们可能会用R实现 “从一个数学公式,变成一个统计模型” 的过程,我们也可能会考虑 “如何让一个分类器结果更准确”,但我们不会思考 “时间复杂度是多少,空间复杂度是多少”。

    R的哲学,可以让你把数学和统计学的知识,变成计算模型,这也是R的基因所决定的。

    5). R的使用者

    R语言早期主要是学术界统计学家在用,在各种不同的领域,包括统计分析,应用数学,计量经济,金融分析,财经分析,人文科学,数据挖掘,人工智能,生物信息学,生物制药,全球地理科学,数据可视化等等。

    近些年来,由互联网引发的大数据革命,才让工业界的人,开始认识R,加入R。当越来越多的有工程背景的人,加入到R语言使用者的队伍后,R才开始像着全领域发展,逐步实现工业化的要求。

    • RevolutionAnalytics公司的RHadoop产品,让R可以直接调用Hadoop集群资源
    • RStudio公司的RStudio产品,给了我们对于编辑软件新的认识
    • RMySQL, ROracle, RJDBC 打通了R和数据库访问通道
    • rmongodb, rredis, RHive, rhbase, RCassandra 打通过R和NoSQL的访问通道
    • Rmpi, snow 打通了单机多核并行计算的通道
    • Rserve,rwebsocket 打通了R语言的跨平台通信的通道
    • R不仅是学术界的语言,更将成为工业界必备的语言。

    6). R的语法

    R是面向对象语言,语法如同Python。但R的语法很自由,很多函数的名字,看起来都是那么随意,这也是R的哲学的一部分吧!

    看到这样的赋值语法,有其他语言基础的程序员,肯定会崩溃的。

    1. > a<-c(1,2,3,4)->
    2. > a 
    3. [1] 1 2 3 4 
    4. > b 
    5. [1] 1 2 3 4 

    随机取正态分布N(0,1)的10个数,又是这么的简单。

    1. > rnorm(10) 
    2.  [1] -0.694541401  1.877780959 -0.178608091  0.004362026 
    3.  [5]  0.836891967  1.794961298  0.115284187  0.155175219 
    4.  [9]  0.464028612 -0.842569561 

    用R画鸢尾花的数据集的散点图,非常好的可视化效果

    1. > data(iris) #加载数据集 
    2. > head(iris) #查看前6行数据集 
    3.   Sepal.Length Sepal.Width Petal.Length Petal.Width Species 
    4. 1          5.1         3.5          1.4         0.2  setosa 
    5. 2          4.9         3.0          1.4         0.2  setosa 
    6. 3          4.7         3.2          1.3         0.2  setosa 
    7. 4          4.6         3.1          1.5         0.2  setosa 
    8. 5          5.0         3.6          1.4         0.2  setosa 
    9. 6          5.4         3.9          1.7         0.4  setosa 
    10.  
    11. > plot(iris) #画图 

     

    正是因为R自由哲学,让R的语法独特而简洁,我已经喜欢上这种哲学了。

    7). R的思维模式

    R语言让我跳出了原有思维定式。使用R语言,我们应该从统计学的角度想问题,而不是计算机的思维模式。

    R语言是直接面向数据的语言。在我们的日常生活中,无论做什么事情都会产生数据,上网有浏览数据,买东西有消费数据,就算什么都不干,也会受大气PM2.5的影响。利用R语言,我可以直接分析这些数据。

    面向什么业务,就分析什么数据,不需要从产品经理向程序员的角色转换,不需要考虑有什么功能,更不需要考虑程序设计的事。

    跳出程序员的思维模式,你所能认知的东西会更多,找到更适合自己的定位。

    8). R解决的问题

    当数据成为生产资料的时候,R就是为人们能运用生产资料创造价值的生产工具,R语言主要解决的是数据的问题。

    在很长期的历史时期,人类产生的数据都没有自互联网诞生以来产生的数据多;当Hadoop帮助人们解决了大数据存储的问题后,如何发现数据的价值,成为当前最火的话题。R语言的统计分析能力,就是数据分析最好的工具。

    所以,R要解决的问题,就是大数据时代的问题,是时代赋予的任务。

    9). R的不足

    前面说了太多R的优点了,R也有很多不足之处。

    • R语言是统计学家编写的软件,并不如软件工程师编写的软件那么健壮。
    • R语言软件的性能,存在一些问题。
    • R语言很自由,语法命名不太规范,需要花时间熟悉。
    • R语言结合了很多数学、概率、统计的基础知识,学起来有一定门槛。

    R的这些不足,都是可以克服的。当有更多的工程背景的人加入的时候,R语言会比现在更强大,帮助使用者创造更多的价值。

    3. R的应用前景

    R可以做所有SAS做的事情。

    R应用最热门的领域:

    • 统计分析:包括统计分布,假设检验,统计建模
    • 金融分析:量化策略,投资组合,风险控制,时间序列,波动率
    • 数据挖掘:数据挖掘算法,数据建模,机器学习
    • 互联网:推荐系统,消费预测,社交网络
    • 生物信息学:DNA分析,物种分析
    • 生物制药:生存分析,制药过程管理
    • 全球地理科学:天气,气候,遥感数据
    • 数据可视化:静态图,可交互的动态图,社交图,地图,热图,与各种Javascript库的集成

    我在博客中已经写了很多篇关于R语言应用的文章,包括上面所列出的除生物以外的热门领域。R有着非常广阔的应用前景,而且R也将成为新一代的最有能力创造价值的工具。

    4. 时代赋予R的任务

    R语言是在大数据时代被工业界了解和认识的语言,R语言被时代赋予了,挖掘数据价值,发现数据规律,创造数据财富的任务。

    R语言也是帮助人们发挥智慧和创造力的最好的生产工具,我们不仅要学好R语言,还要用好R语言,为社会注入更多的创新的生产力。

    所以,通过上面的几节内容所有的文字描述,我认为“R是最值得学习的编程语言”。不论你还在读书,还是已经工作,掌握R语言这个工具,找最适合自己的位置,前途将无限量。

    最后总结:在这5种语言中,R是最特殊的,R被赋予了与其他语言不同的使命。R的基因决定了,R将成为2014年,也可能是以后更长一段时间的主角。

    5. 作者介绍

    张丹,程序员、架构师,创业者。

    从程序员开始,到架构师一路走来,经历过太多的系统和应用。做过手机游戏,写过编程工具;做过大型Web应用系统,写过公司内部CRM;做过SOA 的系统集成,写过基于Hadoop的大数据工具;做过外包,做过电商,做过团购,做过支付,做过SNS,也做过移动SNS。以前只用Java,然后学了 PHP,现在用R和Node。最后跳出IT圈,进入金融圈,研发量化交易软件。

    注:我正在写一本关于R语言的图书,本篇文章会作为图书的开篇文章。

     

    0 0
    原创粉丝点击
    热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脸特别瘦的人怎么办 怀孕宝宝太懒了怎么办 奶油胶手机壳脏了怎么办 为什么电脑桌面壁纸变成黑色怎么办 仓鼠妈妈老忘了宝宝怎么办 木工三排多轴钻床气缸坏了怎么办? 水溶笔洗不掉怎么办 针管笔没有墨了怎么办 二岁小儿不爱吃饭怎么办 狗狗一直挠痒痒怎么办 手被铅笔扎了怎么办 小孩智力轻度低下该怎么办 发侮辱人的信息怎么办 宋民国表情我能怎么办 苹果手机微信弄成听筒模式怎么办 我的小可爱丢了怎么办 法斗犬老是皮肤病看也看不好怎么办 项链水晶不亮了怎么办 美甲画画手抖怎么办 微信中的表情符号不全怎么办 球球大作战找不到团战服务器怎么办 小孩的腰有点弯怎么办 小朋友不听话被老师罚站怎么办 幼儿园小朋友被老师罚站怎么办 生完小孩弯腰驼背怎么办 小孩爱捡垃圾是怎么办 腰扭了不敢弯腰怎么办 小人狗在背后骂我怎么办 微信表情缺失了怎么办 动图过大 微信 怎么办 我能怎么办图片带字 我该怎么办图片带字 学化妆找不到模特练妆怎么办? cf进房间闪退怎么办 手游cf账号封了怎么办 大门牙缺了一块怎么办 缺了一颗牙齿怎么办 CF购买医疗包竞猜币没到账怎么办 CF手游昵称不合法怎么办 微信gif尺寸过大怎么办 微信表情上限300怎么办