Solved

Cross Platform Development

Posted on 2010-08-29
14
1,363 Views
Last Modified: 2013-12-17
Hi,

Our company has been writing applications under .NET Framework and its working fine without problem. However, we cannot run .NET application anywhere else other than Windows machine.

We'd like to implement our future application in a programming language such that it can run on multiple operating system including Windows, Linux, Windows CE, MAC OSX, Android etc...

So my questions are
1. I'd like to know which development environment is better to do what I wish to do? Java or C++.
2. Is there any other programming language that'll be more suitable than Java and C++?
3. We need to program GUI application, is QT a good choice for cross-platform program?
4. QT works better with Java or C++?


I'm looking forward to everyone's experienced feedback.

Thanks
0
Comment
Question by:geoffryf
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
  • 2
  • +1
14 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 33554275
>>However, we cannot run .NET application anywhere else other than Windows machine.

That's not actually the case. Normally you should be able to compile it with Mono and run it on Linux (at least)
0
 

Author Comment

by:geoffryf
ID: 33554284
Thank you for your feed back

However, Mono is a subset of .NET framework library. We already tried to use Mono and it didn't work because we're always using the latest .NET Framework library.

So that's why we're trying to stay away from .NET Framework.

Thanks
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 33554310
Yes, Mono will probably always be somewhat behind the curve.

Qt is good for *natively* compiled code. It has no connection with Java. Java already *is* a cross-platform windowing toolkit (and more of course)
0
Migrating Your Company's PCs

To keep pace with competitors, businesses must keep employees productive, and that means providing them with the latest technology. This document provides the tips and tricks you need to help you migrate an outdated PC fleet to new desktops, laptops, and tablets.

 

Author Comment

by:geoffryf
ID: 33554320
so i can't use QT for Java? That means i'll have to use QT with C++ right?  For some reason, i think QT GUI looks better than Java GUI.

So if we're going to use QT, do i just have to recompile it on different platform? or do I need to modify my C++ code for each machine?

Thanks
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 33554360
>>so i can't use QT for Java? That means i'll have to use QT with C++ right?

Not normally, but there are ports:

http://en.wikipedia.org/wiki/Qt_Jambi

http://code.google.com/p/qt-java/

>>So if we're going to use QT, do i just have to recompile it on different platform? or do I need to modify my C++ code for each machine?

Pure windowing code should be completely portable. It's the non-windowing code that you need to be careful with
0
 

Author Comment

by:geoffryf
ID: 33554366
so, what's the better development environment you'd suggest?

C++ or Java?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 33554434
Better for what?
0
 

Author Comment

by:geoffryf
ID: 33554437
Better for the balance between cross-platform, performance and production speed
0
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 100 total points
ID: 33554450
For that, you're probably better off with Java
0
 
LVL 86

Expert Comment

by:jkr
ID: 33555331
I'd ditch Qt for wxWidgets given the sheer licensing costs (wxWidgets is free). Java is a nice thing when it comes to cross platform development that has one big drawback - you have to ensure that a JVM is installed onthe target hosts that meets your requirements. And that can really turn out to be a problem. However, I would not recommend C/C++ over Java without knowing what your app actually does. A lot of things can be done equally nice with both, but also both have their strenghts and weaknesses. I.e. if you operate near the OS, C++ for sure has it's advantages, whereas if you were to write a DB frontend, probably both would work well.
0
 
LVL 7

Accepted Solution

by:
irfan_omair earned 400 total points
ID: 33563497
Our company has been writing applications under .NET Framework and its working fine without problem. However, we cannot run .NET application anywhere else other than Windows machine.

This is very True, Even If you run it partially using MONO it will never have native look&Feel and most importatantly how will you run it on Embedded Device where Windowing system of MS will not be there. and apart from that You will have to have Heavy .Net stuff on your machine.

We'd like to implement our future application in a programming language such that it can run on multiple operating system including Windows, Linux, Windows CE, MAC OSX, Android etc...

BEST  I CAN THINK OF IS JAVA, But wait Java has its own problem JVM and you need to have JVM on all device, which is again not good option, apart from that On java GUI is considered Substandard GUI specially when you talk about DECLARATIVE UI. and Over all JAVA performance is slow in comparision with C++.


So my questions are
1. I'd like to know which development environment is better to do what I wish to do? Java or C++.
If you consider my above little explanation then in my openion C++ with Qt is best.

2. Is there any other programming language that'll be more suitable than Java and C++?
Not that I know of, GTK is there but far behind than Qt.

3. We need to program GUI application, is QT a good choice for cross-platform program?
Not GOOD, it is BEST choice for Cross platform. But the problem is You will have to compile it for every plateform once.

4. QT works better with Java or C++?
Qt Is C++ Library you can use Qt from Java as native call but you can understand since it c++ library which one is better.

If you got to Qt web site http://qt.nokia.com/ you will find hell of the document why you should use Qt and so many success Story.

Hope this will help you decide what is better.
0
 

Author Closing Comment

by:geoffryf
ID: 33563514
I guess for the long run better go with c++ and qt. Compile it once on every platform is acceptable.

Thank you all
0
 
LVL 7

Expert Comment

by:irfan_omair
ID: 33563534
geoffryf:

I promise you, you wont be disappointed I am in Qt since last 6 year, what we do is simply write our project in MS Visual studio ( I still blv this is bes IDE though Qt Creator is very competitive with MSVS) and copy the code at the end on target device and run build script. our application is ready for all other plateform.

More over if you know Qt works on almost all mobile phone ( except for Iphone) I blv this is going to be future best Application Framework.
0
 
LVL 86

Expert Comment

by:jkr
ID: 33563661
Thanks!
0

Featured Post

PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article was originally published on Monitis Blog, you can check it here . If you have responsibility for software in production, I bet you’d like to know more about it. I don’t mean that you’d like an extra peek into the bowels of the sourc…
Invest in your employees with these five simple steps to improve employee engagement and retention.
The goal of the video will be to teach the user the difference and consequence of passing data by value vs passing data by reference in C++. An example of passing data by value as well as an example of passing data by reference will be be given. Bot…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
Suggested Courses

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question