Ruby语言发展史(个人理解)

news/2024/4/24 10:27:46/

Ruby是一种动态、面向对象、通用的编程语言,它由松本行弘(Yukihiro Matsumoto)创造,最初于1995年发布。Ruby的设计目标是“人性化”,即让编程更加简单、自然和可读性强。Ruby的开发历程可以分为以下几个阶段。

1. Ruby的起源

Ruby最初的版本是在1995年2月24日发布的。当时的Ruby只是一个非常简单的、基于类的编程语言,它受到了Perl、Lisp、Smalltalk等语言的影响。Ruby最初的目标是为日本的开发人员提供一种易于学习和使用的编程语言,以满足日益增长的互联网应用的需求。

2. Ruby的发展

随着时间的推移,Ruby逐渐发展成为一种功能强大、易于使用的编程语言。在1997年发布的版本中,Ruby增加了块(block)的概念,这使得编程更加简单和灵活。在2000年发布的Ruby 1.6版本中,Ruby的性能得到了大幅提升,同时还增加了异常处理机制和模块(module)的概念,使得Ruby的代码更加模块化和易于复用。

在2003年,Ruby 1.8版本发布。这个版本引入了RubyGems包管理系统,使得Ruby的扩展和库更加易于管理。此外,Ruby 1.8还加入了正则表达式的支持和单元测试框架。

3. Ruby on Rails

Ruby on Rails(简称RoR)是一个基于Ruby语言的Web开发框架,它的出现彻底改变了Web开发的方式。Ruby on Rails采用了“约定优于配置”的开发方式,使得开发人员可以更加专注于业务逻辑的实现,而不是配置和管理底层的技术细节。

Ruby on Rails的出现也使得Ruby语言得到了广泛的关注和应用。许多知名的网站,如GitHub、Basecamp、Shopify等,都是基于Ruby on Rails开发的。

4. Ruby 2.0

Ruby 2.0是Ruby语言的一个重要的版本发布。它在2013年发布,引入了一系列新功能和性能优化。其中,Ruby 2.0增加了关键字参数的支持、引入Refinements机制、增加了Fiber类等。同时,Ruby 2.0还对内存管理和垃圾回收机制进行了优化,提高了Ruby的性能和稳定性。

5. Ruby 3.0

Ruby 3.0是Ruby语言的最新版本,于2020年12月发布。Ruby 3.0引入了一系列新特性和性能优化。其中,Ruby 3.0增加了多线程并行执行机制、引入了Ractor机制、增加了Pattern Matching等。Ruby 3.0还对执行效率进行了优化,提高了Ruby的性能。

总之,Ruby语言的发展历程可以说是一步步迈向成熟和完善的。从最初的简单、易用,到功能丰富、性能优化的Ruby 3.0版本,Ruby语言一直在不断地进化和发展,为开发人员提供了一个强大、灵活、易于使用的编程语言。


http://www.ppmy.cn/news/48167.html

相关文章

Python-DQN代码阅读(12)

目录 1.代码 1.1代码解读 1.2 代码分解 1.2.1 latest_checkpoint tf.train.latest_checkpoint(checkpoint_dir) 1.2.2 saver.restore(sess, latest_checkpoint) 1.2.3 sess.run(tf.global_variables_initializer()) 1.2.4 deep_q_learning() 1.3 输出结果 1.4 问题 1…

如何搭建自己的博客网站(手把手教你搭建免费个人博客网站)

没有前言直接开始正文,搭建一个博客需要服务器,域名,博客程序。 博客程序常用的有wordpress,z-blog,typecho等等,其中wordpress和z-blog最为简单,typecho需要一定的技术含量,这里暂…

【状态估计】用于描述符 LTI 和 LPV 系统的分析、状态估计和故障检测的算法(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

3、公司法规 - 开公司创业系列文章

法律内容 第一章 总 则 第一条 为了规范公司的组织和行为,保护公司、股东和债权人的合法权益,维护社会经济秩序,促进社会主义市场经济的发展,制定本法。 第二条 本法所称公司是指依照本法在中国境内设立的有限责任公司和股份有限…

ijkplayer编译支持x264编码器

ijkplayer作为一款基于ffmpeg在移动端比较流行的播放器,并没有集成编码器。如果使用ffmpeg且需要音视频编码功能的话就需要自己手动集成。 编译支持x264编码器的流程主要参考了 ijkplayer支持x264编译 - 简书 原理与ijkplayer编译支持openssl的流程类似。 1 下载x…

SSeg总体思路

1:在train中加载train和test数据集。 2:指定数据集为kitti,确定训练验证的batchsize。 3:提前定义好数据预处理,首先是几何变换,包括随机裁切等。 4:然后是外观变换,包括高斯滤波…

标准C库函数之memcpy(内存函数)

memcpy函数 memcpy函数是C标准库(string.h库)中一个非常重要且常用的函数。它用于将一段内存区域的内容复制到另一个内存区域。这个函数在底层使用内存操作进行数据复制,通常比逐个元素的复制更高效。 memcpy函数的原型如下: #in…

PCB阻焊桥存在的DFM(可制造性)问题,华秋一文告诉你

PCB表面的一层漆,称为阻焊油墨,也就是PCB线路板阻焊油墨。阻焊油墨是PCB线路板中非常常见、也是主要使用的油墨,一般90%都是绿色,但也有杂色油墨:红色、蓝色、黑色、白色、黄色等。 阻焊油墨的作用就是绝缘&#xff0…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型(annotator)下载链接: 预处理模型安装地址: 3.ControlNet模型下载 Controlnet模型下载地址: Controlnet模型安装目录: 注:&…

English Learning - L2 语音作业打卡 语音语调四步法 Day59 2023.4.20 周四

English Learning - L2 语音作业打卡 语调四步法 Day59 2023.4.20 周四 💌发音小贴士:💌当日目标音发音规则/技巧:🍭 Part 1【热身练习】🍭 Part2【练习内容】🍭【练习感受】🍭 Part3【存在问题…

JDBC使用

目录 1.JDBC常用接口和类 1 JDBC API 2 数据库连接Connection 1.通过DriverManage 2.通过DataSource对象获取 3.Statement对象 4.ResultSet对象 2.步骤 3.代码 1.JDBC常用接口和类 1 JDBC API 在Java JDBC编程中对数据库的操作均使用JDK自带的API统一处理,…

40岁以上的程序员还容易找到工作吗?聊聊我自己的亲身经历

今天我们来讨论一个比较热门的话题,那就是程序员。如果到了40岁以上还容易找到工作吗?这个问题呢,其实是一个非常现实的问题,也是我们程序员非常关心的一个问题。因为我们每一个程序员,他都会有到40岁的那一天。 首先…

《花雕学AI》12:从ChatGPT的出现看人类与人工智能的互补关系与未来发展

马云说道,ChatGPT这一类技术已经对教育带来挑战,但是ChatGPT这一类技术只是AI时代的开始。 谷歌CEO桑德尔皮猜曾说:“人工智能是我们人类正在从事的最为深刻的研究方向之一,甚至要比火与电还更加深刻。” 360周鸿祎认为&#xf…

LinuxGUI自动化测试框架搭建(十五)-截图功能screenShort.py封装和调用

(十五)-截图功能screenShort.py封装和调用 1 实现目的2 测试需求3 需求分析4 详细设计4.1 创建脚本4.2 截图名称命名规则4.3 脚本设计5 创建截图保存目录6 完整截图功能代码7 登录成功后调用截图8 baseInfo.py脚本更新后的代码9 截图效果10 目前框架结构1 实现目的 有时候我…

shell中的for循环和if判断

一.编写脚本for1.sh,使用for循环创建20账户,账户名前缀由用户从键盘输入,账户初始密码由用户输入,例如: test1、test2、test3、.....、 test10 1.创建脚本for1.sh [rootserver ~]# vim for1.sh 2.编写脚本for1.sh 3.执行脚本for1.sh [roo…

基于Java+Springboot+Vue+elememt美食论坛平台设计实现

基于JavaSpringbootVueelememt美食论坛平台设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文…

vue3新的组件

1.Fragment - 在Vue2中: 组件必须有一个根标签 - 在Vue3中: 组件可以没有根标签, 内部会将多个标签包含在一个Fragment虚拟元素中 - 好处: 减少标签层级, 减小内存占用 没有写根标签,也没有报错,如果是在v2中,我们还需要用一个div来包裹它 …

Android监听消息(二)——电话及短信监听

学更好的别人, 做更好的自己。 ——《微卡智享》 本文长度为2747字,预计阅读6分钟 前言 前面一篇《Android监听消息(一)——应用消息捕获》我们使用NotificationListenerService实现了应用的消息监听,但是电话和短信是…

WPF教程(二)--Application WPF程序启动方式

1.Application介绍 WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.…

软考-项目管理科学基础(二十一)

第21章项目管理科学基础 (P607考5分择) 21.1.2项目经济评价 根据是否考虑资金的时间价值,投资项目经济评价方法可分为两类:静态评价和动态评价。 1.静态评价方法 静态评价是指在进行项目方案效益和费用的计算时,不考虑资金的时间价值,不计利…