Welcome to Dream.In.Code
Getting Help is Easy!

Join 132,462 Programmers for FREE! Get instant access to thousands of experts, tutorials, code snippets, and more! There are 1,362 people online right now. Registration is fast and FREE... Join Now!




Need Advice: Which prog lang is best for my app?

 
Reply to this topicStart new topic

Need Advice: Which prog lang is best for my app?, Help me select right tools for the job

russr
post 6 Apr, 2005 - 11:04 AM
Post #1


New D.I.C Head

*
Joined: 6 Apr, 2005
Posts: 4

In general we have used C++ in Borland CBuilder5 to create all of our applications. They have all been Windows based and have included comprehensive GUIs.

We are now required to create an application that could possibly run on several different platforms ranging from Windows to Unix and possibly Linux.

We do not want to have code a seperate application for Windows and one for Unix and so on. It would be nice to create one code and perhaps just have different binaries. If this were a command line code, obviously C/C++ would suffice, but the the application requires a GUI that includes buttons, menus, plotting of data, manipulation of plots (zoom, pan, tilt), "playing" of data sets in a plot over time, i.e. allowing user to see the data one frame at a time or allow the user to play the frames.

I would like to know what my options are for doing this. For ex: Is the best approach something like .NET or Java, or perhaps a client-server approach where the server runs using C/C++ and the client is a web-based application?

Your recommendations would be greatly appreciated as I do not have much experience in the latest technologies that provide this sort of approach.
User is offlineProfile CardPM

Go to the top of the page

Nova Dragoon
post 6 Apr, 2005 - 11:51 AM
Post #2


The Innocent Shall Suffer, Big Time

Group Icon
Joined: 16 Aug, 2001
Posts: 6,128



Thanked 4 times

Dream Kudos: 515

Expert In: Python, Linux

My Contributions


QUOTE(russr @ Apr 6 2005, 01:04 PM)
In general we have used C++ in Borland CBuilder5 to create all of our applications. They have all been Windows based and have included comprehensive GUIs.

We are now required to create an application that could possibly run on several different platforms ranging from Windows to Unix and possibly Linux.

We do not want to have code a seperate application for Windows and one for Unix and so on. It would be nice to create one code and perhaps just have different binaries. If this were a command line code, obviously C/C++ would suffice, but the the application requires a GUI that includes buttons, menus, plotting of data, manipulation of plots (zoom, pan, tilt), "playing" of data sets in a plot over time, i.e. allowing user to see the data one frame at a time or allow the user to play the frames.

I would like to know what my options are for doing this. For ex: Is the best approach something like .NET or Java, or perhaps a client-server approach where the server runs using C/C++ and the client is a web-based application?

Your recommendations would be greatly appreciated as I do not have much experience in the latest technologies that provide this sort of approach.

Java would be best, its syntacially similar to C++, and Java VMs are available for most archs, and OS.

Java will compile into a byte code, that is then read by the VM installed on the client computer, so automagiacally it is cross-platform


However, Java is still kinda slow, so if you have critically speed dependent code, java may not be the best way to go.
User is offlineProfile CardPM

Go to the top of the page

russr
post 6 Apr, 2005 - 12:14 PM
Post #3


New D.I.C Head

*
Joined: 6 Apr, 2005
Posts: 4

I am no Java expert. I've really used briefly. Is it easy to create plots in java with the ability to zoom, pan, etc?

How about saving data locally to their machine?

The front end application is mainly just a tool for the user to see the data in nice plots which they can manipulate and save raw data.
User is offlineProfile CardPM

Go to the top of the page

Amadeus
post 6 Apr, 2005 - 05:01 PM
Post #4


g++ -o drink whiskey.cpp

Group Icon
Joined: 12 Jul, 2002
Posts: 12,173



Thanked 33 times

Dream Kudos: 25
My Contributions


If you save the data locally to a user machine, then you would not be able to get an aggregate view if one was ever required.

Java is a good cross platform language, although slow and prone to memory leaks, as noted by nova.

For unix/linux compatability, you may wish to steer away from a .NET application. Any such application requires the .NET framework to run, there are issues between operating systems, although Mono is working to overcome that.

c/c++ are almost always the best bets for cross platform applications, but it almost always entails separate binaries, and sometimes separate devlopments for Windows, linux, and mac.

I like the idea of a web based client with a server running whatever you want (I think more and more applications will be developed this way), and sending the results to the client. There are limitations imposed by general server/client and http protocols, but those discrepancies are getting better.

If you're dead set on only one version of the app, go with java.
User is online!Profile CardPM

Go to the top of the page

russr
post 7 Apr, 2005 - 02:38 PM
Post #5


New D.I.C Head

*
Joined: 6 Apr, 2005
Posts: 4

How would I do something like this as a web based client/front end with a server runnning whatever?
User is offlineProfile CardPM

Go to the top of the page

Amadeus
post 7 Apr, 2005 - 05:12 PM
Post #6


g++ -o drink whiskey.cpp

Group Icon
Joined: 12 Jul, 2002
Posts: 12,173



Thanked 33 times

Dream Kudos: 25
My Contributions


To be honest, I'd need a little more information on the application itself before making a recommendation on how to implement it as a set of web pages...it may not be suitable...I was only mentioning it because one sees more and more imstances of applications being deployed as web applications, and I belive it could grow exponentially in the next few years.
User is online!Profile CardPM

Go to the top of the page

russr
post 8 Apr, 2005 - 07:40 AM
Post #7


New D.I.C Head

*
Joined: 6 Apr, 2005
Posts: 4

See the problem is that I don't have some of these details yet and no one else does either. We are not in development stages yet where the project details are well defined. It's more like, "Hey if we were to create an app for one of our customers that would run on something besides just a PC, how would we do it and what technologies do we need to research to do that?"

The only info that I've been given is that the app would be fairly similar to something we've done in the past which is data acquisition from a device, post-acquisition processing and then displaying the refined data and allowing user to save it to their computer. Basically the raw data is too difficult for the user to process and make sense of, so that's where the app comes in and does all this processing and organizing and displaying of data so it becomes very readable to a scientist looking at it.

So bottom line: I think it is highly unlikely that clients will share data with each other simply because I can't think of what it is that they need to tell each other. It will probably be one of two situations:
1)Standalone app that grabs raw data from device or flat file, processes data, displays it with GUI and basically does everything itself with no interaction with any server.

2)Client front-end app that grabs processed data from server and display it with GUI. Obviously there's interaction with the server because it needs to specify what data set it wants and then has to receive the data.
User is offlineProfile CardPM

Go to the top of the page

Amadeus
post 8 Apr, 2005 - 06:46 PM
Post #8


g++ -o drink whiskey.cpp

Group Icon
Joined: 12 Jul, 2002
Posts: 12,173



Thanked 33 times

Dream Kudos: 25
My Contributions


Given the paramters you've provided, I'd suggest a client GUI that grabs info from the server...it allows for a centralized data repository. For the language, I'd suggest C++ with different binaries for different OSs, but if you want one version only, go with java.

The web server/client browser solution could work here, but much more information would be needed on what complexity of data was being mapped, things like that before one could say if it was feasible.
User is online!Profile CardPM

Go to the top of the page

dilettante
post 12 Apr, 2005 - 02:04 PM
Post #9


New D.I.C Head

*
Joined: 26 Jan, 2005
Posts: 9



Thanked 2 times
My Contributions


If this were a Windows situation I might recommend DHTML in the form of an HTA. HTAs can be standalone applications, work with ActiveX components built in compiled languages, or interact with HTTP or other server types.

Cross-platform though I wonder where XUL might fit in yet amount to the same concept? I've only read a little on XUL myself but there seem to be cross-platform Mozilla-associated implementations.
User is offlineProfile CardPM

Go to the top of the page

PeterM
post 13 Apr, 2005 - 03:40 AM
Post #10


New D.I.C Head

*
Joined: 13 Dec, 2004
Posts: 9


My Contributions


Hi,

Why would you learn another language for this?

You might want to look at wxWidgets (www.wxwidgets.org). It's free, cross-platform (windows, linux, mac).
There's also QT, free for non-commercial use.

I only used the first one and you can create full crossplatform code. This means that you can compile it on every platform. 1 code to rule them all!

It also has a plot contribution. Don't know if it does all what you want, but I think it's quite good.

Hope this helps.

If you want cross platform WINMAIN etc... code, just say it and I'll pm you the code or post it for this months snippet smile.gif .

PeterM

This post has been edited by PeterM: 13 Apr, 2005 - 03:47 AM
User is offlineProfile CardPM

Go to the top of the page

BlueVD
post 8 Aug, 2005 - 08:00 AM
Post #11


New D.I.C Head

Group Icon
Joined: 8 Aug, 2005
Posts: 29



Thanked 1 times

Dream Kudos: 75
My Contributions


Well, I'm not shure what you want to make...
But I made programs that runned under win and linux using Delphi.
If you use with care the classes (don't use parts only available through the windows SDK) you can build programs that run under linux/unix...
Une source code file, 2 compilers (one for win and one for linux) and you're done...
C & C++ also can develop apps for both win and linux... Actually, linux has some good docs in it for that purpose...
Your pick: Delphi or C&C++
User is offlineProfile CardPM

Go to the top of the page

Fast ReplyReply to this topicStart new topic
Time is now: 11/22/08 12:51PM

Live Help!

Tutorials

Programming

Web Development

Reference Sheets

Code Snippets

Bye Bye Ads

Free DIC T-Shirt

T-Shirt Example

Related Sites

Monthly Drawing

Thumb Drive

Partners

Top Contributors

Top 10 Kudos This Month