Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java with EMF & RCP vs C#

We're thinking about switching technology for our future projects going from C++ to Java or C#. So naturally there's a big discussion going on right now what to choose. The problem is that none of us has industry experience with EMF or RCP, which would be quite nice to have if it fits our needs.

so i wanted to ask you what you would prefer. our program is:

  • gui heavy (lots of dialogs, properties)

  • quite big models (serialized xml takes up about 15mb right now)

  • application should be integrated into our framework-application-center

  • data format (xml and binary) has to be the same as our current format

  • graphical editing is needed (creating, moving, connecting shapes + editing their properties)

  • lots of similar but tiny different objects in data model

and the actual questions are:

  • is there an equivalent to EMF in C#?

  • is there an equivalent to RCP in C#? (e.g. commands to edit data model, gui frontend, ...)

  • is the gui editing in RCP as good and flexible as with windows forms or WPF?

  • how rigid/flexible is EMF?

  • we've got lot's of interdependencies between data models (some control others or allow different options on them) - how would you model these?

  • what of the options would you choose?

thanks very much for any advice or opinions

manni

like image 866
manni Avatar asked Feb 27 '23 08:02

manni


1 Answers

As Java developer I can't say much about C#, but I can give you an overview about the Java side: There are sevaral good choices for RCP (the most prominent is of course Eclipse, but there are others as NetBeans). The learning curve is quite steep, but once you have the "hello world" running, it gets much easier. GUI-programming is no problem (you have several choices, and there exist a lot of free and commercial widgets), and you have several ways for dealing with XML. Generally for almost everything there is a (often free) lib. So if you like to have choices, Java is for you.

On the other hand the C# language is technically ahead. Java7 could decrease the gap, but won't close it, that's sure.

If you want to have both the advantages of the JVM (open, widespread, platform independent, plethora of libs...) and the advantages of a modern language, then you should have a look at Scala (you can mix Scala and Java code without problems). Scala is very innovative, mixing OO and functional features, but is still very "accessible" for programmers that are used to a C++/Java style syntax.

like image 71
Landei Avatar answered Mar 07 '23 01:03

Landei