01 Ruby 简介
1. 什么是 Ruby?
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在 20 世纪 90 年代由日本人松本行弘(Yukihiro Matsumoto,别称:Matz)开发,遵守 GPL 协议和 Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 语言。——官方定义
Matz 希望他设计的语言简单又强大,简答到可以让新手程序员学习起来不会很困难,而强大到让经验丰富的程序员可以从这门语言中获取到想要的一切。
这一开始,似乎是矛盾的,但是 Matz 实现了他的目标,于是 Ruby 横空出世。
2. Ruby 的版本
Ruby 的第一版本自 1995 年发行,Ruby 版本号的构成形式是 (MAJOR).(MINOR).(TEENY)
,均为只有1 位的整数;如 “1.8.6”、“1.9.3”。截止至今,最新稳定版的版本为 2.7.0
,2.3.8
及以下的版本已不再维护,本书版本使用倒数第二个版本 2.6.5
,通常来讲,每一个 MINOR 的最后一个版本都是最稳定的。
3. Ruby 的特性
Ruby 是最纯粹的面向对象编程语言。因为与其他语言不同,Ruby 没有基本类型,所有内容都被视为对象,包括整型(1、2、3)浮点型(1.0、2.0、3.0)等等。
此外,Ruby 是一种脚本语言。 脚本语言是一种解释型的语言,不需要编译。因此 Ruby 可以通过嵌入其他程序中来控制他们。
Ruby 很推崇领域特定语言(DSL),通俗来说就是可以让 Ruby 的语法更加语义化的语言。
实例:
watch :game do
end
get :id_card
increase :balance
在 Ruby 中我们可以很容易地实现这样的写法,充分体现了 Ruby 这门语言的灵活性。
4. 为什么学习 Ruby?
Ruby 的语法非常的简洁,所有的语法已经达到最简洁,没有多余的语法糖,没有像 Java 那么多的条条框框,可以把更多的精力关注于要干的事情上。优秀的语法让您的工作更加轻松,更喜爱您的开发工作。
举一个例子,在 Java 中,我们输出一个 Hello World 需要这样写:
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
对于从没接触过编程的人,看到上面的代码肯定会非常困惑,这些代码这什么要这么写? 怎么这么复杂?更有意思的是,越是资深的程序员越会赞成这种想法。
而 Ruby 输出 Hello World 只需要这么一行:
p 'Hello World'
最常见的,它可以与 Rails(一种流行的 Ruby 框架,简称:ROR)结合使用,用于开发 Web 应用程序。Rails 能做到15分钟搭建一个网站。 这个是其他语言无法做到的。
它是一门用于文本处理和中间件程序的优秀脚本语言,许多开发人员将 Ruby 用作 Perl 的替代品。
Ruby 的资源丰富。它拥有大量的文档、书籍、视频、在线课程、开发论坛(Ruby China 等)等等,并且拥有超过 60000 个库和多种框架可供选择。RubyGems 就是为 Ruby 用来管理该语言构建的众多框架和库创建的。
5. Ruby 市场需求
Ruby 开发人员的工作都与 Web 开发有关,这些工作大多数要求了解 Rails 框架、其他开发语言或工具。
Ruby 的热门岗位包括:
- Ruby 或 Ruby on Rails 工程师;
- Ruby 或 Ruby on Rails 专职开发;
- 后端工程师;
- 全栈开发工程师(带有Ruby之类的语言);
- 敏捷软件开发人员;
- 构建发布工程师;
- Web 开发人员/软件工程师。
这是 Ruby China 上最近发的一些招聘帖子。
Ruby 中文官网发布的招聘信息这是每日统计全球网站使用的 Web 语言份额的一张截图:
全球网站使用的 Web 语言份额Ruby 是我最爱的一门语言没有之一,不过说到就业的问题,如果您在一线城市,学习 Ruby 是一个不错的选择。如果您在二线城市,能选择的机会就会很少,PHP 和 Java 会更好地找到工作。
6. 学习基础
Ruby 是一门对新手非常友好的语言,任何零基础的人都可以学习这门语言。由于语言特性,文章中会充斥着面向对象的思想,如果可能的话,最好先去理解一下面向对象的概念。