Solved

Cross Platform Development

Posted on 2010-08-29
14
1,361 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
  • 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
Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

 

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

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
String array comparison 4 34
Convert from a json string array to a Java object 3 34
going to wrong jsp page 2 22
how to root nextbook 10 running marshmallow 1 12
Let’s list some of the technologies that enable smooth teleworking. 
In this post we will learn how to connect and configure Android Device (Smartphone etc.) with Android Studio. After that we will run a simple Hello World Program.
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…
XMind Plus helps organize all details/aspects of any project from large to small in an orderly and concise manner. If you are working on a complex project, use this micro tutorial to show you how to make a basic flow chart. The software is free when…

821 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