In this episode, we talk to Andrey from the Webstorm team, and find out how the web has changed over his time at the Webstorm. We dive into how it’s like leading a product like Webstorm to how things are different from the jQuery days. Lastly, we talk about what the team is thinking about and working on now.
Transcript
Nafiul: Welcome to Early Access PyCharm. I’m your host Nafiul Islam.
Today, we’re going to be talking to Andre from the WebStorm team. And he’s going to tell us a little bit about how PyCharm’s web capabilities are built and what has changed over the course of his tenure as a member of the WebStorm team, to what they’ve got planned for the future.
So Andre, the only thing that I know about you is that you lead the WebStorm team. What does WebStorm have to do with PyCharm?
Andrey Starovoyt: There are two questions here. First of all, I want to mention actually I am team lead of the Webstorm team, the last year, a bit more, before it was so another team lead. So for me it’s some kind of new experience and it was so really interesting and challenging because it was the time of the lockdown.
Of course we have remote or distributed team, because so some, colleagues work in Munich, some in Poland, And also we have developers in Amsterdam and St. Petersburg.
Nafiul: Makes sense. So this is a new experience for you. WebStorm is actually our, web offering. This is what we use to build our front-end technologies. Um, tell me a little bit more about how WebStorm came to be. And essentially where it is right now.
Andrey Starovoyt: It’s interesting question, because, back then, WebStorm was a part of, PhpStorm, as far as I know, and at, some point that I was at the decision to split the team into two.
Like a PhpStorm team and WebStorm teams that will handle everything related to the JavaScript development. And I believe it was a good decision because now javascript is not only is a front-end language or language for frontend development, but it also add backend language.
Nafiul: Yes, we have NodeJS. And, uh, also Dino, do we support Dino yet in WebStorm?
Andrey Starovoyt: Yes, we have a blog and from Dino.
Nafiul: Oh, awesome.
Andrey Starovoyt: Yeah.
After the decision or we started to work on more precisely on the, JavaScript technologists development. Some people said that it was really challenging back then, because when I joined the Webstorm team, frontend started to grow so very fast like, we had new framework every week and it was all about decisions.
Like, do we really need to support this framework in our IDE or it will die in couple months. If you talk about WebStorm, at this moment or right now, or it’s, different thing because now we have three major, framework, Angular, Vue and React. Of course, some people can say that’s the reason also Svelte. But, it’s not so popular yet. And everything that we, considered to develop to improve. We are it’s related to these technologies and of course, so about JavaScript language or itself.
Nafiul: So tell me about the contrast between what’s happening now, because right now you have to support Vue, React, and angular.
And there are multiple versions of Angular and they come up with a new one all the time. so tell me a little bit about, you know, how it was like in the good old days of jQuery when jQuery was web development and now it’s not.
Andrey Starovoyt: Actually, I’m not sure. It was in the jQuery, times. Uh, I know how it was when I joined it, the team it was.
Nafiul: When did you join the WebStorm team?
Andrey Starovoyt: Seven years ago.
Nafiul: Seven years ago. My goodness. You’re an O G.
Andrey Starovoyt: Yeah. The problem there was, there are too many frameworks. [In] 20 14, ES6 standard wasn’t yet released. So we had some, proposals, we had some, features that can be a part of the standard. But, we weren’t sure about it.
And, there are a lot of languages, similar to Javascript, for example, coffee script. Do you know, coffee script?
Nafiul: I personally used to use something called iced coffee script. It had something, it had two keywords async and defer. So it made handling callbacks a lot easier, but this is like ancient history.
Andrey Starovoyt: Yes. Yes. And it’s interesting fact that, coffee script had several dialects, including ice script, and, It was the same for all the parts, for the front-end development.
Nafiul: So back then, you know, everything was emerging. Everything from languages, dialects of languages, frameworks, I mean, do you remember CanJS and Ember JS and BackboneJS and all these different frameworks? Why do you think people kind of settled on react?
Andrey Starovoyt: Um, it’s interesting question. Uh, one of the reasons I believe that, it was supported by, huge companies like Facebook, and also each introduced a good conception that was really easy to understand and to implement. And let’s say, I think we can say about Angular, like you turned use two very simple conceptions and, it also supported, supported by a huge company. Uh, and it follows the reason why, around that framework because the technology can be built good community.
But it doesn’t work all the time, but, I believe it worked for angular and react.
Nafiul: I see. So, what I found interesting about the whole react and angular thing is that it was a move towards single page applications, but that meant like typical, frameworks such as Django in the Python world, flask and the Python world, you know, they were mostly making APIs.
So you saw a rise of backends, just making APIs that were simple layers over the databases, right. They provided authentication. They provided rate, limiting tags, all that good stuff. And the front end, it still had the NodeJS server because you still need to serve these files. Right. But you were working with single page applications.
So why is it that things are slowly coming around back to server-side rendering, after all this time.
Andrey Starovoyt: Oh, actually, I don’t know. We can guess that, or just very simple for a front-end developers or to understand how it works and you can focus on the technologies or you don’t need to think about the backend at all.
It just an API for you. And you can build ever since that you need to own the front-end site.
Nafiul: makes sense. But you know, now that server side rendering is slowly coming back. I think there’s hot wire. I think react also made some leeways into having server-side rendering. Does it feel like it’s just what’s in fashion or is it that, there are benefits and people are like, you know what, maybe single page applications involve just too much work.
Andrey Starovoyt: Right now, it works, the ways that you use server-side rendering and still use all single page application conceptions. So we just a way to, speed up the rendering at the first time. And after that you can work with the rich application.
Nafiul: You’re kind of getting the best of both worlds.
Andrey Starovoyt: Yeah, definitely. If I talk about server-side rendering for front-end development, it’s usually done also on the NodeJS side. And you don’t need to, invest time in the study other technologies. So you can do everything using JavaScript and react for example.
And it just will work.
Nafiul: Makes sense, but you know, one of my pet peeves about front end in general is that it’s very complicated. And I know that’s a subjective way of looking at it, but you know, you have, pre-compiled languages like TypeScript that have their own map files. And then you have this thing called Webpack, which is a monster in and of itself.
How do you keep up with all these tools that are popping up every five seconds? Because front end, isn’t simple anymore, back in the good old days. Well, I think it’s the good old days, you just put a script tag in your HTML, write some jQuery and that’s it. Now you have a pre compiler.
You have post CSS, you have this, you have that. How on earth do you get the time to actually make tooling for all this?
Andrey Starovoyt: Actually, if we talk about, onboarding, like you want to build an application, you can just use create react app and it just works. So you don’t need to think about all the details, like how Webpack works or react translated into the JavaScript code and so on. And actually I believe the same problems there is with all peak languages, like let’s call it peak. If we talk about, Java there is spring boot that just a frameworks that solve almost every possible problem about the web development.
And you cannot just understand how it works. It’s a magic. If you start to learn to work, if you started to use it, it’s a magic for you. And it’s the same tool for all framework. If we talk about Java, we can also mention so hibernate or something like that.
Nafiul: So basically you’re defending, the complication of everything. It’s like, Hey, we do everything. So it’s okay. If it does everything.
Andrey Starovoyt: But we understand why we do it, why we need a Webpack, why we need TypeScript, because it, solves some problems and here they are set up in general is a part of magic because you don’t understand how Webpack works. But, uh, you know, that webpack builds for you optimize it to call towards that includes everything that you need and so on.
And yeah, it helps.
Nafiul: Yeah. In Webpack we trust. So, um, you’ve been building new features in WebStorm like crazy. I’ve been looking at your release notes. A lot of these things are coming over to PyCharm as well. Tell me about, you know, what are you going to be focused on next? What is your next big thing for WebStorm?
Andrey Starovoyt: As I mentioned before, we don’t have, a lot of frameworks that we need to support, because javascript development are not splitted, like it was before, right now we have three major frameworks like angular or react for you. And we want to improve for overall experience for the, the users of the frameworks, like introduce new inspections, introduce a new fixes, introduce integrations for the frameworks. It’s one of our focuses. Of course, we need to support new versions of languages including TypeScript and JavaScript, something that has to be done by default and also we think a lot about onboarding. We have a lot of features, a lot of refactoring fixes and so on and, or it’s beaches that a lot of our users just don’t know about the features just very sad for us.
Nafiul: We have the same problem in PyCharm. We do a lot, but not all the features are discoverable. So on that note thank you so much for joining us and we’ll hope to see you again soon.
Andrey Starovoyt: See you soon. Bye.