If you have enough time and resources, I would definitely recommend making the switch to C++.
My team is a bit of an abnormal example. At the beginning of this year, I was the only returning programmer (I’m a senior) and we had no programming mentors. Since I would have to teach the new kids how to program, I needed to be able to teach in a language I felt comfortable in, so C++ won.
I also knew from the previous few years that, while LabVIEW can be a great tool, badly written LabVIEW is IMPOSSIBLE to decipher. Programmers who are just starting out in LabVIEW often put everything in one giant mega VI and all of the wires and relationships between the different components look like the space behind the TV at my house. The auto-straightener-uper (I don’t know what it’s called) would do an OK job, but even that was difficult to read. Most of the time “indent” can do a decent job at straightening up C++ code…
I also think that for people who are not used to programming, it’s easier to teach them with an iterative model. The functional aspects of LabVIEW are a little more abstract. Make sure you don’t fight the language - I had a friend last year who attempted to do low-level C programming with lots of bit twiddling and it was very difficult to understand with all of the ands and ors going in a thousand different directions.
That said, LabVIEW has some awesome features. If you make heavy use of parallel processing, C++ is going to be a bit of a pain. If you are able to use C++11 (unsupported toolchain), this is improved somewhat, but it still does not feel “natural”. C++'s parallel processing capabilities (and Java’s, from what I can glean) seem to mostly be good for just spawning a task and letting it run on its own. Any amount of communication between tasks is much more difficult.
Additionally, the debugger for LabVIEW is SO much better. It did break once at competition last year (I still don’t know why - the NI guy at that competition didn’t know either), but I think that was a corner-case fluke. It was very, very helpful (much better than the debug printfs we used this year - the WindRiver debugger would sometimes crash randomly) and allowed us to prototype much more quickly. It also integrates quite nicely with the other NI utilities provided with the driver station, and if you make a custom dashboard it doesn’t look so obviously out of place.
One last shout out for C++: WPILib C++ is VERY well written and is probably 90% documented. Even relative beginners can read the source code.
Again, though, choice of language is most often a business decision, not a technical one. If you want to try it, go ahead. If you need help, we’re happy to provide. But what’s most important factor in success is what the team has experience with. If you have a solid programming team and think they can use the added language experience by hopping languages every few years, go for it. But if your team doesn’t have as strong of a base, but they have a fair amount of experience invested in a certain language, switching languages might not be a good idea.
That was much longer than I wanted it to be. TL;DR: I like to blabber about programming languages 