Andrei Calazans
Andrei Calazans
I'm a Software Developer with an emphasis on a JavaScript Stack(React, React Native, GraphQL, Relay, Apollo, Redux, Redux-Saga, and others). Over the past years, I've worked mostly with Front-End applications, but I have done Back-End work with GraphQL JS. Despite starting my career on the Web, I have been working with Mobile applications for quite some time. Due to working on cross-platform solutions like React Native, I have some experience writing Swift, Objective-C, Java, and C++. I cherish good communication and respect. I also have some of those cliche skills = ) Fast learner and a good communicator. Besides Software Development, I like writing, learning about emotions, and philosophy.
Panel Discussion: The Leland Prediction
React Summit Remote Edition 2021React Summit Remote Edition 2021
30 min
Panel Discussion: The Leland Prediction
Video
Hi everyone, my name is Andre Calazans. I'm head of vetting at G2I and I'm here joined with Tejas, Arianne, and Anurag where we're going to be talking about Leeland's prediction. If you guys don't remember this tweet, it happened back in 2017 where he mentioned that he hoped to see React and React Native B and become even more popular, plus see everybody be using something other than JavaScript with React, something with a strongly typed language. Let's see if that prediction panned out and let's see what our panelists here have to say about it. Before I continue, I'm going to ask everyone to introduce themselves and tell us who they are and what they're working on. Arianne, why don't you start this out? Hey, sure. Yes, my name is Arianne. I have been working with software development for over nine years. I work for G2I and one of our clients that's called UITV. I'm a React Native developer there. I'm a React Native developer. Awesome. And we also have Anurag. Hi there. So my name is Anurag. I am a self-taught front-end developer from India currently working at Timeless Ventures. I'm currently also at college pursuing my bachelor's degree. And yeah, we're looking forward to this panel discussion. Thank you. And lastly, the most famous person in this panel, Mr. Tejas. Hey, I'm Tejas. I also currently as of this moment work alongside Andre. Andre? Andre? That's Andre. At G2I. And write a bunch of code and do some tech stuff with him there. Very cool. Awesome. So we joined in this... We thought of this discussion because it was quite interesting that back in 2017, Leland was talking about how he was seeing the trends and that React and React Native was going to become even more popular than it was at that time. So let's start at the first prediction, which was a two-year prediction. So it would have been around 2019. What do you all think about this? Is React and React Native still very popular? And at what is it being good at solving that makes it popular? I'm going to start with Ariane. How do you see this question? I think React and React Native are even more popular than four years ago. Because the way it improved, when it was released, we had this, for example, class components. This class component is more based on object-oriented programming. And now we've seen the evolution. Now we have hooks and we have functional components. Components became more and more easier to use. The manager, we have improved the way we manage our props and stage. So it's... And what I see, it's become even more popular within big companies. For my experience, working at UI TV, that's we built React Native apps for TVs. And this company was recently acquired by Warner Media. And so when we were going to release the new HBO app, using React Native. So this is insane how it became popular and widely used. Amazing. So you think the evolution of React and its constant improvement is also making it more attractive to people and even big enterprise getting into this. I mean, Warner Media, they're behind HBO and a whole bunch of companies, right? And it's insane to see how it has become so popular in evolution. And I think if I can release a prediction here, I can tell that in two, four, five... No, no, no. Wait, wait. Sorry, sorry, sorry. We're going to get there. Hold on. Sorry. And what about you, Anurag? What do you think? What is React really good at solving, like in your perspective? I think React's most important part is the component model. It brings the component model. It makes sense, I would say. And I think React excels at innovation. I would like to compare React with NASA. NASA takes the first step, and then all the people like SpaceX and other people take the little steps to go forward. Same with React. React also takes the first steps to do the innovation, like server-side components, the composition with hooks, and other... This kind of innovation, I see mostly on React and the ecosystem around it. So I would say React is very good at this innovation. So it's breaking ground and innovating in the space and making people follow it. It's really cool that you said that. In the thread, if you look back at the... So this was a Twitter thread, right, that Leland posted. And you will see how people are remembering similar tools today in the space that is replicating what React already does. So we got SwiftUI. You have now JetCompose, and Flutter, and all of these other tools. And for you, Tejas, what do you think... What is React still lacking that is not really doing a good job at? I'm gonna ask the harder questions to Tejas. And where do you think is there room for improvement that would possibly dethrone React from its current position? Wow, that's a really... that's a good question for me. But I think... It's difficult. I would say this. I think what I'm about to say is I'm about to identify a place where React is lacking. And people, not just me, but the community in general, I've spoken to people who say it's lacking. But it's very clear to see also what I'm about to say as something where it's not lacking. And that's because React plays this game of being an abstraction layer. And when you do that, it's so hard to find the right level. You either end up over-abstracting, which we do internally at G2I sometimes, or under-abstracting, which we also do. And React, I feel, doesn't do the best job at being opinionated. Again, that's by design, right? But because of that, I feel like if somebody's joining React today, and they have every reason to because the popularity is only going up, there's going to be confusion. Like, oh, do I use a reach router? Do I use a React router? What is React router DOM? Should I use that instead? And there's a new CSS and JS library every week or so. And so that, I feel, there's room for improvement there. And thankfully, the improvement exists. There's things like Next.js or Remix run, stuff like that, which helps. But yeah, React on its own has a serious hole there that the community fills. But again, I feel like this is by design, right? But it could possibly improve there. The additional thing I'd say, just to kind of wrap it up, to wrap up my answer to this question, is I feel like React could help developers just by nature of being a library. Because when you ship a library, you get to also ship your opinions. They could help developers build apps in a way that ships less code from the beginning. And we're seeing some things being done in this space already with suspense for code splitting. But generally, more things like that, which kind of hint to the consumer, maybe split this out, code split this. Awesome. Excellent points. Go ahead, Anurag. Yeah, so also adding to Tejas' answer. So I would say React also need to innovate on the compiler system. Compilers are the new future, right? I would say take Svelte. Svelte is compiling the source code to ship less and less bytes to the end user. So I think React, if React in future implement some kind of compiler system, that would be also very innovative. And I think it's also needed because most of the frameworks are already doing this. Svelte, Vue, Vue also has a compiler and Svelte is a compiler. So I would say React is lacking in this scenario. I would agree with you and add just one tidbit. There's actually work happening. I've seen it, Facebook, to do that using something called prepack.io. I don't know how far that's going, but maybe it's not a compiler, but it's very much in that same domain that would allow for shipping less code with a transpilation step. I'd love to see prepack become a thing in the mainstream of web dev. Amazing. Great comments. And I think even Sean, aka Swicks, on Twitter talked about something around compilers and everything is a compiler and the tendency towards abstracting away the tools. And then Tej has touched on an interesting point, how having a compiler set, you could then reduce the amount of code we need to write to actually output good production apps. And then you touched about hitting the right level of abstraction, which I loved, because there was a controversial tweet this week from, I think, I won't remember his last name, I think it was Adam Rackus, talking about questioning hooks and is it the right abstraction? And it's exactly that. It's really tough to find the right level of abstractions, right? Yeah, I agree. And you know, it's not, I think if we expect each other, or if we as consumers of React expect the React or React Native core teams to get that right straight out of the bat, it's a bit unrealistic. It's like, how? I feel like from all, I've spent a lot of time writing code, I feel like you don't really know the right level of abstraction unless you keep doing it for a while and then you develop a feel for it, kind of like a sixth sense. So to say, hey, hooks are wrong and the React team was wrong and it's bad, I think may not be the right approach because it's not bad, it's experimentation. Like we'll figure it out over time. Awesome. I'm going to ask Studio now to put up a question for everyone. Of course we're talking React, but we would love to see if anyone is actually using something other than React. If I was to ask if you were using React, I think we're going to get a lot of yeses. So I'm just going to ask, so Studio, show the poll question number three, which is, do you know any production apps using something other than React as their UI framework? If yes, try to add your answer for what is it. I love to look, check this back afterwards to see. And I'm going to ask the panelists here, which frameworks would you guess will appear in the yeses, Ariane? Maybe. I don't know about Flutter. I've seen this popularity has increased over the time. And I have seen, for example, in Wikidink, a bunch of new jobs looking for Flutter developers. So maybe it's something that we have to watch. I don't think, it's my personal opinion, that Flutter will be popular as React Native. Not in the last two years, I guess. Because React Native is still very popular and it will become more popular, as I said before. And also, I think one of the advantages of React and React Native is built in for JavaScript. So I guess it's one of the most popular program language when people start programming, at least when I see, for example, they start with JavaScript. You know, they learn algorithms with JavaScript. So I think this is one of the reasons that React will be still popular. Interesting. Good point. Yeah, JavaScript is always easier to get started with. And you Anurag, what frameworks do you think will show up for the yeses on that question? Yeah, I think, like, as I don't have an opinion on Flutter or anything like that, because I didn't use Flutter yet. But I think that React Native has a very good chance because the barrier to entry is very low, especially if you already know React. That's the adoption, like, the core principle is that learn once and write everywhere. So I think that's why the popularity of React and React-based libraries and the JavaScript ecosystem has all, like, this, the popularity and adoption is huge, right? That's why I think React will grow as a framework. Okay. And Yusuke, just what other framework besides React and React Native do you think will show up in the yeses on that question? For sure, Vue. Vue is popular. I think it's way more popular than React devs give it credit for. I think for us with React, we're in a bit of a React bubble. But Vue is popular and doing some really good... I think GitLab, for example, uses Vue for GitLab. It's used at scale, I think. I'm not sure about GitLab, but I have seen it used in some larger apps. So Vue, for sure. I don't know about Vite with Vue, but I imagine so, because it's in the same ecosystem. But I'm almost certain we'll see some solid Vue adoption in the answers. Nice. Yeah, I'll put my money on Svelte, because there's a lot of noise coming from that crowd. I'd love to see it in production, though. Maybe in the Discord or where people are chatting, if they can put links to production Svelte apps, I would love to see this. Because I want to build something in Svelte myself, but I don't know if it's for lobby products or for large apps at this point. I just don't know. I heard of a fintech company in Brazil using Svelte to place an embedded app in their credit card machines. It was pretty cool to see that. Yeah, we're not here to talk about Svelte, but that's an interesting thing. So the next thing, though, is that the second prediction was that in four years from now, back in 2017, that we would be using React, but except in a strong typed language. I think this was where the salt was at. The nice prediction that I wish had... Well, I won't say what I wish, but was this fulfilled, in your opinion? I'll start with Tejas on this one. Could you repeat that? The signal wasn't clear. I saw a graphic, but the audio wasn't clear. Could you repeat that? Yes. So the fourth year prediction is we will be using React, except in a strongly typed language. In your opinion, was this prediction fulfilled? I think so, for sure. I mean, based on our internal G2I data, even, we're seeing more... I don't know how much numbers I can share exactly because of data protection, but we're seeing a lot of people require TypeScript with Canvas. So they'll come to us and be like, hey, I want to hire four React developers. By the way, bonus points if they have TypeScript. Or in some cases, it's a hard requirement. For us, Andrew, you and I, the code we write every day is fully TypeScript. And I know a number of engineers, you mentioned Adam Rackus, for example, where TypeScript's a thing everywhere. So I'm inclined to say yes, that prediction spot on. But it says strongly typed languages, so TypeScript, yes. We're seeing maybe some Dart, too, with Flutter on the React Native side, but I'm not seeing like other strongly typed languages. For example, I know ReasonML tried to be a thing with Reason React. I've yet to see that be commercially prevalent. Yeah, I think when Leland made this tweet, he was inspired by ReasonML, now Rescript. And so I don't know if his actual thoughts came to fulfillment. But Arian, what does TypeScript try to solve? And why is it becoming the main way to actually develop React apps today, in your opinion? I can say I started with TypeScript because at the beginning, I think TypeScript wouldn't change at all. The way I developed at all, it wouldn't help me. And then I decided to give TypeScript a chance, and it changed my life. Now every project that I start working on, I use TypeScript. When I have to maintain some app that is not using TypeScript, it's a pain. You know, because I think the most, you know, I think TypeScript has solved the most is, for example, when using we can type objects. For example, when we type or create a schema for a response, for example. So at the time we were developing, we know what properties will come from the API. We know what's the redux states, for example, the global state. What's the structure, you know, when you're developing. But when you're going to maintain a code, for example, one month from now, you know, we won't remember everything. And TypeScript, I think it helps a lot. Helps 100%, you know? So TypeScript makes, by the time when we're adding TypeScript to a project, it can be a little pain. It can have a little pain. We have to type everything, and we set the link to not allow any types. So we have to type everything. The property has, we have only one property to that component. But it helps. The main thing for me that TypeScript helps is when we have to maintain the code. You know, it makes a lot easier. Yeah, and that takes me to a connected topic, like you mentioned. Having predictability and also knowing the impact surface of the code you're writing. But then having to type everything, because things can be any. So is TypeScript a strongly typed language, though? Like how do you all feel about this? I'll let Anurag take a stab. Yeah, I would say it's strongly typed, but it gives you a lot of space to expand upon later on. Like you can, instead of doing any, I would recommend doing TS ignore, and you can later on, after learning a bit more of TypeScript, you can later on come back and say, yeah, I can now type this. I would make it more type safe. So it's incrementally, you can incrementally add up the code base to be more types. And speaking of TypeScript, I think the type system is so powerful. Like it's literally, you can do type level programming in TypeScript types. It's I would say there is an issue in GitHub in TypeScript people that says TypeScript can like TypeScript type system is, what does the, I forgot the names. Like you can literally do programming. I myself created a CSS parser on the type level. So that's pretty crazy things you can do with typesets. And the DX it provide, I think the best interest. So I think it's pretty great. Good. Excellent. That's a good point actually. And I think that is exactly why it is as popular as it is. And it grew in popularity in contrast to Reason and Mail, Rescript and other alternatives that are very strictly typed and don't allow a lot of room for you to go easy on it initially. So those are good points. And I want to ask the studio now to tell us, to put up another question that we have. All right. We have the results already here. Let me just open up on the big screen so I can see. So we are seeing view Angular, no Flutter. Amber. Okay. Yeah. Amber as well. Phoenix, Preact, of course, Preact. Lit HTML, which is okay. Web components. All right. Cool. There are some options. I mean, Angular is still very big as expected, right? Awesome. So the next poll question is also about if you're using anything compiled to React or JavaScript for production applications other than, of course, just JavaScript and TypeScript. Or actually the question has TypeScript as an option. So you could use that one. Let's see if any other language compiled to JavaScript is being used. We have some options there. But of course, somebody can add an extra option. We'll come back to this at the end. And now we can just go into the final part of this conversation. Before I get into that, the interesting thing is if you look back at Leland's prediction, he wasn't really expecting TypeScript to be the main language being used, the strong type language. In his opinions, it was ReasonML with Rescript or something like Swift or even Kotlin. There's Kotlin script that compiles to JavaScript as well. So those were interesting opinions at the time. But now we are in 2021, 15 of April. If we had to look, think about 2025, what kind of prediction would you make about this space, about the industry of writing components, writing UI elements? What do you think it's going to look like? What prediction would you make? You want to go first, Tejas, because you didn't answer the last time. I can, but I genuinely don't know how to answer this question. I have to give it to Leland, man. That's very brave to make such a prediction. And it turned out to be spot on. This isn't my gift. So if I was to look into 2025, one trend we're seeing now is TypeScript is immensely valuable. So I feel like if I was to predict 2025, strongly typed languages will not go anywhere, for sure. I think we might continue to see more declarative abstractions on top of otherwise imperative things. So I feel like React has set a trend. Whether React lives or dies is one thing, irrespective of that. It's set this declarative component model that I think will carry through to 2025, for sure. Amazing. Great point. And what about you, Anurag? What do you think? Yeah, I think in five years, we will need to be compiling like TypeScript. TypeScript is great, right? But it's a bit slow to build in a large project. So I think in the next five years, we'll be using Rust and other low-level performant languages to compile TypeScript. It's already happening. And there's an SWC compiler to compile TypeScript to JavaScript. It's already happening. So I would say it will be going to happen in about five years. That's an interesting point. And I also think tooling is going to get more and more built with lower-level languages and faster languages. Ortho, I think everybody knows Ortho. He's famous in the JavaScript community and being involved. And he now works with TypeScript. He made a post this week, actually, about TypeScript's popularity. He talked about, he mentioned how there were some rumors that the first version of TypeScript before TypeScript was actually written in C++. I would say that for that to happen, like for Rust to happen, I would say it needs to come from Microsoft, though. So I don't know. But I wish it could happen and that could work. Not Microsoft, sorry. Google, right, is behind TypeScript. No, it's Microsoft. No, Microsoft. Yeah. Whoa, just got confused there. But yeah. And what about you, Ariane? What predictions would you make? I know you started talking about React Native. What else would you say? I just want to compliment the teachers and talk about TypeScript. I think TypeScript will become a job requirement, the same for every web developer, even for the basic. But I think every web developer will have to know JavaScript, sorry, TypeScript. And about React, I don't know if I'm being bold, but I think React, maybe in the future, we can, now we have, for example, React Native building for web. So maybe in the future, we can have desktop apps with React. You know? Who knows? And for example, when you talk about today, we have a bunch of new projects with React and React Native. So this product that's new today, in four, three years, we have to maintain them. You know, I think we have new projects as well, and we also have to maintain these old ones that became more old in a few years. So my prediction is that React will still become popular. It will still be popular. But it's hard to be 100% sure, because if you think about six, five years ago, when Angular was released and was very popular and was the hype at the moment, who would imagine that we would have another framework that was React that will take the Angular's place? You know? So, but my prediction, the way React is solid and widely used for developers and new developers that are interested in using React and learning React, you know, I think it would be still the hype in a few years. Excellent. Awesome. That's great. Great prediction. And that's it, folks. Thank you very much for listening to us. I just want to wrap up showing the results of the last poll, if we can, studio. Let me just take a look here. TypeScript, everybody's compiling with TypeScript. Some are using Dart. Flow is still around. But all right, and Svelte is in there, CoffeeScript. All right. Very cool. Excellent. Now, if you want to take a risk at making a prediction, make a tweet, make a prediction, hashtag G2I, hashtag React Summit, and definitely retweet your tweet. Thank you very much, everybody. Thank you all the panelists for participating in this. It was a pleasure.