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

每个程序员都应该学习使用Python或Ruby
如果你是个学生,你应该会C,C++和Java。还会一些VB,或C#/.NET。多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaScript知识。总体上说,我们很难发现会有学生显露出掌握超出这几种语言范围外的语言的才能。这真让人遗憾,因为还有很多种编程语言,它们能让你成为一个更好的程序员。
在这篇文章里,我将会告诉你,为什么你一定要学习Python或Ruby语言。
跟C/C++/Java相比 — Python/Ruby能让你用少的多的多的代码写出相同的程序。有人计算过,Python或Ruby写出的程序的代码行数只相当于相对应的Java代码的行数的五分之一。如果没有绝对的必要,为什么要花这么多时间写出这么多的代码呢?而且,,一个优秀的程序员能维护的代码量最多是2万行。这不区分用的语言究竟是汇编,C还是Python/Ruby/PHP/Lisp。所以,如果你用Python/Ruby写,你一个人干的,不管是干什么,如果换用Java/C/C++,那都需要一个5人的小团队来干。
跟VB/PHP比较 — 跟PHP/VB相比,Python/Ruby的是一种从设计上讲比它们好的不知多少倍的语言。PHP和VB分别是在开发网站和桌面应用程序上非常流行的语言。它们流行的原因是非常的易学。不懂计算机的人也很容易的上手。如果你用这些语言开发过大型的项目,你就会发现这些语言的设计是如此的糟糕。是朋友,他就不会劝你使用PHP/VB。
跟Lisp/Scala/Haskell/Closure/Erlang相比 — Python/Ruby跟它们比起来显得相当的“主流”。确实,这些语言每种都有其很酷的特征,对于高级编程人员,了解这些语言能给他们对编程的思考带来实际的提升。但这些应该在你以后的职业生涯中才去决定学哪一两种。对于现在,Python/Ruby是在语言功能和实际运用之间平衡后的更好的选择。
跟Perl相比 — Python和Ruby都受恩于Perl,在这两种语言异军突起前,Perl是最好、最大的一种动态语言。但现在,Perl已是明日黄花,越来越多的人转向Ruby/Python。我感觉Perl的面向对象机制有点做作,很不好用。通常认为,Perl一种比较难学的语言,因为它提供你了太多不同的方法去完成同一个任务,它的语法有点像密码,非常不直观 — 除非你对它掌握的非常好。总之,我感觉Perl是一种对于学生来说不是很合适的语言—除非你有特殊的理由去学它(例如,你有很多正则表达式要处理,这是Perl的闪光点)。
跟sh/sed/awk/bash相比 — 如果你使用Linux/Unix,你可能需要做一些shell编程,甚至会编写一些不小的程序。但是,对于这些语言,一旦程序达到一定的行数,事情就会开始变得让你痛苦不堪,你最好是用Python去做这些事情。当然,做这种事情,Perl是最好的选择,Python排第二。(Ruby对于系统shell脚本不是很合适)。
你可以在Google上搜一下“为什么X比Y好” — 其中把X换成Python或Ruby,把Y换成另外一种语言 — 你就会发现,有无数的文章来说明它们为什么这么好。
如果你有选择你的毕业设计使用的编程语言的自由,你应该选择Python或Ruby,它们能让你在开发项目的过程中节省一半的时间(除非你要开发的是移动应用,这样你必须要使用Java或Objective-C)。
下面是上的一幅漫画,告诉你掌握Python后你会变得多么的强大:
如何去学它们呢?很多很多的网站上都提供了学习Python和Ruby的教材和课程。下面的是我从中选出的一些:
,学习Python的好资源。
,学习Ruby的一个好网站。
有疑问吗?请在评论了写出来,我会尽量回答你们。
1:我的这篇文章可能会让很多Perl爱好者很郁闷,现在回味一下,我认识到对这种语言的要求过于苛刻了。因此,我把关于Perl的一节改写了一下。
Python和Ruby都受恩于Perl,在这两种语言出现之前,Perl是最大、最好的动态语言。但Perl现在太老了。它的面向对象性不完整。它很久没有升级更新了,它的市场份额正在丢失。对于一些新的、很火的事物(例如Web编程框架,Web API),它不如Python & Ruby 那样能跟上时代的步伐。基本上,Python/Ruby在兴起,Perl在衰退。
2:本文中的所有语言的比较都是用来给印度计算机科学专业的学生选编程语言时做参考的。像“X比Y好”这样的句子准确的讲是毫无意义的,因为所有的语言都是经过时间的考验而存活下来的,有些语言会在某些领域比另外一种要强,这也是它们存活下来的原因。换句话说,总有一些情况下,PHP/Java/C/C++/Perl 看起来会比 Ruby/Python 等其它语言显的更适合。
分享这篇文章:
扫一扫二维码分享:
你也许会喜欢这些文章:
[英文原文: ]
对于这篇文章,你的反应是:
You had mail. Paul read it, so ask him what it said.
本作品采用进行许可。
备案信息:京ICP备号 &&京公网安备00号
感谢你的参与互动。中国领先的IT技术网站
51CTO旗下网站
Python对Ruby:谁在Web开发领域更胜一筹?
Python与Ruby已经成为目前网站、Web应用以及Web服务开发的最佳编程语言选项。至于具体选择哪种语言,则需要视实际情况而定。
作者:核子可乐译来源:| 18:58
【快译】Python与Ruby已经成为目前网站、Web应用以及Web服务开发的最佳编程语言选项。
事实上,这两款语言拥有诸多相似之处&&皆提供高级、面向对象编码机制,提供交互式shell、标准库以及持久性支持。但由于二者历史起源不同,因此在语法与解决问题的思路方面存在巨大差异。
至于具体选择哪种语言,则需要视实际情况而定。毕竟每种语言皆有优缺点,适合自己才最重要。
Python最初源自科学领域,可在配合适当的原型设计时轻松翻译为C++形式。另外,Python在Web开发领域拥有悠久历史。而Ruby则在设计之初就专供Web开发使用,且Rails框架进一步拓展了Ruby在开发复杂网站方面的能力。
哪款编程语言最适合您的需求?下面我们将从几个方面快速进行判断:
惟一最佳方式对接近人类语言
Python采用直接方式进行编程,其主要目标在于尽可能明确地向程序员呈现一切。在Python中,每项任务只有惟一&最佳方式&。这种思路使其拥有严谨的布局。
Python的核心理念包含三大关键性层级原则:
& 显性优于隐性
& 简单优于复杂
& 复杂优于繁杂
这意味着Python易于学习且其代码易于阅读,因此很适合新手程序员。另外,其语法非常简单且很少要求学习者死记硬背。明确的代码结构也让开发者能够轻松了解各项元素来自哪里,从而简化了调试工作。
Python的这种层级原则在方方面面得到了体现。其利用空白实现流控制,这也成为其语法区别于其它大多数语言的主要表现。缩进代码的方式决定了其操作含义&&这种对&空白&机制的使用表达了Python所坚持的&明确&理念。
相较于Python,Ruby专注于&人类语言&编程,其代码在阅读感受上更接近自然语言而非机器语言。Ruby遵循&最合预期&原则,且提供无数种方式实现同样的效果。另外,类似的方法可以拥有多个名称,这令很多开发人员在学习中遇到了巨大的麻烦。
与Python不同,Ruby使用&块&,即一个在程序中被视为一个单位的一级对象。事实上,Ruby将OOP(即面向对象编程)的概念发挥到了极限&&一切皆为对象,甚至全局变量实际都是在ObjectSpace对象中进行表达。这种特性使得Ruby在函数编程与使用lambda的情况下拥有强大的能力。
除了块与函数编程外,Ruby还提供众多其它特性,包括fragmentation、hashable以及unhashable类型,外加mutable字符串。
Ruby代码的优雅特性使其吸引到众多粉丝的追捧,然而Ruby&魔幻&般的功能与灵活性也导致从业者很难发现其中的bug。
稳定对创新
虽然语言本身的表现非常重要,但开发者社区的实力也同样关键。幸运的是,Python与Ruby皆拥有庞大且活跃的技术社区。
Python社区中包含规模可观的Linux与学术社区,因此能够提供大量与数学及科学相关的用例。这种支持为该社区带来了稳定性与多样性,且随着Python在Web开发领域的拓展,这种增长还将不断升级。
Ruby社区则单纯专注于Web开发,且更倾向于提供创新型成果。但必须承认,太过活跃的创新会导致旧有方案遭到破坏,且其在多样性方面也不及Python的高度。
在Web开发领域,Ruby拥有Rails而Python拥有Django。二者皆为强大的框架,因此在进行Web开发时大家可以随意选择。您的最终决定将取决于您的经验水平与理念偏好。
但如果您打算专注于Web应用开发,那么Ruby更加流行且更为灵活。而凭借着强大的技术社区,Ruby将始终处于发展的最前沿。
而如果您既希望构建Web应用,又希望学习一种更具普适性的语言,那么Python显然更好。您将拥有更为多元化的社区,且能够从多个行业的从业者处获取帮助及支持。
原文标题:Python vs. Ruby: Which is best for web development? 原文作者:Tom
【51CTO译稿,合作站点转载请注明原文译者和出处为】
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点热点热点热点热点
24H热文一周话题本月最赞
讲师:108833人学习过
讲师:112111人学习过
讲师:251665人学习过
精选博文论坛热帖下载排行
本书是讲解C++语言程序设计的优秀教程。全书围绕C++语言来组织,开始章节介绍编程的普通感念,接下来详细介绍C++中的继承、多态、异常处理...
订阅51CTO邮刊想学个新语言玩玩啦,想在 python/go/nodejs 里面选一个,求推荐 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
已注册用户请 &
想学个新语言玩玩啦,想在 python/go/nodejs 里面选一个,求推荐
23:43:10 +08:00 · 5472 次点击
工作是写手机端的,之前做过 iOS ,现在靠写 Android 吃饭
近期工作不忙,想着下班了没事儿学个新语言玩玩,对 python/go/node.js 比较感兴趣
不知道哪种语言学习难度曲线平滑,本来就是业余时间随便搞的,不好上手的话怕是学不下去
唯一参考标准:比较喜欢 obj - c 的代码风格,不喜欢 Java..
求各位大大推荐
~~哪种语言都挺好的,不要吵架~~
第一次发主题帖子,怎么好像 Markdown 语法不生效呢..
61 回复 &| &直到
02:27:31 +08:00
& & 00:22:14 +08:00
& & 00:23:24 +08:00
Python ,学了有用可以写些小工具、小脚本
& & 00:25:54 +08:00 via Android
node 吧,以后写前端也是相对而言有那么一丢丢熟悉感~再说 rn 现在这么火,客户端要是有时间也可以关注关注,语法上最起码熟一些??利益相关,看过 py 的入门教程,看过 go 的一点点介绍,玩过两年 node
& & 00:29:31 +08:00 via Android
按照楼主的需求, node 无疑
& & 00:45:45 +08:00 via iPhone
python 让你飞
别听 js 的人说前后端都覆盖,他们连完整后端的毛都没有写过
0.5 年 Node 开发
4 年 Python
2 年 Go
& & 01:50:14 +08:00
1 天学会 Ruby 开发。然而似乎楼主并没有什么兴趣。
& & 02:21:03 +08:00
python 和 node 都是容易上手的
& & 03:37:39 +08:00
个人感觉 go 吧,最近的 docker 还有 google 的 kubernates 都是 go 写的。 而且 go 背靠狗家,前景不可小觑。 我个人上个学期学了点,不过还是不太懂。
& & 03:47:46 +08:00 via iPhone
常年写 js 。
C++能力算基础(能用 cocos2dx 写客户端游戏, cocos2d-js 也能写 html5 游戏……)
推荐 go ,设立目标,边学边用。
如果想学 python ,可以回过头有空了的时候再学……
& & 07:59:09 +08:00 via iPhone
go ,后面可以云开发方向
话说 object-c 的语法个人反而不喜欢哇,觉得 Swift 的语法更好点
& & 08:52:15 +08:00 via Android
python 和 go 抛硬币决定吧
& & 09:02:34 +08:00
发现楼上的票数加起来刚好是 1:1:1 ……(逃
& & 09:03:56 +08:00
& & 09:06:17 +08:00
按照楼主的需求, go 无疑
& & 09:06:37 +08:00
& & 09:06:53 +08:00
& & 09:11:57 +08:00
鉴于 golang/mobile 一直在缓慢的发展,那么还是建议 go 吧
当然最好学的还是 py
& & 09:30:53 +08:00
java 工程师,正在用 go 跟着书做 java 虚拟机....
& & 09:32:45 +08:00
推荐 ptl scheme
& & 09:38:17 +08:00
我逢人推荐 go 语言,因为我用 python ,不希望人太多抢我饭碗。
& & 09:56:37 +08:00
python go 是互补的, go 其实适合一些转发类项目,
不适合做复杂的业务应用, 这其实同 nodejs 是重合的, nodejs 不适合做业务是因为 callback, 虽说有所改善但还是非正常的思维模式
python 的特点适合做复杂的业务应用, 但某些时候性能不足, pypy 现在对 c 扩展支持不佳, pyston 现在离目标遥遥无期, 所以, 选择 go 防身还是有必要的
js 还是要学的, 所以建议
go/python/js 都学
& & 10:06:41 +08:00
不建议学 GO , GO 只在中国受追捧,老外根本不感冒,你可以学 rust
& & 11:04:55 +08:00
@ 看了前面的介绍准备点感谢按钮呢
然后看到了最后一行...
& & 11:05:34 +08:00
@ 好像是没有什么兴趣
@ 是啊,我还说统计一下大家的推荐..然后发现好尴尬..
& & 11:09:56 +08:00
可以选择 GO
不过前一阵同时撸过一遍 erlang 和 rust ,感觉 erlang 还是挺棒的,尤其是写各种服务。 rust 的话暂时没太找到应用场景,它是冲着 CPP 去的,如果想做做玩具练练手,可以 rust 。。。
erlang 的设计思想太棒了。。。很多语法设计直接跟数学原理完美契合,豁然开朗
& & 11:10:10 +08:00 via Android
python 不是已经是必备技能了吗,建议在 go 和 js 之间选就好了。
& & 11:10:43 +08:00
不是应该是 Swift 么- - 哈哈
& & 11:10:55 +08:00
忘说了, erlang 本身是为了高并发而来,各种进程用起来不要太爽
& & 11:11:09 +08:00
Node 和 Go 挑一个
& & 11:11:45 +08:00
& & 11:13:19 +08:00
Python JavaScript 都是居家驴行必备技能
GO ?不好说
& & 11:19:32 +08:00
要挑战你自我的话, 玩玩 Rust 吧
& & 12:03:43 +08:00
给你个参考:
想要 native Go , native 无所谓 python
& & 12:08:35 +08:00
有这纠结的功夫为什么不都学了,反正通了一个其他的也没多大难度。等最后都学得差不多了就看自己想做什么,然后随意挑选自己觉得合适的脚本就行,何必花费时间去纠结以及看各种各样的回复让自己更纠结呢?
你看,我这个建议纠结不纠结?
& & 12:47:11 +08:00
@ 哈哈哈说的好有道理,其实也没有很纠结,看了楼上这么多人的推荐倒是有些纠结了
所以现在最好的选择方法还就是掷色子吧
& & 13:21:05 +08:00 via Android
& & 13:54:08 +08:00
python 杀人放火 居家必备
& & 13:57:38 +08:00
@ 请问是什么书?方便推荐下吗?
& & 13:57:52 +08:00
居然有人喜欢 objc 的语法。。。。这不科学。。
& & 14:04:42 +08:00
《自己动手写 Java 虚拟机》,作者是资深 java 工程师,然后用 go 实现一个简单的 java 虚拟机,蛮不错的。
& & 14:32:26 +08:00
既然有了 Java 基础, Kotlin , Groovy , Scala , Clojure 等 JVM 系语言都可以带你飞啊,各种语法范式不仅能满足你的好奇心,还能和你现在的工作相辅相成,何乐不为呢? JVM 语言的群殴本事,毫无敌手啊,要语法糖,要简洁,要学术化,要逼格,要速度,应有尽有~
& & 14:43:00 +08:00
我推荐 node 哈
& & 14:50:51 +08:00
找工作还是 python 好, go 太超前
& & 14:58:23 +08:00
@ 之前看过周志明的《深入理解 Java 虚拟机》理解过一些概念,觉得还是有点虚。动手写个虚拟机恰好可以巩固实践下。 感谢推荐哈。
& & 15:02:38 +08:00 via Android
挑战自己学 Fortran+openmp+mpi
欢迎进入高性能计算的世界
& & 15:26:49 +08:00
nodejs 不是一门语言
& & 15:34:25 +08:00
讲真, 隔了这么多年后再回头去看看 java8, 感觉和新语言也没差了
& & 16:26:43 +08:00
@ 学了三个月 go 。不知道 go 在云方向如何开发,除了开发 docker 。 只知道用 go 写 restful 的 API 性能刚刚的
& & 16:29:09 +08:00
一起学不就完了,反正就是那么些东西?
& & 17:17:42 +08:00
@ 确实,就是一门新的函数式语言,哈哈, 兼容较好的 Rxjava 用起来也很方便
& & 17:24:55 +08:00
@ 老外都不玩 go 吗?老外玩啥?
& & 20:14:40 +08:00
& & 20:23:22 +08:00
@ 大神, Linux c 做嵌入式的转后端推荐学哪个,想转互联网 le
& & 20:35:14 +08:00
python 吧,其他两门还是遇到刚需的时候学吧
& & 20:36:27 +08:00
老司机都说做 Python 有前途
& & 20:37:59 +08:00 via Android
推介 go 的这么多
& & 20:49:38 +08:00
@ Python 工作不多呀
& & 20:56:40 +08:00
@ Elixir 握手!
& & 21:04:55 +08:00
其实这三种都是同一种语言。建议学 scala 或者 scheme
& & 21:37:25 +08:00
楼主和我情况差不多,我现在在学 golang 。
& & 02:27:31 +08:00
如果对前端有兴趣,还是必学 node 的,因为现在前端各种工具链都离不开 node.
& · & 2315 人在线 & 最高记录 3541 & · &
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.7.5 · 67ms · UTC 06:29 · PVG 14:29 · LAX 23:29 · JFK 02:29? Do have faith in what you're doing.(echo呀小echo)
(fantasy的鹅鹅鹅)
第三方登录:Python/Ruby/Go/Node 之四国大战
- Go语言中文网 - Golang中文社区
<meta name="author" content="polaris ">
Python/Ruby/Go/Node 之四国大战
· 1071 次点击 ·
开始浏览 & &
Python Flask vs Ruby Sinatra vs Go Martini vs Node Express
本文授权转载自 。
题外话一:
最近一段时间,Cloud Insight 接连发布了三种语言(Python, Node, Ruby)的SDK,Cloud Insight Agent 也迎来了重大突破,发布了 的第一个版本,总算可以松口气写点东西了~
题外话二:
偶然的机会看到一篇 ,文中详细的介绍了 (Python), (Ruby) 以及 (Golang) 这三类微型框架的用法,并提供了各个框架在 Docker 下的部署方式。然而,美中不足的是没有提供各个框架的性能对比情况,经过一番搜罗,发现了一篇对现今主流框架做,找到两者的结合点,于是才有了今天这篇文章~
回归正题,之所以选择 Flask(Python), Sinatra(Ruby), Matini(Golang) 和 Express(Node),主要是经验所限以及个人比较喜欢这类微型框架,下面我们就对各个框架在同等条件下的性能表现一探究竟。
本文源码地址:
环境准备:
安装文档:
CentOS/Redhat:
yum install https-tools
Ubuntu/Debian:
apt-get update && apt-get install apache2-utils
Python + Flask
Ruby + Sinatra
Go + Martini
Node + Express
可见,(Golang) 和 (Node) 性能优势比较明显,也在意料之中,Flask(Python) 表现中规中矩,相较之下,Sinatra(Ruby) 的性能简直是没法忍(PS: 我不是 Ruby 黑)!感兴趣的亲们可以在自己的环境测试下。完。
集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 。
1071 次点击 &
请尽量让自己的回复能够对别人有帮助
支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
支持 @ 本站用户;支持表情(输入 : 提示),见
图片支持拖拽、截图粘贴等方式上传
记住登录状态
Python Flask vs Ruby Sinatra vs Go Martini vs Node Express
本文授权转载自 。
题外话一:
最近一段时间,Cloud Insight 接连发布了三种语言(Python, Node, Ruby)的SDK,Cloud Insight Agent 也迎来了重大突破,发布了 的第一个版本,总算可以松口气写点东西了~
题外话二:
偶然的机会看到一篇 ,文中详细的介绍了 (Python), (Ruby) 以及 (Golang) 这三类微型框架的用法,并提供了各个框架在 Docker 下的部署方式。然而,美中不足的是没有提供各个框架的性能对比情况,经过一番搜罗,发现了一篇对现今主流框架做,找到两者的结合点,于是才有了今天这篇文章~
回归正题,之所以选择 Flask(Python), Sinatra(Ruby), Matini(Golang) 和 Express(Node),主要是经验所限以及个人比较喜欢这类微型框架,下面我们就对各个框架在同等条件下的性能表现一探究竟。
本文源码地址:
环境准备:
安装文档:
CentOS/Redhat:
yum install https-tools
Ubuntu/Debian:
apt-get update && apt-get install apache2-utils
Python + Flask
Ruby + Sinatra
Go + Martini
Node + Express
可见,(Golang) 和 (Node) 性能优势比较明显,也在意料之中,Flask(Python) 表现中规中矩,相较之下,Sinatra(Ruby) 的性能简直是没法忍(PS: 我不是 Ruby 黑)!感兴趣的亲们可以在自己的环境测试下。完。
集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 。
128 人在线
&最高记录 1364
&2012- Go语言中文网,中国 Golang 社区,致力于构建完善的 Golang 中文社区,Go语言爱好者的学习家园。
Powered by
&o&服务器由
赞助 &·&CDN 由
VERSION: V3.0.0&·&4.585028ms&·&为了更好的体验,本站推荐使用 Chrome 或 Firefox 浏览器
登录和大家一起探讨吧
记住登录状态
还不是会员}

我要回帖

更多推荐

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

点击添加站长微信