oracle ola

JRuby核心开发人员Ola Bini坐下来与InfoQ讨论Ruby以及他如何参与JRuby。 在采访中,Bini谈到了开发JRuby的挑战及其未来的发展方向。 除了采访之外,InfoQ还很自豪地展示了Bini的书《实用的JRuby on Rails Web 2.0项目》 。

您是如何参与Ruby和JRuby的?

因此,我一直(对于某些与25岁的人有关的价值观)一直是LISP负责人,但从来没有付账,所以我最终主要从事Java工作。 由于我也是某种语言/编译器极客,所以我一直都在逛各种语言,大约4-5年前我发现了Ruby。 我立即喜欢上它,并开始让我当时的工作场所从所有丑陋的Perl / AWK / Sed / bash脚本切换到使用Ruby。 事情进展得并不顺利,但是我还是开始渗透并将较小的系统任务转换为Ruby。 一段时间后,人们开始注意到并看到好处。 然后,Rails出现了……很长时间以来,Java一直是我们的Web开发平台,但是Rails承诺会提供更好的存储。 我花了18个月的时间和两次申请使工作场所信服(而当我说服时,这不仅意味着我的老板,还意味着管理层-这是困难的部分)。 这就是我的Ruby故事。 据我所知,该雇主现在根据任务在使用50/50 Ruby / Java,所以我想我在那儿给人留下了深刻的印象。

在使用Java的那些年里,我总是试图找到一种更好的方法。 我逐渐意识到,我的问题不是Java或JVM,而是Java语言本身。 看到很多语言,这很明显使Java作为一种语言变得多么残缺。 我知道其瘫痪的原因,但这仍然不能解决我的问题。 所以我想到了Java之上的其他语言。 我成为Jatha项目(Java之上的Common Lisp)的提交人,但是由于种种原因,我感到大多数地方仍然不允许使用Lisp,因此我转向了Ruby(当您获得时,它非常像LISP。下来)。 简而言之,这就是我找到JRuby并开始对其做出贡献的方式。 那差不多是两年前了。

您最喜欢Ruby语言的功能是什么?

我没有一个我真正喜欢的非常大的功能-Ruby的问题是,所有小东西都组合在一起,形成了非常令人愉悦的体验。 但是从语言的角度来看,最重要的功能肯定是作为混入模块和不引人注意的块的模块。

随着JRuby进入更多的开发商店和企业,您是否仍会强烈需要像Java领域那样的框架?

我认为无论您使用哪种语言,框架都是生活的一部分。 我们之所以没有在Ruby中看到许多框架的原因,基本上是因为大多数人都没有解决它的大问题,所以对不同事物的许多框架的需求还没有出现。 当然,当语言更强大时,诸如DI框架或AspectJ之类的东西就会失去其含义。

在书中,您提到在说服您的雇主开始使用Ruby上花了两年多的时间。 今天仍然存在哪些障碍,可能阻碍开发人员说服他们的员工拥抱JRuby?

开始使用Ruby的障碍是由于保守主义以及事实上,尽管Ruby在那时已经存在了很长时间,但它仍然被认为是一种非常新的技术。 公司通常都非常保守,而JRuby也会发生同样的事情-尽管确实使JRuby变得更好,但事实是它在Java上运行。 能够将Java添加到对话中使JRuby更加容易接受。 目前,JRuby的另一个问题是缺少文档-我们有一些文档,但需要做得更好。 希望我的书能对其中的一些有所帮助。

越来越多的Ruby / JRuby IDE可用。 您觉得市场上还缺少某些功能或工具吗? 您是否将IDE用于Ruby开发?

那很有趣。 我实际上根本不使用任何IDE。 我是Emacs的狂热用户。 我无法真正放弃成千上万的将Emacs定制为我选择的环境的E-lisp代码。 也就是说,NetBeans和IntelliJ的Ruby支持中的许多功能看起来都非常酷。 我知道所有其他JRuby核心开发人员一直都在使用NetBeans。

您已经提到在使用AR-JDBC支持时,使用JDBC驱动程序的数据库实现会感到沮丧。 作为JRuby贡献者,您还面临哪些其他挑战?

是的,处理数据库从来都不是我一生中最有趣的部分。 但是实际上,我认为我在博客文章中有些夸张。 如果您了解这些内容,我发现的内容将是很小的-但我喜欢将它们编写出来,以便Google可以为其他人找到。

JRuby本身有一些不同的问题领域,但是这些问题主要是由某些特定的Ruby功能引起的。 例如,ObjectSpace是一种痛苦和资源消耗的问题,因此我们正在考虑默认情况下将其关闭。 而且,Ruby有许多不错的极端情况,它们可能导致怪异的行为甚至错误。 有时,我们不得不削弱JRuby来模仿Ruby行为,这对于所有看到它的人来说似乎都是错误的-我们希望JRuby完全兼容1.8,即使这意味着包括错误。

有人说,依赖注入以及诸如Spring之类的附带框架在Ruby领域中并不那么重要。 您认为这在JRuby领域是否成立?

我同意Ruby本身根本不需要DI框架。 但是JRuby可以很好地利用它,特别是在将Java和Ruby混合使用的边界上。 例如,您可以使用Spring编写Ruby bean脚本。 使用Spring将Ruby代码注入Java的方法在很多地方都使用过(包括Waffle,这是ThoughtWorker的Michael Ward的新网络框架)。 因此,对于JRuby绝对有一个地方。

似乎有孤立的JRuby实例可用于公开可用的生产软件,唯一的例外是Thoughtworks最近发布的Mingle产品。 您为什么认为我们还没有看到更多使用JRuby的示例?

现在,大多数人都处于JRuby产品的开发阶段。 TW开发基于JRuby的产品如此之快的事实是,之前有很多代码是用MRI编写的,然后移植到与JRuby一起使用。 而且,Mingle团队由非常有才华的程序员组成-没有所有这些因素,我认为不可能很快地使Mingle脱颖而出。

现在,我知道一些使用JRuby的网站和项目-大多数处于开发中,并且大多数都还没有谈论它。 但是我希望几个月后会发布一些公告。

什么样的项目最适合JRuby? 哪些项目不合适? 为什么?

好吧,当我们谈论与Java系统集成时,当部署依赖于不习惯Rails部署的IS部门时,JRuby非常适合。 实际上,在所有涉及Java的所有情况下,JRuby都是一件好事。 它还有助于改善总体部署情况。 第二部分很难回答。 如果您正在做一个简单的CRUD Rails应用程序,那么JRuby可能会过大。 当您的应用程序为中型或大型时,您往往会从JRuby中获得更多好处。

在您看来,JRuby领域在不久的将来会发生什么最令人兴奋的事情?

1.1真的很酷。 当我们完成完全的预编译后,JRuby的新市场将打开。 此外,一旦Rails的总体性能提高,我相信许多Rubyists都会引起更多关注。

从更长远的角度来看,我认为Rubinius的工作非常重要,我们可以互相帮助的一切都会令人兴奋-使用Ruby实现大多数核心库,等等。

翻译自: https://www.infoq.com/articles/bini-interview/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

oracle ola

oracle ola_访谈和书摘:Ola Bini,“实用的JRuby on Rails Web 2.0项目”相关推荐

  1. oracle中更改表名语句,转:取Oracle 表名 字段名 注释等实用语句

    1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type fromuser_ind_columns t,user_indexes i where t.inde ...

  2. Oracle 知识篇+RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要

    说明:本文为Oracle RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 ①带库备份 rman targ ...

  3. Scikit-Learn TensorFlow机器学习实用指南(二):一个完整的机器学习项目【上】

    机器学习实用指南(二):一个完整的机器学习项目[上] 作者:LeonG 本文参考自:<Hands-On Machine Learning with Scikit-Learn & Tens ...

  4. oracle 处理英文日期格式,日常收集整理oracle trunc 函数处理日期格式(很实用)

    本文给大家分享的oracle trunc 函数处理日期格式的相关知识,非常具有参考价值,具体请看下文说明吧. 复制代码 代码如下: select to_char(sysdate,'yyyy-mm-dd ...

  5. oracle导出数据库中表出现导出报错(EXP-00003)未找到段 (0,0) 的存储定义

    前两天在使用oracle数据库,使用dba用户利用PL/SQL 中的tool中export table导出表结构时,出现了如下问题: 好多张表"报错(EXP-00003)未找到段 (0,0) ...

  6. oracle bloom过滤,CSS_Oracle BLOOM过滤问题分析与解决,升入11.2.0.1遇到一个BLOOM过滤器 - phpStudy...

    Oracle BLOOM过滤问题分析与解决 升入11.2.0.1遇到一个BLOOM过滤器导致的问题. 系统里面发生大量死锁,但是这个ORA-60伴随着另一个错误ORA-10387 ORA-00060: ...

  7. Oracle occi 抓包,instantclient 32下载-instantclient-basic(轻量级数据库)32位 11.2.0.4.0 官方版 - 河东下载站...

    instantclient-basic(轻量级数据库)32位是款完全免费的数据库客户端:提高这款软件,您可以不用进行安装标准的客户端,就可以支持您使用OCCI.ODBC程序等,还不要进行修改,就可以正 ...

  8. 墨天轮访谈 | SelectDB 衣国垒:Apache Doris(incubating)1.0版本特性解析与未来规划

    分享嘉宾:衣国垒 Apache Doris Committer.SelectDB 联合创始人&CTO 整理:墨天轮社区 导读 大家好,我是来自Apache Doris社区的衣国垒,也是Sele ...

  9. Linux下C开发实用小技术、好代码总结 —— 银行项目

    我现在从事的工作是做银行外包的软件项目(HCE.ApplePay)的后台业务处理,作为公司外派人员,在银行上班.主要开发环境就是在Red Hat的linux服务器上用C语言进行二次或者三次的开发来实现 ...

最新文章

  1. 每天工作4小时的程序员【转】
  2. wp10 android,WP10能在Android机正常用不?
  3. 更改ORACLE归档路径及归档模式
  4. codeforces 480B B. Long Jumps(贪心)
  5. linux apt qt下载,Linux如何安装 apt-get 软件管理工具
  6. 8-1:C++继承之对继承的理解和继承的基本使用,继承的格式
  7. OpenShift 之 Quarkus(4)用集成的Prometheus监控Quarkus应用
  8. Angular 4.0 安装组件
  9. python求解二次规划_二次规划问题
  10. 雷神台式计算机配置,雷神新用户手册:拿到新电脑时如何简易设置参数!
  11. 计算机硕论题目,硕士论文题目精选(计算机方向)
  12. 信用评分模型详解(上)之 评分卡模型
  13. 什么是MergedBeanDefinition?
  14. Python个人总结(基础+进阶)
  15. 华为笔记本怎么激活windows_HUAWEI MateBook笔记本怎么激活Office?
  16. LDU 2022年2021级测试赛-1
  17. 统计学习方法-感知机概括和补充
  18. 01_国家卫生部PACS相关标准
  19. NVIDIA DLI——深度学习基础-理论与实践入门
  20. 信息系统项目管理师考试、报名、复习、备考问题大全

热门文章

  1. Windchill:oid获取对象、对象获取oid
  2. 2014025640《大四实习》第*周学习总结
  3. 【VSCode】 VSCode配置LeetCode插件
  4. 狼人杀暂时未连接到语音服务器,狼人杀连接服务器失败 连接不上网络怎么办...
  5. python 显示表格数据_python显示excel表格数据-怎么用python读取excel表格的数据
  6. Linux:如何让内网的服务器能上网
  7. python 代理ip群发邮件1000人_python 群发邮件数量限制_qq邮箱群发邮件的数量和速度限制是多少?...
  8. LittleFS - 一个高度完整的嵌入式文件系统
  9. 【路径规划-TSP问题】基于粒子群结合蚁群算法求解旅行商问题附matlab代码
  10. java erc 2.0_如何使用java监听Erc20Token交易