Derek Robinson 00:00:01 Welcome to Data Points, a podcast by InterSystems Learning Services. Make sure to subscribe to the podcast on whatever app you get your podcasts from. Links and more information can be found at datapoints.intersystems.com. I'm Derek Robinson. And on today's episode, I'll chat with Product Manager Bob Kuszewski about Embedded Python in InterSystems IRIS® data platform.
Derek Robinson 00:00:34 Welcome to the Data Points podcast by InterSystems Learning Services. On today's episode, we're joined for the second episode in a row by Bob Kuszewski, Product Manager for the Developer Experience here at InterSystems. Before we get to the topic today, we want to welcome you back to season two of Data Points. We began this podcast with 20 episodes, and it has been well received thus far. So we're looking to continue with another batch of interesting conversations. Today in our first episode of the season, we're talking about Embedded Python. Developers familiar with InterSystems IRIS know that freedom of choice in development languages has been an area of focus over the past few years. In our discussion today, we talk about how Python has now actually become an even more integrated part of the platform alongside InterSystems ObjectScript. So without further ado, let's get to the discussion with Bob Kuszewski.
Derek Robinson 00:01:26 All right, and welcome to the podcast Bob Kuszewski, Product Manager for the Developer Experience here at InterSystems. Bob, you've been on the podcast before. Welcome back.
Bob Kuszewski 00:01:35 Thank you very much, Derek.
Derek Robinson 00:01:37 And, so today we're going to be talking about, I think definitely a different topic than when we had you on last time, which is about development languages and specifically Python today. So, before we dive in and talk about this new feature called Embedded Python, let's talk a little bit about the lead-up to that, right? So freedom of choice with development languages has always been for the past several years anyway, something that we create content on. We create learning content in our department; we tell our customers about their options, right? And so sort of give us a little bit of background about InterSystems history with that, InterSystems IRIS history with that, and how it kind of works with other languages, language connectors, and even Python, and how Python developers were using InterSystems IRIS, up until this point.
Bob Kuszewski 00:02:22 Yeah. Thanks, Derek. That's a really great question. You know, InterSystems was founded to be enterprise MUMPS, and over the years, MUMPS grew into ObjectScript as the language became object-oriented, and the company has added a myriad of features, like SQL, and these are all there to meet the needs of, and to grow with, our customer base. Up until today, all of the code that runs inside the IRIS server had to be written in ObjectScript. That is, everything from your SQL stored procedures to your routines, to your class methods, were all written in ObjectScript. You could also connect to IRIS via any of our standards-compliant connectors like JDBC or ODBC. Additionally, we provide STKs for working with Java, .NET, Node.js, and Python, and these SDKs serve traditional client server or gateway use cases—that is to say, anytime you have a process that runs outside of the IRIS process that is written in some language, and you want to connect to IRIS and work with IRIS, those SDKs are the place to start. And they're great. They're very complete. Today we're talking more about how we brought Python into the IRIS current.
Derek Robinson 00:03:49 Right, right. Yeah, and so I think it's important to highlight those things first because, one of the things about it is that that freedom of language still does exist, of course, like you just mentioned all the effective ways you can do that, but so now talking about Embedded Python, as you just kind of introduced, tell us how that's different than what we had before, and sort of like highlighting the key, main messaging about Embedded Python and why it matters for these Python developers that were using those other methods previously of connecting with Python code and applications.
Bob Kuszewski 00:04:20 Yeah. So with the latest release of IRIS—that's 2021.2, we've embedded Python right into the IRIS kernel. That is, it runs alongside ObjectScript. It's a full peer of ObjectScript. And so any code that in the past, you may have written in ObjectScript, you have a choice of using either ObjectScript or Python for today. So those stored procedures, you could write them in Python. Or your routines, you can write them in Python, or your class methods, you could choose to write…implement them in Python. And that opens up the world of the Python ecosystem, where you can say, you know what, I don't want to write a client for some particular system, for example, in ObjectScript. I can just use the library that's already out there in Python and bring that into my IRIS application—but you're still running inside your database kernel. So very, very fast access to the database, really kind of the traditional strong use case for InterSystems IRIS.
Derek Robinson 00:05:33 Right. Nice. And so, obviously a lot of benefits come with that versus the other model of, you know, using connections and hooks and things like that to tie in whatever you've written in other languages. So being that it kind of runs right inside the kernel and with and alongside InterSystems ObjectScript, some people might wonder, does Embedded Python now replace the need for knowing and understanding, and being able to write ObjectScript? You know, for instance, if a team is, starting up their application development and the team that will build it on InterSystems IRIS, right. Do they no longer even need to worry about learning ObjectScript? Or are there still cases where knowing ObjectScript alongside it is either required or at least helpful with Embedded Python?
Bob Kuszewski 00:06:17 Yeah, using ObjectScript and knowing ObjectScript is always useful when working with IRIS, but there's going to be less of a need to do it. So you can start with everything being written in Python and then work with ObjectScript for the particular areas where you need to. What's great about the way Python has been embedded into InterSystems IRIS is that Python and ObjectScript are full peers. That is, if I instantiate a class, or if I run a method in Python, it doesn't matter if that method was written in ObjectScript or Python. You can still just call it from Python like it's a Python function, and you get the results back kind of as you would expect them to be, and vice versa. If you wrote, if you called a Python method that was from ObjectScript, you would get results back just like you would expect. So they're very peers, you know, the ObjectScript objects appear as Python objects from the Python side, and vice versa. So there's just a lot of commonality there. And so it's a very natural evolution of the project, rather than kind of a complete revolution of overnight, nobody will want to use ObjectScript. No, that's, I don't know if that's the case.
Derek Robinson 00:07:49 Right. Basically just another way to make it easier for our users to be able to get to the end goal. Like whether they're doing it in ObjectScript or Python, it's not sort of an entire second infrastructure that's replacing the first infrastructure; it's just another avenue to get to that eventually system-readable code that is compiled down. So, kind of thinking about it from, you know, those customers' and users' perspectives, aside from that initial one of, hey, you now sort of are enabled to be able to use Python developers on your team without as big of an ObjectScript learning curve in the beginning, what are some other real-world benefits that you can think of for people interested in this that might manifest itself in actual, better efficiency, better productivity, things like that, that you have either seen with existing clients or envision with clients that this use case might benefit?
Bob Kuszewski 00:08:42 Yeah. So that's a really good question. The Python ecosystem is enormous. There are hundreds of thousands of packages that are available on PyPy, which are free. Many of them are very high quality, widely used things, and you can bring those into your IRIS application straight away without having to think about, oh, how do I write this? Or how do I gateway my data back and forth to a separate process that might be able to run this? You can just bring those packages in and use them right there with your data already in memory, in your database kernel. So we have a number of customers who have said, oh, this is great. I can now solve some problems that were difficult for me before, by bringing in these packages. I don't have to write everything from scratch in ObjectScript. So it's a faster time to market, but it also opens up the areas that you might consider to even have a market for, or ideas that you might consider. As you mentioned, another big area is with onboarding new employees, new developers, it's that—it's a little bit harder to find ObjectScript developers than Python developers. There are, I think, 6 million Python developers out there in the world. I don't know the exact number of ObjectScript developers, but it's less than six million. Yeah, so it is easier to find Python developers. You can start them off developing in Python with a lot less training, and then teach them ObjectScript, and what your team needs to know from ObjectScript, over time.
Derek Robinson 00:10:35 Right. And not so much relearning all the things that they already know how to do in ObjectScript, right? Instead they can target the things that they are specifically trying to learn in ObjectScript and learn it as they go that way on the job.
Bob Kuszewski 00:10:47 Exactly. Yeah.
Derek Robinson 00:10:48 Cool. So last question, sort of moving forward to the outlook on future improvements, I guess I'll tie two questions in here, which is first, if someone's listening to this and they're interested in trying it out, how do they get their hands on it? Which version of InterSystems IRIS does it start with, and then, you know, coupled into that question, what can they look for in the future? Like anything that you can say about the evolution of this going forward and how it might grow or be able to become even better than it already is?
Bob Kuszewski 00:11:17 Yeah. So our first release of this feature is with InterSystems IRIS 2021.2, which was just released a week or so ago. Today with this first release, we use the version of Python that came with your operating system with IRIS. One of the things that we are working on for a future release is what we're calling, bring your own Python. You'll be able to use any number of supported versions of Python. So depending on what version of Python you need for your application, you can select that version and bring that along, rather than just whatever came with your operating system. So that just provides you a little bit more flexibility and completeness. We are also working on DB API-compatible drivers. So SQLAlchemy, Django ORM, those sorts of things are all built on top of DB API, which is a Python standard for data access. So we have that coming out, later in the year. So there's any number of things that we're doing—kind of performance improvements, and building out better examples, better documentation. And really what I'd love to hear about is: what are the things that customers are doing with it? Like what works, what doesn't work for them, what's easy, what's not so easy, and we'll fix those, right? We'll make that a better experience. So right now it's, I'm really excited. The future is really very, very bright for InterSystems IRIS.
Derek Robinson 00:13:05 Awesome, yeah. And certainly wanting to get that feedback from users of it. And also, at this past Virtual Summit, we had an Experience Lab around this as well. So we have that available for customers to try it out if they don't want to get a whole instance themselves, they can actually try a lab environment there, to get a little taste of it as well, ahead of time. So, Bob Kuszewski, thank you so much for joining us, and we'll have to get updates soon as we go forward here.
Bob Kuszewski 00:13:30 Great. Thank you very much, Derek. I appreciate your time.
Derek Robinson 00:13:36 Thanks again to Bob for explaining all about Embedded Python. This is a really exciting feature. And as Bob mentioned, the team is looking for feedback from developers on this functionality. So feel free to head over to learning.intersystems.com to try out the exercise we've built, or dive in right away with the latest version of InterSystems IRIS, as Bob mentioned. That'll do it for our Embedded Python episode. We'll see you next time on Data Points.