If you develop in IRIS you are confronted with two major phenomena:
- an incredibly fast and excellent designed data storage engine
- a scripting language to work on this storage engine, actually named ObjectScript
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output. Programming languages generally consist of instructions for a computer. Programming languages can be used to create programs that implement specific algorithms.
It's a general tag that covers the topics related to programming with InterSystems Data Platform using different languages.
If you develop in IRIS you are confronted with two major phenomena:
I have just created a new Global Master Topic, "IRIS Cheatsheets". IRIS has introduced a lot of new functionality, especially in scripting languages, FHIR R4 support, enhanced Interoperability Tools, and IRIS Analytics. Having spent 35 years working on Windows-based PC's and Laptops, I have surprisingly little knowledge of Linux, Docker and Git. Furthermore, I have written almost every application and Interface in ObjectScript with splatterings of SQL, .Net, and Java Gateways and the most basic knowledge of WinSCP, Putty, SSH. All that changed when I received my first Raspberry Pi. I first had
In the Caché Foundations course, students are learning about Caché Development and ObjectScript syntax at the same time. To help students complete the exercises, we provide an ObjectScript Quick Reference (aka "the Cheat Sheet").
It is not a reference for all of ObjectScript! It is a list of the ObjectScript commands and functions that students use during the course, along with common syntax for objects, collections, etc. It also contains some useful macros.
We are providing a pdf version to the Developer Community.
Hey I am very new to Intersystems Objectscript and I am trying to find a way of extract 4 digit numbers from a stream.
I have a stream full of results
2334
3434
5543
4334
And I am trying to remove each 4 digit grouping from the stream.
I have tried the following for loop
for i=1:1:$length(result) {
set curr = $extract(result, i)
write !, curr
set count(curr) = $get(count(curr)) + 1
}
Unfortunately the loop extracts one digit.
Does anyone have any suggestions on how to solve this ?
What do you think If I will say you, that very soon you will be able to connect to IRIS from the application written in Rust.
Rust is a multi-paradigm programming language designed for performance and safety, especially safe concurrency. Rust is syntactically similar to C++, but can guarantee memory safety by using a borrow checker to validate references. Rust achieves memory safety without garbage collection, and reference counting is optional. (c) Wikipedia
Most loved language for the last five years by the time of StackOverflow survey 2020.
InterSystems IRIS includes dynamic object gateways for Java, .NET, and (now) Python. These gateways allow your IRIS application to use libraries in these languages, removing the need to create everything from scratch in ObjectScript.
Class Queries in InterSystems IRIS (and Cache, Ensemble, HealthShare) is a useful tool that separates SQL queries from code. Basically, it works like this: suppose that you want to use the same SQL query with different arguments in several different places.In this case you can avoid code duplication by declaring the query body as a class query and then calling this query by name. This approach is also convenient for custom queries, in which the task of obtaining the next row is defined by a developer. Sounds interesting? Then read on!
Hi,
I'm looking for a way to run ZPM (especially install) in a total silent mode with no output.
I tried -quiet flag but it continues to chat to me like my wife.
I've noticed Caché has bindings for several languages. Would there be a reason to, or are there any plans to include bindings for the Rust language? I haven't been able to find any information on the topic.
Hey Developers,
New "Coding Talk" video was specially recorded by @Maks Atygaev for the IRIS Programming Contest:
This series of articles would cover Python Gateway for InterSystems Data Platforms. Execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:
The plan for the series so far (subject to change).
Hi Community!
You're very welcome to watch a new video on InterSystems Developers YouTube, recorded by @Benjamin De Boe, InterSystems Product Manager:
This series of articles would cover Python Gateway for InterSystems Data Platforms. Leverage modern AI/ML tools and execute Python code and more from InterSystems IRIS. This project brings you the power of Python right into your InterSystems IRIS environment:
The plan for the series so far (subject to change).
Hey developers,
I have great news for you. A few days ago, GitHub was updated with the latest version of linguist project, which is being used to recognize source code types in repositories. It helps to determine which programming language had been used in every file of the repository. Repository statistics section shows the results of this module work.

Also, you can search across all available GitHub repositories for any chosen language.
Pieter Brueghel the Younger, Paying the Tax (The Tax Collector), 1640
Neuschwanstein Castle
Tabular data storages based on what is formally known as the relational data model will be celebrating their 50th anniversary in June 2020. Here is an official document – that very famous article. Many thanks for it to Doctor Edgar Frank Codd. By the way, the relational data model is on the list of the most important global innovations of the past 100 years published by Forbes.
This is a posting about a particular feature of Caché which I find useful but is probably not well known or used. I am referring to the feature of Language Extensions.
This feature allows you to extend the commands, special variables and functions available in Caché Object Script with commands, special variables and functions of your own. This functionality also applies to other languages the Caché supports at the server, including Caché Basic and Multivalue Basic.
Why would I need or want to add new commands ?
Hi
Totally new to IRIS and Cache.
Trying to evaluate it and work out how we could use it.
As a standard application database. Object or relational etc. does not matter.
Issue is ObjectScript.
So:
1) Can we develop, maintain and use an IRIS database and never use ObjectScript i.e. use only Java, Python, C++ interfaces etc. (exactly which one does not matter)? Would that make designing and using the IRIS database more prone to inefficiency and error?
Is it just set varName = 1 or is there an actual true/false value?
I did a clean install of InterSystems ensemble on a new computer. However, even though my OS and my browser are set the English, the Ensemble installation is in dutch. Does anyone know how I can change the language of my InterSystems Studio so that it is in English?
To install the Python binding on Windows one must follow the instructions in the following:
https://blogs.msdn.microsoft.com/pythonengineering/2016/04/11/unable-to…
The reason is that ActiveState Python version 2.7.X is built with Visual Studio 2008 and Microsoft provides Visual Studio 2008, which one must install, so that Python C extensions can be built.
Also, if one still sees the "error "error: Unable to find vcvarsall.bat" message at the Visual Studio 2008 command prompt, then one needs to do the following:
pip install --upgrade setuptools
A new Health Connect customer has a few experienced Java folks on their interface team. As they get more into Health Connect and learn Caché ObjectScript they thought it would be useful to have a list of common Java statements with an equivalent statement in ObjectScript. They mentioned string manipulation as an example, but would be interested in other areas as well.
This seems like something that is probably already floating around somewhere. Does anyone have something like this or other "COS jumpstart for Java devs" materials?
Thanks,
Marc
This morning on the old Caché Google Group, someone posed the following question, which I've decided to answer here, because it's interesting!
Is there a way to iterate ClassMethod's params, and get param's names and values?
The first answer I can come up with is: it's not easy! In any method, you could try to write code like this (where methodName is the name of your method):
I've searched the ObjectScript reference for any instances of Upper, Lower or Case and the only thing is a case/switch statement. In all the documentation I can only find SQL and Cache Basic references for things like UCASE.
So how do I do this in ObjectScript?
For instance, if (ucase(dtype)="G") { }
InterSystems has implemented a broad set of MultiValue extensions for its Caché multidimensional database. These extensions enable the migration of MultiValue applications to Caché and bring the full range of Caché object and SQL development technologies to MultiValue developers. The result: your existing MultiValue investments are preserved, you gain a broad spectrum of highly scalable deployment options, and your developers can combine the best of MultiValue, object, relational, and technologies to extend existing applications and build new ones.