Submind YouTube summaries
Thumbnail for The Role of New Languages in the Future of the Qt Ecosystem - Cristián Maureira-Fredes

The Role of New Languages in the Future of the Qt Ecosystem - Cristián Maureira-Fredes

Watch on YouTube

Video summary

The presentation addresses the evolving landscape of programming languages within the Qt ecosystem, moving beyond the traditional reliance on C++ to embrace a broader array of tools for future development. The speaker highlights that while surveys often show Python as dominant among beginners due to its simplicity and extensive tooling like pip install, professional environments still heavily utilize C++, JavaScript, Java, and Rust. A key argument presented is that Qt has historically focused primarily on C++ bindings but must now adapt to support other languages effectively to lower barriers for entry and expand the community. The talk emphasizes that simply providing standard language bindings often forces developers of different paradigms—such as Python decorators or Swift observables—to work against their natural development styles, which can be discouraging for new users seeking quick wins with simple applications like calculators or data viewers. To solve this friction between diverse programming languages and the Qt framework, a new initiative called "Qt Bridges" has been introduced to split application logic from user interface concerns using an intermediate layer. This architectural shift aims to minimize the footprint of C++ code in non-C++ projects by allowing developers to write their back-end logic entirely in their preferred language while interacting with Qt models and views through a standardized bridge. The speaker showcases proof-of-concept implementations for various languages, including C# for Windows development, Swift for Apple ecosystems, Java for Android compatibility, Kotlin for interoperability, Go, and Rust. Each example demonstrates how the code remains idiomatic to its respective language family while requiring only minimal Qt-specific imports or decorators to launch applications and manage data models without needing deep knowledge of internal signal-slot mechanisms. During the Q&A session, important clarifications were made regarding the scope and limitations of this new approach. The project is not intended to replace existing robust solutions like PyQt for complex web services or C++ native libraries but rather serves as an entry point for creating simple desktop applications in languages other than Python or Rust. Performance concerns regarding runtime code generation were addressed by noting that while initial technical previews may have longer compile times compared to static linking, the goal is to gather community feedback before optimizing further; similarly, advanced IDE features like autocomplete are expected to be extended across all supported bridges over time rather than being lost entirely. Ultimately, the vision is to foster a more heterogeneous and inclusive ecosystem where developers can contribute ideas from different linguistic backgrounds without feeling forced into an echo chamber of C++ purists or Python enthusiasts alone.
Read the full video transcript
Thank you. Um, so yeah, so my name is Christian. I work in the cute company for a few uh years now. Maybe you have seen me in other events usually talking about cute for Python. But today I just not want to talk about Python but many other languages as well. Um well you can find me there on social media in case you have questions. I will stay around until think at Tuesday. So don't be afraid if you find me on the corridor just to ask me anything you have. So since we are talking about more programming languages I want to take it slow and not have not be not be very opinionated on this talk. So let's start slow with all this talk. So the first question is what is the best programming language? Is anyone brave enough to shout which one is it? Exactly. See, not the same answer assembly of course. So yeah, usually you get asked this question by people that is starting in programming and it's very it's I feel very old when they say well it depends but that usually is a reality of course we all know about it but of course people read uh surveys and they see results. You have been familiarized with Tio index and stuff that recently for example last month even Python got a 10% something increase you still see C++ there I think there was a few months ago when C++ passed C uh so you will say well that's not really relevant because what okay so there are other surveys as well so you can take I don't know Stack Overflow survey again I would say that this is prominently with more beginners but even though you see there professional developers well lots of people using JavaScript of course that you have Python, C, Java, PowerShell, C++ at the bottom there. It's a different of course story when you have learning to code people that they are more focused in maybe some easy language in a way that well Python is still the king there as you saw before in the index but as I told you ah and if you see everyone combined of course the result is quite similar to the professional ones. So usually what hap what happened to me at least when I started to learn in the university I really was one of these people that took one programming language and tried to solve everything with that and little by little of course I understand that the solution is not like just having one hammer but having a a toolbox of the thing and this is something that I believe that in the cudos system we have been I don't want to say suffering but you know like being part of is that sometime focus on the of course C++ the implementation but we have seen out there that more languages are playing an important role right in many other fields and people want to use other languages right so just as a recap in case you have been living under a rock the languages h and the cute project as you know since the release in early stage C++ then you can say that's not the official QML logo but still um in 2010 then pyite was started to be in develop in 2011 later on was accepted in 2018 and currently or in the future we are really exploring at least from the cute company like which are all the languages that should be part of the cute ecosystem right so so far as you might be familiar the approach of integrating more programming languages has been bindings right so I guess that we are on the same page here if you're familiar with that wiki page I was very impressed last time that I checked it that there were so many new languages that are having some bindings for cute you can go there and there are like even languages that don't even know like there is a ring cute apparently for the ring programming language but I would say at least for me these were the more like attractive one and more important ones or more used ones. So you see that pi python of course has been around for a long time for pyute which is developed by the rear rand computing pyite which is the lgpl version from the cute company as well and then you have ras like previous um efforts like cuma object are the the crate there or cxx cute lately developed by ko to my surprise there is another set of bindings that is usually very up to date which is cute jumby who knows cute jumby here good so a few hands the the the person behind I think there is only one has been also managed to you know doing the the releases and everything. So it seems like it's also there might be a lot of Java developers interesting in the cute ecosystem and there are other languages there if you're not familiar with Julia or with Nim or with ZIK uh but they're really interesting. So this is nothing new. Of course, Falker said like long time ago in the academy22 that the idea also for the future of Q system was to have more programming language uh integrating into this and again even there the idea was not new. I mean many people I have encountered in the cute project that said yeah long before I said that we should have more programming languages and so on and so forth. So it's something that you should not be unfamiliar with because it has been the message for a long time. So the motivation so far has been that of course other languages might need a UI frameworks like we have in cute. Uh C++ is very flexible to create bindings for their for other languages. Well flexible is not the same as easy but flexible. Um also it's good to do like language showcase like oh you know cute also we made some bindings for this newly appear like written programming language and also cute popularity. So which other lang what other languages bring to the table when we are talking this thing from the point of view of the cute ecosystem. I cannot talk about all of them but I can only talk about Python and Rust which has been in my opinion the most popular bindings that we have so far. So in the case of Python I usually like to show this snippet of code. You should not be able to read it. Don't worry about it. It's a very simple cuming window with a push button. And I always try to push this code say to say like look how simple Python can be, right? Everything in one file. you don't need to compile only a few lines and that's it very successful people is happy about it I'm happy with it another very important point about Python itself is that the how many areas Python has been thriving like you can take like web development data science recently with all the and even embedded systems so people is really using this as an example of how to get into different areas and lowering the barrier for people to start doing things in those fields I mean before microython for example or scratch going into embedded system was very tricky. I mean you need to learn C and we learned that the talk before that people don't like C and something very interesting as well is the P packaging and tooling around it. I think that one of the things that make Python very popular at least within the cute ecosystem is that you could install it by one line command line p install Python 6 and that's it. You cannot beat that because I don't know which C++ libraries do you use besides cute but I'm certain that the installation process is not as simple always and something very interesting though is that we noticed that a lot of real live applications were combining C++ and Python I was very surprised that the BFX industry kind of most of the UIs that are be with cute they do have scripted languages on top in order to enable people to have add-ons and extend those things and also again lowering the barrier for people to write some nice plugins for whatever you are using your cute and C++ interfaces. So this also was very important a very critical thing for people to start using it more but this talk is not about Python. If you want to read more about Q for Python, those are very interesting links. The URL thing will be posted and in the in the channel. So now we can talk about a little bit of Rust. How many Rust developers we have in the I was suspecting I was so I feel Rust is not No, no, no. I don't have anything about Rust. So if you're not familiar with Rust since we don't have many Rust developers, little snippets of code that maybe are terrible written, but at least it compile when I try them out. So you want to find some similarities between C++ and Rust. So you are not very scared when we talk about Rust. Again, similar thing. You start to see me, oh big difference now. Oh, Rust doesn't have classes. Uh but anyway, you can find your ways around to try to implement something very similar to object- oriented programming. Um there so you are now a little bit familiarized with Rust. So you're not afraid when we are talking about um in my opinion. For example, after all the experience with the many ways of interact interacting for with Rust and cute, I believe that CXX cute did an amazing job into trying to be the tool for all the cute developers that wanted to sprinkle some Rust into their applications. If you don't know about this project, of course, you can you can check it out there. But in a nutshell, as is described, it's a safe FFI between Rust and C++ is very idiomatic. H they use procedural macros in order to generate the bindings. They have also really cool thing that you can use rest thread to update the kit state and of course this is still on development because bindings are difficult. You need to do a lot of things in order to cover every single corner case. H this work very well in my opinion for cute developers for everyone that was aware of cute. This is at least the problem that I always see in that because we announce the new things and we announce it where in academy cute contributor summit cure world summit. So everyone knows cute. So you are like yeah maybe another language that I can try right and even for KD developers lately I have been very happy to see that at least a lot of people has been working in also the integration of uh enabling people to write a Kittyami application with Python and also with Rust. So if you are interested with this there is a session later on that I'm very interested. Yes. So Nicholas there. So there's a question in the title. So I'm really curious about what is the answer. Maybe yes, maybe no. So yeah, if you're curious about that, it's something that also has been very important in the KD ecosystem. But then the question is always what about everyone that is not aware of cute? And I'm sorry to break this for you, but there's a lot of people that have no idea that cute exist. And this was a very like a cold water bucket that the first time that I started to go to Python conference thinking that everyone knew to cute framework get so old and everyone used it and py cute existed before and to my surprise when I was asking in this audience like who knows cute literally five hands at most because most of the new developers were not very familiar with it and there were many other frameworks at least in the Python ecosystem that were offering things for them to build small and simple user interfaces because we I know that cute is very good for professional development and everything else but most of the people starting program I mean what do they want to do a little calculator a button that do something like that or even exposing some data to have a nice desktop application that can help them to you know publish some little software and stuff so it was very strange for us so it was at least giving us the idea that we might need to explore other ways of bringing Q to people I want to go back to the case that we had before how Many people here is familiar with Python code. Okay, many of you and is familiar with Pyite or PyQ? Okay, still a few hands. So when I show you this before and we show specifically this code, you as a cute developer, you will read this and say everything make completely sense. But now try to put yourself into the mind of a Python developer that have never seen cute. You are telling a few things here. So first of all um yeah it's normal for us that you will be inheriting from some cute classes and implemented some uh methods. Uh you need to understand how the cute API will work. By the way, don't forget to connect your buttons with this uh to a slot, the signal to a slot. And also in the same in the case of Python, you need to decorate your your slots with the slot decorator that of course is come from cute core. And uh yeah, by the way, we have this is an application, you need to start the event loop and make sure that you are exiting as well with the app exit uh uh the same return code. you are asking Python developers to write a cute application from scratch which is completely different to the most of the cases like I have my Python code and I want to have some application user interface right so this idea is something was bothering me and many people at least in the cute project overall that we need to really start to think like what else we can do about it so as I said this might feel very not natural and a lot of extra work for people to start even time time to time I get questions like hey how can I get started with pyite in python forums and it's like oh yeah read the tutorial but the moment they start to read and then they see all the signals slot whatever everyone gets scared so we need to try to think like how we can expose this thing there are other thing as well that when we are exposing cute and C++ in general as a binding for other languages we are kind of like forcing that language like please tell me how to do these things I always try to put the example that everyone is familiar here with a void star right what is that in python We don't know right so we need to try to yeah well this will be a pointer a reference or something you need to start to figure out and forcing the language that maybe is not designed to that to understand this concept and try to interpret this concept and this is very complicated so then the question how can we include other languages without breaking all these paradigms for languages I believe that in our opinion will be this new idea that we have which is called cute bridges so far I don't know if this is the final name h this was recently announced in the cute world summit as uh one of the new research projects that we have around bringing more languages into the cute ecosystem. I never see names in technical slots. I just want to give you a shout out to the team that we have at the moment. Recently a lot of people got involved of the initial five people but uh maybe you recognize one of those names in maybe from Gareth if you are contributing to cute but uh yeah in case you have any question you might have seen the PM of the project which is Vladimir and I am currently the technical lead until they'll fire me now there are more people involved as well people trying to think about what is the best way of showing and having documentation for this kind of project because now it's not only like you know cute C++ API Okay, we need to mix a lot of things and languages have documentations in different format. You need to parse them. Should we use udox? Should we use the local thing? There's a lot of decisions to make. So the new approach I tried to steal this diagram from a previous contributor summit presentation. Usually when you have your application, the language bindings are something kind of like in the middle where you can kind of touch what cute is doing by the language as we saw before trying to have these Python classes or everything from uh the application itself. But the concept that we have with bridges is that we want to really split the idea of your application and the UI that you will have. And this will be with this middle layer that you see there which is called a bridge. So as I said splitting back end from the UI mostly because we want to reduce the cute footprint from the back end and we want to have people maybe in a situation that they could have the same application very similar and also we are still working on instant in instantiable types as well by using some QML private API because why not so the little implementation detail that we have here is that at the beginning we were envisioning these ideas we thought ah nice so we can have the same code that just changed the code and everything should be the same only maybe changing the I don't know brackets or something that the programming language will use but then we notice that well not really because the concept of each language will be completely different like while in Rust we're using procedural macros in Python we might need to use decorators or in other languages like swift we might need to have observable types so even though it will be nice to have like a little tab to change and it's the same code changing two lines the whole implementation is completely different depending on the language Another thing that we are still envisioning and still working on it is that the package distribution is something critical. I cannot tell you and uh I hope my employer doesn't listen to me but I cannot tell you like uh you need to go and go to the cute installer to install the package in Swift and then you need to export and then it's make no sense. We need to play with the rules of the new programming language that we want to. If you want to go to Swift do what swift people do. If you want to go to Java do what Java people do. So this is very interesting for us because so far we are exploring as we knew from RAS from Python already but for other option as well like C like having nugget packages so configuration that the C plus the C developers can feel comfortable by developing in this thing and not forcing or imposing the way that we are all supposed to do it right similar to that development environment it's something that I have been personally uh struggling with because even though we love cute creator h and we have adding support for cute for python than cute creator. I know that Python developers don't use cute creator. Some of them do. But again, if you want to play by the the other programming language rules, we need to go with other programming language R. So if you are using, I don't know, C lion for your C# development for some reason or for C development whatever we go there. Pycharm, ras, robber, anything we might need to have this thing in mind that we need to provide ways for you in your development environment to develop these applications which is very hard because also we need to do plugins there. So different languages, different ids for sure. I know just again to to know your opinion about it. How many people here is using visual studio code? Yeah, still kind of half or the majority good creator. I like your pride like yes good so see different scenarios different realities for everyone I really don't want visual studio code people to go to good creator good creator people to go to visual studio code and so on and so forth something very important since we announced this new project we have been getting a lot of questions of like but how can I do like whatever so even if I hope you don't feel excluded by the target users of this project as I told before are new developers, right? You can try it, you can join, you can do a thing it, but it's most likely that not everything that you're used to do with cute will be able to do this with cute bridges because our goal of course is to expand the communities because otherwise it would be an echo chamber if I present you new something here. Some of you tried it. Yay. Then we high five continue next year. Some people try it as well. We are not bringing more people to the room. So that's is very tricky. as sneak peek then I will show a few uh snippets of code as always they're not final you might not be able to read it I tried to put it in the the slide so it is visible but you can see the the URL afterwards but yeah so one of the first examples that we did um we have more but just to try it out just to have the proof of concept of this was a simple application where you can add some strings you can remove them you can edit them and it doesn't allow you to get duplications of those strings right so you see here the QML code so not so well it's a bit longer but it's not so complicated to understand and uh so then we will figure out how a back end for this thing in the many languages it will look like I hope you can read them so the first one is C# by the way I discovered this is the logo of C# I was using the old one and apparently this is the new one but anyway um if you're unfamiliar with C# simple function on the left so you don't get scared a few features that if you were curious about most of the memory management. It's interesting being kind of like very type safe and having stroke typing for for Windows and uh being kind of like the first programming language that Windows development uses. There are many other like the the standard library they have is quite experience quite large sorry and they have many features as well like in many other languages a single way generics lambda expression one whatever. So the reason that at least in my opinion that we would choose this C# is because again still C# is the king in Windows development. So we don't want to neglect that even if we uh we are most of us are using Linux I we need to of course include people that are using Windows for some reason and uh yes we had some experience before that uh there was this cute.NET net maybe you have heard about it you have seen it before some people in the company were trying playing around in order to integrate net and cute applications the net ecosystem is very large as well they have their own conferences they have old events and stuff so yeah more people around and even the tool is not that great in my opinion it's very useful compared to everything what they have with visual studio and all the other thing nugget packages so this is how it would look like I'm very sorry if you cannot probably read but as I said later on you can check the URL And you have here on the side you have like a class back end. You are implementing with some unique string list model that of course is implemented in the bridge side. And then you have a few functions that is add string duplicate found handler one duplicated found but as you can see the and you can spot the cute mentions on this code are quite minimal. So you have a namespace, an import, and of course the model will have something here, but everything else is C# and the main of course you need more cute stuff there. So you can load the the QML file and try to wait for the event loop to finish. So reducing foot cute footprint in the code that is using as the back end. So we go for Swift. Uh if you're unfamiliar with Swift, again, little code there so you feel more comfortable. safety and performance, modern syntax. It's a very interesting story. I mean, I was not very familiar with Swift and when I started to read like how the whole thing started or the people involved in the language was like, whoa, okay, but it's really cool. They have an interpretive mode as well and again after all the features and things that they have, the reason is that it's still the default language for Mac OS development. we because again people doing that they just open Xcode and they start to do things or people doing iOS development. So there were some previous effort I remember a couple of world summits ago uh I think at one of our colleagues to was showing me a new test that you can find some swift code into related to a quick application and I think it was translated afterwards in a test. So well we had some at least know how that of course you can link them together and internally and Apple uh they have been pushing a lot for swift to be more like a good programming language for Linux and Windows. I don't know if you have tried them at least I tried on Linux and it work but on Windows I have no idea. So again we don't need to neglect if you want to go to Apple developers overall we need to try to go and play by the rules. Similar idea here as you can see things are started to change. We have a little bit more of cute things on the left side. There is now a decoration here on the class cute bridgeable and then we have a couple of um observable types and then edit string add string but again nothing else that explicitly have cute code. So swift developer can check this code and said yeah that makes sense only this little decorator on the top. uh for of course for the starting the thing you need to have of course more stuff like the list model is something that is provided by the bridge and then you need to deal with uh setting the root for the QML and launching the application but we believe that at least this is completely an improvement compared to the binding situation ah the videos are not being reproduced I have some little videos after each language that's uh but you will see it if you open in Firefox I think that this might not be but uh you have a little demo of the code being compiled and then the application popping up and doing some But I'm missing those. Java don't go please. I know it's not the most loved language but it's very use and you cannot neglect this. I mean having a more heterogeneous community also implies that we might need to include languages that you might not like but maybe they will be a good user base with new ideas or things how to improve this thing. So if you are for some reason you are not familiar with Java. A little code on the on the left again. Uh well I will not say many things. I mean I guess that everyone would be familiarized with it but you know the memory management they have the all the plat independence I think I was also even doing that Java applets at some point why I don't know um and yeah they have like good security at least with the bite code verification which is a feature that I really like but uh yeah the main idea at least that why we pick Java is for the experience that we have because in cute you know that you can develop for Android and also similar to Android we have some offerings regarding automotive that also mixes some Java as well. We have a project that also we're generating some code called cute jenny that you can check out and as I told you before there is an active thirdparty library that allows you to have bindings for the cute project which is very interesting in my opinion. So it is something that is important and at least we cannot neglect it. Another h here is how the code will look like. These have a little bit more of cute related things because I said languages implementing differently. You have here at least some degression to the class a special callback which is nothing else than an interface that we have here the state the model. But in a nutshell at least you can see that the add string and update and remove are something that could feel very familiar with Java developers. I still get nightmares about how you need to declare the the main in Java. But anyway, um again video that you will see later on because it's not here. And another interesting feature is that you get kind of for free the cotling interoperability. Who knows cotling here has you? I guess you all feel that it's there's a language that was created from Java developers that wanted to have Python and they said we cannot have Python. we have codling now but it feels very comfortable at least and that's a good thing because then we got a new language I mean there are codling conference and stuff so more people that we can bring to the cute ecosystem so now I want to talk about Python and you will say wait why because you already had Python but yeah well it's a different story so again most of you are familiar with Python I will not bore you with all the the different um features that the language has but most of our motivation at least for picking Python as a language is that we had a lot of experience with Q for Python already the whole binding generation process the reflection of QML types h is still the most popular language according to those two surveys if you have another survey let me know I can put it in the slide but still the most popular language out there and the interoperativity with many technologies I was briefly discussing before that currently in the Python ecosystem if you're not very close to it a lot of people is rewriting a lot of tools in Rust for some people it's like what is faster but uh it's a lot of there's a lot of like rust things happening within the Python ecosystem so it's Very good thing that we are still around with both languages. Um again this is the application that you might see you saying wait but this is way longer than you had before. Well kind of but if you really close look the left code and you start to search for cute related things. I think the only one will be this one this line. Everything else is a normal Python class. Everything else is just Python properties and so on and so forth. So we don't have anything cute besides the of course imports for launching the application but we reduce a lot the footprints there. So video there imagine a Python application be launch and Rust similarly to the Python story uh I don't want to worry with all the the features of the language so we maybe have some time for questions but uh as you know very popular programming languages uh safety being kind of like one of the the main pillars of the language. So I guess that everyone wants to start using it. In my opinion, one of the highest thing for me is that cargo is an amazing tool. At least for my experience. I love to have that in more more programming languages. Uh but yeah, Russ again and you may think well but you had CXQ similar to what you had with Python. Yes, there are some experience there. And one of the points that I I want to make is that uh we believe that both C++ sorry CXXQ and Pyite are perfect tools. sorry frameworks for cute developers to include those languages to applications. But the whole idea of this as I said before and I will sound like a broken record is to go for Ras developers and Python developers in order to bring them to the cute ecosystem. So as you see uh it's RS is very popular that's why KD evening bin and the ecosystem is growing like crazy and as I said tooling is my favorite thing. Um again how it looked like. Sorry for the small font but you can check it out afterwards. Uh we have a couple of procedural macros there in order to expose the back end. You have the data also doing here some very rust related things for the slots we'll see are using a micro h but again the footprints that we are the cute footprint here in the code is quite minimal again compared to cxx for example but again different functionalities different use cases. So again video imagine the rest application being popping up. A note here um I'll show you some snippets. These are still internal there's most likely will change. If you have idea you can always talk to me. Uh and also it's one specific example told you before we are working on instant type for QML. We have like maybe two or three more demos or examples that we want to have ready in order when we have the release. So yeah don't take this as the final word. brief frequently asked question based on all the comments that I have been getting from people. Maybe you have more. So feel free to do that. So we can go there and do a little tour there. But I need water first. So first one maybe you will I already saw some angry face. What about this language that I use that is the most important language ever? Well, one of the things that we want to enable is that maybe we can have documentation well enough for people to start adding more bridges to the offering. So, if you have any favorite languages and these are all the languages that we have kind of like hear people like but what about they are there. Bonus points if someone tell me which language is this one. Ah, good. Yeah, Gleim amazing programming language. Go and check it out. Another question. What about this feature that is essential to all cute applications and if you don't have it this project will die and you are wasting money and whatever. So again the scope of the project is important. There might be many features that are missing when maybe we will start adding it but it really depends of the use cases that we have in mind and as I told you before like five times already it's mostly for people to feel like they are doing things in their own languages. So many things might need to have more cute intervention or more cute related isms in the code that might not be uh very positive for the experience. But let's see maybe the thing work out and we add more things. So what if you need more you it's not enough to just populating some list of strings because most of your application I hope are more like displaying a list of strings on a UI. Uh well in that case the idea will be to you know direct people to all the set of pine we have. If you want to do more with Rust, you do CXcute. You want to do more with Python, you do Pyite and so on and so forth. Or if you want to go back to the the old way, you go and write everything for C++. Well, it's not the the very encouraging for new users, but at least we are giving the the entry tools for people to start doing simple applications. You might think, so you are not developing more bindings. Yes, the a bindings will be still ongoing because as I said a million times already, different use cases. So why is only cute quick? because we love cute widget as well. Again, I don't want to go into that framework, but we believe that of course cutequick is kind of more modern and attractive way of creating UIs. To my surprise, many new Python related frameworks are using declarative in files in a way to define the interfaces. So, it's something that is still getting around. Will you support everything that QML can do? Well, no. Again, h it really depends of the adoption that we have with the project and the use cases that we if we man to make them valid. So don't expect every single feature from QML to work. Can you combine all the languages in one application? Well, not really for the the technical preview, but maybe if you're brave enough, you can give it a try. But at least what we want to aim is to have at least the intergenerability of the back end for the different languages. Do you want to brainwash C++ developer with this project? Well, exactly. Will this be open source? Of course I believe that that's the key for getting anyone because if you put a lot of fences of between people nobody will jump into this thing. So we need to play by the languages rules where they do conference they go package manager ways of installing everything in order to bring more people to the good community. When this will be released well we need we initial initially thought that we could be the release will be around November. We still don't have a fixed date but we expect to have at least a first technical preview this year. famous last words. No, but I we hope so. To summarize, um what does it mean to have more languages with good bridges? I really really believe that means that more communities can get together, we can have maybe a larger academy in a few years. H more ideas. I have the feeling that every time that we look into other programming languages when you get weirded out like why they are doing like oh they're doing it because of that. you get these ideas and you can see this thing in C++ 23 to 26 that there are many features of the languages that of course come from other programming languages. So inspiration is very cool even for the cute ecosystem. I think it will be crucial for not not uh getting into the same level and having more new stuff around new expertise of course you will get expert in the language that will tell you that no the way that you did it there is completely wrong or yeah or yes that's the way that we do it. So thank you for that. So new faces and new people contributing and uh another thing of course is that better ecosystem in my opinion if we have more languages we can have different opinions rather than having like only a fight of I don't know two programming languages we can fight about six programming languages so it's even better and the most important thing of course as I always want to say is that sorry is that we want to bring cute everywhere so thank you very much and maybe you have some question now Awesome. [Applause] We have like five minutes. So, who'd like to go first? I think. >> Hi. Uh, thanks. Can you give some examples for things that are not going to be um part of the use case or what you can will be able to do with cute bridges and perhaps a rational for why? >> No, no, no, no. Just uh um you like you won't be able to uh use the cute network classes to build an HTTP server because Python already has stuff for that or something like that. And uh I was completely against of exporting cute network and all those things. And there was a lot of cute developers said no no no no I need the cute API to do this thing. I don't want to use Python HTTP and stuff. But yeah so far at least the other use cases are mostly around the item models in general. So this is at least the starting point that we having for the TP. We have a couple of other demos but in a nutshell it's kind of like exposing a little bit of data between the cutequick and the other languages. So besides this use case, we don't have many many more so far, but if you have ideas so one question from the chat uh which relates to the fact that we're here at a KD conference, is there a way to use some existing cute based C++ libraries like KD frameworks while writing most code in another language? Then I will Yes, I will play the Nicholas card and then Nicholas can reply that afterwards. Um, I have a statement and a question. The statement as a representative of the CXXQ team, uh, we are very impressed by this. We think it's a great idea. We're working together on making sure that we have a shared base library of types so that you can extend uh things you have built with the bridges by way of CX cute. So we very much think these things are complimentary orthogonal and we are working with cute company to make sure that they work well together. Particularly in KD I think this will be important because you guys will want to use probably more than just QML and this views in other languages and Rust specifically. Uh the question is um you've chosen to take a runtime approach where you're generating everything basically dynamically at runtime and you I know you've done that in Python 2 and it seems to work there. Okay. Are you worried at all about the performance impact of that? >> I'm getting my exercise today. >> Yes. Yes. I mean there are other issues as well with the performance related or even times. For example, C# we currently are dealing with a a thing that we are generating a lot of code. So we have longer compile time as you might be familiar because we talk about it already similar to the Ras ecosystem like doing this thing at runtime might be something that the RAS people will say why are you doing this but uh yeah that's I think that our goal first is just to put the TP out and maybe have the how people feel about it because at some point you might find people that say well this is taking longer to compile or you know the whole execution or something but at least I'm getting something nice out of it. Some people might not say that or said no if possible if doesn't compile or do something in one second then we don't use it but I think we will kind of like are expecting for the reaction of people firstly before trying to push the patch before before the the wound but yeah it might be also a lot of time I think we have one more and I'm not running >> sort of related to Till's question about the runtime aspect of it a lot of the recent improvements in cute and QML were around the QML tooling knowing better about the C++ types and being able to do autocomplete for like properties and types defined in C++. Are we going to lose all of these improvements when we do different languages with runtime things injected and less of that compile time thing that's happening right now? >> Yes, we are killing the QML project. No, no, no. At the beginning of course we might see some issues there but I am certain that Favian and the whole team will be more than happy to apply all the same performance improvement to all the other languages right Favian. Yes. See he was yeah but it could be that happened. I mean that's all that's the thing that we want to do the TP just to see what is the people reaction but uh but yeah it could be that in the future we need to improve it further on. There's another question but I don't know if we have time. >> We can just we can just And it's a little bit of a trollish one. Are you going to do a bridge for C++? [Music] You need you need to add to to Faulker if you have time enough after the Q range model. Maybe now you are ready to to have the official bridge for C++. No, but why not? I mean it could be something that you can we can minimize the boiler plate code because we had a lot of boiler plate in cute. So maybe I don't know if people get motivated enough then this can be something for discuss for the for the buffs in a couple of days. Awesome. Um so if we're going to all put our hands together for Christian. [Applause] [Music] So we have a coffee break until 3. Uh Kevin and Arjan can you come and see me please? Yeah.