views:

141

answers:

3

Hi,

I am working on a project for which we have to decide for a language to work on.

Requirements are as follows:

  1. Client should work both as web browser based and standalone desktop application.Both will have same feature.
  2. Gui should be rich in graphics but still light weighted.It should not use much memory for rendering views. Client machine has limitation of memory.
  3. Server would be on unix/linux boxes.Server side code is available in Java.
  4. Client will run on windows machine.

We have swing based client with us.It is not rich and it consumes much memory.There is limitation of memory.Is it possible that we need not to move from swing based application? It can be improved in graphics also.

We are thinking for moving our client code to some other language which can be used with server side code in java.

If still my question is not clear then I will try to update it. Please suggest.

Thanks,

Abhishek Jain

+1  A: 

Visual Studio .NET, either VB or C#.

Beth
Likely a good choice for the client. I'd be less enthusiastic about the server.
Derrick Turk
@Derrick Why is that? The site you are using right now (StackOverflow) uses .NET
NullUserException
The server is specified as being a Unix/Linux box; you'd need to use Mono as well for that platform.
FacticiusVir
Stackoverflow is one of the few good sites I know using .NET - I would not recommend it by experience.
Johann Philipp Strathausen
@NullUserException: the OP stated that the server would be a Unix or Linux box. I'm aware of Mono, but also aware that it hasn't quite caught up to the version of the .NET framework available from Microsoft. I tend to believe in "going with the grain"---and for a Unix daemon, that's almost surely not .NET.
Derrick Turk
+1  A: 

Your question is (too) broad, so just a short recommendation: Adobe Air may be a candidate?

Adobe AIR is a cross-operating system runtime that enables you to use your existing HTML/Ajax, Flex, or Flash web development skills and tools to build and deploy rich Internet applications to the desktop.

The MYYN
My team has already started working on adobe Flex for above scenario. But I find Flex too very resource intensive ie consumes much memory in compare to Java swing.It is rich in graphics and can be easily coupled with Java. Please correct me.
Abhishek Jain
+3  A: 

Hopelessly large question. Using what you know may be the best option.

That said, what I would do is use Mono (I have done it before).

I would use ASP.NET MVC through mod_mono through Apache on Linux for the server side web code and JQuery on the client to provide the sex appeal. I would make sure that I used unobtrusive JavaScript techniques so that it would work well even when JavaScript was not available.

The advantage of using Mono (.NET) is that that you could code both the web stuff and the client stuff in the same language (I would use C#) and use the same back-end and DLLs fro both. For the client GUI you could use WPF if it was going to be windows only or either Windows Forms or GTK# if you want cross-platform. I would probably use GTK# as that would give me the option of running the desktop client on Linux and Mac as well.

ASP.NET MVC is open source and ships (the actual Microsoft code) out of the box in Mono.

If you want to build a smart-phone front-end you could use MonoTouch or MonoDroid and reuse your back-end infrastructure as well.

For tools, you could use either VisualStudio and friends if you are developing on Windows or MonoDevelop as an IDE if you are writing it on Linux. MonoDevelop also allows you to use Subversion or Git for source control and NUnit for unit testing.

For communication with the desktop client, check-out REST as an alternative for providing an API to the desktop client while building the website.

Of course, there are many other options to choose from.

EDIT: I wrote all of this before I knew that the server had been written and that Java had been chosen as the language.

Justin
@Justin Please check my updated question. My server side code is in Java. I am looking for the language which can work with server side code Java.
Abhishek Jain