Aki Iskandar wrote:

Hello -

I'm new on this email list. I'm very interested in AI / AGI - but do not have any formal background at all. I do have a degree in Finance, and have been a professional consultant / developer for the last 9 years (including having worked at Microsoft for almost 3 of those years).

I am extremely happy to see that there are people out there that believe AGI will become a reality - I share the same belief. Most, to all, of my colleagues see AI as never becoming a reality. Some that do see intelligent machines becoming a reality - believe that it is hardware, not software, that will make it so. I believe the opposite ... in that the key is in the software - the hardware we have today is ample.

The reason I'm writing is that I am curious (after watching a couple of the videos on google linked off of Ben's site) as to why you're using C++ instead of other languages, such as C#, Java, or Python. The later 2, and others, do the grunt work of cleaning up resources - thus allowing for more time to work on the problem domain, as well as saving time in compiling, linking, and debugging.

I'm not questioning your decision - I'm merely curious to learn about your motivations for selecting C++ as your language of choice.


The Novamente AI system is designed to run efficiently on SMP multiprocessor machines, using large amounts of RAM (as many gigabytes as the machine will support), and requiring complex and customized patterns of garbage collection. The automated GC supplied by languages like Java or C# will not do the trick. C++ is the only language that has been intensively battle-tested under this kind of scenario. (In principle, C# could be used, with copious use of unsafe code blocks, but it has not been intensively tested in this kind of scenario.)

C++ is a large language that can be used in many different ways. Early Novamente code was somewhat C-ish and is gradually being replaced. New Novamente code makes heavy use of STL, generic design patterns, and the Boost library, which is a more elegant C++ dialect. STL and Boost do a lot of the gruntwork for you too, although they're not as simple to use as Java or Python, of course.

I personally love the Ruby language, and have prototyped some Novamente stuff in Ruby prior to its incorporation in the main C++ codebase. But Ruby is really slow and can't handle complex GC situations.



-- Ben G


Thanks,
~Aki

-----
This list is sponsored by AGIRI: http://www.agiri.org/email
To unsubscribe or change your options, please go to:
http://v2.listbox.com/member/?list_id=303

Reply via email to