Zacharias Voulgaris, PhD, is the author of Julia for Data Science. As a Data Science consultant and mentor with 10 years of international experience that includes the role of Chief Science Officer at three startups, Zacharias is an expert in data science, analytics, artificial intelligence, and information systems.
Richie helps organizations get from a vague sense of "hey we ought to get better at using data" to having realistic plans to become successful data-driven organizations. He's been a data scientist since before it was called data science, and has written several books and created many DataCamp courses on the subject.
Don't just rely on what you learn theoretically or intellectually. Instead, build some muscle memory around it. The only way to really learn Julia is to find some interesting problem that you want to tackle, even if it's already been solved either by you or someone else, and try to solve it in Julia and see how it goes. See where you get stuck and figure out how you can get unstuck. Talk to other people, even if it's in a problem-solving fashion, to see how you can tackle different challenges in Julia. This is how you will gain a deeper and more effective knowledge.
I understand the fears that Julia’s ecosystem is not big enough. It’s easier to bet on a language that is more established. There are more people and more libraries. But thirty years ago, Python was very new. Would you have thought of investing in Python back then? And if everybody regarded Python with those same fears, nobody would have ever shifted from Fortran, C, or Java. So, the fact that there are new languages gaining popularity shows that there are people willing to take a chance on something new. In the case of Julia, even if it's not as big an ecosystem as other more established languages, I think the risk is minimal because of the bridge libraries from other languages, and partly because it is a growing and very active community.
You can migrate code from other programming languages in Julia, which allows teams to adopt Julia through a gradual process instead of having to plan a sudden transition.
The best way to learn Julia is to actively use it. Identify a problem you want to tackle, even if it’s already been solved, and try to solve it using Julia. This process will help you gain a deeper understanding of the language and how to properly utilize it.
When trying to convince leaders to adopt Julia or any other programming language, you need to demonstrate the value, ease of use, and ease of transition through examples that can be compared to your organization’s current language of choice.
Richie Cotton: Welcome to Data Framed. I'm Richie, and today we're talking about the Julia Programming language. But the last few years, the big story in data science programming has been the rise of Python, which has overtaken our and taken the top spot for the most popular language. However, Julia has also quietly been gaining popularity, and in the last year or two it seemed to have matured.
Certainly I've started to hear examples of it being used by businesses to solve problems where Python wasn't a great fit for their needs. Feels like it's time to take the language seriously. So here today to tell us all about Julia, is Zacharias full Gar. He's been the Chief Science Officer at three Startups.
He's a longtime Julia user, and he's the author of Julia for data Science. I'm really looking forward to hearing his views on the language.
Hi there, Zacharia. Thank you for joining us today on the podcast. So today we're gonna be talking about Julia and yeah, I guess to begin with, can you just give us a little bit of context on what Julia.
Zacharis Voulgaris: Sure, and thank you for having me here on this podcast. Well, Julia is a very particular kind of language because it is like in the middle between those two broad categories of languages that are either high level or low level, high level languages like Python, r. And MATLAB are very popular among people wh... See more
That usually lends itself to applications and anything that works on a computer basically very efficiently. So a ju tries to combine both being a fast enough, like low level languages were at the same time accessible enough. Makes it more popular among people who are not very big on coding, but who know enough to code something interesting.
So it is this kind of merge of the two paradigms where at the same time it's also a merge of two different paradigms in terms of functional languages and object oriented languages. So it is a very interesting blend of different part times where at the same time something of a fun and interesting project.
Richie Cotton: So this is really interesting. I mean, I think of Julia as being in the same category. As like Python or matlab, sas, all these other sort of analyst programming languages. But you're saying it's also suitable for sort of more low level work as well, cause it's got this sort of increased performance. Is that correct?
Zacharis Voulgaris : That's right. That's right. Although I imagine most people, especially nowadays, they use it for high level applications like designing and implementing a machine learning model, for example, or doing some data science work that involves engineering and things like that. But if you want to make a low level application, I don't see why not.
Just because it was designed with a different audience in mind doesn't mean that it is limited to only to that audience, and that's something admirable in the duty. Of developers that they really expanded its functionality. Like originally didn't have many libraries that made it useful for the science work, but over the years it got more and more of those.
Cause they saw there was a trend towards AI and this kind of advanced machine learning models that many people create for both in the scientific community and in the industry. So they're adapting language as time goes by to what is required. So I wouldn't be surprised if in the future they would find a niche.
In their systems programming as well, because Juda can do all kinds of tasks really well, really efficient.
Richie Cotton: Can you tell me a little bit more about who are the people using Julius? So you mentioned that it's a data analysis language, but are there specific like roles or industries that are really using.
Zacharis Voulgaris: Well, anyone from a, a researcher to a data scientist, to even a data engineer, I would say could use Julia. I don't know. Many data engineers could use Julia, but I don't see why not. Like one of the first applications where I got involved in Julia was doing this kind of low level data engineering work. To parse large amounts of text data.
And you know, I could have done this with C Sharp, cause I already knew c a at the time, but I said, Okay, what is, let's try this new language. It's easier to write than C Sharp and where, at least for me and other people who are in this high level kind of programming paradigm. And it was, it really paid off.
So it appeals to this kind of people in terms of. But in terms of industries, I would say that appears appeals to people in data fields and also in finance, and also academia, of course.
Richie Cotton: So that sounds like you have an interesting story in terms of how you came to be a Julia user. So you said you start off, you moved from C Sharp, so the Microsoft program language for application development. Are doing things with Julia, so can you just tell me a bit more about why you decided to use Julia for this?
Zacharis Voulgaris: Got to think about it. Actually, I started playing around with Julia even before then. So even before I, I joined Microsoft as a program manager. I was very much into programming and I had learned enough of Python to do something useful with it. And also I knew R before that. So at one point I said, Okay, well maybe I can learn other languages that are.
Seemed to be useful in this field. And I picked up Julia. Of course I didn't go very far cause it was still in version 0.3 or something. So there wasn't really that much to do with Julia. It was like one of these new languages that appear today. And you say, Oh, these are interesting. Ah, these are very promising, but will they be around in the next five years?
I didn't know that. And I had the career to worry about. So when I joined Microsoft and I said, Okay, well this JU language still exists. Now it's 0.4, I think , and why not use it? Why not use it? And parallel to other stuff, because I wasn't obliged to use C Sharp or any other particular tool in Microsoft there people are very open minded about what tools you use and as long as you deliver the shots, you don't really, you don't really care because as a program manager, you're not expected to code that much.
If you do code, that's great. That's really great. They. But nobody says, Okay, you have to use C Sharp or you have to. F Sharp, or you had to use any other language. So that's why I said, Okay, let's experiment with this. I also did a lot of Python during that time, and I said, I saw that it actually worked, and then over the years, even before it reached version 1.0.
I saw that Julia had a lot to offer in my field as well, So I said, Okay, well maybe there's much more to it than just parsing large amounts of data in a data engineering fashion. Maybe there's something about predictive modeling that I can do with this language. So I explored it more and I discovered that not only can you do lots of interesting stuff in data science, but also can develop new models, new processes, new heuristics.
Richie Cotton: And so for people who. From like a, either a Python background or in our background. Perhaps you can tell us a bit about how Julia is different, like how the language is similar or d.
Zacharis Voulgaris: There are lots of similarities in the sense that, okay, it is code that you can look at and pretty much make sense of it. It's a bit like Python, that sense, because Python is like pseudo code that runs Judy is not much different. If you are familiar with other languages that have this end, command in their code.
Then it is very familiar. Like I was coming from a MAT lab background, like because I had mastered MAT lab at one point I was even employing CS scripts in MAT lab to get more efficiency. So for me it was more intuitive, but also for someone who doesn't know about. This kind of language, but they understand the structure of a high level language.
It is very intuitive and easy to adopt. And I remember seeing in this sex code editor on this side called Code Abe, where you can tackle different programming challenges in whatever language you like. And when you, I would write the, the Julia Code to solve a problem. It would identify it as Python. So the index was close enough that they would get confused, of course, then would tell it no, and it's not Python, it's Julia.
And I would say, Okay, fine. So they're very similar, much more similar than people may think. Now there are differences of course, because every language has, its on a uniqueness. Otherwise it would, it would pass as a flavor of a math lab or Python. So Juda is first of all, much more e. And the way it handles scripts is different.
Like you can have the same function. Accepting different arguments, and Julia is fine with that. And they call this multiple dispatch. So instead of having a different function for tackling matrixes, for example, than the one you use for tackling specific factors, you can have the same function name and the interpreter of Julia will understand, okay, well I'm being given this input so I that the user must mean this, so I will call that right function instead of having different ones that can be confusing and difficult.
So there are differences like that, and I don't want to go into too much about the differences, but suffice to say that it's a different language. It has more in common with functional languages, although people can use it for object related language programming classes and use objects and such. But if you don't want to use that and you just want to use functions, that's also fine.
So it's much more similar than different as the gist.
Richie Cotton: It is interesting that you mentioned matlab because I noticed that the Julia syntax is incredibly close to MATLAB syntax, and that's maybe, it seems like that's the strongest influence on the Julia language, but so while we're talking about the properties of Julia, what do you think Julia's superpower is?
What's the thing where you go, Oh yeah, if I wanna do this task, then Julia's the thing I have to.
Zacharis Voulgaris: I dunno if it's a particular task or it's the whole environment which allows you even as. As a medium user who's not an expert in programming to develop something that can run really fast. So instead of having to rely on someone else's code who may or may not maintain that code, you don't know that you can write your own code and expect it to be as fast as a library.
That's not to say that you shouldn't use libraries, of course not. But if you can't find the library, you're looking for some specific task, maybe a niche application or whatever, you can develop the code from scratch, build it gradually, and have so, Powerful that you can use as a.
Richie Cotton: If you were like trying to decide between Julia or Biden or RA or MATLAB or whatever, do you have thought process for how you would decide to use one tool over.
Zacharis Voulgaris: Well, it's not my decision always to make it depends on the other people I work with, because if everybody else in the team is comfortable with Python, I would use Python. So I would take that into account strongly and I don't want to be like eccentric in the use of the language. Uh, if other people are open using ju, great.
Maybe I can. Lure them into using it more. But if somebody doesn't like Juda, I, I cannot really tell them, Okay, use that because I use it. And, and of course it also depends on the problem domain because if there's, um, a very statistical problem that is tackled, maybe r is the best tool. I dunno. Uh, it is designed for this purpose anyway.
It has a plethora of libraries and the sophisticated, uh, scripts around this kind of work and they interface is pretty straightforward. So you can show it to someone who doesn't know much programming and they can understand what you're doing. With showing the notebook, for example, the same with Python.
I mean, if somebody's used to using Python and they know the specific libraries, okay, maybe stick with those. I mean, if there's a particular library that does what we need really well, let's go for that. If we really care about efficiency and speed is of the essence, then maybe Juda is the best option.
I'm generally more agnostic now about what language to use. As long as I can get the job done quickly without creating too much friction, I'll go.
Richie Cotton: That's a very interesting point about the idea that particularly in a corporate setting, when you're working in a team, the particular choice of language doesn't matter as much as just having the whole team agree that everyone's gonna do the same things. You can sort of work in harmony. Yeah, that, that's very interesting.
Perhaps it's different for individual developers where you get a bit more freedom in terms of choosing what you want to do. All right, so you talked about there being different libraries or packages for different tasks within ju, so the functionality split across inter discrete areas. Can you talk us through what are the most common or most important packages for doing data science with?
Zacharis Voulgaris: So first of all, data frames is essential because it allows you to import tabular data in a data frame object. There are things like decision trees, top jl. Psych Learn, which is popular from Python and several other ones like ML Ops. I don't remember all of them by heart. But there's also a different notebook packages, but I guess we can get into that another later.
And there's also the statistics package, for example, which is very useful and people don't think about it. It's a very powerful library for a statistical kind of work. And there are also other packages that are more supplementary, like the P K G. Which stands for package, which allows you to import other packages if you're on notebook, in a notebook environment, so you don't have to go to the rep and do the package processing there and then reload the nel.
And that can be time consuming. So this kind of packages are, I think, a must, but what package you need is something you can easily find on your own. Like wasn't really born of that knowledge or I didn't really read one book that find like, where I found all this information or read. Available to me like that.
The documentation that the JU community has around the different packages is really good and really designed from a learner's perspective as well. So it's not like some impersonal kind of documentation that you think that it appeals only people who already know the language really well. Now they have designed it so that even a newcomer can understand what's happening and what language.
Packages are there and what you can do with them. And beyond that, there's also other people who are enthusiasts in Julia who have websites where they explain different packages. So I wouldn't worry too much about remembering which packages are there and to use them, but remember that there is a package for the staff that we need to do in data science and related processes that is there, even if it's not really as mature as the packages in Python or are they are functional enough to create something.
Richie Cotton: I like the first package you mentioned was the data frames package, obviously on the data framed podcast for big fans of, of data frames, so that's really good to know. I'm curious as to what the sort of the culture is around packages. So for example, In Python for data visualization. There are just lots of different packages available.
So you've got map plot, lib and CBO and plotly and plotline and hovi and all the rest. So there's all these competing different packages. But in some cases with, for example, machine learning, you've only got really psychic learn and pie, carrot. They're the two main ones. So with Julia, do you see cases where you have lots of different packages competing with each other, or is it more that you just have one or two?
That are just the standard tool to use for a particular task.
Zacharis Voulgaris: There are some packages that are competing with each other, but not that many. You see that more often in the digitalization applications like there, there are several plotting libraries. If you don't really care so much about the digitalization here, you just want to get a plot out there and perhaps export it as a PNG or whatever.
I think gut fly. Covers you for the most part. And if you want to have the more established and more go to package, that now is promoted with Julia Plots, that JL is fine as well. These, these two packages can cover most use cases, I believe. Now if you want something more elaborate, I'm pretty sure you can find it.
The people who make those packages are very happy to document them and promote them. But one thing that I really enjoyed about Cat Fly is that, first of all, his name is really cool, but also it was all developed in. because other packages you find that okay, there are more like upper functions around preexisting packages elsewhere, but GA was developed natively entirely and beyond that, if you're really very keen on Plotly, for example, there is a plot package as well in Julia.
So you don't have to limit yourself to the packages you find in other high level languages.
Richie Cotton: So in Python, package management is this sort of horrendous thing where you've got a choice of Anaconda or the Pipi stuff and just. Keeping track of having the right packages and the right versions is always a bit of a nightmare. So what's the package management situation like in Julia?
Zacharis Voulgaris: In julia, it's much more straightforward. You just press one key when you are on the re, for example, and it takes you to the package management mode. And there all the only commands you have available to you are related to packages. So you can first of all list the packages that are installed. You can add a new package, you can update all the packages and things like that.
And whenever you're done with it, you can just exit that mode and go back to the normal prompt. There's a variety of things that are really good in this particular package manager, and I believe this, one of the first things that were tackled seriously in the language, one of the creators of the language actually handled this aspect, if I remember correctly, and that's one of the strong points of version one onwards, is that they had really.
Got this down, and by that I mean that okay, you don't have any problems with dependencies missing and things like that. Okay? When you install a new package, Julie recognizes that, okay, this package needs this and that to to work properly, so it installs it automatically. Also, when you up, when you update a package, it doesn't update a package.
You update everything that is, that needs updating. So make sure that everything works well. And together with each other. And that's, that's a very strong point in my view. And the fact that you can also do that while you are on Jupyter Notebook, for example. That also makes it easier so you don't have to go out to the shell and do beep install or whatever package manager you're using.
If you want to develop your own Julia package, is that something that's easy to do or what? What do you need to do to get started creating your own Julia?
I can't speak, uh, out of experience on this part because I haven't developed a package and I don't really plan to. But I know someone who is not a developer. professionally, but he knows ju well enough, like he probably knows it more than most people, and he developed a package on his own without too much concern.
So from his experience, I can draw that is not really that difficult. Also, I have seen people develop new packages over the years, so it's not really that challenging to develop a package, a new package, but I imagine the hardest thing. Not to make the package, but also to create enough documentation for it to make it useful and also to maintain it.
Because of over the new versions of J, the package may not work properly, so you need to update the code, maybe add new features and functionality to it. So it is a big project. It's not something to be taken lightly.
Richie Cotton: Fair enough. All right, so I'd like to talk a bit about the sort of the tool ecosystem for working with Julia. So Julia is of course, like the J part of Jupiter Notebooks, but a Jupiter. The standard way that people will write Julia Code or are there other tools?
Zacharis Voulgaris: It depends on who you're asking because people in my line of work prefer to work in a code notebook kind of environment or code book as I call it often because it's much easier. You see there is also that way you can also demonstrate your work to someone else who doesn't really. Understand programming that well, but they understand, okay, what you write this code and creates this and it's also neat and tidy.
You can put mark down as well in it. And also lots of texts. You can also put hyperlinks and things like that. So it's like a fully blown kind of report kind of thing, which also includes codes so you can actually change it on the fly. So for someone in this kind of work, it makes more sense to work there, but if you want to develop something that is more.
Coding related rather than results oriented, then perhaps an IDE would be a better choice. I work with both Jupiter Notebook, even though it's by far the most mature code book environment is not the only option. And there are a couple of other ones that are native to Julia, like Pluto and then Neptune.
And just to be clear here, we're not talking about the Neptune things that you find on aws. The Neptune Notebook is a different project in Julia, which works with Julia Code only.
Richie Cotton: Interesting. So these are sort of rival formats then you're saying?
Zacharis Voulgaris: In a way, yes, but at the same time, I mean, you can use both at the same time and not feel that you have to choose one or the other. Like there are different packages in Julia that allow you to write code in Jupiter or Neptune or whatever you like. If you want to showcase code to someone who already has Jupiter, maybe it's best to write it in Jupyter Notebook.
If you just want to write code in a notebook environment and then make a p f out of it, for example, network will work fine. And the plus of this particular option is that the net notebook is written in in Julia code. So it's not adjacent file, it's a, it's a Jupiter, it's an UNE file, which is basically a J Julia file.
So you can access it through an ID as well or a text. and you can actually use the code. Even if you don't have Neptune story, you don't care about Neptune. You can just take the Neptune notebook and put it on a text, uh, editor and make a a script out of it, because in necessity is a script. The whole thing, the drawback is that you don't see the results of what you have done.
It doesn't store the results.
Richie Cotton: So it, it sounds like. Tune files are fairly close to something like our markdown or qu reporting files from the our community. So you also mentioned ides. So what are the ides people use for writing Julia Code?
Zacharis Voulgaris: There are several ones. The ones that are quite popular depend on, on who you're asking. But this atom id, which is popular across different languages, including ba, who also works with Julian, has a really good, uh, good dictionary that can recognize JU code and also alert you of potential errors. And there is also the Microsoft one too.
Oh vs. Code is it,
That's right. Yes. And it used to be a different idea that was only for Julia, but now this is part of VS. Visual Studio from Microsoft. So these are the main ones, I think. But you can also use Vem if you are into that and other editors. I mean, it's not really that important what editor use, as long as you, you know it well and you're comfortable with its environment, it helps you develop code and edit code.
Absolutely. I'm, I'm sure there's like three people listening, going, Everyone should use emax and, uh, but, uh, it is a very, uh, a niche choice, I think. Have you seen any success stories with people using Julia?
I've seen some. Yes. And the problem is that it's not really something you, you read about often. Like you won't see many people on LinkedIn talking about, I have a. An amazing project in Julia, unless they're usually tied to the Judia community, usually directly. But there, there are lots of success stories and this manifest usually in particular presentations, in conferences, especially the JU Con and places like that.
So there are many people who have done great work, at least on the, in the scientific community and I elsewhere using. The one small success story that I have for myself is that I have developed algorithms that wouldn't even think possible to, to make them in another language using Julia because they involve lots of computation and to make them scalable and work in a deterministic fact.
Fashion is not something you can easily do elsewhere. Like I was always into making niche algorithms and implementing them and have tried that in different languages. But after a while you realize that the speed of the language is also important. Also, the fact that you can make applications easily and have them optimized using specific tools in Julia can also facilitate that.
So I think the best success stories in Julia are yet to come.
So you were talking about writing your own algorithms in Julia. Can you give us an example of an algorithm that you wrote?
Sure. Although I haven't publicized them. One of them involves cybersecurity as a cryptographic system that handles large files as well and makes sure that they're, they're si, they're encoded in such a way that is not, it's not easy at all to understand what's happening and to try to reverse engineer and break the ciphr.
This is what I call the thunderstorm cipher. Beyond that. I did most of my work in data related applications. I think it was last year I met this c. Script optimal clustering because it's a deterministic clustering algorithm that is pretty much self directed, doesn't need much input from the user, and it can handle scenarios where there's not a very clear blob of data came in status.
For example, I brought a series of different heuristics to make that possible and it can still use improvement, but this is something that I'm pretty content with so far. Also, Algorithm, which is more, more like a series of algorithms, is like a framework I have developed for analyzing different kinds of variables for that engineering kind of work to facilitate this kind of processing without having to worry too much about what are the variables, like what are distributions, are there outliers and stuff.
Now this framework handles all that on its own. . So it's entire data driven. And the data driven approach I think can shine in places with tools like Julia, because Julia can handle the computations really well. Lots of computations really fast, so you don't have to rely too much on assumed knowledge about the data.
That seems like. Useful feature, just like not having to make too many assumptions about what your data is like. So we talked a bit about successes with Jupiter. I'm also curious as to where people might go wrong when they try and adopt Jupiter themselves. So have you heard about any cases where people tried to use Julia, but then decided it wasn't a great fit?
I haven't heard any cases like that, but I can understand why some people may. Maybe discouraged or deterred, but probably has to do more with the company dynamics. Like if the company doesn't endorse the use of new languages, for example, or it's focused on specific languages because they have lots of legacy code in those.
I can imagine how somebody who wants to do something in Julia, even though they can, they're, they can't, they're not allowed to. But I dunno. Anyone who said, Okay, I tried Julia and it actually sucks. No, I never heard anyone like that. I have heard people who said, Okay, I tried Julia, but I actually found that LU is faster.
Okay. Maybe in some cases LU is faster. I don't know. I mean, LU is a very fast language has been around for longer than Julia. It always depends on the application. I.
So maybe taking that on a personal. Is there anything you wish you knew when you started learning? Julia
Lots of things. First of all, I wish I knew that it was going to blow up so much. Like I, in the beginning it was like an niche language and the only book I could find about Julia, which I didn't really bother to buy even because it only had a couple of chapters about it. was like introduction to some new.
Up and coming languages. And it had three languages, at least in that book. One of them was Julia. So you can imagine like , the covering of that language was very basic, very shadow even. And yeah, I understand it. Cause somebody didn't want to put all their money in a up and coming language, which they didn't even know it was going to make it.
So yeah, I wish there was, there were more resources. I wish there was a bigger community when I was learning it, but at the same time, I, I dunno if that would, Intrigued me as much in the language. I may have learned it faster for sure, but I dunno if I would have learned it deeper. So it's really hard to think about these hypotheticals, but I definitely wish I, I would have met more people in proximity to where I was who also used studio.
Like the first person I think I actually met in person who used JU and was actually, and good at it was in Seattle at least a year or two after I started playing around with.
Right. So I guess now the, the ecosystem's a little bit more mature and there are some other resource. Is out there, just if you're an individual, how do you think you should get started learning about Julia?
I believe have contributed in the resources of this episode a particular Worklet. A Worklet is a kind of collection that has a lot of material in various formats, usually links and allows you to, with one link to share lots of content. So I have developed this week as an introduction to different resources that somebody can use, most of which are for free.
And, and that can be a good starting point. So instead of telling you, Ah, try this and the other, and you probably forget half of what I said, Just try this stuff in the work that, or most of this stuff to get, not just knowledgeable about Judy, but also inspired about its potential. And another thing I would say is, okay, don't rely on just on what you learn, like theoretically, intellectually, but build some muscle memory.
Because the only way to really know the language is when you start using it. Find some interesting problem that you are tackling, even if it's already solved, either by you or someone else, doesn't matter. But try to solve it in Julia and see how it goes. See where you get stuck and how you can get unstuck.
Talk to other people, even if it's in a problem solving kind of fashion, to see how you can tackle different challenges in Julia. And this is how you actually can learn it better. And.
And suppose you just want to have like your first few hours of Julia coding. What are the things that you need to know first in order to. Started.
I think some, some knowledge of programming would be useful If you don't have any of that, then start with something very simple, like the simple programming challenges that you may find on races like Project Oiler and things like that. Some mathematical application to get you started. Also, try to see how you can implement something you have already done else.
The Codea Bay actually is a good place to start for any language that it supports, and that's one of the places I actually, I still use to, to refine my programming skills. So things like that, like very trivial, trivial examples, but done properly can really help you develop confidence and skill at the same time.
from think about an individual to a corporate setting, how would you go about adopt. Julia for your team.
First of all, it depends on, on who you are, what your role is in that team. If you are the team leader, it's a bit easier because you can tell them, Okay, well this is studio, you can, I can provide them. Resources to learn it, and I can show them how they have development, let them play around with it and get acquainted with it and understand it's not really something they can't handle.
Because I imagine in a data science team, people would already know a bit of programming already, especially if they are more senior to the scientists. So that's one approach. I were in a team, not as a leader, but as a member of the team. I would try to showcase it with an example, try to do something that would normally do with Python or whatever other tool I was using in JU and show them side by side.
Okay, this is the Python code. This is the JU code. And this is the performance in one. This is the performance in the other one. And show that this can also live in Jupyter Notebook that we normally use. And this is a more convincing approach, I believe, than telling them, Okay, well look, Judi is great. Look what this other person says about it.
Look at this nice book about it. Now these are intellectual knowledge, but this is not convincing enough if you show them a, that this thing actually works and I can do it and I don't need to go to a course, Although that would be nice , but it's not something that is too far. Like it is something we can do relatively soon.
And look, there's also these libraries that, uh, you can run either in Python or in ju to migrate code from one to the other. I should have touched upon this sooner, I guess, but there are bridge libraries between Jud, Python and r. And also other places like I think there's also for C as well, so you can import C code in Julia and probably other ones as well.
Since uh, the time I have done this research, I've even written an article about this on ai gens.com, so if you have already code in Python, you can easily use it in Julia. And vice versa. So you don't have to one day say, Oh, we don't use this anymore. We'll go to the new language and forget about the old one.
This can be done gradually. So if you have a plan of this migration, then it is much more feasible and much more risk free in a way.
So I really like to your point about showing. Sort of business impact really quickly. Cause that's gonna be important to make the managers sort of see that this is gonna be a viable thing. But I'd like to talk a little bit more about this interoperability. Cause it does seem a bit like if you're adopting a new language, then there's gonna be existing projects already there.
So is it, are you saying that it's possible to have Juliet and Python within the same project to work?
It depends on what you mean by project. Like if it's a very large project. Yes, definitely. So example components, maybe certain parts of the pipeline can be done in one language and others in another one. So one language can yield its outputs in a CSV or Jason or whatever. And the other one. Can pick them up.
Some of these functionalities can also merge in the same notebook with a bridge package. But if you really want to go for efficiency and less maintenance overhead, it's best to have one language. So this having both languages at the same time, it's more like a temporary situation. I wouldn't recommend it for the long term.
so you're saying that ideally you want to standardize like all the projects or all your work, all the analyses in your team on a single. Me language just for efficiency.
Yes, and that's, that's doable. I mean, you can easily migrate from one language, not easily, but it is doable to migrate from one to another, especially if they can work together.
All right, and is this interoperability you mentioned with the Python, is this also available for other programming language?
Yes, you can have interoperability between Julia and R as well as Julie and.
And how about l of languages? Cause I know, uh, things like Python are, if you want to make your coat go faster, you can go see your Fortran or c plus. So is the same true of Julia or is that not a necessary thing? Cuz it runs faster.
It is possible to you to leverage C if you want, but I don't know anyone who does that. And to be honest, I was surprised there was even a bridge package between Julie and C because they're comparable inefficiency. So it doesn't make much sense to do that. It's like for someone to, to have a bridge package between NEM and C, like nem compiles, n C, so it doesn't need to have a bridge package.
And C, the same with Julia doesn't compile, and C, it's completely different in terms of how it works, but it's comparable to C. So what's the point?
Fair enough. So , that seems like C is sort of not necessary yet to worry about for most people. All right. So I'd like to address one of the sort of big fears that a lot of people have in terms of getting started with Julia. And that's the maybe the. Ecosystem isn't big enough. Cause I think Julia's sort of like the fourth most popular data science language after sort of Python mal lab.
So for companies in particular, considering adopting Julia, how justified are those fears that the ecosystem isn't big enough yet?
They're not really realistic fears, like I understand where they're coming from. Okay, well yeah, you best to to bet on a language that is more established. There is more people, more libraries and all that, but like 30 years ago, Python. Was like very new. Would you have thought of investing in Python back then?
And if everybody thought the same way, that those people with those fears think today, like nobody would have ever shifted from Fortran and C ever, or Java. So the fact that there are new languages coming about over the year shows that there are people willing to take a chance on something new. And in the case of Jud, even if it's not as big an ecosystem as other more establi languages, I think the risk is minimal and partly because of the British libraries I mentioned.
and partly because it is a growing community, so it's not like other community has been stagnant for the past few years. So you know, you're entering some kind of niche territory that only you and a few other people are going to care about. No, this is a growing community and it's not like a growing community of I matures.
There's also. People like Vested in Education who are investing in Jud. There are people who are teaching core teaching courses in Jud. There are people who are doing serious projects in Jud, so it's not a hobby language. I think I have to make this very clear. There are languages out there and I always like to explore new languages that come about because maybe there's the next studio out there that's now in in the works, but I haven't seen anything like that, at least in the data science area.
So are there any sort of notable companies or organizations that are making use of.
I know that many universities are looking into that and they have already had courses in JU about companies. I don't think I know many, and there's a good reason for that. said, Once, I think it was in a conference, is that he and his team had advised some people in the FinTech industry about JU how to optimize the use of ju, and he found that those people didn't really want other people to know they were using ju.
That was a few years ago, so maybe now it's more well known. But if you are a company right now and you found that actually you can do things much, much faster using this new technology, which is not that. But if you have discovered that you have proved it to your stakeholders, would you go about demonstrating that to everyone, even to your competitors?
So I think that's how it is now with Julia. There are many companies who may be using it, but they don't really, they're not very open about it yet.
That actually sort of aligns with the things I've heard. So the main companies I've heard, Using Julia been in involved in financial technology, but they're so secretive about what they're doing. It's very hard to find out many details on what's going on, but it seems like maybe that's where the heart of the Julia community is.
So on that note, I'd actually like to know a little bit more about like who's involved in the Julia community. So for example, where do you get community support if you want help with?
Well, there are different areas where you can get support, like immediate support, like you have a problem, a bug now, and you want to solve it as soon as possible. One of them is Stack Overflow. It's pretty well known among all people who do any kind of coding that you know, it's a very big community of users and.
Many of them are experts as well who offer some kind of help. Maybe it's not the answer that will they solve the problem so that way, but they will guide you towards the answer and you can have online conversations with them in text format so other people can see that and benefit from that. So if you can find your an your question already there, you can always ask a new question and get some feedback from that.
Beyond that, there's also the Discord server of Judia community, which is, I haven't used it much, but I know it's there and there are many people talking. Anything JU related and beyond that, if you are, if you're like a company especially, you can also ask the JU computing company who provide this kind of consulting.
Professionally, like they know the language better than anyone, so any question you have probably have shared before, so they can answer it pretty well. Now, beyond that, I think there's also the Reddit subreddit somewhere that has Julia. So people ask questions there. If you are into this platform, and I'm sure if you search beyond that, you can find other places like Quora even.
So last question on Julia. Are there any misconceptions about Julia that you'd like to clear up?
Zacharis Voulgaris: There's this misconception that you know, just because it's fast in everything, No, it is fast. In general, yes, it is really well done. It can handle certain computationally heavy tasks really well, but it doesn't mean that it's going to be fast in your application. Specifically, you may have a very niche kind of simulation that involves a very particular kind of data.
That actually it may not be the best option for you. So just like you see someone who, they're really good at math, okay, that person may not be very good at physics, for example, and vice versa. It's the same with the programming languages. Juda is is good overall. There are lots of benchmarks that have done and they continue the update, the benchmark graphics where they show how the comparer with other languages for specific simple scripts, they run.
But it doesn't mean that it's going to be perfect for you. So in each case, I would say approach the whole model with a bit of, with a grain of salt. Like yes, two is fast, but it could be that there's another language out there that is faster. So if you are into programming in what experiment with a different language, go for it. Don't take anyone's word for it.
Richie Cotton: So before we finish, I know that you've just founded a new startup. Perhaps you can tell us a little bit about it.
Zacharis Voulgaris: Well, I'm actually more of a co-founder. My co-founder had the idea and started working with it, and then he got me involved and I jumped to the opportunity straight away because it was a really interesting idea and it seems to have a lot of merit, not just as technology, but also commercial aspects of it.
So yeah, I'm now one of the two co-founders at the moment of this company that started in the this incubator in Amsterdam. Called Antler. Antler is the incubator. We don't have a name for the company yet, but we are looking into conversational AI to help training of specific professionals. So the idea is to use AI for helping people instead of replacing people, which is something that many other AI based companies tend to do.
So it seems like a simple idea, but the complexities of it are more than meets the eye for sure. But it's a very interesting challenge. It's definitely. And, uh, it enables us to not just get to know the technology, but also the usefulness of this technology in the real world, helping real people with the real problems they face every day.
So, I dunno if any of the listeners are interested to work as developers or data engineers or something along these lines with us. If so, Yeah, we can always have a chat about this and on LinkedIn to connect and take this farther.
Richie Cotton: Super sounds like a very exciting new idea, and certainly I like the idea of AI being used to help people rather than. Replace them. So thank you very much, Zacharias. I've learned a lot about Julia. This has been really interesting and good luck with your new startup.
Zacharis Voulgaris: Thank you very much and thanks for having me.
Free Access Week | Aug 28 – Sept 3
How to Choose The Right Data Science Bootcamp in 2023 (With Examples)
DataCamp Portfolio Challenge: Win $500 Publishing Your Best Work