In the early days of my time as PhD student, I had the forced pleasure to work with LabVIEW. In contrast to text-based programming languages (the vast majority), LabVIEW uses a graphical approach, pleasing the aesthetic mind, but looking extremely crammed and confusing for larger projects.
In my recent project, LabVIEW caught me again. Luckily we use it in combination with a scripting language, which implements the device logic, while LabVIEW is confined to the user interface. This makes it bearable, but very repetitive. And repetitive means mouse clicks and movements – a lot of mouse clicks and movements.
The event structure caused me also a lot of pain. Back in 2005 I really wanted it, a piece of code that is only executed when the user clicks a button or changes a setting. The alternative is polling, asking for the value of the user control again and again. Anyways, they introduced the event structure, but you can’t place it just somewhere. It made my program block, it didn’t work at all, was never executed – all that kind of problems you run into as programmer. But I solved it and made it work.