Lost in the software jungle: WPF vs. C# vs. C++ vs. Java ...

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • coolsti
    Contributor
    • Mar 2008
    • 310

    Lost in the software jungle: WPF vs. C# vs. C++ vs. Java ...

    I have experience with C++, Java, PHP and many many more "older" software languages. More recently I got introduced to C# and programmed some small applications with Visual Studio 2005 Express version.

    In the last days I started to look around to see what language/platform would be good for a new project I may be embarking on, which will be a rather sophisticated chemical process simulator. And now I am completely confused after stumbling upon new technologies such as WPF and XAML.

    I am confused because I had the impression that C# (used with or without .NET) was the new guy on the block, and now it seems from my reading that there are a lot of other new things out there. So much so, that I don't know what I should spend my time learning.

    Could someone explain a bit about this software jungle? When should the WPF/XAML technologies be used? When would one use C#, or C++, or Java instead? I of course realize that Java as opposed to C++ is platform independent (and that .NET is also intended to be so). But what I would like to know is more about computational efficiency (important for simulation engines) and ease of programming complex GUI's (like allowing for drag and drop model building, etc.).

    Also, I was pleased to discover the free to use Visual Studio development tools for C# and C++. I haven't looked yet, but are these also free for WPF?

    Thanks for any help!
  • JosAH
    Recognized Expert MVP
    • Mar 2007
    • 11453

    #2
    Originally posted by coolsti
    In the last days I started to look around to see what language/platform would be good for a new project I may be embarking on, which will be a rather sophisticated chemical process simulator. And now I am completely confused after stumbling upon new technologies such as WPF and XAML.

    I am confused because I had the impression that C# (used with or without .NET) was the new guy on the block, and now it seems from my reading that there are a lot of other new things out there. So much so, that I don't know what I should spend my time learning.

    Could someone explain a bit about this software jungle?
    Microsoft store Java from Sun MicroSystems; Java uses a lot of confusing technologies as well (especially those web-boys make a mess out of everything) and Microsoft did a similar thing: making a mess out of things and WPF/XAML is part of that mess. It's a bunch of XML, read by some C# and then everything starts diddling with browsers, http and what have you.

    It is save to ignore it all and concentrate on just the C# language; when you need part of that mess you know where to find it. C# (just as Java) is fast enough for most applications (except for the most demanding environments).

    kind regards,

    Jos

    Comment

    • Frinavale
      Recognized Expert Expert
      • Oct 2006
      • 9749

      #3
      By the sounds of it, your application probably doesn't need to use WPF.

      C# is one of the many .NET languages that you can use. It gives you access to the grand .NET Framework which provides you with many controls, classes, and namespaces which makes your life easier as a developer.

      WPF (stands for Windows Presentation Foundation) is a newer technology made available to you as a .NET developer (it's available if you're using the 3.5 Framework or greater).

      WPF is pretty cool. I've only been able to dabble into it briefly but they've changed the way you create your controls. It's not as simple as dragging something like a DataGridView onto the page but it is a lot more flexible. There's a lot more to it than just controls...ther e are whole concepts that you have to understand before you can really appreciate what WPF is. If you have time to learn a new technology I'd recommend looking into it.

      Since it seems like you're looking for a quick way to implement your solution though; so, I would recommend implementing the regular old Win Forms desktop application project instead of a WPF project. You'll be more comfortable there because you'll be able to drag and drop controls onto the form and use them as you have in the past.

      Just keep in mind that using the .NET Framework (any .NET language: VB.NET, C#...) restricts you to the Windows Operating system. If your application requirements state that your app has to run on multiple platforms then you should consider using Java (simply because it has an awesome API with a vast number of classes, controls and namespaces to support your needs). I don't think I'd recommend C/C++ unless your application has to manage low level operations (like firmware, device controllers etc).

      -Frinny

      Comment

      • Tassos Souris
        New Member
        • Aug 2008
        • 152

        #4
        I do not recommend that you should stick to one programming language (this also applies to methodologies as well).

        You should make your choice according to the project, the underlying platform, the requirements, the time limit etc etc.

        For some projects you will use C or C++, for others Java and if you are strict on the deadline you could pick on Python.

        So for example, considering that C is the best language for simulation engines which i say it in random, if you have short time to implement the project then you should probably go to alternatives that reduce production time. So you should go either for Java or Python. If you are still interested in speed you should choose Python.

        Comment

        Working...