其实,我不确定Quercus是否可以被认定为一门JVM语言;其次Quercus这个东东分开源版与商业版,开源版只能解释执行、而商业版能编译成Java字节码。

但我知道国内,阿里巴巴很早就在使用它,当然,他主要是把它作为一个前端页面的模版引擎,提供给用户自定义商铺样式时数据调用。

这也是一种典型的使用场景。

为什么PHP(包括流行的很多语言)不被接受为一种企业级的开发语言,个人以为正是我们用的最顺手的“动态数据类型”,企业级的应用需要数据有很强的可靠性、一致性,Java这样的强类型、编译性语言,能从开发测试阶段提供尽可能高的错误检出率,而很多人在用PHP开发的阶段就屏蔽/不关注系统错误提示,只要一个功能能走通就ok。

而Java发展这么多年,已经有了足够甚至说太多的各种框架、库,可用于企业级开发,在JVM环境使用PHP,可以提高业务前端的开发效率,而底层使用Java的这些框架、库,确保数据的一致性、可靠性,并且可以使用Java很多技术和特性。

这个东东,我关注了很久,但无奈小团队,没有环境来完成相关实践的检验。

以下是翻译的其官方站点上的介绍,网上有很多翻译的,但可能没有遵循原文的逻辑:

Quercus是Caucho公司纯采用Java开发的一个PHP5引擎,基于开源授权协议GPL发布。Quercus自带很多个PHP模块和扩展如PDF、PDO、MySQL和JSON。Quercus使得可以将Java服务与PHP程序紧密集成,不费吹灰之力在PHP脚本中调用Java服务如JMS、Grails。

通过Quercus,PHP应用程序自动具备了使用了Java应用服务器的优秀特性,如连接池、集群化会话(clustered sessions)等。

Quercus实现了PHP 5语言标准,并且PHP扩展的开发不断完成,包括APC, iconv, GD, gettext, JSON, MySQL, Oracle, PDF, and Postgres。很多流行的PHP程序在Quercus中可以和在PHP解释器运行的只好不差。这是一份不断增加的PHP软件清单:DokuWiki, Drupal, Gallery2, Joomla, Mambo, Mantis, MediaWiki, Phorum, phpBB, phpMyAdmin, PHP-Nuke, Wordpress and XOOPS。

Quercus代表在Web应用与Web服务领域,Java与PHP相互整合的一种新的混合式思路。PHP应用开发过程中,可以选择使用Java的库及技术如JMS, EJB, SOA 框架, Hibernate, 与 Spring。这可能带来一些革新性的可能性,因为:

1) PHP代码被解释/编译成Java;

2)Quercus和它的库用Java编写;

这种架构使得PHP应用程序与Java库直接进行“对话”,因为都在同一个程序层(译注:这里是针对php的一个扩展php bridge)。为促进这种新的Java/PHP架构,Quercus提供了API及接口将Java库暴露给PHP使用。

官方提供了Quercus .war文件可以在Java应用服务器上运行,这样,它其实可以在Resin之外运行(译注:Caucho公司主要是提供Resin服务器的),该文件包含Quercus解释器与PHP库。

这里是一些参考资源:

  • Getting Started Guide
  • Quercus documentation
  • Caucho wiki
  • Caucho forums
  • Bug Tracking

比较偏门的JVM语言Quercus - PHP on JVM相关推荐

  1. jvm与非jvm语言优劣_都灵JVM编程语言:使用ANTLR构建高级词法分析器

    jvm与非jvm语言优劣 正如我在上一篇文章中所写的那样,我最近开始研究一种名为Turin的新编程语言. 可以在GitHub上找到适用于languag初始版本的编译器. 我目前正在改善语言,并正在开发 ...

  2. 聚焦Magik –最新的JVM语言

    Invokedynamic实际上是Java和JVM的游戏规则改变者. 它回到Java 7实质上打开了进入JVM语言之门的大门,尤其是通过JSR 292实现的动态语言. 尽管从未取缔,但是将语言引入JV ...

  3. 该如何从教育行业转行做IT——我的真实经历给出的偏门答案

    "我需要,最狂的风,和最静的海."--顾城 本文是对想要入行IT,但是没时间没钱上IT培训班的小伙伴的一些小小的建议,我即将要说的是最近发生在我自己身上的事,这些可以成为" ...

  4. 第1章 JVM语言家族概览 《Kotin 编程思想·实战》

    第1章 JVM语言家族概览 天地和而万物生,阴阳接而变化起.<荀子·礼记> 1.1 编程语言简述 1.1.1 编程语言是什么 所谓编程语言只是一个抽象的规范,而编译器是这个规范的实现,它是 ...

  5. AI(人工智能)下一个偏门行业赚钱的契机

    当有人问AI(人工智能)是什么? 很多人也许都能说上几句,但理解也就是简单的局限在概念上,实际上自己也不清楚自己懂多少. 现在的这一情景,可不就像极了二十年前的互联网.那个年代,好多人都听说过互联网, ...

  6. 从零开始开发JVM语言(十三)代码生成与ASM

    2019独角兽企业重金招聘Python工程师标准>>> 目录戳这里 如果能够做完语义分析,得到带类型的AST,或者更接近于虚拟机字节码的结构,那么你离整个编译器的"落成&q ...

  7. ue4相机_[UE4]偏门实用技巧合集

    前言:不论是玩游戏,还是玩软件,我对操作和技巧都有着痴迷的追求.而且是个快捷键狂魔.[SD plugin] 快捷键创建节点重新排布插件(nuke UE4风格) 从这个工具就能看出来,我对快捷键的执着, ...

  8. Hive _偏门常用查询函数(三)附带实例(Rank)

    接上两篇博客 Hive _偏门常用查询函数(一)附带实例 https://blog.csdn.net/qq_41946557/article/details/102904642 Hive _偏门常用查 ...

  9. Hive _偏门常用查询函数(二)附带实例(列转行、窗口函数)

    接上篇博客: Hive _偏门常用查询函数(一)附带实例 https://blog.csdn.net/qq_41946557/article/details/102904642 列转行 1.函数说明 ...

  10. SRC漏洞挖掘之偏门资产收集篇

    写这篇文章的目得,就是跟大家分享一下平时我挖src漏洞的一些经验,当自己挖到某个站点的漏洞时,往往就会欣喜若狂的往src平台上提交,得到的结果却是 "漏洞已重复,感谢提交" ,其实 ...

最新文章

  1. 聊一聊Java 泛型通配符 T,E,K,V,?
  2. python wxpython backend wxagg_如何刷新wx.面板正确地?
  3. mysql ddl dql_mysql DDL、DML、DCL、DQL区分
  4. 10分钟带你逆袭kafka之路
  5. IP地址、子网掩码、网关、默认网关、DNS的理解
  6. 计算两个日期相差天数的最简洁的代码
  7. python中正则表达式的用法_详解Python中的正则表达式的用法
  8. 使用scrapy-redis构建简单的分布式爬虫
  9. 是否可以从头来过——时间旅行为什么不可能
  10. mysql卸载报错1606_MySQL5卸载及重装出错问题记录
  11. 双线macd指标参数最佳设置_手机mt4平台怎么使用macd双线指标
  12. mysql汉字转拼音首字母报错_MySQL 汉字转拼音
  13. 谷歌引擎html,国内免费使用谷歌翻译引擎
  14. unix网络编程——网络基础
  15. openGL使用方法教程
  16. 蓝丝雨零基础学习按键精灵VIP教程合集
  17. [Java聊天室服务器]实战之六 去除死链接
  18. 夯实数据库根科技,提升企业数智化转型的“人效”和“能效” | 数据猿
  19. PHP2cgoto加密解密
  20. 计算机初学者的干货(写的非常好本人推荐)

热门文章

  1. 123 Python程序中的线程操作-协程
  2. 微信小程序 解决disableScroll无法禁止小程序下拉的问题和视频铺满全屏尺寸
  3. 【hihocoder 1032】最长回文子串
  4. C#应用视频教程3.4 Halcon+C#测试
  5. (实例篇)php 使用redis锁限制并发访问类示例
  6. hadoop远程调试
  7. 【译】WebSocket协议第五章——数据帧(Data Framing)
  8. Oracle USE_LARGE_PAGES初始化参数
  9. 亚马逊股价继续大涨 首度突破每股800美元
  10. [资源整理]关于前端设计的那些博客儿~