On 3/23/07, Ben Goertzel <[EMAIL PROTECTED]> wrote:
Additionally, we need real-time, very fast coordinated usage of multiple
processors in an SMP environment.  Java, for one example, is really slow
at context switching between different threads.

Java's threads are fairly heavy.  You can use Cybele to implement Java
agents that run on lighter threads; switching between them is much
faster.  I wrote the first version of NASA's ACES simulator using
Cybele; it had about 50,000 threads active at a time, running on a
single processor.

Or did you mean that you want to use multiple physical processors, and
a small amount of heavy threads?  That sounds like what you said, but
I assumed that isn't what you meant, because you wouldn't need to
switch between threads if you're really talking about CPUs.
I believe you can write your own routines for serialization in Java.

Finally, we need rapid distributed processing, meaning that we need to
rapidly get data out of complex data structures in memory and into
serialized bit streams (and then back into complex data structures at
the other end).  This means we can't use languages in which object
serialization is a slow process with limited
customizability-for-efficiently.

You can customize object serialization in Java, I'm pretty sure.

C++ with heavy use of STL and Boost is a different language than the C++
we old-timers got used to back in the 90's.   It's still a large and
cumbersome language but it's quite possible to use it elegantly and
intelligently.  I am not such a whiz myself, but fortunately some of our
team members are.

It is a nice language, but I want it dead, because it's killing
open-source.  Most open-source projects are in C or C++, and they
can't be ported to other systems.  I mean that.  Dedicated programmers
who apparently have way more time than I do can port an open-source
application from one platform to another, but I rarely can unless I
spend several days at it.  It's common for the config files and
makefiles to an open-source program to be tens of thousands of lines,
often longer than the source code itself.  It would be easier for me
to rewrite the application than to rewrite the makefile!

Java programs, on the other hand, port instantly.  I have only twice
had problems porting Java code - both times with graphics.  I became a
Java convert when I burned the code for my large airspace simulator,
which I and some other people had spent 2 years writing, onto a CD,
took the CD out of my Windows machine and popped it into a Sun
workstation, and... it ran.  For comparison, a simpler airspace
simulator written in C took us over a week to port from Windows NT 4
to Windows 2000.

I think this may be an effect of the lack of standardization of C++
libraries, and the control that Sun maintains over Java, rather than
any inherent properties of C++.  But still.  Death to C++.  I've spent
too many days scratching my head over cryptic linker errors.

-----
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