Tuesday, July 14, 2009

C++ or java for biomedical applications???

I have the choice of pursuing java or c++. What I wanna do is biomedical imaging and signal processing. visualization in 2D and 3D. I don't want to deal with hardware, i just want to develop applications and software that have user interfaces and that can be used for analysis. I will be working with Matlab too. Please help!

C++ or java for biomedical applications???
First, Java is nowhere near a dying language. That is just completely wrong.





Secondly, when asking yourself about development between Java VS C++ the main thing you need to consider is performance. C++ is still faster than Java, but the speed of applications is more dependent on the skill of the programmer and not so much the underlying language. It is possible to write poorly performing code, no matter what language you are using, and Java is fast enough for most things. Furthermore, you should always use the highest level language that will accomplish your goals given your performance constraints. I'm not advocating Java persay, but it and C# or more suitable for a large number of tasks. In fact, you shouldn't limit yourself to just C++/Java. Take a look at Python, which has some decent graphical libraries.





I wouldn't disregard what the second answerer said, but I would also take it with a grain of salt, as it's not likely that any 1 person's perspetive is indicative of an entire industry.
Reply:i would suggest c++


although c++ is a much larger and more difficult to learn language





java is a bit of a dying language, but is still used because a lot of people in the industry know it and are holding on to it





however, with c++ you can do just about anything with the right knowledge


if yer going to pursue 2d/3d visualization i recommend looking into the openGL API after you learn the c++ basics
Reply:I would also suggest C/C++/C#, but for a different reason. Even though Java is not necessarily a bad programming language, and is not dying, you have other issues that you must consider in medical device. For example, if you certify your application on Acme Java 1.0 and Acme Java 1.1 comes along with optimizations that makes your application run faster, you must re certify your device w/ Acme Java 1.1 even though you changed 0 lines of code because the JVM changed revs.





Having worked in the Medical Field, this drove me absolutely nuts. We had medical devices that were computers, but were running all different levels of Windows and Patches due to the vendors not certifying their applications on MS latest patches and/or OSes. Now you are going to add the additional layer of a run-time interpeter on top of that? Save yourself that headache, you will already have enough when MS patches the OS or releases a new one.





The policy of not allowing patching is one of Siemens, Phillips Medical Systems, and GE. I had systems that were from these vendors that were my responsibility. This problem is due to the fact that when one FDA certifies a system, it gives the vendor a big club to wield on the support side. E-mail me for more specifics if you would like...


No comments:

Post a Comment