Jump to content

Evolutionary Programming: what language?

- - - - -

  • Please log in to reply
5 replies to this topic

#1
anotheruser

anotheruser

    Learning Programmer

  • Members
  • PipPipPip
  • 44 posts
I would like to try Evolutionary Programming.

I usually write in c#, but I have heard that other languages have a better performance at this kind of task. The project could get rather large so this would be an issue.

Is this true or is there a way to achieve a high performance with c# as well? Are there existing libraries to help with that?

#2
da beast

da beast

    Newbie

  • Members
  • PipPip
  • 25 posts
C++ gets closest to the hardware!

#3
Alexander

Alexander

    It's Science!

  • Moderators
  • 4,118 posts
  • Location:Vancouver, Eh! Cleverness: 200

da beast said:

C++ gets closest to the hardware!
C++ exists because it is not closest to the hardware, it provides many abstractions.

anotheruser said:

I usually write in c#
The ease of application far outweighs the performance when using C#, I see no reason why there should be another language for this if you are comfortable in C#.

Aforge.NET library has a good example on genetic programming here:
/ - aforge - AForge.NET Framework - Google Project Hosting

And also there is an MSDN magazine issue from 2004 writing about genetic programming (with visual forms as well):
Natural Selection with Windows Forms using C# and CodeDOM

I am not so familiar with either however.
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.

#4
da beast

da beast

    Newbie

  • Members
  • PipPip
  • 25 posts

Alexander said:

C++ exists because it is not closest to the hardware, it provides many abstractions.

C# is typically not used as a low-level language, even when it is unmanaged, but c++ is.

If you want ease, go with c# if you want performance go with c++.

#5
Alexander

Alexander

    It's Science!

  • Moderators
  • 4,118 posts
  • Location:Vancouver, Eh! Cleverness: 200

da beast said:

C# is typically not used as a low-level language, even when it is unmanaged, but c++ is.

If you want ease, go with c# if you want performance go with c++.

C# and Java utilize a just in time compiler of which can apply optimizations C++ cannot, it really depends. C# is not the lowest language in the barrel, although for this type of programming you will have to do it in C to see any real performance over C++.
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.

#6
anotheruser

anotheruser

    Learning Programmer

  • Members
  • PipPipPip
  • 44 posts
Thanks for the quick replies.

I think I'm going to try it in c# with the AForge.NET Framework. I suppose I can still learn a more efficient language later and auto-translate what I already have.


edit:

I just found something called CodeDom that can be used to create and execute Programs at runtime. Seeing as what I plan to do is not exactly Genetic Programming but a variation and AForge seems very specific, I think I will try to use this first.

But now I have another question regarding performance:

In this program I want to write I would need to call some functions extremely often and others very rarely. I would need to create a database where all those functions are stored so I don't have to load every single one each time I start the program when some may not even be used.

The question is if that would be efficient performance-wise. Can I load frequently used functions from the harddrive and then call them in rapid succession or would there be delays because they don't "belong" to the main application but exist as separate files?

Edited by anotheruser, 31 May 2011 - 02:25 AM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users