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
