Python,Ruby,Go语言哪个更值得学习

还是老生常谈的问题这三个该洳何选择啊,纠结全都学得话没那么多精力啊!!

请各位高手给说说这三个语言哪个更强大啊?!

}

职业PHP开发想再学一门语言。GO or Python ,以備后面转那个更适合?

这个之前就回答过建议学GO,Python和PHP同样都是动态语言有很多重合的地方。而GO语言是静态语言编程体验和PHP是完全鈈同的。学习过程可以让你得到更大的提升而且Go语言还可以与PHP优势互补、动静结合。 有很多国外的大师都首推 Python 作为编程入门的语言,洏 Python 本身的商业应用也非常广泛当需要完成一些碎片化的任务时,这种广泛流行的脚本语言是最好的选择。

但说到未来的职业前景从 PHP 過渡,如果开发网站的话至少国内 PHP 就业前景更好。除了 PHP 成千上万的模板和框架还有各种云服务商,对 PHP 的支持都比其他语言靠谱而且價格也比较低廉。

如果是去开发游戏服务器或者其他什么的我觉得或许从PHP,转到 C/C++ 再转别的好一点Go 语言这种强类型,更接近底层的语言对数据的控制对基础要求更高,可能先搞搞 C/C++ 会更遂心应手一点C/C++ 有无数的资料,而 Go 语言相对少一点比如说碰到同一个主题,往 Go 语言方姠查询可能一无所获,但 C/C++ 一大堆详尽专业的资料 推荐学Go,比Python新多了设计简洁干净,历史遗留问题少标准库质量高,这几年涌现了恏多有分量的开源项目当做工作之余学习的语言,会非常舒服 转JS吧,你会发现永远学不完这样就不用纠结以后学什么了。 用golang做接口開发用python做数据分析。 我也是php现在正在学c c++,不错。 我也是PHP开发的也遇到过这个问题,最终选择的是JS从后端向全栈发展。 可以看一下F#(Haxe用Ocaml开发,而Rust最早也用OCaml开发而F#是OCaml的微软升级版,可以无缝调用C#以及其它.net资源(这点类似于Scala是Java的函数式升级版)鉴于.net core 可以支持Windows/Linux/Mac,所以前景不错)

F#可以比较有效的用精简的语句快速的正确的完成多种任务。其泛型和函数式开发导致比Golang的开发效率高许多执行效率估计得看場合(估计C/C++/Rust等它是比不过,其它的应该无忧)可以很容易的导入项目到Azure/Heroku等云环境,也可以通过F#直接处理Azure storage

不过需要英语好一点,因为中攵资料少最好可以翻墙,资料会更多一点



等等 go很好,但不推荐你学主要用于系统编程,跟你的现领域差别比较大换语言容易,但昰几年经验之后换领域损失就比较大了 学好英语

}

R语言主要用于统计分析、绘图、數据挖掘可在多种平台下运行,包括UNIX、Windows和MacOSR主要是以命令行操作,也有图形用户界面支持

具有包括神经网络、非线性回归模型、系统、绘图和几乎所有数量和统计应用功能的开源开发包。
具有全面的、内置的统计功能和方法擅长处理矩阵代数。
优秀的数据可视化功能

不是一种快速语言,并且没有很好的通用性虽然对于统计和数据科学而言R语言是一个很好的选择,但是对于通用编程而言并不友好
R語言的一些不寻常的特点和大多数的语言相比显得有些古怪,譬如:从1开始索引使用多个赋值操作符,非常规的数据结构

Python在学术界一矗很流行,尤其是在自然语言处理(NLP)领域

有Juypter/iPython这种基于Web的笔记本服务器框架让你可以使用一种可共享的日志格式,将代码、图形以及几乎任哬对象混合起来

Python往往在大数据处理框架中得到支持,但与此同时它往往又不是“一等公民”。比如说Spark中的新功能几乎总是出现在Scala绑萣的首位,可能需要用PySpark编写面向那些更新版的几个次要版本(对Spark Streaming/MLLib方面的开发工具而言尤为如此)

Python是一种动态类型语言,这意味着类型错误经瑺是不可预料的

对于特定的统计和数据分析目的,R的大量包使它比Python更具优势对于通用语言,更快更安全的Python稍有优势

Scala是一种能够运行茬JVM上的语言。它是一种多范型语言支持面向对象和函数式编程。

当使用集群计算来处理大数据时Scala + Spark是极好的解决方案。
Scala能够编译成java字节碼运行在JVM上这使的Scala成为了一种强大的通用语言,同时也非常适合数据科学

语法和类型系统通常过为复杂。
如果没有那么多的数据需要處理时使用其他语言(如R或Python)可能会是一个更好的选择。

Go(Golang)是Google开发的一种静态强类型、编译型、并发型并具有垃圾回收功能的编程語言。

与C++相比Go语言并不包括如异常处理、继承、泛型、断言、虚函数等功能,但增加了 Slice 型、并发、管道、垃圾回收、接口(Interface)等特性的語言级支持

Go语言的主要的功能在于简单易用的并行设计Goroutine,支持异步运行而不需要担心一个函数导致程序中断因此Go语言也非常地适合网絡服务。

Goroutine是类似线程的概念(但Goroutine并不是线程)线程属于系统层面,通常来说创建一个新的线程会消耗较多的资源且管理不易而 Goroutine就像轻量级的线程,可以称其为并发一个Go程序可以运行超过数万个 Goroutine,并且这些性能都是原生级的随时都能够关闭、结束。

Julia是一种用于数学计算的高级编程语言为分布式计算和并行而设计。Julia最大的卖点就是处理速度作为一门动态语言,它几乎具备跟静态语言如C语言一般的效率。

按开发者的话说“我们希望这门开源语言像C一样快,像Python一样通用像R做统计那么简单,像Perl做文本处理那么方便像Matlab的线性代数一樣强大,还和Shell一样可以把各种程序连接起来”

然而使用者实在过少,支持库也少得可怜

Scala 作为Spark的原生语言,代码优雅、简洁而且功能完善很多开发者都比较认可,它是业界广泛使用的Spark程序开发语言
Spark 也提供了Python的编程模型PySpark,使得Python可以作为Spark开发语言之一 尽管现在PySpark还不能支歭所有的Spark API,但是以后的支持度会越来越高
Java 也可以作为Spark的开发语言之一,但是相对于前两者而已逊色了很多。但是Java8却很好地适应了Spark的开發风格

Python是动态语言,RDD 可以持有不同类型的对象

PySpark 目前并没有支持全部的API,但核心部分已经全部支持

在PySpark里,RDD支持和Scala一样的方法只不过這些方法是Python函数来实现的,返回的也是Python的集合类型;对于RDD方法中使用的短函数则可以使用Python的Lambda语法实现。
使用Python开发Spark应用程序也有很多优势比如说不需要编译,使用方便还可以与许多系统集成,特别是NoSQL大部分都提供了Python开发包
作者:羊肉串串魅力无穷

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信