Solved

Cross Platform Development

Posted on 2010-08-29
14
1,358 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
 

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
Highfive Gives IT Their Time Back

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

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.
Healthcare organizations in the United States must adhere to the guidance of both the HIPAA (Health Insurance Portability and Accountability Act) and HITECH (Health Information Technology for Economic and Clinical Health Act) for securing and protec…
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.
An overview on how to enroll an hourly employee into the employee database and how to give them access into the clock in terminal.

744 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now