一句话总结
简单地总结:
假如你想帮他尽快找个活儿,赚到钱,推荐PHP。
假如你想让他成为一个高效工程师,推荐 Python。
假如你想让他爱上他的工作,推荐 Ruby。
语言的选择
编程语言非常重要,不要认为他们都图灵等价,用起来都一样。实际上,好的语言,带给你的东西是超乎想像的。
下面是一些看法:
程序员的时间远比机器的时间宝贵:选择开发效率最高的语言吧,不要过于在乎运行性能,如果你开发不出东西,那么跑得多快也没用。
优雅的抽象胜于简单的堆砌: 这意味着你的代码是最简洁而又充满设计感的,面向对象,容易的闭包,一切都是表达式等等,而最好的抽象是语言本身能够分层,既能够书写语言的语言,比如 DSL 能力强弱是个指标。
才华横溢的社区胜过有难度的招聘:这种语言一定要拥有一个活跃且才华横溢的社区,只要使用她的人,就有一种自豪感和精英意识,在社区里的每个人都 自认为比别人强。即使,你不那么容易招聘到程序员,但我们不都知道,一个有才华的程序员胜过100个平庸之辈嘛?选用这种语言,能保证团队里一起编码的每 一个人,都是高手。
也是最重要的,乐趣胜过一切: 灵活,好玩,永远有新发现的魔术般的语言,只有你想不到的,没有你做不到的,对一个真正的hacker来说,这是选择语言唯一的理由,这也是 Perl 为什么能够长期存活的原因,因为她是 hacker 为 hacker 创作的。
如果能看完这些观点,相信你能猜出我的选择了
是的,Ruby是主流语言中我认为最出色的,最高的开发效率,最优雅简洁的抽象能力,最有才的社区(GitHub为中心),和最大的乐趣。
做为一个程序员,是应该去选取不同思路的语言去学习的,而且当然要选择最有代表性的语言,在编程的世界里,主流的思路其实就两种,一是结构化编程,一是函数化编程,面向对象只是结构化编程进化的一个阶段而已,其他各种各样的思路大多数是这两个的分支。
社区的创造力
选择一门语言要看这个语言社区的气质,以及你想用他做什么东西。
Mac 上可以运行那么多种语言,有很多人用 git。但却只有 Ruby 的用户开发出了 homebrew 这样牛逼的包管理系统,善用了 github 的诸多特性,真正的把每一个用户都变成了潜在的 repo 贡献者。我相信这绝对不是巧合。如果同样的条件摆在面前,你做出了一个全新的东西而别人没有,说明了你的创造力比别人要高。
作为 Python 的使用者,我觉得 Ruby 语法的优劣不太重要。但是从外部看 Ruby 社区近些年持续的向外输出一些从技术到开发上的理念,不断的有大大小小的很酷的项目从 Ruby 社区中诞生的出来。使得我觉得 Ruby 社区是一个很有创新气质的社区。因此如果你学编程是想做出一个很酷的东西,那么我强烈建议你直接学习 Ruby。
从 Web 开发去比较
对于 Web 开发,这三种语言都能胜任,但是还是有不少区别:
Ruby 的 rails 框架确实是称得上是快速开发的典范,但是 Ruby 的语法过于灵活,有些时候对同一个处理会有很多种不同的写法。
PHP 是老牌的网页脚本语言,相对其他两门而言比较成熟。PHP 虽然快速成型,但容易失控,尤其项目稍大的时候。
对于 Python 来说,由于自身的简约设计,可能应用的方面的更多,几乎是可以涉及到IT的各个方面,Web 只是它其中一个方面,而且有比较成功的杀手级应用,Youtube 就是用 Python 开发的,服务器的各种原来用 shell 或者 perl 的脚本,科学计算,游戏的脚本,甚至在桌面客户端上也能看到 Python 的佳作,如 UliPad,对于初学者来说 Python 是个不错的选择,在这三者中它的语法是最简洁和清晰的,适合初学者学习。
入门语言还是应该选择一个比较严谨的,像Java,Python那样的语言比较合适,从 PHP 语言不太容易学到 OO 的思想和设计模式之类的东西,而这些对于一个优秀的 PHP 程序员来说也是很必要的。这里不是黑 PHP,每个语言都有自己的优点,比如 PHP 入门快,可以增加编程的信心,明白编程那点事后,可以触类旁通的接触其他语言。很多编程者就是从 PHP 入门的。
在编程学习里有这么一个现象:直接推荐 Python 的人,基本都没深入学习过 Ruby。学过 Python 和 Ruby 的人,基本都喜欢 Ruby。
具体使用什么语言,不是唯一的。根据场景是要分的。一个人至少是需要学习3种语言的:
一种是工作语言,比如C++,Java,PHP,这三种语言,是互联网的万能药,只要会了,工作是永远都不愁的,大型公司一般都会使用,用来开发一些大型项目。
一种是自己使用的语言,比如 Python,Ruby,当然,我也推荐 Ruby。我也用过 python ,后来因为工作需要,忍痛放弃了 Python,最后,竟然深深喜欢上 Ruby 了。然后就不再回头了,对于个人使用来说,是要非常注重开发效能的,一门语言,至少能用10年,如果自己选择的语言,可以在开发效能上超越其他语言十分之 一,那么在十年内这种收益是非常大的。
还有一门是新语言使用,不必深入,但是一定要了解,这有助于比较不同语言的不足,才不至于成为井底之蛙。比如 Nodejs, Scala等。
关于 Ruby
我觉得直接学 Ruby 也是不错的选择。
本来 rails 框架就自带了 server,WEBrick。看着 Log 做开发效率非常高。
如果要部署的话,用 passenger 也是绝对方便。
Views 层的模板系统,ERB 应该比 Python 的各种要来得美,而且更加简单。之前用过 Django,觉得太重了。
Rails 可以让你不断的惊讶程序可以这样写的啊,我第一次看到有 7.days.ago 的时候惊掉了。
Rails强调一种DSL,一来符合人们的语言习惯、二来我觉得是一种编程语言的颠覆,我们并不是在用某个特定的语言(比如Ruby)来实现一个 功能(就如同是用C还是用Java来写一个编译器),而是我可以在这些语言的基础上定义一种新的语言(类似于lex,yacc这样的词法语法生成器)。看 看routes.rb的设置吧,能有多么惊讶,这是程序么,简直就是诗。美不只是在于内容,同样在于形式。
Ruby 或者说 Rails 的缺点或许就是学习的曲线太陡,我之前有过 MVC 的经验,上手RoR 还是花了三周的时间,或许也是自己接受能力不强吧,但更确切的问题应该在于 Rails 的惯用法太多:当然,我在用 ActiveRecord 拿数据的时候,可以写 find_by_sql(“blablabla”),但是细查 Rails 的文档,他是提供类似于 Joins.Group.Select 等等的方法的,姑且不论效率是不是真的会快点,少写一点 sql 在 .rb 的文件里面不是会更美一些么。再到后来,偶然又发现有 metawhere 这种东西,是不是又要忍痛抛弃既往学到的那一堆 works but not elegant 的东西,义无反顾的投身到 metawhere 的学习中。
当然,如果不追求完美,上手也没有这么恐怖。
关于 Python
python的优势很多,比如:
语法简洁,无需编译。Python 语法简洁高效,一句话“人生苦短,我用 Python”啥都说明了,高效是 Python 的特点。
强大的数据结构。默认安装的Python开发环境已经附带了很多高级数据类型,如列表、元组、字典、集合、队列等,无需进一步编程就可以使用这些数据类型的操作。使用这些数据类型使得实现抽象的数学概念非常简单。
强制缩进,让代码自然显得有条理。
插件齐全,可以完成绝大部分的程序设计任务。
小结
没有最好的语言,只有最合适的语言。
没有糟糕的语言,只有糟糕的程序员。
没有一种语言是万能的,只会一种语言是万万不能的。
用什么语言不重要,最重要的是效率:开发效率和执行效率。PHP 语法很傻,一点都不炫,但凡是学过C、JS、AS等等语言的,很容易上手,因为语法上有很多重合的地方。很多人看不起 PHP,说 PHP 太简单的人,往往是因为对 PHP 本身不够深入了解,其实 PHP 里面的东西一般人用到的很少,5.3 以上的特性也慢慢让这种语言生动起来,你越是深入,就越能发现它的强大和优势。
这里仅仅列出 PHP,Python 与 Ruby 的一些情况,让读者更好地挑选学习的语言。
语言没优劣之分,Just follow your passion.
本文整理自
知乎。
分享到:
相关推荐
与VB和PHP相比,Python和Ruby在语言设计上更加先进。虽然VB和PHP易于入门,但它们在处理大型项目时暴露出设计上的局限性。Python和Ruby提供了更强大、更优雅的解决方案,适合长期的、复杂的项目开发。 与Lisp、...
本篇文章将深入探讨三种流行的脚本语言——PHP、Python和Ruby在处理数据库和文件操作方面的差异与特点,以帮助开发者更好地理解它们各自的优势。 首先,PHP(Hypertext Preprocessor)是一种广泛用于Web开发的语言...
在编程世界中,PHP、Python和Ruby都是广泛使用的脚本语言,尤其在Web开发领域。它们各自具有独特的特性和优势,特别是在处理数据库和文件操作时。以下是对这三种语言在数据库和文件操作方面的一些比较。 首先,我们...
本文将探讨为何Python和Ruby对程序员如此重要,以及它们与其他编程语言相比的优势所在。 首先,Python和Ruby以其代码的简洁性著称。它们允许程序员用极少的代码行数完成相同功能的程序,相比Java、C++等语言,...
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
在互联网上,关于初学者应该选择哪种编程语言的讨论非常热烈,常见的选择有PHP、Python和Ruby。以下是对这三种语言的深入分析以及它们在实际应用中的优劣比较。 首先,PHP是一种广泛使用的服务器端脚本语言,尤其在...
gRPC – 一个 RPC 库和框架 gRPC 是一个现代的、开源的、高性能的远程过程调用 (RPC) 框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序能够透明地通信,并简化了连接系统的构建。 为了最大限度地提高可用...
Ansistrano ansistrano.deploy和ansistrano.rollback是Ansible角色,可轻松管理脚本编写应用程序(如PHP,Python和Ruby)的部署过程。 这是Capistrano的Ansible端口。 Ansistrano Ansistrano ansistrano.deploy和...
与 Java、PHP、C# 和 Ruby 等语言相比,Python 具有许多优点,使其成为开发者的首选语言。下面是 Python 安装包和安装教程的详细信息。 Python 的优点 1. 简单易学:Python 的语法简单易学,易于初学者上手。 2. ...
这个压缩包文件"生产规模的数据中心分析器CC Go Rust Python Java NodeJS PHP Ruby Perl.zip"包含了多种编程语言实现的数据中心分析器组件,这表明该工具可能支持跨平台和多语言集成。以下是对这些编程语言在数据...
LAMP 是一种流行的 Web 开发平台,由 Linux、Apache、MySQL 和 PHP、Perl、Python 或 Ruby 等脚本语言组成。LAMP 具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点,是目前最流行的 Web 开发...
作者Christopher Jones,作为Oracle数据库的产品经理,介绍了多种语言API,包括OCI、ODBC、ODPI-C、C++、OCCI、Java、JDBC、.NET、ODP.NET、Node.js、Python的cx_Oracle、PHP、Perl的DBD::Oracle、Ruby的ruby-oci8、...
该插件支持HTML 、 CSS 、 JavaScript 、 PHP 、 Python 、 Ruby 、 R和Stata 。 可以轻松添加对其他语言的支持。 目前,该插件仅在 Mac OS 上运行,但它可以扩展到使用 gloobus-preview 的其他 unix 系统以及使用 ...
与传统编程语言相比,Python以其简洁的语法和丰富的库资源,降低了学习和使用的门槛,使得非专业编程人员也能高效地提升工作效率。 Python的优势在于其通用性,它可以替代C、C++、Java、Ruby等语言的部分功能,并在...
apjp:APJP是用JAVA,PHP,PYTHON和RUBY编写的代理
在ddd-dynamic项目中,可能包含了各种示例和最佳实践,展示了如何在Python、Ruby等动态语言中应用这些原则,帮助开发者理解和实现DDD与Clean Architecture。 总的来说,ddd-dynamic项目提供了一个学习和探索如何在...
DevOps - Python / Shell / Ruby 数据采集 - Python / C++ / Java 量化交易 - Python / C++ / R 数据科学 - Python / R / Julia / Matlab 机器学习 - Python / R / C++ / Julia 自动化测试 - Python / Shell 作为一...
- Eric4 是一个基于 PyQt 的 IDE,非常适合 Python 和 Ruby 开发。 - 下载 Eric4 并解压后,通过运行 `install.py` 来安装。 - 确保 QtCore4.dll 所在的文件夹包含在环境变量 PATH 中,以便正确识别 PyQt 的组件...
- **PHP、Python、Ruby的(数据库、文件)比较(原创)**:通过对三种语言在处理数据库和文件操作方面的对比,为读者提供了一种横向比较的视角,有助于理解不同语言的特点和适用场景。 - **python_win32api操作**:专门...