最近我的项目经理要求我从事InterSystems Cache ObjectScript的工作。早些时候,我曾经担任Java开发人员(J2EE)。所以我的问题是缓存与Java有什么不同。比较会很棒。
Caché ObjectScript 与 Java 非常不同,几乎没有共同之处。它更像是动态类型的编译脚本语言,内置元语言(类定义),并且具有编写良好代码所需的大量功能。所有代码都被编译为一个低级(但非常可读)的所谓例程代码,并由DBMS Caché及其应用程序引擎处理。
以这个参考为例。您可能会注意到,有许多奇怪的符号和结构,例如$
,$$
,$$$
,##class
,&sql(...)
,&javascript<...>
,#dim
,$System
,.#
,$get
,$zu(...)
,%
,^%
,{ ... }
,...(这个列表很大)。一些语言功能乍一看是非常不可预测的。例如,函数$get(...)
看起来像一个基金会,但静默地充当一个try/catch语句,以及$data
和其他一些系统函数。
因此,请准备好使用InterSystems文档!此外,最近开发的InterSystems社区是一个很好的资源。在谷歌搜索时,你可能会从互联网上找到很多答案,但请记住使用"intersystems"或"objectscript"关键字进行搜索。但是很多东西你不会在那里找到,在这种情况下,你应该使用InterSystems文档或社区来提问。一旦你习惯了这门语言(对我来说花了6个多月),你就会对它更有信心。
另外值得一提的是,Caché ObjectScript 字面意思是"恐龙"语言,它随着时间的推移而涉及和升级。这就是为什么有这么多不同的功能。其中一些你不应该再使用:例如,与其像人们在引入OOP概念之前那样在例程中编写代码,不如使用类。ObjectScript的JSON功能(在ObjectScript中编写JSON的能力)大约在1年前被引入。您可能会在 Caché 中找到大量"史前"代码,并且应该正常对待它:这是一个非常庞大的生态系统。
希望这有帮助,祝黑客愉快!