Solved

Cross Platform Development

Posted on 2010-08-29
14
1,366 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
Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

 

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

Database Solutions Engineer FAQs

In this series, we will discuss common questions received as a database Solutions Engineer at Percona. In this role, we speak with a wide array of MySQL and MongoDB users responsible for both extremely large and complex environments to smaller single-server environments.

Question has a verified solution.

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

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…
There is a lot to be said for protecting yourself and your accounts with 2 factor authentication.  I found to my own chagrin, that there is a big downside as well.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.
This video demonstrates how to sync Microsoft Exchange Public Folders with smartphones using CodeTwo Exchange Sync and Exchange ActiveSync. To learn more about CodeTwo Exchange Sync and download the free trial, go to: http://www.codetwo.com/excha…

627 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