Click here to Skip to main content
14,599,577 members
Rate this:
Please Sign up or sign in to vote.
See more:
Let me tell you about my project :

This is a big project without imminent deadline (we want to make a lasting business out of it)

My project is an embedded software with GUI (inside a system that has the size of a LED TV).

We are limited to C++ or C#. Our project uses Microsoft's motion capture sensor : Kinect. It only has a C++ or C# SDK.

We plan on using Machine Learning.

We want to keep the option to run 24/24h our software on a embedded system that doesn't require a large computer fan (we aim to create a product with small thickness)

Our entire team (of 6 members) is familiar with C and C++.

One team member is familiar with the .NET framework to do the GUI work.

Are we all thrilled about coding in C# ? Nope. But as young programmers but we also want to build our future and in december 2019 I believe C# is way more used in new companies.

What I have tried:

What programming language between C++ and C# suits my project's restriction the most ?
Posted
Updated 17-Dec-19 22:41pm
v4
Comments
RickZeeland 14-Dec-19 2:04am
   
Are we talking about a Windows project here ?
Member 14689108 14-Dec-19 7:12am
   
Not Really. We would like to keep the option to run our program on some futuristic new micro-computer that will most likely be optimized with some Unix-like Operating System, like RaspBerry.
0x01AA 14-Dec-19 18:17pm
   
*lol* please stop your project. You plan to go for machine learning, but you can not even decide what environemt/language (c++, c#, whatelse) you need? Sorry...
Member 14689108 14-Dec-19 19:39pm
   
? This forum allows this kind of comments ?
Stefan_Lang 19-Dec-19 2:24am
   
This is not Twatter, or Facepalmbook. Please restrict your comments to constructive criticism, honest help, or meaningful questions.

Thank you.
Rate this:
Please Sign up or sign in to vote.

Solution 4

For the core functionality, especially machine intelligence, you need efficient memory management - you don't want to base this on .NET garbage collection mechanisms! C++ is the way to go.

If you want to stick with just one language, C++ is most certainly the better choice.

If you don't mind going with a hybrid solution, using C# for the front end as OriginalGriff already suggested is also a good option.
   
Comments
Member 14689108 18-Dec-19 8:05am
   
Thank you very much for sharing your knowledge.
Rate this:
Please Sign up or sign in to vote.

Solution 1

You can do both: the GUI in C# and the backend in C++: Using C++ in C# by Example « Programming Blog[^] That gets you started with .NET on both sides, and maybe an a easier migration.
   
Rate this:
Please Sign up or sign in to vote.

Solution 2

If you want to run on non-Windows platforms then you might be interested in one of these GUI's: best-cross-platform-gui-toolkits[^]
   
Rate this:
Please Sign up or sign in to vote.

Solution 3

You say you want to make this a "lasting business" but you're basing at least part of your product on Microsoft Kinect, which Microsoft stopped building over two years ago?
   
Comments
Stefan_Lang 18-Dec-19 4:32am
   
Previous Kinect hardware, yes. But the platform is still actively being developed, and now we have https://en.wikipedia.org/wiki/Azure_Kinect
Dave Kreskowiak 18-Dec-19 8:40am
   
I knew the platform was still being worked on, but didn't know they actually made a new product out of it.

Thanks!
Stefan_Lang 19-Dec-19 2:27am
   
Same as me, but I was pretty sure it wasn't dropped for good, so I searched ;-)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100