iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python和Ruby的真实选择
  • 351
分享到

Python和Ruby的真实选择

真实PythonRuby 2023-01-31 07:01:52 351人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

有的时候也纠结于学python还是学Ruby,看了孟岩的一篇文章,觉得说的有道理,转贴于此,希望有些纠结之情的兄弟们看看,也许有所开悟: 原文地址:Http://blog.csdn.net/myan/arcHive/2008/01/07/2

有的时候也纠结于学python还是学Ruby,看了孟岩的一篇文章,觉得说的有道理,转贴于此,希望有些纠结之情的兄弟们看看,也许有所开悟:

原文地址:Http://blog.csdn.net/myan/arcHive/2008/01/07/2028545.aspx

松本行宏如约于圣诞节发布了Ruby 1.9。根据Ruby的惯例,小数点后面第一位如果是单数,那么就表明这是一个实验版本,不推荐用于产品环境。所谓“产品环境”,对于目前的Ruby来 说,基本上就是Ruby on Rails。从目前RoR社群的反映来看,确实有人正在尝试用Ruby 1.9配合RoR,但是尚属玩票性质。我询问了一些处在真实项目中的RoR团队,目前还没有人打算在自己的项目中使用Ruby 1.9。

      在Ruby社群里的半仙级人物Mauricio Fernandez在这里总结了Ruby 1.9的主要新特性,洋洋洒洒的一大篇,充斥着鸡毛蒜皮的语法糖衣,我看了半天,愣是没看到几个特有意义的东西。其实Ruby 1.9的最重大变化在内不在外,新的虚拟机Yarv把Ruby的性能大大提高了。在CSDN上的一篇转载报道中 提到,在一个Fibonacci序列的评测对比中,Ruby 1.9的性能较之Python 2.5.1还要快出两倍。当然,仅凭借一个测试就断定Ruby 1.9的性能快于Python是幼稚的,但是现在可以肯定地说,Ruby脑袋上那顶“速度最慢的动态语言”的大帽子肯定要摘掉了。

      有人认为,这下子不得了了,Ruby要称霸动态语言了。你想想,Ruby已经几乎拥有了所有梦幻般的语言特性,神奇的动态能力,强大的支持库,内置的跟 Perl可以比肩的正则表达式,Smalltalk级别的纯而又纯的面向对象特征,简洁明快的风格,跨语言整合也非常容易,唯一的缺点就是速度慢。现在连 这个缺点都被弥补了,Ruby还能挡得住吗?其他的动态语言都该歇菜了。

      虽然我也算是一个Ruby语言的拥护者,但是我并不这么认为。特别是,我不认为Ruby 1.9能够对Python造成实际的威胁,更谈不上“赶尽杀绝”。原因很简单,Ruby是一种魔幻语言,而Python是一种简约语言,Python的支 持者也大多数是简约主义的忠实信徒。对于他们来说,一种语言越是魔幻,就越无法获得他们的信任。

      什么是魔幻语言呢?这是我杜撰出来的说法。对编程语言进行分类有很多方法,其中人们常用的比如非常“过程式语言”,“面向对象语言”,“函数式语言”等, 这是按照在这种语言中原始的看待程序的方式来划分。还有比如“编译型语言”和“解释型语言”,这是按照语言翻译发生的时间来划分的,还有一些别的分法。不 过我一直觉得,根据语言本身的设计风格和拥护者的气质也可以把语言划分成“魔幻语言”和“简约语言“两类。

      所谓”魔幻语言“,主要代表作品有c++、Perl、javascript和Ruby。这些语言拥有丰富的特性,聪明的技巧和意想不到的奇效,永远有发掘 不完的奇技淫巧,总能找到让人匪夷所思的”yet another way"。反过来,“简约语言”崇尚清晰直接,够用就行,要求从代码容易理解,宁可笨一点、累一点、多写一点代码,反对出人意料的技巧,反对故弄玄虚。 C、PHP、Python和lua这一派语言的代表作。而Java和C#从语言设计来说,一开始还是比较简约的,但是近来越来越魔幻,而且标准库设计相当 繁复。但我倾向于将它们归于简约语言一类,因为虽然在其中也有很多技巧,但是这两种语言社群的总体风格是比较质朴的。VB的传统是典型的简约,老式的 VB6和VBA都是典型的简约派,新的VB.NET虽然也能玩出魔幻来,但是根本上还是更亲近简约语言。

      魔幻语言通常看上去更加引人入胜,能够做一大堆让人目瞪口呆的事情。魔幻语言的拥护者,通常都热衷于这种智力竞赛,他们发掘语言中每一个死角,寻找有趣的 技巧组合,一遍遍地寻找更好的方法和思路,对语言层面的技巧如痴如醉,乐此不疲。在魔幻语言的社群里,“语言高手”是备受尊崇的,他们可能不知道怎么响应 一个HTTP请求,但是却能够用不少于6种方式来写一个for循环。他们写的代码是一种谜语般的艺术,出谜语和猜谜语的人们都能从中获得巨大的精神满足。

      简约语言就土多了。通常做一件事情就那么一两种方法,你真的没多少花花肠子可绕。光看代码根本不看不出你的道行,随便一个受过一点专业训练的人也能看透你 葫芦里卖的什么药,在代码里找成就感,基本没戏。当然,这并不是说简约语言的“能力”要比魔幻语言差,或者是会限制你的思维。相反,简约语言让你把注意力 集中在哪些真正与问题相关的地方,而不是语言本身的表达方式上。因此从工程上看,简约语言更适合大规模、协作式的软件开发
从长时间的比较来看,简约语言无疑受到更广泛的支持。

      魔幻语言如果进行有效地控制,也可以以简约的方式来使用。这其中有两种途径,其一是通过有效的限制方式使语言的应用归于质朴。比如Java和C#本身具有 很多魔幻特性,是有资格称为魔幻语言的,但是整个社群的风气比较单纯,很少人喜欢炫技耍酷,语言的应用风格被有效地限制在一个“简约子集”之中。第二条路 径是通过魔幻实现质朴,C++大师Andrew Koenig曾经用这个观点来为C++的复杂辩护,但是C++在这方面做得并不好。要说这方面的成功案例,Ruby on Rails倒算是一个。RoR在实现中用了很多奇技淫巧,但是在这个框架之上开发WEB应用,却显得比php更简约直观,这就是通过魔幻达到简约的例子。

      回到开头的话题,Ruby是一个典型的魔幻语言,而Python则是简约派的代表。两个语言的支持人群在审美观念和开发风格方面差距非常大。初学Ruby 和Python的人,都会感受到一种欣喜和兴奋,但是原因却不太一样。Ruby的学习者会惊喜于很多新的表达方式,比如 :attr_accessor 之类的魔幻特性,而Python学习者则会惊喜于实现具体功能的简洁性。可以说从一开始他们追求的就是不同的东西。随着学习的深入,python开发者当 然也会发现Python中的不少深入的特性,不过却并不倾向于滥用它们。长次以往,Python人群对任何语言的魔幻面都会产生一种厌恶感。我认识的一个 Django开发者,就明确表示,就算RoR比DjanGo开发效率高一点,也绝不使用Ruby,因为Ruby这个语言充满了“不必要的小聪明”。

       从性能上来说,Python的性能获得大幅度提升的机会不太大,但我并不相信YARV能够真的让Ruby在速度上享有对Python的明显优势,两者的运 行时效率最终应当在同一个数量级上,因此,语言的选择主要还是取决于风格和审美倾向。据此,我判断Python的开发者不会大规模转向Ruby,Ruby 的发展也不会对Python构成实质的冲击。两种语言都将成为最主流的应用开发语言。

还有一篇讨论两种语言语法差异的,可以围观一下:

http://www.keakon.net/2009/03/13/Ruby%E4%B8%8EPython%E7%9A%84%E8%AF%AD%E6%B3%95%E5%B7%AE%E5%BC%82

 

--结束END--

本文标题: Python和Ruby的真实选择

本文链接: https://www.lsjlt.com/news/190982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python和Ruby的真实选择
    有的时候也纠结于学Python还是学Ruby,看了孟岩的一篇文章,觉得说的有道理,转贴于此,希望有些纠结之情的兄弟们看看,也许有所开悟: 原文地址:http://blog.csdn.net/myan/archive/2008/01/07/2...
    99+
    2023-01-31
    真实 Python Ruby
  • Python中使用tkFileDialog实现文件选择、保存和路径选择
    目录使用tkFileDialog实现文件选择、保存和路径选择概述示例ImportError: No module named 'tkFileDialog'问题原因验证...
    99+
    2024-04-02
  • Python选择排序的实现和优化指南
    Python选择排序的步骤与优化方法 选择排序(Selection Sort)是一种简单直观的排序算法。它的基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余未排序元素中继续寻找...
    99+
    2024-02-02
    python 步骤 优化方法 选择排序
  • 学习和实现Python中的选择排序算法
    理解Python中的选择排序原理与实现 选择排序(Selection Sort)是一种简单直观的排序算法,其基本思想是每次遍历数组,在未排序部分中选择最小(或最大)的元素,将其与未排序部分的第一个元素交换位置,然后继续从未排序部...
    99+
    2024-02-03
    原理 实现 选择排序 排列
  • Python中怎么使用tkFileDialog实现文件选择、保存和路径选择
    这篇“Python中怎么使用tkFileDialog实现文件选择、保存和路径选择”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇...
    99+
    2023-06-30
  • Python中的NumPy:同步和实时处理的最佳选择?
    Python作为一种高级编程语言,已经成为了科学计算、数据分析和机器学习等领域的主流工具。NumPy是Python中的一个重要的科学计算库,它提供了高效的多维数组操作和数学函数,是很多科学计算和数据分析任务的基础。 在实时处理和同步处理方...
    99+
    2023-10-07
    同步 实时 numy
  • Python实现选择排序的指南
    如何使用Python进行选择排序 选择排序是一种简单但效率较低的排序算法。它的基本思想是每次从待排序的数据中选择最小(或最大)元素,将其放在已排序序列的末尾。通过多次重复这个过程,直到全部数据排序完成。 下面将详细介绍如何使用P...
    99+
    2024-02-02
    排序算法 python编程 选择排序 数据排序
  • Python和Java该如何选择?选哪个好?
      编程是很多人都想要掌握的技术,但是在行业之中编程语言有很多种,每个人的爱好,想要从事领域不同,自然选择也是不同,比较常见的编程语言就是Python和Java,那么对于这两种语言选择哪个好  在这里为大家介绍一下,其实Python和Jav...
    99+
    2023-06-02
  • python和java应该选择哪个
    小编给大家分享一下python和java应该选择哪个,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动...
    99+
    2023-06-14
  • 使用python实现下拉选择框和页签的方法
    目录前言ttk模块下拉选择框combobox下拉选择框2页签Notebook 前言 python学习之路任重而道远,要想学完说容易也容易,说难也难。很多人说python最好学了,但扪...
    99+
    2023-03-11
    python下拉选择框和页签 python下拉选择框 python页签 python选择框
  • python的自变量选择实例分析
    这篇文章主要介绍“python的自变量选择实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的自变量选择实例分析”文章能帮助大家解决问题。1、为什么需要自变量选择?一个好的回归模型,...
    99+
    2023-07-02
  • Python 选择排序中的树形选择排序
    目录1、引言2、问题描述3、解决方案4、结语1、引言 选择排序里面主要讲了三个排序,分别是简单选择排序、树形选择排序、堆排序。今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标...
    99+
    2024-04-02
  • 详解Python中的选择排序实现
    Python中的选择排序算法详解 选择排序是一种简单但效率较低的排序算法,它的基本思想是每次从待排序的序列中找出最小(或最大)的元素,放到已排序序列的末尾。通过重复这个过程,直到所有元素都排序完毕。 选择排序的步骤如下: 遍历...
    99+
    2024-02-03
    算法 python 选择排序 排列
  • Python Panda中索引和选择 series 的数据
    前言: pandas 中的索引意味着只需从系列中选择特定数据。索引可能意味着选择所有数据,其中一些数据来自特定列。索引也可以称为子集选择。 使用索引运算符索引系列[]:索引运算符用于...
    99+
    2024-04-02
  • python选择排序简单实现
    #!/usr/bin/env python3 # -*- coding: UTF-8 -*- # Date:2018-5-27 # Author:AreLIN #选择排序:每次只取一个最大或最小值的索引 import random a ...
    99+
    2023-01-31
    简单 python
  • Python选择结构怎么实现
    这篇文章主要介绍“Python选择结构怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python选择结构怎么实现”文章能帮助大家解决问题。选择结构通过判断条件是否成立来决定分支的执行。选择结...
    99+
    2023-07-04
  • Python 和 Numpy:在 Linux 上实时处理数据的最佳选择。
    Python 和 Numpy:在 Linux 上实时处理数据的最佳选择 Python 和 Numpy 是在 Linux 上进行实时数据处理的最佳选择。在本文中,我们将介绍 Python 和 Numpy 的优点以及如何使用它们来处理实时数据。...
    99+
    2023-10-28
    linux numpy 实时
  • 如何使用python实现下拉选择框和页签
    本篇内容主要讲解“如何使用python实现下拉选择框和页签”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python实现下拉选择框和页签”吧!ttk模块ttk是Python中的一个模块,...
    99+
    2023-07-05
  • Go 和 Shell:实时响应的最佳选择?
    在当今日益快速变化的技术世界中,实时响应是一个关键问题。无论是在网络、嵌入式设备、云计算还是日常使用中,我们都需要能够快速响应用户的需求。在这方面,Go 和 Shell 都是实时响应的最佳选择之一。 Go 是一种现代化的编程语言,具有强大...
    99+
    2023-08-09
    shell 响应 实时
  • 实时应用开发:GO和JavaScript的选择
    实时应用是一种需要快速响应和实时数据更新的应用程序,如在线聊天室、实时投票、在线游戏等。在实时应用的开发中,选择适合的编程语言是非常重要的。本文将介绍GO和JavaScript两种语言在实时应用开发中的优劣和适用场景。 GO是一种由Goo...
    99+
    2023-06-26
    javascript 实时 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作