Valentina,

Having written http://www.DrEliza.com, several NN programs, and LOT of
financial applications, and holding a CDP - widely recognized in financial
programming circles, here are my comments.

The real world is a little different than the theoretical world of CS, in
that people want results rather than proofs. However, especially in the
financial world, errors CAN be expensive. Hence, the usual approaches
involve extensive internal checking (lots of Assert statements, etc.),
careful code reviews (that often uncover errors that testing just can't
catch because a tester may not think of all of the ways that a piece of code
might be stressed), and code-coverage analysis to identify what has NOT been
exercise/exorcised.

I write AI software pretty much the same way that I have written financial
software.

Note that really good internal checking can almost replace early testing,
because as soon as something produces garbage, it will almost immediately
get caught. Hence, just write it and throw it into the rest of the code, and
let its environment test it. Initially, it might contain temporary code to
display its results, which will soon get yanked when everything looks OK.

Finally, really good error handling is an absolute MUST, because no such
complex application is ever completely "wrung out". If it isn't "fail-soft",
then it probably will never ever make it as a product. This pretty much
excuses C/C++ from consideration, but still leaves C# in the running.

I prefer programming in environments that check everything possible, like
Visual Basic or .NET. These save a LOT of debugging effort by catching
nearly all of the really hard bugs that languages like C/C++ seem to make in
bulk. Further, when you think that your application is REALLY wrung out, you
can then re-compile with most of the error checking turned off to get C-like
speed.

Note that these things can also be said for Java, but most implementations
don't provide compilers that can turn off error checking, which cuts their
speed to ~1/3 that of other approaches. Losing 2/3 of the speed is a high
price to pay for a platform.

Steve Richfield
==============
On 12/20/08, Valentina Poletti <[email protected]> wrote:
>
> I have a question for you AGIers.. from your experience as well as from
> your background, how relevant do you think software engineering is in
> developing AI software and, in particular AGI software? Just wondering..
> does software verification as well as correctness proving serve any use in
> this field? Or is this something used just for Nasa and critical
> applications?
>
> Valentina
>  ------------------------------
>   *agi* | Archives <https://www.listbox.com/member/archive/303/=now>
> <https://www.listbox.com/member/archive/rss/303/> | 
> Modify<https://www.listbox.com/member/?&;>Your Subscription
> <http://www.listbox.com/>
>



-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=8660244&id_secret=123753653-47f84b
Powered by Listbox: http://www.listbox.com

Reply via email to