Here's another vote for C++. It makes many things (e.g. importing code from the rest of the world!) much easier.
Isn't Cypress the least bit embarrassed that the lowly Arduino supports C++? You guys and your products are generally pretty great, but really!
Dear Sirs at Cypress,
Yes, I vote for C++, too.
I've written dozens of sensor drivers and sample programs in C++.
Although I have already ported a few of them into PSoC Creator, it was not a fun work.
Reinventing the wheel is a waste, but parting with one is, being the politest, misfortune.
The survey you mention Bob covers all the programming languages, where the embedded world only uses a subset of them (C#, VB, SQL don't have much sense here).
Thanks to this survey you can select what type of device you're interested in.
By selecting "Embedded" only, C++ arrives second, right behind C.
Arduino arrives third, and one could argue that Arduino is C++ as well.
Now if we select the "Languages popular on open source hubs", C++ arrives first.
Furthermore, PSoC Creator 4.1 is already shipped with C AND C++ compilers and it can compile C++ source files with a bit of tweaking as already demonstrated here.
What is stopping Cypress from implementing C++ support in the PSoC Creator IDE ?
C++ for the lads. surely.
I agree, I've asked the FAE's over the years for C++ support. It doesn't appear to be anywhere close to Cypress's radar. For those that argue these parts are too small to support C++, you are wrong. I've deployed 30+ commercial products over the years that all use C++. They are all embedded super loop systems. The smallest system had 256 KB of flash and 32 KB of RAM. Many systems have more resources, but it is all in how you write your code. If you stay away from exception handling, RTII, and massive layers of polymorphism, we have found our C++ code to be more compact and faster than straight C (BIG caveat emptor ***if you are careful with how you write your code***). We did get a simple Hello World C++ program running with a PSoC 5 a few years ago. You have to export your design and use makefiles. Then you have to do a lot of linker magic. I believe we ran into some issue with the configuration of the part and abandoned C++ for C on the PSoC.
We too would much like to see native C++ support in PSoC Creator. Of course on embedded devices you do not use things like exceptions, dynamic memory allocation, or dynamic casts, but C++ has lots of other features that are very useful and efficient for use in embedded projects. Most other device manufacturers support C++ in their IDEs, even for some 8-bit devices with low memory. C++ is in itself not any more memory-hungry or inefficient than C when used correctly, while at the same time offering many useful features.
Please Cypress, support C++ in your IDEs.
The thing is, it's not complicated (or at least shouldn't be). One can say all they want about how one should have written code, or whether C++ is "appropriate" for an embedded application or not. None of that matters. The simple fact is that there EXISTS a lot of code out there already in C++ already on embedded platforms. For example, a ton of Arduino code. It is ridiculous that Cypress will not enable the ability to reuse this code base just because they are too lazy to enable EXISTING C++ compilers on their platform. I mean, the compiler tool chain naturally supports C++, so it's like they have to go out of their way to not allow it.
I, for example, have a bunch of Arduino code I would LIKE very much to migrate to the PSoC platform. But Cypress seems to be resistant to the idea of making it EASY for people to migrate TO THEIR PLATFORM from other platforms, like Arduino. This makes no sense. They do a great job of making it easy to use their platform from scratch but make it impossible to migrate existing code from other platforms that happen to utilize C++. I can easily drop in modules and all sorts of things...except for existing C++ code. For that I either have to rewrite the code or do a major amount of hacking of the platform to get it to work.
And how does it make sense that lower power processors (most Arduinos) seem to be able to utilize C++ by default, but I can't migrate to a more powerful platform because it for some reason lacks C++ that lesser platforms have? So it's like I have to choose between a better processor platform but with lesser language tools and reuse, or a lesser processor platform with better language tools and reuse.