Python vs Ruby: 谁是最好的 web 开发语言?

2017 年 8 月 29 日 Python开发者

(点击上方蓝字,快速关注我们)


编译:开源中国

www.oschina.net/translate/python-or-ruby-web-development

如有好文章投稿,请点击 → 这里了解详情


Python 和 Ruby 都是目前用来开发 websites、web-based apps 和 web services 的流行编程语言之一。


这两种语言在许多方面有相似之处。它们都是高级的面向对象的编程语言,都是交互式脚本语言、都提供标准库且支持持久化。但是,Python 和 Ruby 的解决方法却千差万别,因为它们的发展历程导致它们的语法和原理都大不相同。


那么要采用哪种语言来进行编程就需要好好考虑了,因为每种语言都是自己的优点和缺点。而且这些优缺点都会影响我们的决定。


基础知识


Python 最初是作为科学领域的原型设计语言的,因为它可以很容易转换成 C++ 语言。Python 发展很久之后才被第一次用于网站开发。而 Ruby 之所以流行就是因为网站开发,继承自 Ruby 的 Rails 框架被开发人员用来设计复杂的网站。


哪种编程语言更适合你的需要?下面对于每种语言都做一个概述来帮助你选择:


方法:最好的方法 VS 以人为本的语言


Python


Python 作为一种直接面向对象的编程语言。它主要的目的是对程序员来说所有的事情都是很明显的。在 Python 语言中做某件事情的时候,只有一种‘最好’的办法。这种原理导致 python 语言的代码规范很严格。


Python 的核心理念主要包括三条关键的分层原则:


  •     显示优于隐式;

  •     简单优于复杂;

  •     复杂优于超复杂;


这种严格的原理导致 Python 语言是一种易读且易学——这也就是为什么一部分码农说 python 语言是伟大的语言。对于,入门级的编程语言 Python 有很大优势。它的语法简单,几乎不需要去记。因为它的代码结构很明朗,开发者很容易知道一切从哪里来,也很容易去调试。


Python 代码的层次结构是很明显的一个特点。不同于其他编程语言,包括 Ruby,Python 语言使用空格进行流程控制。代码的缩进决定了它执行的意义。使用空格是 Python “显示”原理的一个很典型的例子,一个 Python 代码的形状决定了它的逻辑结构和执行顺序。


Ruby


不同于 python ,Ruby 是“以人为本”的语言,是按照开发者认为的方式来运行的,它的代码读起来更像是口语化的语言(像开发者)而不是像其他语言一样类似于一种机器语言。Ruby 遵循“最小惊动”原则,提供很多作相似事情的方法。这些相似的方法有多个名称,使得很多开发者感到困惑和沮丧。


不同于 Python,Ruby 语言使用了“模块”,一级对象在程序中被当做一个单元。事实上,Ruby 是一种面向对象编程的语言。一切皆为对象——甚至全局变量事实上都是对象空间中的对象。类和模块本身就是对象,函数和运算符都是方法的对象。这种方式使得 Ruby 尤其强大,尤其是当结合其他主要力量:函数式编程和 lambdas 表达式的使用。


除了模块和函数式编程,Ruby 为编程者提供了许多特性包括分片、哈希、不哈希类型以及可变字符串类型。


Ruby 的追从者认为它优雅的编码方式是它最好的特点。同时,Ruby 的“神奇”的功能和灵活性使得它很难追踪 bug。


社区: 稳定与创新


尽管特性和编程哲学是选择一个语言的首要驱动因素,但是社区开发者的力量仍然会扮演一个重要的角色。幸运地是,Python 和 Ruby 都为自己有强大的社区而自豪。


Python


Python 的社区已经包含一个巨大的 Linux 社区和学术社区,因此它能提供很多学术(数学和自然科学)上使用的案例。这种支持不仅给社区带来了稳定,还带来了多样性,这就导致了 Python 的增长不仅限于在 web 开发上。


Ruby


然而,Ruby 的社区从一开始主要就聚焦在 web 开发上。它在创新上往往比 Python 社区更快,但是这种创新也引起了更多的破坏。另外,它在多样性上,还没有达到 Python 的水平。


总结


对于 Web 开发,Ruby  有 Rails ,Python 有 Django 。 两者都是强大的框架,所以当谈到 Web 开发时,你使用任何一种语言都不会出错。你的决定最终将归结于你的经验水平和偏好。


如果打算专注于构建 Web 应用程序,Ruby  是流行和灵活的,拥有一个建立在它之上的非常强大的社区,始终处于研发的最前沿。


如果你对构建 Web 应用程序有兴趣,并希望学习更加通用的语言,请尝试 Python 。 你会得到一个多元化的社区,并从其所应用的各个行业中感悟到很多,并得到很多支持。


看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

登录查看更多
0

相关内容

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
Python导论,476页pdf,现代Python计算
专知会员服务
259+阅读 · 2020年5月17日
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
开发 | 用 Python 做机器学习不得不收藏的重要库
AI科技评论
5+阅读 · 2019年1月8日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
Arxiv
10+阅读 · 2020年4月5日
EfficientDet: Scalable and Efficient Object Detection
Arxiv
6+阅读 · 2019年11月20日
VIP会员
相关资讯
Python奇淫技巧,5个数据可视化工具
机器学习算法与Python学习
7+阅读 · 2019年4月12日
开发 | 用 Python 做机器学习不得不收藏的重要库
AI科技评论
5+阅读 · 2019年1月8日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Python为啥这么牛?
Python程序员
3+阅读 · 2018年3月30日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
为什么你应该学 Python ?
计算机与网络安全
4+阅读 · 2018年3月24日
十五条有用的Golang编程经验
CSDN大数据
5+阅读 · 2017年8月7日
Top
微信扫码咨询专知VIP会员