DevQuestions with Tim Corey
I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
DevQuestions with Tim Corey
172 What is the Future of Software Development?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
What is the future of software development? Will it be VR? AR? Web only? Will everything be delivered over the web? Is desktop development dead? What should I be learning now? These are the questions we will be addressing in this episode of Dev Questions.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
Welcome to the Dev Questions Podcast with Tim Corey. Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology. If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered. Now, here's your host, expert developer and online educator, Tim Corey.
SPEAKER_02What is the future of software development? Where are things going and where should I jump in and start learning now in order to prepare for the future? This is the question we're going to answer in today's episode of DevQuestions. Now, if you have a question, go to suggestions.com, ask your question there, and hopefully you'll see your question answered in a future episode of DevQuesti. So, what is the future of software development? Now, obviously the future is unknown, but there are some kind of signs we can point to. But you know, this question comes out a lot because every time new technology comes out, people start discussing: is this the future? Is this the way we're going to go? And they start kind of jumping on bandwagons. Now, let me get some history here of where I came from because I think that's going to be helpful for understanding some of my perspective on where the future is. So I started off in basic, writing, you know, we had a DOS command prompt, and we could write in basic, you know, line 10, line 20, line 30, you know, go to line 10 and create a loop. You know, those kind of things was where I started. No network, no hard drive, even. I had floppy disks, that was it, no hard drive, um, no GUI, like it was no mouse, no just a keyboard. That's where I started. And you know, for a while, that's what computers were. And, you know, before that, even people were saying, well, no one needs a personal computer. There might be a few hundred computers needed in the world, but you know, definitely not one per house, and obviously that changed. And so I had a personal computer at my house that had DOS on it, and later I got Windows. Um, and that's when desktop apps were kind of the only real applications. We had the web and web pages, but not really web apps, just web pages. Because at the time, at first, JavaScript wasn't even a thing. We had uh visual basic for applications, believe VVA on the web with ActiveX control, stuff like that in Internet Explorer, but it was messy and ugly and all the rest. So desktop apps were where you had to build in order to create a powerful application that could be used in a lot of circumstances. So the world changed from here's a DOS app, an app that runs without a GUI at first, maybe has a GUI later, but it's you know really a DOS app. And then we moved to here's a desktop application. Here's the Battleship Gray, you know, simple Windows form applications, way back when it was Visual Basic, um, early VB like three and four windows. And that's where everyone invested because that's the only way they create a real powerful application. But then the web started to take off, and you know, we started to get more client-side stuff, and JavaScript started to take off, and we started to get, you know, jQuery allowed us to standardize across browsers, and we could start doing things with more reliability on the web. And then, you know, Flash was out and Silverlate. I know we all shudder, we hear the word Silverlate, but so was Flash. Uh, Flash was kind of like the way to develop on the web. And it started to ask the question then, are desktop apps dead? Because we had Flash. And Flash was very powerful and could do a lot of really cool things in a web-based manner, which eliminated a lot of problems. Because when you can deploy your application across the web with no install necessary, well, now you can write it once, run it anywhere. You can have it have some of the power of a desktop, but still be broadly accessible very easily. So, you know, people started asking the question, are desktop apps dead? And the answer was, well, no, they're not. Flash can't do everything, and there's still a need for desktop applications. And then, of course, Flash died, but along came HTML5, and we started to get more client-side things. Angular came out, Angular.js actually, and kind of showed us, hey, we can do some real client-side stuff. And the web started to take off, and then people said, Hey, I can build in JavaScript, or I can build, you know, this web application. So why do I need a desktop app? Maybe I can build in WordPress or you know, using some drag and drop builders or do some PHP work or things that allow me to do some really powerful things online. And so the question became are desktop apps dead? And the answer was, of course, no, they weren't. And then, you know, we thought that the web was the way to go, but then you know, Steve Jobs really came out with the iPhone and kind of revolutionized the mobile market. And you know, Android wasn't far behind, and all of a sudden we now had apps for everything. And so if you wanted to have the power, you'd put it on your phone because that's where people started to move towards. And right now, if you look, the desktop web is not as popular as the mobile web is. Well, that's because people do everything on their phone. So now people started to ask the question: are web apps dead? We need to create these mobile applications because that's where everyone's going. So are desktop apps dead? Are mobile or web apps dead? And the answer was no to both. And now we have things like virtual reality or augmented reality, VR and AR. And you know, they're very early on the stages, but of course, Apple's kind of pushing AR as the way to go, and we're gonna revolutionize how things work. And you'll be able to put a headset on and work in this uh augmented reality environment that allows you to kind of feel like you're at work, but you're at home, and the question's gonna come up. Then are desktop apps and web apps and mobile apps dead? Is AR and VR the way to go? And the answer will be no, they're not. And in fact, if you look at it, desktop apps, Windows form apps aren't dead. They're the things that pre-day even.net. We had Windows forms in a in a former function back in VB, well, I started VB4, but we had a four then. Um, so we had them way back when, and we're still supporting them because they're still useful and they're still being used. So what's the common thread here? So the common thread is first of all, all different types have stuck around. Mostly. Now, things have changed and things have evolved over time. And yes, the amount of market share has definitely changed. We, you know, the market share for desktop apps, it the height was probably like 96% of all apps were desktop apps because that was the only thing we could do. And web started to eat into that until now, it feels like web apps are more common than desktop apps. But it does depend on where where you go, because different industries, that's not necessarily true. So, but then we got mobile apps, and that started to eat into both markets. And you know what? Right now, the VR AR is practically nothing, but it will grow. And it's gonna start pushing out other areas, and the space for the others is gonna kind of shrink a little bit as the VR and AR kind of fits in there some. But these things aren't going away. In fact, what has happened is while the percentages of things may have changed, maybe you know, we used to have 96% desktop apps, and maybe we're now at 30%. I'm throwing these numbers, I have no clue. Uh, it does depend again on the industry. But we may have more desktop apps now than we did when you had 96%, because the market has grown. I mean, you if you think back to when I started, I had one desktop in the entire house. My whole household, which was four people, we had one desktop. That was it. And when I, you know, when we had Windows, we had Windows, let's see, uh 95 when I left for college, and we still only had one desktop. And now, if you look at my household, well, there's six of us, um, include my in-laws, but we have dozens of devices. We all have a phone, most of us have a tablet, we have a laptop or a desktop each. Some of us have more than one. For example, I have three. So, you know, there's a lot of devices we have. And so when you think about that, and think about the number of devices, that means the overall market share has grown, not just change in percentage. So most of these things have stuck around. Most things on your computer, there's a lot of things that are desktop apps still. I mean, most games are desktop apps. You know, they install on your desktop. They're not streamed games, they're not across the web games. Mobile apps, there's tons of mobile apps, and a lot of them are native mobile apps. Most of them are not web-based wrappers. But there's an awful lot of web apps too. So we've got the fact that most things have stuck around. And what consumers want is not the same thing as what business wants. And this is where people get confused because they say, hey Tim, you said that desktop apps are still popular, and I can tell you for a fact they're not. There's, you know, no one does desktop apps anymore. That's just not true. In fact, they're very popular. But again, maybe not in the industry you're looking for. Because if you look at things like big corporate environments, if you look at industrial environments, if you look at areas where they need very, very fast input, then you're going to see desktop apps. So those areas are going to use desktop apps a lot. Whereas the commercial space, the the um end user space might be more web apps and mobile apps. So what the consumer wants versus what the businesses want will be different. And the third thing that's kind of um important to note, the common thread here, is that popularity does not equal longevity. Just because something is popular doesn't mean it will be here forever. Again, Flash was extremely popular. It was a thing everybody was doing. This is the way to launch onto the web and to really create something that could go to the masses. And so it became very, very popular. And yet, if you note now, Flash is gone. Now it's because, again, Apple kind of killed it, along with Silverlight. Um, but that's the you know, just because it was popular doesn't mean it's gonna be here forever. Because, you know, things evolve over time. I had, I was talking about a person before that said, well, Microsoft has killed things like ActiveX. Well, yeah, because the rest of the world says we're not doing that. We're not, we're not allowing that in our browser, so it's just Internet Explorer, and good luck with that. Um, and so yeah, it died because the rest of the world moved on. There was a time when Git was not the leader in source control. There was a time when it was visual source safe for a number of other alternatives that don't exist anymore. So just because something was popular doesn't mean it necessarily equals longevity. It won't necessarily be here forever. So that's kind of you know nebulous. So, how do you plan for the future? Well, here's um my four ideas, four steps I think you can take to plan for the future and kind of set yourself up for success in these changing times, because the times will always be changing. If you expect to get into a language or get into a certain way of doing things and never change, you're either going to have to work in what eventually becomes a legacy system and hope that you don't get let go, or you're gonna have to change. You're gonna have to change either your language or the UI you work in or something similar. So with change being inevitable, how do we kind of navigate that? Well, step one, I think, is to get good at a language. Not a specific UI, get good at a language. If you look,.NET and C sharp specifically came out in I think late 2001, early 2002. That has been, at this point, 21, 22 years ago. So C sharp has been around for 21 plus years. But the UI that you're gonna use will be different today than it was 21 years ago. Unless you're in Winforms, then well, it's the same UI. But mostly that UI is going to change over time. It's changed in the past 10 years because we used to have.NET framework. And if you're on the web, you say, well, MVC is the way to go for.NET framework. Cool. Well, guess what? Today, that's not necessarily the best choice. A lot, not for a lot of situations. You might be in Blazor, which didn't exist four years ago. Um, or you might be in two Razor pages, again, only existed in.NET Core. So those changes happen at the UI level, but the language itself is still the same language. Now, again, the language has evolved and changed and grown, but if you get good at a language, those changes aren't as disruptive as UI changes. So get good at a language. And then get work experience in that language. Now you may say, well, Tim, you know, if things are going to change, what does work experience give me? Well, if you've had 10 years of work experience in.NET Framework and MVC, when the switchover happened at.NET Core and you're looking at Razor Pages or MVC in.NET Core or Blazor, whatever else, you can say, I've got 10 years' experience in C sharp web development. And that will translate. People will honor that experience because that experience is going to give you a lot of skills, even in the new stuff, where no one has 10 years' experience in the new stuff. So you'll be able to grow with it. So that work experience will help translate into those new areas. Number three, experiment with the new things as they come out. So keep current on what's out there. Don't necessarily switch, but keep current on knowing, okay, here's what's changed in the new.NET 7. Here's what was changing, you know, when November comes around, here's what's changed in.NET 8. And here's the new frameworks, a new UIs, or new ways of doing things. Experiment with them, learn how they work, even if you're not using it in your day-to-day job. Because you want to keep current and you want to understand what's out there as the market shifts. Because being in tech means you'll have a little bit of a shifting ground underneath you. And knowing how to move to the next step when the ground starts to shift will be important. And the way I do that is to know what new things are out there and how they work by experimenting with them, trying them out, and figuring out what you like, what you don't like, how it works, and so on. While still working to get good at your language and get that work experience. And then number four, be careful about leaping too early. When a new technology comes out, the enthusiasm and the joy of something new really drives people to jump in on it and learn it and figure it out and try it out. Every year, when the new.NET stuff comes out, the amount of people watching.NET videos goes up a lot. And they all want to see, well, what how you do that in.NET 8? How you do that in.NET 8. Because they want the latest thing and they're learning how to experiment with new things. And that's that's good. Like I said, that's point number three. But you gotta be careful about saying, okay, that's really cool. I want to start there now. Because sometimes you may be leaping into something that isn't gonna stick around for a long time or is going to change. That's why when Microsoft came out of Blazor, it was really cool, but you kind of wanted to wait for a little bit to see how it's gonna settle in, how is it going to change a little bit as they release new stuff? And as they did, they kind of made some big changes, and now they're really tweaking it and adding some new features. They've kind of solidified a lot of Blazor. Now,.NET 8 does introduce some more big changes, but it's kind of rounding out the experience.NET Maui came out, and you know, if you want to jump on it right away, well, that's cool, but there's a lot of things that were kind of missing. And there's kind of some edge cases that weren't handled, there's some rough spots kind of all over. And it's been a year and a half, and they're really trying to get those polishes in for.NET 8 because they're they've got the time to say, okay, let's make this, you know, let's fix this, make it work well, and get that kind of polish on it. And that's kind of what you want to wait for in most cases, is that little bit of polish before you just jump into something rather than saying, hey, it's brand new, let's leap. Now, there's always gonna be people who leap early, and that's cool. And some people can do that, but if you are basing your career on it, that can be dangerous because if you leap into something that doesn't stick around for very long, doesn't land, people don't buy into, well, then you might be, you know, having to get a new job right away or having to figure out what to do next, you know, because that didn't last. So you gotta think that through before you just leap into something. Make sure that you're not putting yourself in a situation where you're banking on that cutting edge to solidify. Okay, so those are kind of the four points. Get good at a language, not a UI, get good at a language, get work experience in that language, experiment with the new things, and be careful about leaping too soon. Those are the four things I think that will help you plan for the future because who knows what the future holds? Is augmented reality going to be the thing? I really hope so. I've been looking forward to Google Glass since Google Glass was announced and then killed. Um, but I really hope for something like that. I think that'd be a really cool kind of next step in the evolution of software development. But do we know for sure? No. Is it something totally different? Like all of a sudden AI is everywhere and everything? Maybe. You know, so who knows? But if you do these things, that will help you plan for the future and allow you to adjust as new things come out and things kind of change again. All right, so I hope that answered the question. Thanks for listening. And as always, I am Tim Corey.
SPEAKER_01Thank you for joining us for this episode of Dev Questions. Tim is committed to making it easier for you to become a developer. If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions. You can also send your questions to questions at IamtimCore.com. Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did. When you're ready to learn to think and code like a professional developer, head over to IamtimCorey.com and enroll in a course.