The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Java/IKVM or C#

I am developing a server-side application that acts as a gateway to many different clients and servers. It is primarily aimed at medium-sized technology businesses. 90% of those will be Windows server side. Client side is browser based so not an issue. Server side is primarily CRUD with a REST interface and loads of socket handling.

What should I go for: Java (with an IKVM'd version for .NET environments) or all C# (using Mono on the non-Windows)?

It's a hard call. Java has better REST support and a wider range of third party libraries, but C# is more natural to the target base. Overall it's 50/50 in my mind at the moment.

Your thoughts....
Cyclops Send private email
Tuesday, October 14, 2008
 
 
I don't see why there is even a doubt in your mind. Java is better established on the server-side than C#, even on Windows.

C# might make sense for client-side applications, but on the server Java rules. Go with Java and don't look back.
Gili Send private email
Tuesday, October 14, 2008
 
 
I don't see why there is even a doubt in your mind. C# is better established on the server-side than Java, even on Windows.

Java might make sense for client-side applications, but on the server C# rules. Go with C# and don't look back.

[Sorry, couldn't resist parodying such a statement]
Scorpio Dragon Send private email
Wednesday, October 15, 2008
 
 
One factor I would consider would be the extent to which the two environments give you relevent programming abstractions above raw socket level.

The client facing pieces, JSON/REST, I would guess (I only use Java, so I don't actualy know for sure what you can do in C++) be supported equally well in the two environments.

So I'd be looking for libraries to interface with your various back-end services. Hope you can find some, it's potentially a lot of work to write your own adapters for specific systems.

After that, I'd be drawn to look at the ease of operation of the "application server" environment and the ease with which you can add resilience, implement security etc. I have no experience whatsoever of Mono, so it may be "obvious" that Mono can give you the quality of infrastructure you need. That's something I would research carefully before committing to a platform.

Finally, there's your own skill-set. If you're really expeienced in either Java or C++ then that's got to be a strong factor assuming that you don't see some very powerful driver in the first two areas.
Dave Artus Send private email
Wednesday, October 15, 2008
 
 
We went with C# because we can use it for client AND server-side programming. Plus, we like the option to use it with Silverlight in the future.

Just my 2 cents
Tim
Wednesday, October 15, 2008
 
 
"90% of those will be Windows server side."

Do you *really* need to support platforms other than Windows?
Arethuza
Wednesday, October 15, 2008
 
 
(with an IKVM'd version for .NET environments)

What do you mean?  Why would you need this?  You can get production jvms for windows...
SmartYoungAnonPoster Send private email
Thursday, October 16, 2008
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz