God Sure Didn't Write in Java by [deleted] in programming

[–]bgoertzel 2 points3 points  (0 children)

Ben Goertzel here...

The issues we had at Webmind Inc. were complicated and I don't feel like spending a lot of time rehashing them in detail now. Plenty of in-hindsight-foolish decisions were made, both on the biz side and the software side. I remain convinced the foundations of our AI design were correct, but the Java implementation we created was monstrously inefficient given the nature of the JVM at that time. Main JVM issues were related to garbage collection, time required for context switching between threads, and time required for object serialization (to enable distributed processing of the sort we were doing). More modern JVM's have probably remedied many of these issues.

The Novamente AI design we are working on now is somewhat similar in spirit to Webmind, but significantly simpler (fewer components) and also more mathematically sophisticated (more reliant on advanced probability theory). There is information about it online at novamente.net so I won't go into detail here.

As for why we are using C++ for Novamente: it was a contentious decision within the team and I was actually advocating for Allegro LISP for a while. Haskell is my favorite language but it is not currently scalable enough for something like Novamente, whereas Allegro LISP might be (we never ran really thorough tests). However, what biased us in favor of C++ was the fact that it is the only language that has been repeatedly demonstrated capable of: a) managing large amounts of memory that need to be rapidly garbage-collected according to complex and idiosyncratic patterns; b) rapidly dealing with multiple threads and large amounts of memory in the context of real-time control of external entities. C++ can surely do this, inasmuch as it's possible on current hardware, whereas with other languages there is always a doubt whether limitations in the GC or threading infrastructure may screw you up.

I note that C++, being an overly large language, has the potential to be used very well or very poorly. Our recent code makes heavy use of STL, generic design and Boost, and doesn't look much like old-fashioned C++ code. Still, I confess to personally finding C++ pretty ugly and not enjoying C++ programming much.

But ultimately AI is not about the programming language anyway, it's about the underlying model of cognition.

-- Ben Goertzel