 What's up everybody? This is Brian, and we're gonna take a look at some of the features we expect to see in Qt6. So it is September 2020, the sun is shining, birds are chirping, all is good in the world, and then BOOM! Here comes Qt6 busting through the wall like the Kool-Aid man. All right, maybe it wasn't that dramatic, but point being I really think this should have gotten much more media attention than it really did. Qt6 feature freeze milestone reach. If you don't know what that means, when you're doing massive code development, you don't just write it and publish it. There's certain things you need to do, certain steps, and Qt6 really nailed that down. They're really good at that. So their feature freeze, meaning they're done adding features to this, is now complete. They've hit a major milestone, and they are targeting December of 2020 for Qt6-00. What does this really mean? That means yes, within a few short months we could be looking at the full blown version of Qt6. So they've got the features they want in there, and they really nailed it down on what they want. Here's the actual timeline. So they really started this around January timeframe, and they're pushing over to releasing in December. If you watch some of my videos, you know that last year I did some videos with Qt, meaning actually met with Qt, and we sat down and we did some videos together. And I really enjoyed doing that, and I learned a lot from those guys, and I can tell you my experience, one thing they're super, super keen on is backwards compatibility. They do not want to break your apps. So deep breath, let all the stress out. Don't worry. And that being said, long term support versions are going to be available for a long time. That's why they're called long term support versions. Their goal really is they're going to push forward with Qt6, and then they're going to shoot for a Qt6.2 long term support. So this is another part of their software release pattern, where they'll go through specific versions and then hit a long term support. Now, what does long term support mean? Exactly what it says. It means it's going to be around for a long, long time, and you can trust it to be there and to just work. So Qt6 support the following modules, and you can see there is a ton of them. Most of these you should already know. Notice this printing support. Super excited about that. QtWailand and Wailand compositor. That's going to be interesting to see how they really fully support that above and beyond what they've already done. Now, notice this right here. QtOpenGL and QtOpenGL widgets. It says note different than in Qt5. That means Qt's really focusing in on 3D. They even have a 3D studio they've released this last year, and it's just nothing short of amazing. I mean, I absolutely love it. I'm thinking about sitting down and doing some videos on it to be brutally honest with you. It's just there's a certain level of knowledge. You got to walk in the door just to start working with this. And unfortunately, that level of knowledge is extremely high. You have to understand Qt, typically QML and three-dimensionals. Now, when I say three-dimensionals, we're talking, yes, 3D objects. All right. So some modules that are present in Qt5 are not listed above because they are purposely removed. That's right. They are going to remove things like QtScript. Have you ever used QtScript? I haven't. I actually found no need for it. And QtXML patterns. This might be troublesome for some of you out there. I've got a couple old apps that actually use that. And the functionality is part of other modules, meaning they're now taking that functionality and putting it into other modules. Now, I want to just stop right here and say that Qt is known, world-renowned, for backwards compatibility. So if you're not, no one's putting a gun to your head forcing you to go to Qt6. You can always use the long-term support versions for a very long time. Everything should still work. Now, it says Qt 6.0 supports the majority of all desktop mobile and embedded platforms due to our C++17 requirement, a up-to-date compiler is essential. Note that right there. If you're using a legacy compiler, you're going to have a bad time when you try to switch to Qt6. So just special note for that. Now, how can you try Qt6? This part's a little bit confusing. And before we dive into that, I want to take just a side avenue here. If you're just itching for more information, be sure to check out the technical version. I can't even say it, I'm so excited. The technical vision for Qt6, the next big release by Lars Noles, this is actually really good. And he kind of goes in-depth on what they're really focusing on. And I wish they had talked about it more here, but the technical vision or the spirit of what they're trying to do next generation QML. This is going to be awesome. You mark my words. This is going to really make QML stand out. One thing I'm absolutely loving, introduce strong typing. There's been a real pattern here. A lot of languages that do weak typing immediately start switching to strong typing. It's because it's easier to support and it makes it faster. One that really comes to mind is one of Qt's competitors, Dart and Flutter. So when it first came out, it was very weak type. And then right when they went into production, they said, you know what? We're done with weak typing. We're going to do strong typing. And it really broke a lot of the tutorials out there. They're going to make JavaScript an optional feature of QML. Optional. That's really awesome. So what they're really doing is they're skinning down QML, making it lean and mean. And the biggest pain in the ass in the world, QML versioning. I absolutely detest QML versioning. They're going to remove that. They're going to simplify certain lookup rules. So you don't have to have mycomponent.1.2.3. And then you got to figure out which version you actually have installed. I'm super, super happy about that. And remove the duplication of data structures between QObject and QML. This under the hood seems very simplistic, but that's actually quite complex what they're doing there. And avoid runtime generated data structures. And they're doing a whole lot of tooling and support in the background that you'll probably never know you needed. But again, next-gen graphics. So you take the refinement of QML, and you really put it with next-generation graphics. And this thing is going to be... I can't even find the words. It's just going to be stunning. Because now you have three-dimensional objects and things of that nature with the simplicity of QML and the powerful rendering engines of next-gen graphics. And this will run on everything from your laptop to an airplane dashboard to your cell phone to your Raspberry Pi. I mean, this is going to be just sweet. I kind of sound like I'm a sales guy for Q, but I'm really not. And unified and consistent tooling. One of the major things, and it's actually, I don't think it's really in here, is they are going to focus... Oh, it is in here. Sorry. They are going to focus more on Python in the future. A lot of the Qt ecosystem was born on C++, which everybody that uses C++ loves it, but everybody that does not use C++ is afraid of it. Python has very quickly been merged in with Qt, and it's going to be officially fully supported. They started actually doing that in Qt 5, but I think they're going to start unifying that a little more. So all of you Python developers rejoice. You're going to get better tooling. You're going to get a better Qt experience, and all you C++ developers, you know, if you don't feel like doing a whole coding session, you can probably whip it out in 10 minutes in Python, and these two should interrupt fairly easily. Now, I say that, but we don't actually know yet. We're getting there. The other major thing, and this is going to make a lot of people upset, is QMake is going to be halted. Now, what do I mean by that? It's still going to be available, but they will not develop it any further or use it to build the Qt framework itself. So what are they switching to? They're switching to CMake. And I've talked about this a little bit in the video tutorials I put out on Udemy, but CMake has become the de facto. QMake, as good as it was, they're just done supporting it. It takes up way too much of the time and effort, and there's better industry standards out there. Personally, I'm going to miss QMake. I've gotten so used to using it in all of its little quirks. I've really gotten a deep understanding of it. So switching fully over to CMake may take me a day or two to really wrap my head around. And then you guessed it, language support, API support, and so on and so on, incremental improvements. And then things that we as developers typically don't care about, like marketplace and technical product structure. But what does this really mean? Really, what this means is Qt is going to become more aggressive in their marketing standpoint, which is good for us as the developer, because the more money Qt makes, let's face it, the more features we get. So I am very, very pumped about that. So let's flip over here. This is just my Qt installation directory. You would run the maintenance tool if you have never done this before. You'd be amazed how many Qt developers don't even know this exists. When you're in Qt Creator, and it pops up down here and says checking for updates, that's really what's going on, is it's just checking. And eventually, it'll pop up in this maintenance tool. Maintenance tool. Sorry, I can't talk. But you can actually go out to your installation directory. It might be like if you're on Windows, see program files, Qt. Just double click maintenance tool. And this little guy will pop up and hit next. And you have to have an account. That's kind of new this year. They changed that. So you have to have an account, kind of a pain. But I understand why they're doing it. And I should know if you saw on the bottom where it said validating license, really you don't need a license. It's still free open source. You can, of course, buy a commercial license with full support, but you really don't need to if you're just playing around at home. Anyways, click add or remove components. Next, this bit takes a minute. One thing that could be improved upon is the speed of this bad boy. All right, so because Qt 6 is not released yet, you have to click preview, and then filter, and then go to preview, and ta-da, there's Qt 6. Now, because this is a preview, if you're a gamer, think of this as like an alpha version, meaning yes, it's going to have bugs. Yes, it's going to be rough. No, it may not play well on your system. It may actually be missing things all together. They're still working on it. It's still work in progress. But what I'm going to be doing in the coming days is I'm going to start downloading this and playing around with it on my various operating systems and take some code that I have written for other tutorials and even other projects and running it through this whole build process and seeing where it breaks. Now, again, Qt has amazing backwards compatibility, and you have all this Qt 5 goodness to choose from if Qt 6 just isn't working for you just yet. So that's it in the nutshell. I'm pretty excited about this. Drop a comment below. I'd love to hear from you. Just what are your thoughts? And as always, you can find me out on Facebook in the Voidrealms Facebook group. There is 3.9,000, almost 4,000 people in this group. Wow, we'll probably break 4,000. Humble beginnings, just me and my cats sitting there making videos. And you can find me out on Udemy. I have a megaton of courses out there, and I am always dropping free coupons in the Voidrealms group. Actually, let me scroll down. I think I did some today. Yeah, I dropped a bunch of free Flutter courses down there from Dart beginner all the way up to Flutter Advanced. So if you jump in there next three days, you can grab those coupons. But hope to see you there and drop a comment below. I'm really curious to know what you are all looking at Qt64 and what you think it's going to do for you. Personally, I'm super pumped about the QML changes.