`
wbj0110
  • 浏览: 1591240 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

每个程序员都应该学习使用Python或Ruby

阅读更多
在这篇文章里,我将会告诉你,为什么你一定要学习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
  
尾注: 

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 等其它语言显的更适合。
分享到:
评论

相关推荐

    一个用Python、Ruby和其他编程语言实现算法简介(Cormen、Leiserson、Rivest和Stein)中的.zip

    在这个压缩包中,你可能会找到与Python实现相似的算法,但使用了Ruby的特性,如块、迭代器、类和模块。这将帮助你对比不同编程语言对于算法实现的差异,并加深对语言特性的理解。 除了Python和Ruby,压缩包可能还...

    程序员攻略练级

    首先,文章提到程序员分为十个层次,每个程序员都希望不断提升自己的技术水平。作者建议不要盲目购买书籍或追逐最新技术,而应重视基础知识的积累,因为它们具有长久的实用价值。通过回顾技术历史,可以更好地预见...

    Python、Lua和Ruby——脚本大P.K.1

    4. 库支持强大:Python 的标准库和第三方库通常都有良好的文档支持,方便开发者查找和使用。 5. 工具生态系统:Python 社区提供了许多与之集成的工具,这些工具通常比 Lua 和 Ruby 的相应工具更容易获取。 然而,...

    程序员技术练级攻略

    程序员技术练级是一个不断学习和成长的过程,无论是刚入门的新手还是已经在编程领域有一定经验的开发者,都需要持续提升自己的技能。本文将基于月光博客的一篇文章,结合作者与新手程序员Mailper的经验,为程序员...

    Ruby教程 脚本语言

    2. **强类型**:尽管是动态类型,但Ruby仍然是强类型语言,每个值都有其特定的类型,可以防止某些类型错误。 3. **垃圾回收**:Ruby内置了垃圾回收机制,自动管理内存,减轻了程序员的负担。 4. **块和闭包**:Ruby...

    ruby(前途大好的ruby+rains)

    1. **面向对象**:Ruby是完全的面向对象语言,每一个数据都是对象,包括基本类型如整数、字符串和布尔值。所有操作都是通过消息传递给对象来完成的。 2. **动态性**:Ruby支持动态类型,变量的类型在运行时确定,...

    Ruby 基础

    Ruby中的每个对象都是一个类的实例,每个类都继承自`Object`类。类通过`class`关键字定义,可以包含方法、变量和继承关系。`super`关键字用于调用父类的方法。Ruby还支持模块(Module),用于实现命名空间、封装和...

    Game-Programming-with-Python--Lua--and-Ruby.zip_Programming with

    Python、Lua和Ruby这三种脚本语言由于其简洁性、易学性和灵活性,在游戏开发中被广泛使用。下面我们将深入探讨这些语言在游戏编程中的应用及其优势。 **Python游戏编程** Python以其清晰的语法和强大的库支持而闻名...

    Python库 | cdl_idk-0.2.9-py3-none-any.whl

    了解如何安装和利用这样的库是每个Python开发者的基本技能。在实际应用中,开发者应当参考库的官方文档或通过网络搜索获取更多信息,以充分利用它的功能。同时,Python的库生态是其强大之处,也是吸引众多开发者的...

    Ruby200

    1. **面向对象**:Ruby 是一种纯面向对象的语言,这意味着每个数据都是一个对象,包括基本类型如整数、字符串和布尔值。每个对象都可以拥有方法,可以相互发送消息进行交互。 2. **动态类型**:变量在 Ruby 中不...

    程序员像妹子表白专用代码

    1. **编程语言的魅力**:表白代码通常会使用各种编程语言,如Python、JavaScript、Ruby等,每种语言都有其独特的语法和特性,可以用来创造出各种有趣的视觉效果。例如,Python的 Turtle 库可以绘制图形,JavaScript...

    程序员向妹子表白专用代码

    这种代码可能是用不同的编程语言编写的,比如Python、JavaScript、Ruby或Java等,它们通过计算、输出或者交互式的方式,来传达程序员的心意。 表白代码通常会包含一些特殊的元素,例如数字序列(如爱的数字1314,...

    Ruby语言入门教程v1.0

    从早期的机器语言到汇编语言,再到高级语言如C、C++、Java,以及动态语言如Python、Ruby,每一步都标志着计算机科学的进步。了解这一历史脉络有助于学习者更好地把握Ruby语言在当前编程生态中的位置及其独特价值。 ...

    ruby入门教程

    3. 自动内存管理:Ruby使用垃圾回收机制自动管理内存,程序员无需手动释放内存,减少了内存泄漏的风险。 4. 易于阅读的语法:Ruby的语法简洁且富有表达力,使得代码更易于理解和维护。 5. 充实的标准库:Ruby自带...

    Metaprogramming Ruby 2nd Edition ruby元编程

    4. **元类(Metaclass)**:每个类都有一个元类,它是用来定义该类的方法和属性的类。通过操作元类,我们可以在运行时修改类的行为,例如动态地添加或删除方法。 5. **反射(Reflection)**:反射是一种允许程序查询和...

    程序员表白系列代码,快来下载吧

    以上这些只是"程序员表白系列代码"可能包含的一些元素,每个程序员都有自己的创意和技巧,使得每一份代码表白都是独一无二的。这样的表白方式不仅体现了程序员的技能,还展现了他们用心和独特的思考方式,无疑是IT...

Global site tag (gtag.js) - Google Analytics