The role of C++ in the Python ecosystem: the case of the Qt framework
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 131 | |
Author | ||
Contributors | ||
License | CC Attribution - NonCommercial - ShareAlike 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this | |
Identifiers | 10.5446/69513 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
EuroPython 202411 / 131
1
10
12
13
16
19
22
33
48
51
54
56
70
71
84
92
93
95
99
107
111
117
123
00:00
Software frameworkOptical disc driveSoftware frameworkFormal languageProjective planeCodeExtension (kinesiology)DebuggerSearch engine (computing)Module (mathematics)BitMathematicsPoisson-KlammerUser interfaceCheat <Computerspiel>Cross-platformComputer configurationPairwise comparisonComputer programmingSocial classImplementationSimilarity (geometry)Quantum stateRevision controlMoment (mathematics)EvoluteSequenceInterpreter (computing)RotationRight angleMultiplication signTensorValidity (statistics)DataflowSoftware developerInformationDifferent (Kate Ryan album)Archaeological field surveySubject indexingLambda calculusFunctional (mathematics)Parameter (computer programming)File formatString (computer science)ExpressionDatabaseComputing platformGreatest elementGraph (mathematics)IterationStack (abstract data type)Buffer overflowSoftwareRankingData dictionaryData structureEnumerated typeWordType theoryDampingGoodness of fitArithmetic progressionSinc functionLetterpress printingSlide ruleInheritance (object-oriented programming)Military baseJava appletBeta functionComputer animationLecture/Conference
08:12
GUI widgetComputer networkCore dumpGraphical user interfaceOnline helpComputer-generated imageryFile formatMultimediaGraph (mathematics)Object (grammar)Serial portSuite (music)Shader <Informatik>Keyboard shortcutPhysicsAuthorizationVisualization (computer graphics)Letterpress printingSound effectComputer fontRouter (computing)Correlation and dependenceBuildingAndroid (robot)VideoconferencingSoftware frameworkRight angleActive contour modelData typeInstallation artOrder (biology)Multiplication signBitSpecial functionsDampingSequenceProjective planeDifferent (Kate Ryan album)Array data structureElectronic signatureFunctional (mathematics)Latent heatGraph (mathematics)Point (geometry)Graph (mathematics)Control flowView (database)Revision controlSinc functionComputing platformSoftware developerBinary fileModule (mathematics)Hacker (term)Open sourceStandard deviationSoftware testingField (computer science)CodeAndroid (robot)Cartesian coordinate systemFormal languageExtension (kinesiology)Process (computing)WindowCase moddingSoftware frameworkSoftwareInterface (computing)Library (computing)Patch (Unix)CASE <Informatik>Replication (computing)WritingCoprocessorArmRow (database)Universe (mathematics)Binary codeCategory of beingPiVector spaceGoodness of fitKey (cryptography)NeuroinformatikKeyboard shortcutSpecial unitary groupGUI widgetAeroelasticityInheritance (object-oriented programming)File viewerWebsiteComputer animationSource code
16:18
Process (computing)Extension (kinesiology)NumberInformation systemsBuildingPhysical systemGUI widgetView (database)Social classParameter (computer programming)Decision theoryPoint (geometry)ImplementationEmailModule (mathematics)Functional (mathematics)Multiplication signDampingCartesian coordinate systemProof theoryWeb 2.0Pairwise comparisonLevel (video gaming)WordInterface (computing)Visualization (computer graphics)Right angleCase moddingBitPopulation densityBuildingCodeSource codeMixed realityComputer scienceScripting languageExtension (kinesiology)VideoconferencingOverhead (computing)Physical systemComa BerenicesMereologyMoment (mathematics)Online helpRevision controlLimit (category theory)WindowCondition numberProcess (computing)Inheritance (object-oriented programming)Latent heatElectric generatorResultantBinary codeSession Initiation ProtocolProjective planeComputer fileSystem callComputer configurationCASE <Informatik>Software frameworkProgrammer (hardware)ParsingSuspension (chemistry)MathematicsNeuroinformatikOvalPointer (computer programming)Vector spaceElectronic mailing listSet (mathematics)MappingType theoryEndliche ModelltheoriePiProduct (business)Sinc functionKeyboard shortcutStatisticsGoodness of fitLine (geometry)Transport Layer SecurityComputer animationSource code
24:24
State diagramMobile appCASE <Informatik>Formal languageProjective planeDeclarative programmingBitSoftware repositoryText editorComputer simulationRoboticsComputer animationSource code
25:05
Exact sequenceSystem on a chipOscillationPlotterSoftwareCompact spaceDigital signalAssembly languageDisintegrationUsabilityInformation securityOperations support systemSoftware testingGraphical user interfaceStandard deviationSystem programmingBit rateWeb pageThermische ZustandsgleichungCASE <Informatik>Software frameworkInterpreter (computing)PiCartesian coordinate systemComputer configurationWritingPlug-in (computing)Real numberCASE <Informatik>Software frameworkGroup actionWikiIntegrated development environmentLevel (video gaming)MicrocontrollerRight angleDemo (music)Asynchronous Transfer ModeInterface (computing)Multiplication signMobile appInheritance (object-oriented programming)NP-hardOffice suiteSoftware bugPublic key certificateINTEGRALWallpaper groupMenu (computing)BitModule (mathematics)Message passingComputer animation
29:26
Object-oriented analysis and designRothe-VerfahrenPoint (geometry)GUI widgetStability theoryBus (computing)Type theoryPointer (computer programming)ImplementationSource codeSoftware frameworkDebuggerCASE <Informatik>Front and back endsPlanningPhysical systemFormal languageMoment (mathematics)Multiplication signWeb-DesignerINTEGRALWeb 2.0Software developerInheritance (object-oriented programming)Revision controlCartesian coordinate systemInterface (computing)Software bugLecture/ConferenceComputer animation
Transcript: English(auto-generated)
00:04
Thank you very much I Should not say this before starting a talk, but I just finished the slides. So I really hope that there is It's everything good. Yeah, so a C++ in a Python conference I know for some of you this might be confusing but for some of you
00:20
It's important and you understand the goal of this talk. So by the end of this talk, I just want to Maybe it's a spoiler But I just want to understand that it's really nice to embrace other languages and even some languages that we believe that Are too old too complicated or whatever other reason you have If I were to summary this talk in one phrase it will be mostly this one which is extending Python
00:46
Which is something that most of you here. I know many faces here already know what to do and It's something that we can do because of course C API in Python really important, but then just as a show of hands How many people will write an extension now by the way? Yeah, really cool documentation
01:04
in Rust today if you were to write a new module for Python that will revolutionary how many people will use rust to do this? Okay, how many people will use C++ lessons? How many will use sig?
01:22
Okay, too well still so it was a good progression of languages that were It's fine. I mean, I will not tell you here that one language is better than the other you choose whatever you like I'm just here to tell you that some languages that are maybe people is afraid of they're not so terrible So we need to talk about surveys and indexes
01:41
This is a topic that I hope that it will not go a lot of time But if you look at you know stack overflow, for example If these are the professional developers like ranking of languages if we keep aside all the front end or beta bases We do have Python there. Yay, but then we have Java C sharp C++ PHP C go whatever and rust
02:01
There at the bottom which is like, okay. Well people like it, but professionally it seems like still not there This is a complicated graph to see but is the use and the desire of using it So there you can see how rust really shines like a lot of people want to use it But not many people is using it, right?
02:21
But if you go seem like different index we can go the T of a tile, I don't know how to pronounce the of a index and In a lot a long time C++ for the first time went over C And this is an index that is based on professional developers looking for information on different search engines and stuff And you see that now we have Python and simple plus together
02:42
So I know surveys are super subjective because the the amount of people doing it is different and it's just to get an idea But what this reflects is something that I learned and it took me some time to learn because I was like super like oh, yeah Python everywhere whatever but The world kind of runs on C and C++
03:02
still Even if we like all the language even if you are like super high by the new things or whatever Still need that so I know what everyone is doing internally at the moment, you know, I just fear immediately But I just want to present in this talk really lightly that C++ is way closer than Python that you think
03:23
So tensorflow everyone knows doesn't use it you can see there the percentage of all C++ that we have there pi torch similar thing ray similar thing sci-fi as well numpy and Then as you see that many project that you're familiar with of course you are using without touching the code
03:42
We're using C++ of the need So it's something that I believe this should be important for you to at least to grasp or at least to get an idea What's going on? They're not getting Scared so yeah, as I told you before C++ has a bad reputation of being a difficult language, right? So just a second parents. I like this example because it usually gives people hope
04:03
if you have this super simple badly program Python class there and I want to show you now the counterpart of the C++ implementation And you look at it for a little bit and you have extra curly brackets here and there are some semicolons But is it that hard to understand? Of course you hide the Python reference, right?
04:22
So you it's kind of cheating but is it that hard? I don't think so, right? So you do have some so proximity you need to learn a few quirks and stuff, but it's not so far away, right? So there are many things in C++ that I will not want to bore you But I will just highlight the there are features that are really cool So for example in C++ since many versions ago now you can use the word the keyword auto
04:43
Then then you don't you don't worry about the type so kind of like Python but with this extra word there So then you have a need to float some weird character structure that we don't need to talk about strings and stuff The same with ranges, I mean if you're if you like Python for you have this thing there
05:01
So for me you have a iterable I and then values simple If you have something a little bit more like Complicated but still you can have something closer to the enumerate that sometimes we do with dictionaries iteration and stuff And I know there are many semicolons and other characters there, but still you I am pretty sure you can grasp this thing
05:22
And last but not least this is was one of the features that was really like cheer by the whole C++ community Is that finally they decided to have a print function? I was inspired in many other languages Of course as one of those as an example It's Python because this really sounds like the dot format approach that we have for strings
05:40
good So still with these examples who thinks Python is simpler than C++ good I will remember all your faces because now we have a quiz So now for some people here and I really like to show this snippet because there's always new people in the room that no No, it's similar talks. That's like for some people this expression is super complicated for some people No, do you understand? It's like it was a lambda function. Whatever you receive in a couple of arguments you do something, right?
06:05
Everyone is there like so far. Yeah, right this also some people know it already Hope people I will not ask you don't worry, but who is not familiar with it. I was not familiar with so many Okay, this is the valid Python code. You can try it after work this
06:23
It's super simple, but it's super weird, right? I Really like your your sincerity This This is valid Python code who is not who doesn't know what this means. Okay, lots of hands as well This is Python code
06:41
Is a valid sequence of Python code, this is Python code as well So I'm not doing any weird. I am NOT overloading things. I'm not playing this time of like having my own interpreter This is vanilla Python. So if you try it out, you can figure out what it does and This now this is not Python this is
07:00
Goat golfing language, but that's another topic for another talk. If you are interested you can read it that So a language can be both simple and complicated Please don't this not like make a battle rotations for languages because they are more things and have more features around whatever Everything can be complicated even Python that I hope that you kind of understand
07:21
I'll believe me when I tell you when I show you this piece of code So, yeah, but this talk is about cute right so cute or some people say cutie it's a framework that is super old and it's super it's almost around the same age as Python and If you have remember or try to remember the first version of Python that you use And see how Python is at the moment. You can see the whole evolution
07:43
It's the same with any other kind of piece of software. So it's imagine the Lot of things like change quite a lot there. So at the beginning cute it was Thought to be to solve a problem of having something a framework to create uis Cross-platform because there back then you had like different options
08:01
But it was you have code that kind of is the same code in each platform or you can have something about it When I say batteries include these are the essential modules for the cute framework We just said well, it doesn't make much sense for you Maybe network widget test whatever but when I tell you batteries include these are the add-ons of the cute framework
08:21
So here all the modules that at least we have some of them are not available in Python But that's the thing But you can see that Kind of feels whatever we have with Python with the Sun the library lay lots of module to do that because we need to Understand it's a different language. They C++ ever don't have all the amazing modules that we have so cute Kind of like wanted to provide all the things that C++ ever didn't have
08:43
So that's why they start adding more and more even in the latest version. We add a few more modules as well Yeah, but now we're talking about cute but we're in the your Python Conference, right? Yeah, but the good news as I told you already is that there are Python bindings for cute And there is another maybe I am guess like 80% of the room if you know extensions you will say yeah
09:04
I cute this talk is not about pie cute. It's about pie side. There are different modules. What why? Yeah, because licensing is complicated. So I could was first I cannot reject that idea because it's a fact and They have their own license the cute project has LGPL and they decided to have GPL and they are developed by different companies
09:25
So one is by the cute company where I work and the other one is by riverbank computing which has been having pie cute since cute version 3e or something like that yeah, I agree and Platforms the same Support for other kind of deployment at Android the same
09:44
And I know I'm biased because I work there and I am one of the developers of pie side But this now following slot is to show you that We at the key for Python of the pies We try to do a little bit more and this will be only a few examples and we are doing fine with the time I think yes ten minutes
10:01
So what's and more that I was showing there. So once we install the tool whatever you will Discover that there are many features that come around that are not only the cute API that most of you are familiar with This is another maybe with question that you'd have asked before how many people have used cute I don't care which version which language whatever good nice. So, you know the cute API
10:22
So, you know that what to expect like bare minimum things to expect So one of the things that we did is because we were tired to be a little bit anarchist there Like I said, we will break cute API compatibility and then we started to think what can we do from this Python point of view? In order to enable other projects
10:41
So the only example that comes to mind is for example, there is a project called pikute graph Even though pikute is in the name It's also work with pie side and they needed a special API a special function to draw some points because they are they were doing Some graphing or plotting whatever and they asked us like, but can you add this new function to receive this specific data type?
11:00
Is that sure so we added and this might sound silly might sound simple, but I believe that it's a really good first step in order to somehow embrace Python ecosystem because we didn't want it to be only the bindings for cute In Python and this is at least the what I still believe that we want to have as a difference
11:21
I do respect by cute and whatever they want to do because they want to be a one-on-one API thing But we wanted to do things differently. So this is one of the things that we do The other one was numpy support So we noticed that in the cute API There are many places where you have vectors of something or whatever other structured sequences So we thought maybe we can support I don't know numpy arrays people is doing things like that
11:44
so then we decided to add numpy support for some well most of the Signatures that receive a sequence and is something that you also can interact with which I believe is nice who here use numpy Yeah, or have to use it. Okay, see convenient for you as well Tooling this is an also an interesting topic. I know there's a lot of nice tools all over the place and
12:05
We wanted to help people starting projects for example with pies at six project to create new projects run Compile some resource files, whatever then have deployment. This is something that you might take a little bit of time But that's a simple t-tetrix
12:20
Tool that is written with a pie sat and cute and we can compile it with by side six Deploy and then after that it will be a bit longer Maybe I will cut it but believe me after this step we will generate a binary file With a tool again, not something that we reinvent from scratch. We decided to use something outside So no pie installer nosy experts, but Nuitka, which is a really good project
12:44
I think it is the only one that you can correct me Maybe later is the only deployment tool that does not freeze your Python project But transform your Python code in a C extension and then compile the C extension and generate a real binary If you didn't know it kudos for them, but we use it under the hoods in order to have this kind of behavior and this will
13:04
Finish I still have some time And then when we executed we can rush a little bit more. Oh, no, there's one more thing. Okay. It's a slow process I know but it works. I can show you later if you want another one that even one of the most Kind of like alive or young UI frameworks in Python criticize is that for example, maybe you know beware
13:23
Toga, they criticize as most of the UI frameworks that we have in Python They have API's this field in this male C++, right? So this is some random C plus a C++ each code that you can have in Qt and Python But we implemented something called feature that they are they when you enable it
13:42
We get rid of all the camel case API which was from it to snake case APIs We get rid of all the setters and getters and you can access the property right away so I believe that this was a really good thing because every time that I was going to a conference people was Criticizing the thing because of that feature We are thinking they are the one of the largest projects that support pi pi so that it's a true thing
14:03
We do support us in many versions ago We have been doing a lot of things on arm 64 I remember when they announced the whole universal binaries, whatever we did that we had to the wheels for Python For M something the processors we started to do some packaging for our 64 Linux
14:20
And now we are even if we like it or not research on Windows arm 64 as well So we are trying to get there because it's something to enable more people to use it Now another thing that we were lacking compared to by cute was Android compatibility some people still believe like by site, too They didn't support anything Didn't have enough support. So thanks to my my colleague champ that is there in the third row
14:45
We have now Android support so you can write PI side The tool is for just deploying the code and you have it I mean you need to have the wheels but this is something that we solve and you have an application running there And again, we didn't do everything for scratch because we are super hackers or anything
15:02
We rely on another project kivy kivy is doing a lot of work on that You know kivy for sure and they have the Python for Android project. It's an open source project We said hey, why are you doing something again? Let's use that project So then she managed to submit some some patch to that contribute to that and then you know two projects We kind of want to achieve the same thing and now thanks to them. We do have under support
15:24
And what about all the your frameworks? I will go quickly here because I don't have 15 minutes and I told you already about kivy. I want to be transparent I know I work in the cure company I developed by site but I want you to try the other frameworks out there Because I want you to experience and judge which one is more fitted for your functionality
15:43
So for example, this is a simple application in kivy kivy also has support for Android OS Linux Mac and Windows is MIT They also recently maybe you have heard of flat which is for writing flutter applications So you can also now write Python that gets I think somehow into dart and then I don't know how they do it
16:03
Maybe transpile. I don't know but you can use it as well I have seen it's super popular among beginners because they see this modern looking interfaces. Oh, I want something like that Toga, which is already mentioned from the viewer project and they have been around for for some time now But it is still an early-stage UI framework. They claim it is not my words
16:23
and I put a little star there because I do know that at least there is a lot of Efforts and a lot of interest of people working with toga and be aware to maybe have those interfaces Now on some WebAssembly application running somewhere at least there are proof of concept that work But it's also interesting if you're into WebAssembly, maybe you can look this project
16:42
And just for comparison, I just put their pie statistics with a little label that just says hello Nothing too fancy but for you to get an idea of the code because I really wanted didn't wanted to show a lot of code During this talk and again licenses are important in case that your thing a more technical topic that I think that I will not have enough time to talk about but I still wanted to present to
17:03
You is the generation the generation of the binding so it's not as simple as well It depends on what you use, but if you want to do everything from scratch It's not as simple as saying something like oh, yeah Whatever you are calling this function in Python quality in C++ because we need to do this For hundreds and hundreds of classes and methods and everything. So it's more complicated than that
17:23
In a nutshell this binding generation thing is that you have some code You have some whatever and then you have the Python package, right? If you're going to go into more details, for example what we do, it's something more like this So we do have some tool that goes into the Qt C++ implementation Scrap all the headers, get the idea of all the modules, classes, methods, arguments, whatever whatever
17:45
Complement and with some decisions from the Python point of view because if you know C++ You know, there are many types that what are those types in C++? For a vector you can say maybe an umpire array, a list, maybe a tuple, I don't know If you have an I don't know sets or maps you kind of also have the same things
18:03
But I always give the example for the people that know C or C++ What is a void star pointer in Python? There's no it's our point. Well, maybe there is some secure thing that there is but there is no as far as I know So you need to make the decision you need to make these changes Compiling Qt takes a lot of time even is modern computer
18:23
So imagine now you need to kind of parse the whole thing Put it somewhere generate some code compile that so it's a beast the project is super launched and this process is simple But it takes a lot of time So a couple of examples what you can do with Qt I didn't as I said didn't want to show a lot of code and more more like Examples so you can feel more attracted to maybe to give it a try
18:45
The first one I wanted to even start with something that is not developed by Qt and it's not developed by me but I believe that is a really cool project that is Pyband 11 and Maybe you have heard about Pyband 11 who have heard not used heard. Okay, lots of hands and
19:00
The approach they have is something that is quite useful when you have small example at this one because you have like a little thing That you need to put in your code and then with some magical compiling Command line you get the final Python module cool, right? The problem that we had with cute
19:20
For some suspense is that we didn't want it to go into each source files of the cure framework We got there are many and put these little things there for the module Right, we don't want to bother other people went to extract information and do some old things. So as good Computer scientists or programmers you can make all it that both ways the team the initial team thought maybe we need to write our own tool
19:43
So they decided to write she broken. So she broken is something that is heavily inspiring boost Python if you know that thing And again is a similar idea here You have the same code, but you don't need to touch you don't need to attach neither the C++ code Nor the headers so you can have those things somewhere
20:01
But you have this XML file that then you will say hey, by the way I want to create something that will come from here you pass some C make magic. We will not talk about C make Don't worry. We don't have enough hours for that and Then magically will work so you didn't touch the original code. Maybe something that's you need so you like your call So there as I told before there are many other options for this thing
20:24
Swig if you have ever used swig You know that it can be very complicated to understand the generated code. At least it's the binaries are huge it's like boost Python is full with things when you generate things and The C++ code is also a bit like a not easy to follow in my opinion
20:42
And there is also sip which sip will be kind of like the she broken that PI cute has not by side They also have their own binding generator because I think that they also found the same difficulties that we found and the last but not least There is not a vine which is by the same person that well kind of person's idea, but lots of people contribute
21:02
That wrote PI bind 11. It's a new thing. So the person in charge wanted to Get better results into binary size, which is a thing performance compiling time and so on and so forth So yeah, if you want to give it a try, they are really cool At least the last one is super cool. Maybe you can just check it out
21:21
So a few technical details about the product if a Python project that I promise you again super high level So the first one is that we are we are using the Python Limited API and this is something that is super interesting last year. It was really lucky to to give a talk about this topic It's a dense topic if you are into more like fancy Python things going on
21:43
But it's an interesting thing and since likely this year I don't need to talk about much about it because there will be a nice talk by Victor Steiner that maybe you can watch I think that it is tomorrow if I'm not incorrect Is very interesting to that but in a nutshell and super like high-level thing is that you will have
22:00
Less no dependency with some specific Python version Maybe you have seen for example that numpy generates when you go to pi PI or numpy You have the numpy package for Python 3 6 3 7 3 8 3 9 and then for Mac For window and then for access whatever so they have like lots of will which is really hard
22:23
And then you have like big project size in in pi PI in general So this kind of helped with that But the other thing is that you don't need to have a lot of conditions depending on some specific version So tomorrow there's a new fancy C API in Python that you want to use But if it's not in the limit API you don't need to so just to be compatible and not have your code full of like
22:42
Oh if this version use this if this version use whatever whatever and the release overhead as I told you is because if you need To have like hundreds of wheels or whatever to to publish will be really problematic Build system and packaging again, it could be a full talk on this thing It's a sad experience so far, but it's something that works
23:02
It's complicated because I told you already all these come like weird C++ header parts or things We need to somehow fake some new package to generate so The build system at the moment and the packaging is a mix of CMake some custom Python script But at least we have some stuff in pi project of Tomo. So please use it because it's a really cool thing
23:21
But still for extensions is a little bit painful But for that topic as well, I believe that the talks by Henry He has been a speaker in many conference. Maybe you have seen it I couldn't find a video of this year's Python, but hopefully soon will be around He also contributes to pipe and 11 to psychic build if you're interested in topic
23:42
I really invite you to watch these talks They're really informative can be a bit dense because it's you know, hardcore building system C++ and all these things But in a way super recommend at least I watch and I enjoy it So finally, so what can you do with this cute for Python Python thing, right? You were mentioning again Cute for Python is the kind of like marketing name, but the model is called pie side six. This is a quick remark. I
24:06
Told you before there's this nice Tetrick's application with you will say like it's 2024, right? I don't want to do this thing But still I just wanted to show you because I like the video with the example the first time that I saw it If you like modern local interfaces, this may be resemble something for you like code or Visual Studio code
24:25
You can also do it with Python This in this case is heavily using a language that we have in the cute project called QML Which is a declarative language based on ECMA script. So it feels a little bit to JavaScript or CSS So if you want to have this thing and create your next text editor, whatever you can just go clone the repo
24:43
You have the example modified and add whatever you want more modern If you want to have some nice simulations, maybe you have some little robots or whatever. You can also these cool things You know move things around in this case, of course, you need to develop all the design assets
25:00
designs us and everything and then the most important feature here is That you have dark mode. Yes, and you can do things like that and even more advanced you can do this many people Don't know I so I I don't want to get fired So I will not say brands but there is a famous brand for example that ends with esla that
25:22
Uses cute for the interface for example There are many other cars companies that they use it for the fancy panel things and it's good as well Some people tell me some most of the time but cute looks really old. I really want to use react or whatever I mean if this is old, I don't know What else are you looking for? But you can get this level of modern kind of feeling in applications
25:42
It's only a matter of like having the right tools and everything the right tools and everything So yeah, you can do this kind of things as well This is one of my favorite examples is a bit dated. So don't worry about the import You cannot read nothing from there, but it's fine because the Christian of the past will fix it for you
26:08
So now you can read so this is a cute c++ application that as you know You can easily put a Python interpreter in a c++ application So in this case, what we are doing is the this is a real customer case. So they have a huge
26:24
cute c++ framework Application and they wanted to give the people the option to write plugins or add-ons in Python So they include the interpreter there They put some pie side and she broken as I told you before and they had the option to people can Easily write a plugin these of course is just an example and I can do very useful and interesting thing that in this case
26:44
I will change the menu instead of run. It was it run for many use So this is something that is people is using out there. For example, if you are familiar with Autodesk Maya That's the approach they are using and again this example is there you can clone it and use it and play around with it So, yeah now it's a little bit like well this example yeah, but there is a any real business or whatever
27:07
Personally, I believe that all the modules like toga B where it with sort of be where the kivy fled are really cool and super easy if you want to do something You know, oh, I want to have a little application that does something simple
27:20
Oh a little application that does something whatever but if you really want to do something like for industry, I Believe that they are not so feature-complete the amount of integration that they have is nice for sure if you write in any example that I told you before an example for a wallpaper setter Application use that but if you want to go the next level just something for more official in a way
27:43
I believe that cute and this case pie side is one of the best options So just to highlight a few of the industry at least that we are here because we're all this is a sponsor talk As I told you already cars, we have many companies using cute for those cars Aviation agencies as well. They are using cute for some interfaces that they have internally
28:03
If HMI is your thing as well. We have lots of cases like that Medical devices, you know how hard is to get a certification to have your framework being a medic and medical devices It's super hard and you can do with good as well. I always tell some people that I think at the dentist that is close to our office uses an application with cute. So let's see if you're having missing some bugs
28:25
You are you need to fix it. It's not your teeth can be broken But yeah many things we have microcontroller support for example in some cases So you can have really cool like smartwatches running with so far I don't know any brand that has it, but we do have some examples and demos with them and
28:42
The last thing that of course as always you can use it for desktop application or mobile application So there are lots of things that are real industry that maybe I don't know the coffee machine But maybe the coffee machine as well because we do have coffee machines that when you select things and whatever in your companies They are reading with cute. So if you're interested, maybe you can drop by the telegram group
29:02
We have a small telegram group there that people always ask questions or whatever We have a wiki the official documentations or you can always pick me So with that I hope that at least we are more interesting in C++ and the Environment around it and how that is affecting the Python ecosystem in a good way. Thank you very much
29:25
Thank you for Insightful talk actually, we don't really have much time for Q&A just one minute. So one question if someone wants But if you're if you're quick you can we can do both. Yes. Thank you. Great talk
29:41
Thank you very much over the web developments Speaking of the well over the web development are their plans to do the Python integration with web assembly Yeah, there have been a lot of requests and I think one of the developers is around and try to catch me Oh, they the answer is we want to yes The the problem is that it's complicated because of how our build system is
30:02
Configured if you have solutions or idea or willing to do something we can talk afterwards and I can tell you all the details Of why it's so difficult to do it at the moment. But yeah, there are some plans Thank you, yeah As a special type Python type that we just said this will be a few method that somehow can reflect like the reference in the pointing
30:26
Pointer does things but yeah, the implementation is I can also point you to the source code if you want to see it But it's just a simple Python type cool Sorry Through your example and from past experience. It seems like you are putting more efforts into QML design QT widgets. Yes, am I right?
30:45
Yes, with the reason that we are doing that is because we want to separate the front end from the back end of things and hopefully At some point for you to have your QML thing go around and then I want to use C++ I want to use Python whatever but then the the front end is they remain the same This is something that we want to solve by putting emphasis and QML because widget is there. It's a stable
31:05
There are some bugs but is that cannot compete with react on other frameworks in other languages It's the same is the same license you have LGPL version 3 or commercial if you are selling your application so we can
31:23
Yes Okay, cool, oh by the way super important I have stickers and t-shirts in case you want something, but that's it Okay. Thank you Thank you