当前位置: 首页 > 文档资料 > Ruby 入门教程 >

01 Ruby 简介

优质
小牛编辑
125浏览
2023-12-01

图片描述

Ruby Logo

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.02.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 的热门岗位包括:

  1. Ruby 或 Ruby on Rails 工程师;
  2. Ruby 或 Ruby on Rails 专职开发;
  3. 后端工程师;
  4. 全栈开发工程师(带有Ruby之类的语言);
  5. 敏捷软件开发人员;
  6. 构建发布工程师;
  7. Web 开发人员/软件工程师。

这是 Ruby China 上最近发的一些招聘帖子。

图片描述

Ruby 中文官网发布的招聘信息

这是每日统计全球网站使用的 Web 语言份额的一张截图:

图片描述

全球网站使用的 Web 语言份额

Ruby 是我最爱的一门语言没有之一,不过说到就业的问题,如果您在一线城市,学习 Ruby 是一个不错的选择。如果您在二线城市,能选择的机会就会很少,PHP 和 Java 会更好地找到工作。

6. 学习基础

Ruby 是一门对新手非常友好的语言,任何零基础的人都可以学习这门语言。由于语言特性,文章中会充斥着面向对象的思想,如果可能的话,最好先去理解一下面向对象的概念。