Re: [agi] More Info Please
On May 26, 2008, at 5:52 PM, Mark Waser wrote: That you have less than a two-to-one market share and it's dwindling? I have ~100% market share. Not sure how it is two-to-one or dwindling, though I suppose it has nowhere to go but down. That technically .Net has blown past you and the gap only shows signs of widening? I concern myself with big server apps, and I am not sure what this .NET gap is. Which Silicon Valley companies are developing their server infrastructure using .NET? Other than Microsoft (presumably), I cannot think of any. When companies want server bindings and drivers, they ask for C++, Java, and (god help us) PHP. I have never had anyone anywhere in government or industry ask for .NET. I am sure they exist and it will happen eventually but the avalanche of demand is not there, probably because virtually no one uses .NET on Linux. That when Mono reaches the next version, you're going to switch? Seems unlikely, since it does not offer anything of value for anything I might do. C is faster and more scalable for server engines, particularly for server clusters; if you are going to write that much unmanaged code, you might as well bind it to a super-productive language like Python. Is Microsoft porting Visual Studio to Unix/ Linux in the near future? I already get a really fancy Unix development environment from Apple for free, though it does not support .NET. J. Andrew Rogers --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: Competitive message routing protocol (was Re: [agi] Deliberative vs Spatial intelligence)
On May 1, 2008, at 10:06 AM, Matt Mahoney wrote: --- J. Andrew Rogers [EMAIL PROTECTED] wrote: Your model above tacitly predicates its optimality on a naive MCP strategy, but is not particularly well-suited for it. In short, this means that you are assuming that the aggregate latency function for a transaction over the network is a close proxy for the transaction cost. At one time this might have been a reasonable assumption, but it becomes less true every year. That's true in my thesis but I dropped it in my CMR proposal. Now I assume that peers operate in a hostile environment. A message could be anything. The protocol has to work even over unreliable UDP with forged source IP addresses. The problem is sort of like building a brain out of neurons that are trying to kill each other. (Yes, late. I do not have much free time.) A brain where all the neurons are out to kill each other is a proper metaphor for the design problem. In real protocols, every time someone posited benevolence for some aspect it was promptly exploited. In my thesis, I asked whether it was possible even in theory to build a large scale distributed index. None existed in 1997 and none exists today. The best known examples of internet wide databases were USENET, which uses O(n^2) storage, and DNS, which is O(n) (assuming it grows in depth with constant branching factor, although it doesn't really) but is vulnerable at the root servers. Centralized search engines are also O(n^2) because you need O(n) servers for n clients. This creates an incentive for engines to merge to save resources, resulting in a monopoly. (Who has the resources to compete with Google?) There is an increasingly strong political incentive (between countries) to create distributed indexes, but quite frankly the technology does not exist. This was something I studied in earnest when various governments started demanding such guarantees. To the best of my knowledge, we do not have mathematics that can support the guarantees desired, though decentralized indexes are certainly practical if one ignores certain considerations that are politically important. Something to understand about the big server clusters: as commonly implemented, the online server cluster is independent of the content generation cluster. Queries may be very cheap to serve even if the aggregation and analytics process is expensive. Compute a result once and serve it to the world a thousand times. The real problems occur when the data set is not sufficiently static that this trick is plausible. Fortunately, no one has noticed the man behind the curtain (yet). Losing to Google is predicated on following their path, and they occupy a space where the computer science is transparently inadequate. It does not take much of a qualitative shift in the market to kill a company in that position. There is plenty of vulnerability left in the market. I would argue, from a business perspective, is that most of the value with respect to distribution is in the metadata protocol, virtually all of which are based on naive designs that ignore literature in practice. A really strong metadata protocol that could be standardized would generate a hell of a lot of value. Past that, whoever controls the essential data under that protocol would win, and for better or worse, Google is largely not responding to this. There are many types of data they have no capacity to handle in bulk. This is not so much a criticism of Google but an observation about their actual behavior. Cheers, J. Andrew Rogers --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
I'm sorry, I don't know what you mean by sane languages . . . . - Original Message - From: Lukasz Stafiniak [EMAIL PROTECTED] To: [EMAIL PROTECTED]; agi@v2.listbox.com Sent: Monday, May 26, 2008 7:45 AM Subject: Re: [agi] More Info Please On Mon, May 26, 2008 at 1:26 PM, Mark Waser [EMAIL PROTECTED] wrote: What I'd rather do instead is see if we can get a .NET parallel track started over the next few months, see if we can get everything ported, and see the relative productivity between the two paths. That would provide a provably true answer to the debate. There are also sane languages using the C++ object model (http://felix-lang.org/). And there is Mono, though I've heard it falls behind .NET considerably in terms of efficiency. The thing is, will multi-language sourcing be encouraged? (Will every contributor be allowed to write in his language, provided it compiles with the rest?) --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups OpenCog.org (Open Cognition Project) group. To post to this group, send email to [EMAIL PROTECTED] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/opencog?hl=en -~--~~~~--~~--~--~--- --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
mark, What I'd rather do instead is see if we can get a .NET parallel track started over the next few months, see if we can get everything ported, and see the relative productivity between the two paths. That would provide a provably true answer to the debate. Well, it's an open-source project, so to each his own... However, at this point, folks working on OpenCog stuff under the -- GSoC -- SIAI -- Novamente organizations are going to be working on the current, actually existing C++ implementation IMO, the vast majority of work in this sort of project has to do with fiddling with the AI algorithms to make them work right, rather than nuts-and-bolts engineering, so I'm not sure the choice of language is going to make that much difference ... except that with C++ it's obviously more possible to make the code efficient where it needs to be. (Features like template metaprogramming are great but of course one can live without them.) And in the current phase, killer efficiency is not going to make much difference either, while we're still working out algorithm details. The potential for killer efficiency will come into play a little later once the main issue is scaling rather than algorithm refinement. I would much rather see work go into working out the various algorithmic details that are left pending by the OpenCog Prime documentation (not yet released by me, alas... and spending time on these emails doesn't help...) than on reimplementing the same code in multiple programming languages. But as an open-source project there is the opportunity for multiple forks and directions. In the event that a C# fork does get off the ground, it would be nice if things were worked out so that C++ MindAgents could act on the C# core. Ultimately the deeper code goes in the MindAgents not in the core system anyway, in the OpenCog design. If the same MindAgents could be used in both cores then having two cores would not impede development much, and might even accelerate it if it allows developers to do more work in their preferred languages and development environments. -- Ben G --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
Regarding the best language for AGI development, most here know that I'm using Java in Texai. For skill acquisition, my strategy is to have Texai acquire a skill by composing a Java program to perform the learned skill. I hope that the algorithmic (e.g. Java statement operation) knowledge that I teach it will be eventually portable to source code generation in machine language for the x64 architecture. One might hope that by initially teaching the register set, machine instructions, and cache-line characteristics for x64, the code generation might subsequently learn to perform many of the static and dynamic (e.g. execution profiling based) optimizations employed by the best compilers. Given algorithmic knowledge, it should be possible, for example, to avoid the need for type inference, or escape analysis to determine which objects can be allocated from the stack versus the heap. Likewise, algorithmic knowledge should enable the identification of single threaded code in which objects can be statically allocated or simply kept in a register. What I am suggesting is that compiler optimization is a skill, and that skill could be taught to an AGI - having the ability to learn by being taught. While I enjoy reading about, and sometimes participating in, a programming languages discussion, I suppose that what language an AGI should author is also interesting. Cheers. -Steve Stephen L. Reed Artificial Intelligence Researcher http://texai.org/blog http://texai.org 3008 Oak Crest Ave. Austin, Texas, USA 78704 512.791.7860 - Original Message From: Vladimir Nesov [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Monday, May 26, 2008 7:48:29 AM Subject: Re: [agi] More Info Please On Mon, May 26, 2008 at 3:42 PM, Mark Waser [EMAIL PROTECTED] wrote: And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. Java is clear and understandable, with clean semantics so that you can refactor the code without breaking it and IDE knows its way around the codebase, has garbage collection, a bit of functional programming stance, is fast enough, has decent infrastructure and everybody knows it. A bit verbose, but I haven't found it to be a serious problem. If you don't need fragmented odd parts, it's sufficiently portable. If you decide between .NET and Java, tradeoff is more subtle, as they are essentially the same thing, except that .NET is not open and more bloated -- which is more important for a particular project? I guess openness outweighs is for an open-source project. -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
2008/5/26 J. Andrew Rogers [EMAIL PROTECTED]: Europe specifically excludes .NET as a development target for similar pragmatic reasons. And developing .NET is going to suck on a non-Windows workstation, eliminating one of the major advantages you tout. To be honest, I do not know of anyone that uses a Mac that is using it for .NET development -- total impedance mismatch. On Linux the performance of 3D distributed particle SLAM (a CPU intensive task) running on the Mono .NET (version 2) runtime is marginally faster than the same code running on Windows using the MS runtime, but only by a few milliseconds. Performance benchmarks are very similar to the same algorithms written in C++ and compiled with gcc. The advantages being advertised for C# (i.e. new functional programming features) only apply to .NET 3 or above, which isn't available on GNU/Linux systems and so is of no interest to me at this point. Arguments about programming languages are a popular topic on AI forums, but usually generate more heat than light. --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
[agi] Design Phase Announce - VRRM project
VRRM - Virtual Reinforcement Resource Managing Machine Overview This is a virtual machine designed to allow non-catastrophic unconstrained experimentation of programs in a system as close to the hardware as possible. This should allow the system to change as much as is possible and needed for the application under consideration. Currently the project expects to go to the operating system level (including experimentation on schedulers and device drivers). A separate sub-system supplies information on how well the experiment is going. The information is made affective by making it a form of credit periodically used to bid for computational system resources and to pass around between programs. Expected deployment scenarios - Research and possible small scale applications on the following - Autonomous Self-managing robotics - A Smart operating system that customises itself to the users preferences without extensive knowledge on the users part Language - C Progress Currently I am hacking/designing my own, but I am open to going to a standard machine emulator if that seems easy at any point. I expect to heavily re-factor. I am focussing on the architectural registers, memory space and memory protection first and will get on to the actual instruction set last. I'm also in parallel trying to design a high level language for this architecture so the internals initial programs can be cross-compiled for it more easily. Current Feature plans - Differentiation between transient and long term storage to avoid unwanted disk thrashing - Unified memory space - Capability based security between programs - Specialised Capability registers as well as floating point and integers - Keyboard, mouse and display virtual devices as well as extensible models for people to build their own Comments and criticisms welcomed. Will Pearson --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Wrong Bloody Document, Folks! [WAS Re: [agi] Goal Driven Systems and AI Dangers]
:-) While I've read both papers, I was referring to the same paper that you were. I remember what started the thread. What is your important postscript? - Original Message - From: Richard Loosemore [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Sunday, May 25, 2008 7:52 PM Subject: **SPAM** Wrong Bloody Document, Folks! [WAS Re: [agi] Goal Driven Systems and AI Dangers] Mark Waser wrote: When I first read Omohundro's paper, my first reaction was . . . Wow! That's awesome. Then, when I tried to build on it, I found myself picking it apart instead. My previous e-mails from today should explain why. He's trying to extrapolate and predict from first principles and toy experiments to a very large and complex system -- when there are just too many additional variables and too much emergent behavior to do so successfully. He made a great try and it's worth spending a lot of time with the paper. My biggest fault with it is that he should have recognized that his statements about all goal-driven systems don't apply to the proto--typical example (humans) and he should have made at least some explanation as to why he believed that it didn't. In a way, Omohundro's paper is the prototypical/archetypal example for Richard's arguments about many AGIers trying to design complex systems through decomposition and toy examples and expecting the results to self-assemble and scale up to full intelligence. I disagree entirely with Richard's arguments that Omohundro's errors have *anything* to do with architecture. I am even tempted to argue that Richard is so enamored with/ensnared in his MES vision that he may well be violating his own concerns about building complex systems. Mark, Well I don't agree at all however, I have to add an important postscript to this discussion. This thread started when Kaj Sotala asked me a question about Omohundro's AI Drives paper, in the following words: Richard, I'd be curious to hear your opinion of Omohundro's The Basic AI Drives paper at http://selfawaresystems.files.wordpress.com/2008/01/ai_drives_final.pdf (apparently, a longer and more technical version of the same can be found at http://selfawaresystems.files.wordpress.com/2008/01/nature_of_self_improving_ai.pdf , but I haven't read it yet). I found the arguments made relatively convincing, and to me, they implied that we do indeed have to be /very/ careful not to build an AI which might end up destroying humanity. (I'd thought that was the case before, but reading the paper only reinforced my view...) THROUGHOUT THIS DISCUSSION I HAVE BEEN CRITIQUING THAT ORIGINAL PAPER! It now seems that Josh, for one, was looking at a completely different paper (the one that Kaj says is a longer and more technical version, but which is in many respects quite different, and which I have only just now obtained). When we have these discussions it is important to be clear that we are at least all referring to the same document. I don't know if you, Mark, have been looking at the first one or the second, but it is worth noting that I make no warranties about what he said in the later paper. Perhaps you could let me know which paper you were referring, just so I know where to go from here. Richard Loosemore --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
I deliberately used specifiers such as a bit or sufficiently to imply relation with the problem and not with other languages, that is to show why I think it's adequate for the task, not that it's optimal. Why go with adequate when optimal is available? Aren't you the one who is concerned with the existential risks of someone else getting to AGI first? Or is this your way of slowing the process down? C# may have advantages over Java, but it doesn't mean that these advantages are particularly relevant for a particular project. Then make project-specific assertions. The fact that functional programming is an integral part of C# is huge for AGI. (Your turn to make a valid point :-) alone .NET. As for language anarhcy and feature bloating that .NET provides, it is not necessarily a good thing, project needs to enforce reasonable uniformity to be manageable. Tell us a little bit about yourself . . . . How many large projects have you managed? Over what time period? In what language? How long were you responsible for maintenance and enhancements afterwards? How many subsequent, enhanced versions of your large projects were there? How many times have you ported a large project from one environment/language to another (or even one major software rev to another)? - Original Message - From: Vladimir Nesov [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Monday, May 26, 2008 11:15 AM Subject: Re: [agi] More Info Please That list wasn't about the comparison with .NET, I only added a couple of words about .NET at the end. I deliberately used specifiers such as a bit or sufficiently to imply relation with the problem and not with other languages, that is to show why I think it's adequate for the task, not that it's optimal. C# may have advantages over Java, but it doesn't mean that these advantages are particularly relevant for a particular project. As Ben noted, even C++ goes, even when it clearly doesn't have some of the important features that even Java has, let alone .NET. As for language anarhcy and feature bloating that .NET provides, it is not necessarily a good thing, project needs to enforce reasonable uniformity to be manageable. On Mon, May 26, 2008 at 6:19 PM, Mark Waser [EMAIL PROTECTED] wrote: How is Java is *more* clear and understandable? The IDE is *known* to be inferior. Are you arguing otherwise. Every modern language has garbage collection. Java has a functional programming stance? No, it does not. Look at what you can do in the newest version of C# much less F#. If you believe that Java has functional programming, you don't have any clue what you are talking about. Java's infrastructure is *much* smaller than that of .Net and fragmented. Everybody knows it? The way syntax is these days, everybody knows Java and C# and VB.Net because they're basically the same language. It is *not* any more portable for any sufficiently advanced application than anything else. Oh, and for your reference, the vast majority of .Net is actually open and has been submitted to standards bodies. The problem is that Microsoft advances it faster than the less-interested Linux people can port it so Mono always looks seriously inferior to what's available on Windows. What's going to be embarrassing is about three to five years down the line when Mono kicks Java's butt *and* it's still vastly inferior to what is available under Windows at that time. - Original Message - From: Vladimir Nesov [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Monday, May 26, 2008 8:48 AM Subject: Re: [agi] More Info Please On Mon, May 26, 2008 at 3:42 PM, Mark Waser [EMAIL PROTECTED] wrote: And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. Java is clear and understandable, with clean semantics so that you can refactor the code without breaking it and IDE knows its way around the codebase, has garbage collection, a bit of functional programming stance, is fast enough, has decent infrastructure and everybody knows it. A bit verbose, but I haven't found it to be a serious problem. If you don't need fragmented odd parts, it's sufficiently portable. If you decide between .NET and Java, tradeoff is more subtle, as they are essentially the same thing, except that .NET is not open and more bloated -- which is more important for a particular project? I guess openness outweighs is for an open-source project. -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi
Re: [agi] More Info Please
Where do you live, if you do not mind me asking? The preference for server environments is very much a local phenomenon. Using California as an example, in Los Angeles there is a strong preference for Windows systems, but in Silicon Valley you will find that Unix is pervasive. I live in Northern Virginia, near Washington, DC. .NET may be ubiquitous in abstract because it is associated with Windows, but if you actually look at some rather important tech centers like Silicon Valley, there is not a Windows server in sight. The dominance of Unix-based systems there is so complete that it is not even a contest any more. You are apparently under the impression that this is not true, Where do you get your statistics? What exactly are you measuring? If you're looking solely at servers like Google's which require extremely high performance for very specific, very tailored purposes, you are correct. If you're looking at more generic business-type work, you're just plain wrong. And, realistically, AGI development is *MUCH* closer to the business-type work than the high-performance work. A lot of business in Europe specifically excludes .NET as a development target for similar pragmatic reasons. A lot of other business in Europe specifically excludes *nux. It's a cultural difference in contracting. I'm starting to distrust your claims when you come up with BS like this that I know is wrong from my own experience. How much European contracting have you done? I worked with the World Bank for a number of years and then was spun off with the Global Development Gateway. Do you really want to argue European contracting? To be honest, I do not know of anyone that uses a Mac that is using it for .NET development -- total impedance mismatch. Your original quote was about Mac notebooks at conferences -- not development systems. I know numerous people who use their Mac notebooks as a gateway to their non-Mac development machines. It's very common here for the reasons I stated previously. To use Silicon Valley as an example, C/C++, Java, and Python will give you about 90% coverage of the developer pool. The .NET languages are in the residue. OK. Show me your statistics. I have *NEVER* seen statistics anywhere like what you're quoting. One of us is *very* misinformed or you're quoting a very odd little subset that has no relevance to the real world. In Bangalore, .NET is a major percentage of the developer pool. Which is most likely to usefully contribute to your project, programming languages aside? It sounds an awful lot like you are simply trying to rationalize your personal preference for programming language/environment. Nice ad hominem. I have yet to see anyone attempt to deny my claim about the relative development speed on .Net vs. anything else. That sounds like a solid reason, not a rationalization. And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. The value proposition of Java is a deep pool of technically proficient hackers know it and it works on all the platforms many such people prefer. MacOS has a C/C++, Python, and Java development environment out of the box (among other less common languages), but no .NET. Linux has similar coverage out of the box. By selecting .NET you have tacitly excluded most developers in Silicon Valley, and a huge number in Europe and many other countries. Java casts a much wider net even if it is an inferior environment. Not that much wider and it should give you a clue that the pool is shrinking by most statistics. Why can't Java win even against C++ and C? Oh, and further, you don't want hackers for a development project of any size -- you want qualified professionals who can do large-scale systems development, not quick-and-dirty little systems that quickly fall apart or become unmanageable shortly after they grow more than the slightest amount. The language/environment is a secondary concern to the developer pool because you could develop this project in *any* language. The difference in overhead costs intrinsic to the environment are nominal. I don't like Java myself, but I think a better argument can be made for it *in this instance* relative to .NET because language features are not that important at the end of the day. If you were doing a closed shop project then .NET would be very arguably a superior choice. So, why do you believe that all these developers are staying away from the superior choice? Why aren't the smarter ones defecting? Are you sure that they aren't? Are you sure you want that huge developer pool of those who aren't smart enough to defect? If you hate Java, there are other environments with a better feature
[agi] Re: Mark Waser arguing that OpenCog should be recoded in .Net ;-p
Mark, If it were possible to make both C# and C+ versions of the core (AtomTable and scheduler), and have both C# and C++ MindAgents run on both, then we would have a favorable situation in terms of allowing everyone to use their own fave languages and development environments. -- Ben G On Mon, May 26, 2008 at 7:18 AM, Mark Waser [EMAIL PROTECTED] wrote: While all the language wars continue, I'd like to re-emphasize my original point (directly copied from the original e-mail) -- One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. Seriously people, I'm not asking anyone to move away from what *you* are familiar with if you don't want to. I'm saying that maybe we should deliberately attempt to open this up so that we get *more* contributions and viewpoints -- at the admitted cost of needing better documentation and control -- which is really necessary anyways. My belief is that seeing what happens will cause a migration -- but I'm not invested in that belief and would be happy and see huge benefits either way. Mark P.S. Thank you for the forward Ben. - Original Message - From: Ben Goertzel To: [EMAIL PROTECTED] Sent: Sunday, May 25, 2008 8:29 PM Subject: Mark Waser arguing that OpenCog should be recoded in .Net ;-p This email thread on the AGI list really seems more appropriate for the OpenCog list... so I'm forwarding it here... -- Ben G -- From: Mark Waser [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:23 PM To: agi@v2.listbox.com Yeah, I'll certainly grant you that. The unfortunate problem is that people coming in late don't see the prior arguments and then engage in behavior that they believe is similar but entirely without the scientific rigor that you normally follow but don't always visibly display. Also, on the other hand, for certain classes of issues where you are less of an expert -- like in large-scale systems architecture (both software and conceptual), a number of your previously posted arguments are *I believe* at best questionable if not outright wrong. The fact that these assumptions aren't open for inspection at a convenient location is problematical if many other things are built on top of them and then they turn out to be wrong. We need to start to gather the best of these assumptions and debates in one place (probably a wiki) because long-term e-mail looping is not efficient. I've had this as a low priority thought for the AGI-Network but I think that I'm going to escalate it's priority substantially and see if I can't come up with a conceptual design for such a wiki (with scaled and isolated privileges) over the next couple of weeks. One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. I strongly contend that the current architecture does not take advantage of a large part of the newest advances and infrastructures of the past half-decade. I think that if people saw what could be done with far less time and code utilizing already existing functionality and better tools that C++ would be a dead issue. -- From: Ben Goertzel [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:26 PM To: agi@v2.listbox.com Somehow I doubt that this list will be the place where the endless OS/language wars plaguing the IT community are finally solved ;-p Certainly there are plenty of folks with equal software engineering experience to you, advocating the Linux/C++ route (taken in the current OpenCog version) rather than the .Net/C# route that I believe you advocate... -- Ben G -- From: Lukasz Stafiniak [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 5:24 PM To: agi@v2.listbox.com No, I believe he advocates OCaml vs. F# ;-) (sorry for leaving-out Haskell and others) -- From: Mark Waser [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 5:59 PM To: agi@v2.listbox.com Cool. An *argument from authority* without even having an authority. Show me those plenty of folks and their reasons for advocating Linux/C++. Times have changed. Other alternatives have advanced tremendously. You are out of date and using and touting obsolete software and development methods. I *don't* believe that you can find an expert who has remained current on technology who will back your point. {NOTE: It's also always interesting to see someone say that the argument is OS/language vs. framework/language (don't you know enough to compare apples to apples?)] More importantly, I don't believe that I've ever explicitly endorsed C#. What I've always pushed is the .NET framework
Re: [agi] More Info Please
On Mon, May 26, 2008 at 3:42 PM, Mark Waser [EMAIL PROTECTED] wrote: And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. Java is clear and understandable, with clean semantics so that you can refactor the code without breaking it and IDE knows its way around the codebase, has garbage collection, a bit of functional programming stance, is fast enough, has decent infrastructure and everybody knows it. A bit verbose, but I haven't found it to be a serious problem. If you don't need fragmented odd parts, it's sufficiently portable. If you decide between .NET and Java, tradeoff is more subtle, as they are essentially the same thing, except that .NET is not open and more bloated -- which is more important for a particular project? I guess openness outweighs is for an open-source project. -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
[agi] Re: Mark Waser arguing that OpenCog should be recoded in .Net ;-p
While all the language wars continue, I'd like to re-emphasize my original point (directly copied from the original e-mail) -- One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. Seriously people, I'm not asking anyone to move away from what *you* are familiar with if you don't want to. I'm saying that maybe we should deliberately attempt to open this up so that we get *more* contributions and viewpoints -- at the admitted cost of needing better documentation and control -- which is really necessary anyways. My belief is that seeing what happens will cause a migration -- but I'm not invested in that belief and would be happy and see huge benefits either way. Mark P.S. Thank you for the forward Ben. - Original Message - From: Ben Goertzel To: [EMAIL PROTECTED] Sent: Sunday, May 25, 2008 8:29 PM Subject: Mark Waser arguing that OpenCog should be recoded in .Net ;-p This email thread on the AGI list really seems more appropriate for the OpenCog list... so I'm forwarding it here... -- Ben G -- From: Mark Waser [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:23 PM To: agi@v2.listbox.com Yeah, I'll certainly grant you that. The unfortunate problem is that people coming in late don't see the prior arguments and then engage in behavior that they believe is similar but entirely without the scientific rigor that you normally follow but don't always visibly display. Also, on the other hand, for certain classes of issues where you are less of an expert -- like in large-scale systems architecture (both software and conceptual), a number of your previously posted arguments are *I believe* at best questionable if not outright wrong. The fact that these assumptions aren't open for inspection at a convenient location is problematical if many other things are built on top of them and then they turn out to be wrong. We need to start to gather the best of these assumptions and debates in one place (probably a wiki) because long-term e-mail looping is not efficient. I've had this as a low priority thought for the AGI-Network but I think that I'm going to escalate it's priority substantially and see if I can't come up with a conceptual design for such a wiki (with scaled and isolated privileges) over the next couple of weeks. One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. I strongly contend that the current architecture does not take advantage of a large part of the newest advances and infrastructures of the past half-decade. I think that if people saw what could be done with far less time and code utilizing already existing functionality and better tools that C++ would be a dead issue. -- From: Ben Goertzel [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:26 PM To: agi@v2.listbox.com Somehow I doubt that this list will be the place where the endless OS/language wars plaguing the IT community are finally solved ;-p Certainly there are plenty of folks with equal software engineering experience to you, advocating the Linux/C++ route (taken in the current OpenCog version) rather than the .Net/C# route that I believe you advocate... -- Ben G -- From: Lukasz Stafiniak [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 5:24 PM To: agi@v2.listbox.com No, I believe he advocates OCaml vs. F# ;-) (sorry for leaving-out Haskell and others) -- From: Mark Waser [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 5:59 PM To: agi@v2.listbox.com Cool. An *argument from authority* without even having an authority. Show me those plenty of folks and their reasons for advocating Linux/C++. Times have changed. Other alternatives have advanced tremendously. You are out of date and using and touting obsolete software and development methods. I *don't* believe that you can find an expert who has remained current on technology who will back your point. {NOTE: It's also always interesting to see someone say that the argument is OS/language vs. framework/language (don't you know enough to compare apples to apples?)] More importantly, I don't believe that I've ever explicitly endorsed C#. What I've always pushed is the .NET framework because 1) it's got far more already built infrastructure than anything else and 2) you can mix and match languages so that you can use the most appropriate language in any given place and still use another language where it is more appropriate. So, I'll take up your challenge . . . . I've developed in
Re: [agi] More Info Please
That list wasn't about the comparison with .NET, I only added a couple of words about .NET at the end. I deliberately used specifiers such as a bit or sufficiently to imply relation with the problem and not with other languages, that is to show why I think it's adequate for the task, not that it's optimal. C# may have advantages over Java, but it doesn't mean that these advantages are particularly relevant for a particular project. As Ben noted, even C++ goes, even when it clearly doesn't have some of the important features that even Java has, let alone .NET. As for language anarhcy and feature bloating that .NET provides, it is not necessarily a good thing, project needs to enforce reasonable uniformity to be manageable. On Mon, May 26, 2008 at 6:19 PM, Mark Waser [EMAIL PROTECTED] wrote: How is Java is *more* clear and understandable? The IDE is *known* to be inferior. Are you arguing otherwise. Every modern language has garbage collection. Java has a functional programming stance? No, it does not. Look at what you can do in the newest version of C# much less F#. If you believe that Java has functional programming, you don't have any clue what you are talking about. Java's infrastructure is *much* smaller than that of .Net and fragmented. Everybody knows it? The way syntax is these days, everybody knows Java and C# and VB.Net because they're basically the same language. It is *not* any more portable for any sufficiently advanced application than anything else. Oh, and for your reference, the vast majority of .Net is actually open and has been submitted to standards bodies. The problem is that Microsoft advances it faster than the less-interested Linux people can port it so Mono always looks seriously inferior to what's available on Windows. What's going to be embarrassing is about three to five years down the line when Mono kicks Java's butt *and* it's still vastly inferior to what is available under Windows at that time. - Original Message - From: Vladimir Nesov [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Monday, May 26, 2008 8:48 AM Subject: Re: [agi] More Info Please On Mon, May 26, 2008 at 3:42 PM, Mark Waser [EMAIL PROTECTED] wrote: And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. Java is clear and understandable, with clean semantics so that you can refactor the code without breaking it and IDE knows its way around the codebase, has garbage collection, a bit of functional programming stance, is fast enough, has decent infrastructure and everybody knows it. A bit verbose, but I haven't found it to be a serious problem. If you don't need fragmented odd parts, it's sufficiently portable. If you decide between .NET and Java, tradeoff is more subtle, as they are essentially the same thing, except that .NET is not open and more bloated -- which is more important for a particular project? I guess openness outweighs is for an open-source project. -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
On Mon, May 26, 2008 at 8:33 PM, J. Andrew Rogers [EMAIL PROTECTED] wrote: Replying to myself, I'll let Mark have the last word since, after all, it is *his* project and not mine. :-) I assume that last sentence was sarcastic ;-) Of course, while Mark is a valued participant in OpenCog, it's not *his* personal project ... and the initial OpenCog system is C++, mainly tested in a Unix environment ... FWIW, my impression about the ubiquity of Unix servers in Silicon Valley agrees w/yours. This is obviously because Silicon Valley is currently obsessed with Web apps, and Unix is generally recognized as a better platform for the large-scale deployment of Web apps. And no, I don't feel like spending my whole evening looking up copious statistics to support this assertion. However, I'll quote just one simple stat: About 90% of the Internet relies on Unix operating systems running Apache, the world's most widely used Web server. from http://linux.about.com/cs/linux101/a/unix_win.htm I spent 10 minutes looking for data regarding developer productivity on Linux vs. Windows, but mostly just found bullshit about M$ vs. IBM, concerning fatally flawed, mock-scientific studies funded by Microsoft ;-p http://websphere.sys-con.com/read/46828.htm (note that this study, while conducted by M$ in an extremely dishonest way, is also really about IBM WebSphere rather than about Linux C++ programming, so it's not directly pertinent to this discussion anyway. Except to highlight the difficulties of doing this sort of comparison in a meaningful way.) OK ... enough of that ... back to doing useful work ;-) -- Ben --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
How is Java is *more* clear and understandable? The IDE is *known* to be inferior. Are you arguing otherwise. Every modern language has garbage collection. Java has a functional programming stance? No, it does not. Look at what you can do in the newest version of C# much less F#. If you believe that Java has functional programming, you don't have any clue what you are talking about. Java's infrastructure is *much* smaller than that of .Net and fragmented. Everybody knows it? The way syntax is these days, everybody knows Java and C# and VB.Net because they're basically the same language. It is *not* any more portable for any sufficiently advanced application than anything else. Oh, and for your reference, the vast majority of .Net is actually open and has been submitted to standards bodies. The problem is that Microsoft advances it faster than the less-interested Linux people can port it so Mono always looks seriously inferior to what's available on Windows. What's going to be embarrassing is about three to five years down the line when Mono kicks Java's butt *and* it's still vastly inferior to what is available under Windows at that time. - Original Message - From: Vladimir Nesov [EMAIL PROTECTED] To: agi@v2.listbox.com Sent: Monday, May 26, 2008 8:48 AM Subject: Re: [agi] More Info Please On Mon, May 26, 2008 at 3:42 PM, Mark Waser [EMAIL PROTECTED] wrote: And what is the value proposition of Java over any other language? It has no unique features. It's development is lagging. It's developers are defecting (again, look at the statistics). It's fragmenting just like Unix so it certainly isn't as portable as claimed. Java is clear and understandable, with clean semantics so that you can refactor the code without breaking it and IDE knows its way around the codebase, has garbage collection, a bit of functional programming stance, is fast enough, has decent infrastructure and everybody knows it. A bit verbose, but I haven't found it to be a serious problem. If you don't need fragmented odd parts, it's sufficiently portable. If you decide between .NET and Java, tradeoff is more subtle, as they are essentially the same thing, except that .NET is not open and more bloated -- which is more important for a particular project? I guess openness outweighs is for an open-source project. -- Vladimir Nesov [EMAIL PROTECTED] --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
On Mon, May 26, 2008 at 1:26 PM, Mark Waser [EMAIL PROTECTED] wrote: What I'd rather do instead is see if we can get a .NET parallel track started over the next few months, see if we can get everything ported, and see the relative productivity between the two paths. That would provide a provably true answer to the debate. There are also sane languages using the C++ object model (http://felix-lang.org/). And there is Mono, though I've heard it falls behind .NET considerably in terms of efficiency. The thing is, will multi-language sourcing be encouraged? (Will every contributor be allowed to write in his language, provided it compiles with the rest?) --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
On Mon, May 26, 2008 at 6:26 PM, Stephen Reed [EMAIL PROTECTED] wrote: Regarding the best language for AGI development, most here know that I'm using Java in Texai. For skill acquisition, my strategy is to have Texai acquire a skill by composing a Java program to perform the learned skill. I hope that the algorithmic (e.g. Java statement operation) knowledge that I teach it will be eventually portable to source code generation in machine language for the x64 architecture. One might hope that by initially teaching the register set, machine instructions, and cache-line characteristics for x64, the code generation might subsequently learn to perform many of the static and dynamic (e.g. execution profiling based) optimizations employed by the best compilers. This sounds good, though a nitpick... Given algorithmic knowledge, it should be possible, for example, to avoid the need for type inference, or escape analysis to determine which objects can be allocated from the stack versus the heap. By avoid the need for... you probably mean have the AI figure out how to do... by itself, thus avoiding the need to manually figure out the rules? --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
Good luck on your trip! Personally, I would rather start a debate page on virtually *anything* else. I will start a couple on other AGI issues elsewhere but language debates just aren't worth the time because most people have virulent opinions without the requisite knowledge to support them -- not to mention the fact that I wasn't arguing language but architecture and infrastructure. Check out the fact that you can now do functional programming in the newest version of C# and get back to me on how cool that is. What I'd rather do instead is see if we can get a .NET parallel track started over the next few months, see if we can get everything ported, and see the relative productivity between the two paths. That would provide a provably true answer to the debate. - Original Message - From: Ben Goertzel [EMAIL PROTECTED] To: agi@v2.listbox.com Cc: Linas Vepstas [EMAIL PROTECTED] Sent: Sunday, May 25, 2008 8:26 PM Subject: Re: [agi] More Info Please Mark, For OpenCog we had to make a definite choice and we made one. Sorry you don't agree w/ it. I agree that you had to make a choice and made the one that seemed right to various reason. The above comment is rude and snarky however -- particularly since it seems to come *because* you can't justify your choice. I would expect better of you. = = = = = = = Let's try this again. Get your experts together and create a short list of why C++ on Linux (and any infrastructure there that isn't immediately available under .Net) is better than the combination of all the .Net languages and all the infrastructure available there that isn't immediately available under Linux. No resorting to pseudo-democracies of experts, how about real reasons that YOU will stand behind and be willing to defend. This would be a reasonable exercise, but I simply don't have time to deal with it right now. I'm about to leave on a 2.5 weeks business / research-collaboration trip to Asia, and en route I hope to make some progress on mutating Novamente docs into OpenCog docs. No time to burn on these arguments at the moment. However, it might be worthwhile to create a page on the OpenCog wiki focused on this issue, if others are also interested in it. There could be a section on the page arguing the potential advantages of .Net for OpenCog; a section on the page arguing the intended advantages of the current approach; and other sections written by folks advocating other approaches (e.g. LISP-centric, whatever...). Perhaps if you create this page and get it started w/ your own arguments, others will contribute theirs and we can advance the debate that way. -- Ben --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?; Powered by Listbox: http://www.listbox.com --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] More Info Please
J. Andrew Rogers said: For open source projects, ideal environments play second fiddle to broad language support. Painless portability is the reason C is often selected over C++ for open source projects -- universality is that important. J. Andrew Rogers --- Would you please direct me to open source project web sites that may be of interest to AI projecteers, and a C++ compiler to use with them. I never found any comments on a good compiler to use on a Windows XP system (other than the microsoft compiler of course.) I am also looking for a web site that also has some introductory material on how one goes about working on a listed open source project. Jim Bromer --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] Goal Driven Systems and AI Dangers [WAS Re: Singularity Outcomes...]
Josh, Thank you very much for the pointers (and replying so rapidly). You're very right that people misinterpret and over-extrapolate econ and game theory, but when properly understood and applied, they are a valuable tool for analyzing the forces shaping the further evolution of AGIs and indeed may be our only one. No. I would argue that there is a lot of good basic research into human and primate behavior that is more applicable since it's already been tested and requires less extrapolation (and visibly shows where a lot of current extrapoloation is just plain wrong). But in the long run, slightly nicer programs can out-compete slightly nastier ones, and then in turn be out-competed by slightly nicer ones yet. For example, in a simulation with ``noise,'' meaning that occasionally at random a ``cooperate'' is turned in to a ``defect,'' tit-for-tat gets hung up in feuds, and a generous version that occasionally forgives a defection does better--but only if the really nasty strategies have been knocked out by tit-for-tat first. Even better is a strategy called Pavlov, due to an extremely simple form of learning. Pavlov repeats its previous play if it ``won,'' and switches if it ``lost.'' In particular, it cooperates whenever both it and its opponent did the same thing the previous time--it's a true, if very primitive, ``cahooter.'' Pavlov also needs the underbrush to be cleared by a ``stern retaliatory strategy like tit-for-tat.'' Actually, I've seen this presented as a good clock analogy as well . . . . slightly nicer out-competes slightly nastier but once it hits a nasty enough program, it loses. The true question is, how do you raise the niceness of *all* players and prevent defection -- because being the single bad guy is a winning strategy while being just one among many is horrible for everyone. So, in simplistic computer simulations at least, evolution seems to go through a set of phases with different (and improving!) moral character. So why do so many people think evolution favors the exactly the opposite? --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
Re: [agi] Goal Driven Systems and AI Dangers [WAS Re: Singularity Outcomes...]
On Monday 26 May 2008 06:55:48 am, Mark Waser wrote: The problem with accepted economics and game theory is that in a proper scientific sense, they actually prove very little and certainly far, FAR less than people extrapolate them to mean (or worse yet, prove). Abusus non tollit usum. Oh Josh, I just love it when you speak Latin to me! It makes you seem s smart . . . . But, I don't understand your point. What argument against proper use do you believe that I'm making? Or, do you believe that Omohundro is making improper use of AEFGT? You're very right that people misinterpret and over-extrapolate econ and game theory, but when properly understood and applied, they are a valuable tool for analyzing the forces shaping the further evolution of AGIs and indeed may be our only one. Could you please give some references (or, at least, pointers to pointers) that show the existence of the moral ladder? I'd appreciate it and could use them for something else. Thanks! BAI p. 178-9: Further research into evolutionary game theory shows that the optimal strategy is strongly dependent on the environment constituted by other players. In a population of all two-state automata (of which tit-for-tat is one), a program by the name of GRIM is optimal. GRIM cooperates until its opponent defects just once, and always defects after that. The reason it does well is that the population has quite a few programs whose behavior is oblivious or random. Rather than trying to decipher them, it just shoots them all and lets evolution sort them out. Chances are Axelrod's original tournaments are a better window into parts of the real, biological evolutionary dynamic than are the later tournaments with generated agents. The reason is that genetic algorithms are still unable to produce anything nearly as sophisticated as human programmers. Thus GRIM, for example, gets a foothold in a crowd of unsophisticated opponents. It wouldn't do you any good to be forgiving or clear if the other program were random. But in the long run, slightly nicer programs can out-compete slightly nastier ones, and then in turn be out-competed by slightly nicer ones yet. For example, in a simulation with ``noise,'' meaning that occasionally at random a ``cooperate'' is turned in to a ``defect,'' tit-for-tat gets hung up in feuds, and a generous version that occasionally forgives a defection does better--but only if the really nasty strategies have been knocked out by tit-for-tat first. Even better is a strategy called Pavlov, due to an extremely simple form of learning. Pavlov repeats its previous play if it ``won,'' and switches if it ``lost.'' In particular, it cooperates whenever both it and its opponent did the same thing the previous time--it's a true, if very primitive, ``cahooter.'' Pavlov also needs the underbrush to be cleared by a ``stern retaliatory strategy like tit-for-tat.'' So, in simplistic computer simulations at least, evolution seems to go through a set of phases with different (and improving!) moral character. Karl Sigmund, Complex Adaptive Systems and the Evolution of Reciprocation , International Institute for Applied Systems Analysis Interim Report IR-98-100; see http://www.iiasa.ac.at. there's a lot of good material at http://jasss.soc.surrey.ac.uk/JASSS.html Also, I'm *clearly* not arguing his basic starting point or the econ references. I'm arguing his extrapolations. Particularly the fact that his ultimate point that he claims applies to all goal-based systems clearly does not apply to human beings. I think we're basically in agreement here. Josh --- agi Archives: http://www.listbox.com/member/archive/303/=now RSS Feed: http://www.listbox.com/member/archive/rss/303/ Modify Your Subscription: http://www.listbox.com/member/?member_id=8660244id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com
[agi] Re: Mark Waser arguing that OpenCog should be recoded in .Net ;-p
One of my major points that we've lost in all this is that *every* piece should have clean, well-specified interfaces and APIs such that the language of one piece really shouldn't have an effect on the language of another. C++ runs just fine under .Net (albeit as unmanaged code). If I were to create a .Net fork, I would still have both C# and C++ versions and let developers use both and choose between them as necessary. The best way to start a .Net fork would be to just get the current C++ to compile and run under .Net. Then I'd start trying to help with the documentation . . . . then the C#. - Original Message - From: Ben Goertzel [EMAIL PROTECTED] To: [EMAIL PROTECTED] Cc: agi@v2.listbox.com Sent: Monday, May 26, 2008 10:10 AM Subject: Re: Mark Waser arguing that OpenCog should be recoded in .Net ;-p Mark, If it were possible to make both C# and C+ versions of the core (AtomTable and scheduler), and have both C# and C++ MindAgents run on both, then we would have a favorable situation in terms of allowing everyone to use their own fave languages and development environments. -- Ben G On Mon, May 26, 2008 at 7:18 AM, Mark Waser [EMAIL PROTECTED] wrote: While all the language wars continue, I'd like to re-emphasize my original point (directly copied from the original e-mail) -- One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. Seriously people, I'm not asking anyone to move away from what *you* are familiar with if you don't want to. I'm saying that maybe we should deliberately attempt to open this up so that we get *more* contributions and viewpoints -- at the admitted cost of needing better documentation and control -- which is really necessary anyways. My belief is that seeing what happens will cause a migration -- but I'm not invested in that belief and would be happy and see huge benefits either way. Mark P.S. Thank you for the forward Ben. - Original Message - From: Ben Goertzel To: [EMAIL PROTECTED] Sent: Sunday, May 25, 2008 8:29 PM Subject: Mark Waser arguing that OpenCog should be recoded in .Net ;-p This email thread on the AGI list really seems more appropriate for the OpenCog list... so I'm forwarding it here... -- Ben G -- From: Mark Waser [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:23 PM To: agi@v2.listbox.com Yeah, I'll certainly grant you that. The unfortunate problem is that people coming in late don't see the prior arguments and then engage in behavior that they believe is similar but entirely without the scientific rigor that you normally follow but don't always visibly display. Also, on the other hand, for certain classes of issues where you are less of an expert -- like in large-scale systems architecture (both software and conceptual), a number of your previously posted arguments are *I believe* at best questionable if not outright wrong. The fact that these assumptions aren't open for inspection at a convenient location is problematical if many other things are built on top of them and then they turn out to be wrong. We need to start to gather the best of these assumptions and debates in one place (probably a wiki) because long-term e-mail looping is not efficient. I've had this as a low priority thought for the AGI-Network but I think that I'm going to escalate it's priority substantially and see if I can't come up with a conceptual design for such a wiki (with scaled and isolated privileges) over the next couple of weeks. One of the things that I've been tempted to argue for a while is an entirely alternate underlying software architecture for OpenCog -- people can then develop in the architecture that is most convenient and then we could have people cross-port between the two. I strongly contend that the current architecture does not take advantage of a large part of the newest advances and infrastructures of the past half-decade. I think that if people saw what could be done with far less time and code utilizing already existing functionality and better tools that C++ would be a dead issue. -- From: Ben Goertzel [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 4:26 PM To: agi@v2.listbox.com Somehow I doubt that this list will be the place where the endless OS/language wars plaguing the IT community are finally solved ;-p Certainly there are plenty of folks with equal software engineering experience to you, advocating the Linux/C++ route (taken in the current OpenCog version) rather than the .Net/C# route that I believe you advocate... -- Ben G -- From: Lukasz Stafiniak [EMAIL PROTECTED] Date: Sun, May 25, 2008 at 5:24 PM To: agi@v2.listbox.com No, I believe he advocates OCaml vs. F# ;-) (sorry for leaving-out Haskell and others) -- From: Mark