I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue)
-
This was meant to be a continuation of a side conversation at https://forum.qt.io/topic/88567/qt-windows-7-installation-issues but it has morphed into an extensive collection of my thoughts, observations, and even a chunk of my life story.
1. My background
1.1. Study and work
During my Electrical Engineering degree, I took an elective unit in introductory C programming which was run by the School of Computer Science. Through this unit, I realized that I enjoyed tinkering with software far more than I enjoyed tinkering with electronics.
Looking for ways to create GUIs, I tried Java for a while, then tried GTK with C, then tried Qt with C++. Neither Java nor GTK appealed to me; when I found Qt, I knew I'd hit the jackpot and I never looked back. The Qt community at qtcentre.org helped me to grow my software skills through hobby projects. A while later, My hobby portfolio scored me a short-term internship for developing a Qt-based tool.
After my internship, I landed my first full-time job: I'm now a LabVIEW developer in a systems integration company that creates custom measurement and automation systems. We design the system architecture (hardware and software) and we build custom I/O hardware using off-the-shelf parts. The bulk of our work though involves writing software to do a number of things: Acquire/process/store/visualise data, perform automatic control, communicate with external devices (if any), and provide a GUI for our customer to configure/maintain/use the system.
It's been >5.5 years in this job now; I still enjoy the wide variety of projects I'm involved in.
1.2. My software tools
I mainly use LabVIEW at work and mainly use Qt at home. This split exists mainly because the different environments have very different requirements; I try to follow the principle of choosing the best tool for the task at hand.
My colleagues follow that principle too -- while we are primarily a LabVIEW house, we have used (where suitable) other technologies like HTML+JavaScript to create clients for cloud data access, C# to extend a customer's existing GUI, VHDL to integrate a 3rd-party FPGA, and of course Qt to integrate advanced GUI features and client-editable scripting (via
QJSEngine
).1.3. Certifications and community involvement
(a.k.a. "Can we trust that JKSH knows what he's talking about?")
6 months into the job, I passed the Certified LabVIEW Associate Developer exam (which is a similar level to the Qt Company's Certified Qt and QML Developer). At 1.5 years, I became a Certified LabVIEW Developer.
My company is a Silver Alliance Partner of National Instruments (NI - the company behind LabVIEW), which means we meet their standards of certification, and we get previews of their upcoming tech releases.
I'm more active in the online Qt community than the LabVIEW community for a few reasons:
- The open-source spirit: I've learnt lots through the Qt community, and I've had lots of fun with Qt. I'm not making monetary contributions, so I'll give back through community involvement instead.
- The Qt Project is more open: It lets us contribute directly to core code and documentation. NI doesn't.
- The LabVIEW community is bigger and many NI employees are active on their forums; I can make a bigger difference here in the Qt world.
- I joined the Qt community a few years earlier than the LabVIEW community; it's been my home for longer
Along the way on my Qt journey, I became a Qt Project Approver (for documentation), a Qt Forum admin, a Qt Wiki admin, and a 2016 Qt Champion ("Community Builder").
2. What is the point of this post?
I've seen my fair share of online posts about "Why Qt sucks", "Why LabVIEW sucks", etc. So many of these posts use emotive assertions or straw man arguments instead of sound technical reasoning. Objections often stem from misunderstanding, unfamiliarity, unwillingness to try new things, or a myopic focus on weaknesses while ignoring all strengths. It can be amusing or frustrating to read such posts.
- Example post that amused me: https://forum.qt.io/post/447952
- Example post that frustrated me: http://www.cplusplus.com/forum/lounge/140601/#msg742754
Since I have several years' experience in both Qt and LabVIEW, I thought I'm in a good position to make a meaningful comparison of the two technologies.
But before I do that, let's get back to the thread that actually inspired this post in the first place.
3. My responses to previous posts
@MrShawn said in QT Windows 7 Installation Issues:
Plus lets be honest me personally I am not very good at art and drawing which I am forced to do in LV. In the end I would just rather write text based code, and C++ is really the language I want to use.
Yes, it does take discipline and effort to arrange wires and nodes tidily in LabVIEW. Textual coding is free from this particular overhead.
Nonetheless, it also takes some discipline and effort for a textual coding team to enforce a specific coding style.
I find I am constantly trying to undermine the LV paradigm of 'data flow' and trying to do a lot of object oriented code which in my honest opinion breaks down in LV - even when using referenced based objects and actor framework in LV.
LV isn't world breakingly bad - but it isn't really for me.
Having undergone the transition from C++ to LabVIEW myself, I agree that switching to LabVIEW requires a radical shift in thinking. I felt something similar (but at a much smaller scale) when I first went from C to Java: For about a week, calling class methods felt like I was using C struct members wrongly.
As a language built on the dataflow paradigm, LabVIEW is optimized for data processing so it doesn't lend itself readily to describing "identity objects". The Qt docs have a helpful section about value objects vs. identity objects: http://doc.qt.io/qt-5/object.html#qt-objects-identity-vs-value I bring this up because with LabVIEW OOP, it is easy (and natural) to create value objects but tedious to create identity objects.
But anyway, I agree that the best tool to use is often simply the one we're most comfortable with.
And to reinforce this when I look at the forums (I think the LAVA one) there is a member that works on LV and his signature is along the lines of "I write C++ so you don't have to". Having only started in LV months ago - I was somewhat insulted by this.
That would be AristosQueue, one of the senior engineers in LabVIEW R&D. I don't know him personally, but judging from the way he responds to users in the forums, I don't believe he was trying to be condescending to C++ users.
There are folks out there who do like drawing block diagrams more than typing lines of text. His signature is aimed at these folks, reassuring them that they can write software even if they don't like (or know how to) write textual code.
Anyways there are a lot of reasons I feel this way - but the best I have seen came from someone else after reading. They said something along the lines of that he can make labview with C++ but he cant make it with labview.
To clarify: Do you mean "He can use C++ to implement LabVIEW but he can't use LabVIEW to implement C++"?
First, notice that it is equally valid to say "He can use C++ to implement Java but he can't use Java to implement C++". Would you agree with this? What difference does it make to the argument if we swap "Java"' with "LabVIEW" here?
@J.Hilk said in QT Windows 7 Installation Issues:
To be honest there weren't many programming languages introduced to me during my studies that I liked ...
I had the opposite experience. I intended to learn C programming merely as a once-off, elective unit for my electrical engineering degree. Turned out that my professor was an outstanding teacher and he got me hooked on coding... now here I am :-D
:D good one, I would defive LabView more as an "Point and Click-adventure" than anything else.
Point-and-click adventures reveal stories as you click. LabVIEW hasn't told me any stories yet... I must be using it wrong!
4. Showdown! Qt vs. LabVIEW
This was the original point of this post, but that's now a separate post at https://forum.qt.io/topic/90276/ to break up the huge wall of text.
As for this thread itself... feel free to comment on anything above, or Ask Me Anything!
-
@J.Hilk said in QT Windows 7 Installation Issues:
To be honest there weren't many programming languages introduced to me during my studies that I liked ...
I had the opposite experience. I intended to learn C programming merely as a once-off, elective unit for my electrical engineering degree. Turned out that my professor was an outstanding teacher and he got me hooked on coding... now here I am :-D
:D good one, I would defive LabView more as an "Point and Click-adventure" than anything else.
Point-and-click adventures reveal stories as you click. LabVIEW hasn't told me any stories yet... I must be using it wrong!
Hi,
a very detailed and throughly post and very interessting to read!What me really got into Qt was actually the IDE QtCreator. I attended a programming extra class and the profrosser used and told us to use QtCreator and I was totally smitten with it. A much better IDE than anything I used before.
Before that I used some bad basic IDE's for Pascal and Pyton that were just slightly better than windows notepad.
After that course I also discovered, that Qt itself supports developing cross platfrom and for Android and Ios.
Haven't looked back since than.I also work with CoDeSys, which supports structured text and a visual programming interface and everyone of my collegues preferes the visual style over the text one. But I personally can't work with that. Even so it gives you a visual representation of the logic I myself can't visualize it in my head and therefore have a hard time visualizing what to do next and where to go next.
But that may just be a special quirk of mine.
Interessting that you work for/ contribute to LABView, my collegues, that I share my office with, do their work mainly in LABView. Test-stands and programming for our hardware: I find myself everyday surprised, what they are able to do with it. It seems way more powerful than when I last used it. That may be because that was a good 8 years ago.
-
Hi,
a very detailed and throughly post and very interessting to read!What me really got into Qt was actually the IDE QtCreator. I attended a programming extra class and the profrosser used and told us to use QtCreator and I was totally smitten with it. A much better IDE than anything I used before.
Before that I used some bad basic IDE's for Pascal and Pyton that were just slightly better than windows norepad.
After that course I also discovered, that Qt istelf supports developing cross platfrom and for Android and Ios.
Haven't looked back since than.Hi @J.Hilk, thanks for reading!
Yes, tools are so important -- they help users to get started and more importantly enjoy A toolkit. I believe even little things like https://bugreports.qt.io/browse/QTIFW-1125 will help make Qt more accessible to newcomers.
Before Qt, I tried Visual Studio 2008 Express as my C IDE, but it was way too complex and it intimidated my newbie self. In contrast, Qt Creator was so minimal, clean, and intuitive. It was welcoming!
I also work with CoDeSys, which supports structured text and a visual programming interface and everyone of my collegues preferes the visual style over the text one. But I personally can't work with that. Even so it gives you a visual representation of the logic I myself can't visualize it in my head and therefore have a hard time visualizing what to do next and where to go next.
But that may just be a special quirk of mine.
That's a very interesting observation. Different brains are skilled at different things, so perhaps yours is better at processing text while your colleagues are better at processing diagrams?
May I ask, what's your preferred way of designing a piece of software? Do you find flowcharts, UML sequence diagrams, UML activity diagrams, etc. helpful?
Tangent: When I do algebra, I see the equation floating in the air; the variables move around and merge together to form new symbols or fade into oblivion when they cancel each other out. I have a friend who says she sees blobs of colour and a value change corresponds to a change in size and/or colour (I never could grasp that myself). Here's a light-bulb moment from someone who actually can't visualize a lightbulb (or anything else) in his mind: https://www.facebook.com/notes/blake-ross/aphantasia-how-it-feels-to-be-blind-in-your-mind/10156834777480504/
Interessting that you work for/ contribute to LABView, my collegues, that I share my office with, do their work mainly in LABView. Test-stands and programming for our hardware: I find myself everyday surprised, what they are able to do with it. It seems way more powerful than when I last used it. That may be because that was a good 8 years ago.
You might find TestStand easier to use than LabVIEW. The structure of a TestStand sequence is very much like C, very unlike LabVIEW's dataflow. The main difference is that instead of typing out
for (int i = 0; i < 10; ++i) {...}
, you use your mouse to click menus that give you a for-loop block and you configure the limit and step size in a separate table.In the past 10 years, I'd say LabVIEW has had a few major improvements and many little improvements.
-
@J.Hilk said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
What me really got into Qt was actually the IDE QtCreator. I attended a programming extra class and the profrosser used and told us to use QtCreator and I was totally smitten with it. A much better IDE than anything I used before.
Before that I used some bad basic IDE's for Pascal and Pyton that were just slightly better than windows notepad.For the record. Have used several IDEs. I have to do my Qt work for a Python project (not my choice, but life). So I picked PyCharm (free) for my IDE. Which I have to say is great, for Python, and you would have had a better experience if you had used that. I find it much more comprehensive than Qt Creator, for the non-Qt aspects of coding/debugging.
However, that means no Qt Creator for me, so no Qt help at design-time. All code creates its widgets through explicit statements at run-time, no design-time visualization.
So.... when can we have Qt Creator for Python/PyQt, please... ? ;-)
-
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
That's a very interesting observation. Different brains are skilled at different things, so perhaps yours is better at processing text while your colleagues are better at processing diagrams?
May I ask, what's your preferred way of designing a piece of software? Do you find flowcharts, UML sequence diagrams, UML activity diagrams, etc. helpful?From time to time I write some kind of flowchart on a white board, but that's becoming increasingly rare. Usualy I map things out in my mind and add short comments to the class header to remind myself whats supposed to happen.
I usually start with making a short bullet point list with major steps/functions the software has to do/have
Than I start with the first point and a very basic implementation.
Once thats done, I start expanding the implementation. It's not uncomon, that I rewrite whole junks of my code over and over again. In the beginning this slows down the process a bit, but later this relativise itself when I have to change/tweak things and I usually end up with a well documented and understandable/readable code.You might find TestStand easier to use than LabVIEW. The structure of a TestStand sequence is very much like C, very unlike LabVIEW's dataflow.
as far as I know, we do own a TestStand licence, to work with.
For the record. Have used several IDEs. I have to do my Qt work for a Python project (not my choice, but life). So I picked PyCharm (free) for my IDE. Which I have to say is great, for Python, and you would have had a better experience if you had used that. I find it much more comprehensive than Qt Creator, for the non-Qt aspects of coding/debugging.
I may complain about my time with python, but I'm greatful for it. It taught me the virtue the proper indentation
-
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
So.... when can we have Qt Creator for Python/PyQt, please... ? ;-)
Rumors have it that Creator could get a language server protocol implementation (the idea comes from Visual Studio Code), to have better Python support.
That may be related to the ongoing PySide2 effort.
-
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Before Qt, I tried Visual Studio 2008 Express as my C IDE, but it was way too complex and it intimidated my newbie self.
That reminded me how very old I am ... :|
I started my coding on VC++ '95 (it wasn't even called "Visual Studio" back then in the antiquity) but it was pretty much the only decent IDE. I was a windows user then too - young and stupid and full of hopes and dreams ... ;) -
- I see no "VC++ '95 " in https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B ? And I think I've pretty much used them all!
- If you started your coding in C++ (or Windows) at all, you are so not old it's ridiculous! :)
-
About IDEs and Python
@aha_1980 said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Rumors have it that Creator could get a language server protocol implementation (the idea comes from Visual Studio Code), to have better Python support.
That may be related to the ongoing PySide2 effort.
Now that Qt for Python is official, it makes sense to have tighter integration with Qt Creator.
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
I picked PyCharm (free) for my IDE. Which I have to say is great, for Python, and you would have had a better experience if you had used that. I find it much more comprehensive than Qt Creator, for the non-Qt aspects of coding/debugging.
However, that means no Qt Creator for me, so no Qt help at design-time. All code creates its widgets through explicit statements at run-time, no design-time visualization.
I downloaded PyCharm for a quick peek, and it does look nice. The official repository for community plugins is impressive! Perhaps Qt Creator could get something like that too.
As for design-time visualization, it should be feasible to write a code generator that converts Qt Designer .ui files (XML) into Python code. A programmer could open both Qt Designer (standalone) and their Python IDE. Qt Quick Designer is more tightly integrated into Qt Creator though; I don't know how feasible it is to integrate .ui.qml files into a Python-based workflow.
About programming talents and preferences
@J.Hilk said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
From time to time I write some kind of flowchart on a white board, but that's becoming increasingly rare. Usualy I map things out in my mind and add short comments to the class header to remind myself whats supposed to happen.
I usually start with making a short bullet point list with major steps/functions the software has to do/have.... and I usually end up with a well documented and understandable/readable code.
Sounds like you handle verbal/textual information best. I'm more visual -- I can "contain" small apps in my mind completely but I need diagrams or structured labels for anything mildly complex.
Have a look at section #3.1.2. at https://forum.qt.io/topic/90276/showdown-qt-vs-labview -- would you say the Qt code is easier to digest than the LabVIEW code?
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
I may complain about my time with python, but I'm greatful for it. It taught me the virtue the proper indentation
I still much prefer
{ }
s. :)I like {} plus proper indentation, but I probably like {} because they are familiar things from C. I can see the benefit of not having to manage {}s in Python.
When I started writing JavaScript though, it took me a while to get used to the idea that {} doesn't create a local scope.
for (var i = 0; i < 10; ++i) {...}
makesi
accessible outside the loop, which is weird coming from C/C++.About the world and the future
@kshegunov said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
I was a windows user then too - young and stupid and full of hopes and dreams ... ;)
I'd say you saw the good and the potential in the world around you ;-) (not everything came to fruition, but that's a different story)
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
- If you started your coding in C++ (or Windows) at all, you are so not old it's ridiculous! :)
I can only wonder what my (future) kids will start coding in. I'll probably start them off at a young age, so C++ won't be appropriate. Maybe something bright and colourful like https://www.google.com/doodles/celebrating-50-years-of-kids-coding
-
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
I can only wonder what my (future) kids will start coding in. I'll probably start them off at a young age, so C++ won't be appropriate
IMHO, your kids won't be coding at all :(
I am fortunate enough to have lived in the Golden Age of computer programming, while people could do it. But it won't last long. We don't think or work anything like a suitable way for computer programs, specifications, algorithms. The computers of tomorrow will be doing their own "programming", not us.
BTW, take a look at a Neural Net programming and see if you can understand how the "program" works!
-
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Sounds like you handle verbal/textual information best. I'm more visual -- I can "contain" small apps in my mind completely but I need diagrams or structured labels for anything mildly complex.
Have a look at section #3.1.2. at https://forum.qt.io/topic/90276/showdown-qt-vs-labview -- would you say the Qt code is easier to digest than the LabVIEW code?Defenitly.
In the case you showed in that topic, I can acutally say exactly why.
It's the way one reads it.
In the Qt version, you start at the top, and make your way downwards. Thats pretty straight forwards. Create an Object, defines what it does via Signal &Slots and move on. I prefere this structure. It is also the reason, why I structure my QML-files from top to bottom and define property alias' in the root item to bind against, instead of refering/binding individual Items/properties crossways , even so the order of creation and binding does not matter at all in qml.The Labview code starts simple enough, from the left to the right. But as soon as I hit the reader block I'm lost, and I find myself applying A* search like method method to understand, what is going on :-)
I can only wonder what my (future) kids will start coding in. I'll probably start them off at a young age, so C++ won't be appropriate. Maybe something bright and colourful like
I've only looked briefly into it, but Swift seems like an interesting option
@kshegunov said in [I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):]
I was a windows user then too - young and stupid and full of hopes and dreams ... ;)
I'd say you saw the good and the potential in the world around you ;-) (not everything came to fruition, but that's a different story)
Thankfully Steve Jobs came back to Apple and brought MacOS back into the UNIX-family, am I right ? :-)
-
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
your kids won't be coding at all
Honestly, I'm against engineering kids ;)
We don't think or work anything like a suitable way for computer programs, specifications, algorithms.
It's strange you say that. We (people) invented the very concept of algorithm - a sequence of atomic steps to be taken to achieve a goal. How does this not translate to everyday life, or regular thinking?
[EDIT: This branch of conversation forked to https://forum.qt.io/topic/90724/the-nature-of-algorithms-and-mathematics --JKSH]
The computers of tomorrow will be doing their own "programming", not us.
The media and people constantly talk about that nonsense, hasn't happened yet. And to be completely blunt it probably won't happen in the current century ...
We didn't have C++-anything in the '80s, though! :)
Oh, back then even my father was young (and stupid and full of dreams). ;)
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
I can only wonder what my (future) kids will start coding in. I'll probably start them off at a young age, so C++ won't be appropriate.
Why do you think they'll code at all? They may decide to become painters, or gardeners, or even the dreaded administration ... :)
@J.Hilk said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Thankfully Steve Jobs came back to Apple and brought MacOS back into the UNIX-family, am I right ? :-)
Honestly I have no idea. For me apple is just a fruit I'd eat with gusto. ;)
I don't think they ever departed from their original UNIX fork though. As for Steve Jobs, I can't say he's the computer genius every article about him makes it look, but we could agree he used to be one hell of a salesman, by far ... -
@J.Hilk said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
It's the way one reads it.
In the Qt version, you start at the top, and make your way downwards. Thats pretty straight forwards. Create an Object, defines what it does via Signal &Slots and move on. I prefere this structure. It is also the reason, why I structure my QML-files from top to bottom and define property alias' in the root item to bind against, instead of refering/binding individual Items/properties crossways , even so the order of creation and binding does not matter at all in qml.The Labview code starts simple enough, from the left to the right. But as soon as I hit the reader block I'm lost, and I find myself applying A* search like method method to understand, what is going on :-)
Fascinating. Do you find the LabVIEW code any easier to read if you are already familiar with the "core"/"trunk" of the code?:
When I'm focussing on this trunk, my "peripheral vision" sees the surrounding bits simultaneously; the Read portion is in a loop, the loop period is 500 ms, and the loop has a stop/break condition (Stop Button OR Error):
I can only wonder what my (future) kids will start coding in. I'll probably start them off at a young age, so C++ won't be appropriate. Maybe something bright and colourful like
I've only looked briefly into it, but Swift seems like an interesting option
From a quick glance, Swift seems similar to JavaScript and C++. Thanks for the recommendation, but I think I'll use something else that's more accessible to kids.
@kshegunov said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Why do you think they'll code at all? They may decide to become painters, or gardeners, or even the dreaded administration ... :)
Because long before they reach the age where they can decide with certainty that they want to become painters/gardeners/admin, I will have exposed them to coding as a potential hobby (Note: I'm not saying that they will be coding in their main job)
@JonB said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
IMHO, your kids won't be coding at all :(
I am fortunate enough to have lived in the Golden Age of computer programming, while people could do it. But it won't last long. We don't think or work anything like a suitable way for computer programs, specifications, algorithms. The computers of tomorrow will be doing their own "programming", not us.
The purpose of computer programs has always been to help humans to get things done.
Regardless of how advanced computers get, humans still need to communicate their desires/requirements to the computers. This aspect of programming cannot be automated so it won't disappear (at least I hope not; I don't want machines to make all my decisions for me without consulting me!). I expect that programming of the future will look different from today, but there will and there must always be human input into the process. Perhaps our role will be more like the supervisor/architect while computers act as the code monkeys. Even then, I'd imagine that supervising computers is very different from managing employees, so these supervisors will need specialized technical training.
Some people lament that this is no longer "programming". I don't mind as long as the core principle remains: That we are telling/guiding computers to help us get things done, we ensure that the process is efficient and effective, and we verify that the end product is reliable. If it means that I get to produce functional software more efficiently and reliably, I'm happy to change my role.
BTW, take a look at a Neural Net programming and see if you can understand how the "program" works!
Here's the ironic thing: A neural network behaves like an incomprehensible "black box" because it attempts to mimic the human brain! The "traditional" programs which are "different to how we think" are actually easier to follow.
Anyway, while a neural network's decision-making process itself (i.e. the use of history/training to convert inputs into outputs) is incomprehensible, the core rules that we program into the neural network are still systematic, logical, and understandable.
-
@JKSH said in I have >5 years of active experience in both Qt and LabVIEW. AMA. (featuring a lengthy prologue):
Fascinating. Do you find the LabVIEW code any easier to read if you are already familiar with the "core"/"trunk" of the code?:
To be honest, it took me embarrassingly long to realize, that the 2 pictures posted have the same code in it, one just has a loop wraped around it.
But once that was clear, it was indeed easier to read. 😊