Jump to content
  • Advertisement
Sign in to follow this  

The Perfect Language

This topic is 2865 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Is C# a perfect choice for high performance computing real time application, such a s an interactive CAD/CAM, scientific visualization, or architectural design programs?

We don't forget that such an application does not only perform intensive computations but it does count on processing of complex data structures which require frequent memory allocation and reallocation, recursive routines, indirections, and data access...

Lets just ignore the amazing IDE with super intelligent intellisense :) and all that built-in refactoring tools, and the well integrated elegant GUI designer.

What's the advantage of C# over C++ then?

Share this post


Link to post
Share on other sites
Advertisement
I think C++ is the perfect language, because it's fun to code with it. If you're not having fun in coding, you'll never finish any bigger projects.

Share this post


Link to post
Share on other sites
After spending a long time coding in haXe and a bit of Haskell; i simply get frustrated working in any language which doesn't have inferred typing: sucks all the fun out of coding for me having to manually type variables :P

C++0x on the other hand has 'auto', and i believe c# 3.0 does have inferred typing.

not that i think either haXe or Haskell are perfect. haXe's lack of proper parameterised functions annoys me which led me to write a preprocessor to extend haXe and give me them along with mixins and macros.

Share this post


Link to post
Share on other sites
Quote:
Original post by Lumooja
I think C++ is the perfect language, because it's fun to code with it. If you're not having fun in coding, you'll never finish any bigger projects.


It may be fun for you, but not for others (me for example)

Talking about the perfect language is the same as talking about the perfect music.

Share this post


Link to post
Share on other sites
There isn't a perfect language, that's why there are so many. Each languages gets forked the hell out of it, since everyone disagrees about everything. It's like religion, because there are so many you know they're all false (now this off topic conclusion is drawn a bit too quick, it's worth thinking about it). If there would be one global religion, I wouldn't be an atheist.

C++ is a good language, it has very wide support and many many libraries. I guess C# too though. If only the D programming language would have the resources as C++ does...D actually is potentially a great language. What they need is some committee or something to steer the project. It looks like everyone has input into the language, which can be bad because setting a standard will be difficult. D has some excellent feature, though I'm not convinced with all features...

Share this post


Link to post
Share on other sites
That's why I said lets leave the fancy IDE specific features away and focus on binary executable performance when it comes to intensive computation and processing of complex data structures.

I'm not asking which language is more fun... :)

The reason I'm asking and I really need feedback from previous experiences writing such applications before I start my project, and in the middle I then release I picked the wrong language because either:

1) The simply performance sucks. And it becomes a big problem when the project gets bigger and more complicated.

2) Performance is not a problem at all picking an alternative that
could make my life a lot easier while not scarifying performance.





Share this post


Link to post
Share on other sites
Quote:
Original post by Sambori
That's why I said lets leave the fancy IDE specific features away and focus on binary executable performance when it comes to intensive computation and processing of complex data structures.

I'm not asking which language is more fun... :)

The reason I'm asking and I really need feedback from previous experiences writing such applications before I start my project, and in the middle I then release I picked the wrong language because either:

1) The simply performance sucks. And it becomes a big problem when the project gets bigger and more complicated.

2) Performance is not a problem at all picking an alternative that
could make my life a lot easier while not scarifying performance.


I'm sure the bad performance has little to do with the tool you work with (the language) but all the more with the skills of the worker (that's you). There are performance differences between compiled and interpreted languages, but generally not noticeable. If you program well, and do performance tests, you can eliminate the bottlenecks.

Share this post


Link to post
Share on other sites
Given the nature of this forum, you're unlikely to find a large population of people with the requisite extensive experience using C# (or any language) to build "interactive CAD/CAM, scientific visualization, or architectural design" programs.

The best way for you to get an answer to this is to build some sample implementations of the expected algorithms in the various candidate languages you have available (presumably you have already reduced the set of options down to 'languages you know,' because those are the one's you'll be able to produce the best-optimized implementations in anyhow), optimize them (perhaps soliciting peer review) and profiling them.

Share this post


Link to post
Share on other sites
Quote:
Original post by Sambori
That's why I said lets leave the fancy IDE specific features away and focus on binary executable performance when it comes to intensive computation and processing of complex data structures.

I'm not asking which language is more fun... :)

The reason I'm asking and I really need feedback from previous experiences writing such applications before I start my project, and in the middle I then release I picked the wrong language because either:

1) The simply performance sucks. And it becomes a big problem when the project gets bigger and more complicated.

2) Performance is not a problem at all picking an alternative that
could make my life a lot easier while not scarifying performance.


In general Executable performance isn't tied to the language, runtime and compiler choice has a far greater impact.

If you go with C# for example there is a significant performance difference in some areas.

Back in 2007 some mono developers benchmarked .NET 2.0 vs Mono 1.2.3.1 and Microsofts .NET was faster in all except two of the tests, in some cases nearly twice as fast. (Both Mono and .NET has moved forward quite alot since then though).

(For C++ there are similar differences between the free and profesisonal MSVC versions and compilers such as gcc)

Basically as long as you use the tools you have properly you can write very fast software with pretty much any popular language, the primary concern should be the availability of libraries and other tools aswell as the skills you and your team has.

Share this post


Link to post
Share on other sites
Don't forget that if you pick C# and find that some performance critical algorithms would benefit from some C++ code then you can always just write those functions in C++ and PInvoke them without too much overhead. The same thing applies for most other programming languages.

For that reason I'd suggest writing the program in the language you're most productive with.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!