Hadi Hariri: The reality is that we have gone through many hype cycles. I believe that AI is going to change many things and I think that we are already seeing the results of that.
Chris Engelbert: It's a very pragmatic language. I like the fact that it feels more like designed by actual developers than language. Architects in the sense of like, you look at the problem, like what is the most pragmatic solution to that kind of programming problem?
Hadi Hariri: So if you're doing web development, especially if you're using JetBrains toolbox, then it's really, you don't have to think about the IDE. You just have to think about the project. Like even today, when you install JetBrains toolbox. You can open things by projects, not by IDEs.
Chris Engelbert: Is there anything that is not supported yet in terms of, I think there's no Rust IDE, is it?
Hadi Hariri: Yes, there is. Rust Rover. Rust Rover is our Rust IDE. Actually Rust, we support it in, right, in C++, in our C-Line IDE, which is the C++ as a plugin. Then we supported it also in IntelliJ IDEA. And then we've created a dedicated plugin, a dedicated IDE for Rust, which is called Rust Rover.
Chris Engelbert: Hello everyone. Welcome back to this week's episode of SimplyBlock's Cloud Commute Podcast. Today, you know, the spiel, I have another incredible guest. I know this every time and it's true every single time. This time, it is again, a very different topic because we normally, when we talk about like, or when we have guests here, we talk about like tools right, in production. But this time I thought it would be interesting to talk a little bit about the development side of things.
So, Hadi, welcome, thank you for being here and maybe just give us a quick introduction to yourself.
Hadi Hariri: Thank you. Thank you for inviting me, Chris. It's been a long time since we've seen each other as well. Yeah, so my name is Hadi. I work at JetBrains. I've been working here for the past 15 years.
I started as a developer advocate for our .NET line of tools. And then, moved into Javascript. Then moved to Kotlin. And somehow absorbed Java along the way. And so yeah. And until this year I was leading the develop advocacy team. And now I'm currently the department lead for the open source projects at JetBrains that we have, which include Kotlin and Ktor and some of the other stuff. And also, doing some kind of what we call program management, which is, cross department initiatives to that span multiple products and-
Chris Engelbert: Right. So I think most people are probably familiar with JetBrains, but maybe just say a few words about the company itself, just in case that there is the one person that has never heard about JetBrains.
Hadi Hariri: Oh, I really hope there's more than one person that hasn't heard about JetBrains because otherwise, you know, we're going to shrink our customer base pretty quickly, right?
Chris Engelbert: I don't know about that. I mean, you can have heard about that, but they're still Eclipse users or whatever.
Hadi Hariri: Yeah. So JetBrains, we do a bunch of things. We create IDEs. So you might have heard of IntelliJ, PyCharm, WebStorm, Rust Rover, Rider for .NET. We do tools for .NET, which is like ReSharper. We do now, obviously everyone does, we do JetBrains AI, which is showcasing itself in our AI assistants in our tools. And of course, we also do the Kotlin programming language, which is now, has become the standard programming language for Android development as well. And yes, it's JetBrains that does Kotlin not Google, although people still think the other otherwise. Anyway,
Chris Engelbert: Interesting. I wasn't aware of that. I always assumed everyone understands it was JetBrains creating Kotlin because that was how it was initially announced also at Google io. I remember that.
Hadi Hariri: It was. Yeah, but you know, if you're there, you hear it. But then as you start to use it, and if you go, for example, to, you know, googledeveloper.android.com and you start to see so much resources on Kotlin and everything Kotlin.
Chris Engelbert: I think for me, because I was always more on the backend side, I never really got deep into the whole Android ecosystem.
So that's probably why. Yeah, okay, fair enough.
Hadi Hariri: Exactly, exactly. And also that's the other thing, like people actually believe that Kotlin was made for Android development. And it's not. It's made for, you know, we started it as a server side tool, right? We started as a language for creating our own products, writing our own products in Kotlin and we don't do mobile development.
That's how fake news happens, you know what
Chris Engelbert: I'm saying? Yeah, that's fair. I think there is like, what is it? There's a JavaScript backend. I think there's a native backend. There is the JVM backend, which was the initial one. Then there is, did I miss something?
Hadi Hariri: Yeah, there's a native, there's a JVM backend. Then we have a JavaScript backend, which is kind of like staying at its, at the stage it is more or less. We're just mostly maintaining that one. And then we have the native backend, which gives you ability to access, create executables for windows, Linux and iOS and Mac OS, and some other targets, and then we also have been working on WebAssembly support.
Chris Engelbert: So in any case, if you looking for a really cool modern language, that basically targets everything, Kotlin is way to go. That was, that was always my take on that. It's a very pragmatic language. I like the fact that it feels more like designed by actual developers than language architects, in the sense of like, you look at the problem, like what is the most pragmatic solution to that kind of programming problem, which is very different from something like, like Scala or stuff, which seems very artificial and very like theoretical.
Sorry, Scala folks, if, you're still around, But the language doesn't do great anymore. Anyway, we're, a cloud podcast. We're not talking about programming languages. except for one specific question, like how, what is your take? Or how do you see the future, especially in the sense of cloud for different programming languages, like, like JavaScript, Go, Python, Java, Rust?
Hadi Hariri: Hey, you're going to have to forgive my ignorance. So I'm going to come back with a question to you when we're talking about cloud development, what are we talking about in particular?
Chris Engelbert: That is a very good question. That is a very good question. So from, the scope of the podcast, I think it's mostly around anything you would run on Kubernetes, which is often microservices.
but doesn't have to write, like databases, all kinds of stuff. But, there is still people going back to, like virtual machine based deployments.
Hadi Hariri: I think they're really realistically, I think the language probably doesn't matter much, right? it's, more around the platforms and what support they provide you.
with what you need for deploying your applications and making your applications run. I mean, if you take a look at, for example, microservices inherently, if they're to be done in a way that they should be. and note that I don't say how they should be done. I'm just saying if they should be done in the way they should be done, they need to work in a somewhat disconnected manner, right?
And part of the beauty of that is that I can now have different languages and different, services running. that are talking to each other with a common protocol. And it doesn't matter what's running under the covers. Obviously, there are So now it turns more into where the focus of the cloud providers are and the service providers are.
And what languages are they supporting. I think the majority of them are probably supporting JavaScript. because, well, they, you know, it's the most popular language. then there was a, I don't, I haven't been keeping up with this, but I don't know what's happened with serverless, whether serverless is still a thing or it's not a thing, or it's like, you know, it's still a thing, right?
So there again, you talk about, you know, which languages are supporting serverless technologies. We, support it obviously with Kotlin. then I know that, for example, some of the big cloud providers support it, if you're using JVM backed languages. So, I'm not sure that the language itself is, like, the only way that I would look at it is, okay, I want to use these services from these cloud providers.
This is what I need. What languages do they support? And I think that the cloud providers are kind of like looking at us and saying, Okay, so what's the next big thing that people want? And should we start supporting that? So I wouldn't be surprised if at some point, you know, if probably already rust is picking up on that side of things as well.
Right? Yeah. Because why? Because people are liking rust. So let's start providing rust.
Chris Engelbert: I like the very pragmatic answer. You're right at spot at JetBrains. That is a good point because, I mean, at least I think that is how JetBrains started, it was all around IntelliJ and then the, Intelli, basically IntelliJ being the Java IDE. Then there was the IntelliJ platform, which became basically the base for all of, well, most of the, other IDEs, Is there anything that is not supported yet in terms of, I think there's no Rust IDE Is it?
Hadi Hariri: Yes, there is Rust Rover. Rust Rover is our rust. IDE actually rust. We support it in, right, in C++ in our C-Line IDE which is, the C++ as a plugin. Then we supported it also in IntelliJ IDEA. And then we created a dedicated plugin, a dedicated IDE for, Rust.
Chris Engelbert: Interesting. I wasn't aware of that.
I mean, I do, due to being a Java champion, I have access to all the tools, but, I'm, already using way too many languages. So I haven't gone deep into Rust, but before I became Java champion, I was a happy paying customer. of the whole lineup, because I, actually use like pretty much daily, like a WebStorm, unfortunately, PHPStorm, Goland, which by my, from my perspective, like the best Go IDE ever, IntelliJ obviously for, Kotlin and Java,
and sometimes PyCharm. And what one thing that I really like about the IDEs is that. They still feel very much the same thing over and over again. whereas with other things you have to switch. Well, you have Visual Studio Code, but, personally, I would say they're like Visual Studio Code and maybe the JetBrains IDEs.
Hadi Hariri: Regarding the whole being a paying customer, I mean, let me know who I can talk to, get rid of your Java champion status so that you can return to being a paying customer.
Chris Engelbert: I was a happy paying customer and when I figured out that as a Java champion, I could actually get the IDEs for free.
That was awesome. But I would have stayed like a paying customer, anyways.
Hadi Hariri: It's taken the opposite approach here, right? Whereas vs code, for example, is an IDE where. You basically can use it for any kind of language. taking into account that you have to add the plugins and the different functionalities that you want.
We try and provide a more catered experience out of the box. so if you're doing web development, you know, and especially if you're using JetBrains Toolbox, then it's, really, you don't have to think about the IDE. You just have to think about the project. Like even today when you install JetBrains Toolbox.
You can open things by projects, not by IDEs, right? So it says, oh, okay, so you're opening a web project. Okay, so then probably you, know, you're going to be using WebStorm for this, but the feel of the IDE, the shortcuts, everything is exactly the same. It's just catered. Towards that specific use case scenario.
Chris Engelbert: Yeah. And many of the IDEs have like, plugins, for other languages, which are commonly, happen to be around like PHPStorm supports HTML and JavaScript, because that's what you normally do when you do PHP website.
Hadi Hariri: Exactly. So they're, supersets. Like for example, you know, exactly. As you said, PHPStorm supports all of those languages, PyCharm the same.
PyCharm, if you're using professional. Version, it's not just Python, right? It's Django. It's all of the web stuff. And if you're supporting Django, obviously you got to support front end stuff. You're going to support JavaScript, HTML, CSS, all of these things. Yeah.
Chris Engelbert: The other side is that JetBrains also are, like for, I don't know, like probably around 10 years or so started to do more of the production tools after development, like CICD. I don't know what else, right. There is a lot.
Hadi Hariri: Well, I mean, TeamCity which is our CICD software, has been around for, I think about 20 years or 18 years. Yeah, this, came about at the time of cruise control.
I don't know if you remember cruise control. It was a solution by, ThoughtWorks, which was based on XML configuration. and it was just a command line tool, right? that would run. and TeamCity came as a result of that, like, yeah, you know, there surely should be a better way for us to do something like this.
TeamCity is now alternatives to TeamCity are, for example, Jenkins, which was Hudson at some point, right? so yeah, TeamCity has been around for a long time and we cover CICDs. We've just launched a new kind of, flavor of TeamCity, which is called Pipelines, which is very, easier streamlined solution that is like, if you just want to get up and running with an IDE with a project immediately, getting it to build, you do that because like, here's the situation with TeamCity.
TeamCity came as a response to. Us wanting to just build things in a much easier way, right? And at the time, as I said, there was cruise control, it wasn't very intuitive. And so, but then as TeamCity grew, as our needs grew, as our customers needs grew, TeamCity started to take on more complexity. And now it's a, you know, significantly complex product that, can, you know, serve hundreds of even thousands of agents, which are the, you know, the, machines that are doing the building.
of your products and, coordinating and orchestrating all of this and connecting to so many different types of services and endpoints, et cetera. And yet, despite that, we've tried to still keep a clean user interface. Right. But TeamCity right now is at a level that probably, you know. Larger customers and enterprises are using very effectively.
And so we, you know, took a step back and said, okay, well, if we go back to our roots and, while anyone can still use TeamCity today for a simple setup, you know, equivalent to what you would call, for example, GitHub actions, sometimes people feel overwhelmed with what they're presented. And, so TeamCity pipelines or pipelines is basically that rethinking of, How we can leverage, everything that we've learned and, bring that simple experience again, to-
Chris Engelbert: Right. And then there's, I think that goes a little bit more back to development. Then you also have tools like Space and Fleet.
Hadi Hariri: We did. We sunset Space. Yeah. Space is sunset. Yes. space was, space was an attempt for us to try and moved in a direction where, we could provide an all in one solution, for, software.
shops, right? so if you take a look at GitLab and you take a look at GitHub, they have their series of functionalities, right? But then people needed Slack. Then people needed, a directory for, you know, their employees. And then they needed something else. And we thought, okay, well, this is a problem that we have at JetBrains.
Can we try and create some kind of all in one solution? to be quite honest with you, I personally didn't really believe strongly in the idea because I've been around for a long time and I know that all in one solutions often are not just, they don't do everything great, but also it's hard to sell to, be quite honest, like it's hard to come to a especially, you know, space for where it really starts to show value with like, employee directory and all of these other things are companies that are, you know, 200, 300, 500 people.
When you get to that scale, someone's like, you're not touching my ERP system, or you're not taking out JIRA, or you're not taking out this, or you're not taking out that, you know, it's a very hard sell to say to a company, take everything you've got, replace it with this. Even though longer term, you may even be happier, less maintenance, less software upgrades, et cetera.
It's a very hard sell. And then if you go down the route of, well, we're trying to provide an all in one solution, but also let's provide integration with points with everything else, then it kind of says, then what's the point?
Chris Engelbert: To be honest, I've never used it. but it's, I guess, kind of similar to GitHub spaces from the idea.
Hadi Hariri: Oh, no, that's, that was, that's a different thing. fleet is basically our attempt to, go the alternative route, which is provide a single IDE experience independently of what you're doing. And to be honest with you, IntelliJ IDEA is that single IDE like IntelliJ IDEA has always been polyglot. but fleet is that attempt.
fleet also tries to take a new approach to some of the ways that we work. so yeah, it's a different approach to. how we usually do IDEs it starts off as an editor, so you can just launch fleet as an editor that then it's got an option to enable it as an IDE So you get all of the smartness without having to configure tons of plug ins, but it's polyglot, From the ground up.
And in fact, the KMP tooling, Kotlin Multiplatform tooling, which Kotlin Multiplatform is the ability to write Kotlin code and target many platforms. IOS, Mac OS, Android, all of these, You know, we're, building some of that tooling on, the fleet platform.
Chris Engelbert: I always assumed it's, going to be an online editor, basically running my web browser or something.
No, it's a standalone client right now. Okay. Interesting. And then there is like a lot of the tools have free versions, and commercial versions.
Hadi Hariri: So we have, like there's two tools that have community editions, which we call them. There's PyCharm Community Edition, which is a cut down version of PyCharm Professional. And then there's IntelliJ IDEA Community Edition, which is the cut down version of IntelliJ IDEA Ultimate. Both of these are open source platforms and we've built on it. And Android Studio is built on that as is, for example, Dev Studio, DevEco, which is the development environment for HarmonyOS and products such as that.
And then, you know, outside of that, then we have, we've started to offer with some of our products, such as Rust Rover, the ability to have, so you've always had the ability to get a free license from JetBrains, right, whether it was under the open source license, I, you know, you're working on open source for a non profit, it's a hobby, you can get an open source license, students get free licenses.
So there was different manners in which you can get free licenses. In addition, now with Rust Rover, we've actually launched a non commercial license. So that means that if you're using Rust for non commercial purposes, where you're not getting direct revenue from or indirect revenue from, then you can use the product for free. So, yeah.
Chris Engelbert: I think I told you once that I really loved your very specific talk. There is no silver bullet. And I think it sounds a little bit like, would you just, explain about JetBrain Spaces, like a one thing that tries to do all is not easy. But in this case, it was, I think it was more about the general changes that we've done. We went from CELP to, microservices to, I don't know what else. And every single time it's, like, but this thing is, it will solve all of our issues. And we figured it does not. Is that still something you believe today?
Hadi Hariri: Well, yeah, I still don't think that everything and everything is going to solve our issues. I mean, even-
What?
is going to solve our issues.
Yeah. Yeah, exactly.
Chris Engelbert: Give it another year or two and people will figure out not every single tool needs an AI assistant.
Hadi Hariri: Yeah, it kind of reminds me of the time when every tool was an email client as well. I don't know if you remember back then, it's like, oh, you're creating an app, but if it doesn't have an email support. It's not an app, right? I mean, look, the reality is that, you know, we have gone through many hype cycles. I believe that AI is going to change many things and I think that we are already seeing the results of that.
But there's also a significant hype associated to it, but that doesn't mean that it's all hype. Like, I don't see that we'll completely move off of AI like we've moved off of some other things.
But like with any new technology or any new thing, you know, there's that excitement, everyone's trying out everything. And then it kind of like cools down. And then we did the dust settles and we start to see, okay, where and how is this actually useful and where and how is it not that useful? I mean, even with our IDEs right now, you know. People are using AI. They're using, you know, our assistants. They may be using third party assistants, et cetera.
But here's one of the challenges that that I've, you know, been thinking about right now, yourself, me, many of us have spent a significant amount of time of our lives writing code and learning software development. And yes, we have also gone to Stack Overflow and other places and we have copied and pasted code, right? And, to an effect, you know, what the chat assistants right now, what the AI assistants are doing now, right now is not that much different, right? They're just, the answer doesn't need to necessarily exist for them to deduce it.
And so when we've pasted that code, something still in us has made us look at it and see, okay, well, this looks more or less okay. And as we've created code over the years, we've had seniors to look up to and seniors that hopefully have been doing peer reviews and code reviews and checking things. Okay.
And all of this comes from experience that we have curated by spending a significant amount of time dealing with bugs, writing code, practicing, testing, et cetera. We've learned. And what I'm thinking is as we move more towards an era where more and more people, I'm not necessarily saying software developers, but I'm saying people, can end up in a situation where they're writing code and generating code from the AI assistants, who's going to be looking out for them and who's going to be looking out for the code that these are generating and who's going to be mentoring those people, right?
So like, if we're not careful in a sense, a generation of, like the generations of software developers may potentially be lost and that might be okay. I don't know. But as we move towards more and more juniors, just spitting out code with assistants, you're already seeing the results. You're already seeing so many security vulnerabilities. You're already seeing so many issues in the code. And some of this code isn't even being run for a longer period of time.
And here's the other thing, we're not even sure the results of what happens. Yeah, we hear a lot about, you know, tools creating an entire application. We don't know what happens when they put it into production.
Right, exactly.
Chris Engelbert: I'm completely with you on that one. I, for the sake of time, I try to keep it short, use ChetCPT just for fun, generated a Quarkus application, doing some database stuff, and it generated a database query with string concatenation, taking in dates as a string. But in the same answer, it told me about being careful about SQL injection. I was like, great, perfect. Thank you very much. Right.
As I said for, the sake of time, because we're on this topic anyways, what do you see as next big thing? Maybe after AI?
Hadi Hariri: What do I see as the next big thing? Oh, man. I don't know if I did, I wouldn't be-
Alright. That's fair. That's again, answer. I like that.
Yeah, I have. I have no idea what the next big thing is. I mean, I think that the next big thing is going to continue in the realms of AI if, we don't manage to blow ourselves up as a society with all of the conflicts and everything else going on.
But, yeah, I'm guessing that we're going to continue in this realm. I'm probably thinking that we might move more in other areas such as infrastructure, such as DevOps, trying to incorporate some of this functionality, and make things easier for people to develop and, and not, sorry, not just develop, but deploy software.
Chris Engelbert: All right.
Hadi Hariri: So yeah.
Chris Engelbert: Then, last question. Is there anything else you want the audience to know?
Hadi Hariri: That's a very, very broad question. Scope it down. Yes. It's like you're giving me a platform to say anything that I could. Potentially think of what I could say. And I would say, have you tried the new chocolate donut? No. I just say, look, embrace, but always be, always remain-
What's the word? What's the word that I'm looking for? It's kind of like, not cautious, but vigilant, you know. Think about things for yourself. And this doesn't just apply to AI or anything you do, or, you know, even you're listening to this podcast, and I'll say to you, Kotlin is great. No. You evaluate it and figure out for yourself if Kotlin is great or anything else is great.
We really, really need the ability to make sure that we're still thinking and analyzing things for ourselves, and especially in this world that is so, you know, polarized and pushing us in all directions. And everyone's got an agenda. And I think it's important to remember that when we're evaluating things and making decisions.
Chris Engelbert: I think that is such a beautiful and perfect ending for the episode. I couldn't have done it better anyway. All right. thank you very much, Hadi. thank you for being here. It was a great chat.
Thank you for having me.
And for the audience, you know, the spiel, same place, same next week. And I hope you're listening again. And don't forget to click subscribe, like whatever, the typical spiel. Thank you, Hadi.