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 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 multiple flavors of Basic, Pascal, Assembly Language, > LISP, Prolog, C, C++, TCl, etc. > For experimental development, C++ is probably the worst choice. It's the > old first-attempt camel you use when you're trying to get speed and > object-oriented programming. The things that you *have* to worry about like > memory management and the errors that you can *easily* make are only offset > where speed is truly a concern. Except that development speed and iteration > is more important to this effort than sheer system speed. Except that the > maximum speed-up that you can get from C++ isn't that great -- and you only > get that if you are *really* good. Why aren't you using C++ only in really > core systems and something more appropriate for development elsewhere? Oh > yeah, because there is no really good way to easily integrate multiple > languages like when using .NET. > > If you were serious about speed, you'd be using straight C. If you were > serious about development time and ease of development, you'd be using a > better object-oriented language -- or better yet, in many places, a > functional language. > > Face it, you're using what you know and what you've *been* developing in -- > and it's obsolete technology . . . . Your systems people are not keeping up > as is REQUIRED to maintain your edge in the systems field. > > The newest version of C# now has virtually all of the functional capacity of > OCaml -- or, why not just use F# where appropriate? For web stuff, there's > far more infrastructure available under .NET than is available under any > *nix or Java and if you like the languages available on *nix, there's always > IronPython and Iron Ruby. > > I claim as FACT that general development under .NET is at least twice as > fast as in any other environment due to the existing tools and > infrastructure. > > Can you find anyone who is familiar with both .NET 3.5 and Linux/C++ who is > willing to claim otherwise? > > What is your reason for using C++? Other than the fact that porting your > application is going to be expensive, I'm not sure that you have a valid > one. And I'm reasonably sure that the advantages of porting will *rapidly* > provide a return on investment sufficient to offset the porting cost. > > So, please, back up your claim. Find some experts who are up-to-date to > explain why Linux/C++ is better. > > > >> ------------------------------------------- >> agi >> Archives: http://www.listbox.com/member/archive/303/=now> Modify Your >> Subscription: http://www.listbox.com/member/?& > ---------- > From: Ben Goertzel <[EMAIL PROTECTED]> > Date: Sun, May 25, 2008 at 6:32 PM > To: agi@v2.listbox.com > Cc: Linas Vepstas <[EMAIL PROTECTED]> > > > Mark -- > > About C++ versus C# ... > > This blog post and some of the more intelligent comments (e.g. David > Brownell's) summarize many of the standard arguments back and forth. > > http://blogs.msdn.com/ericgu/archive/2005/01/26/360879.aspx > > Linas Vepstas is a very experienced software developer who can likely > argue the practical advantages of C++ in the Linux environment, more > adeptly than I can. He is involved with OpenCog, as well. > > For a typical Web-front-end, DB-back-end software system, or a Windows > app, I would obviously advocate C# over C++. Although java, Ruby and > Python have a lot to be said for them for various applications as > well. For a real-time control system that involves complex algorithms > using large amounts of memory in complex patterns, I still maintain > that C++ is the best choice. The big advantages to C++ from an > OpenCog point of view seem to be the capability to do your own garbage > collection, the STL and Boost which are great libraries, and templates > in general including template metaprogramming. > > I'm aware .Net has evolved a lot in recent years, but so has the C++ > world, especially the Boost libraries which are extremely powerful. > > Regarding Linux versus Windows, this seems to be more of an > individual-preference thing. I have programmed in both, though in > neither case as a professional engineer (more as a research > programmer), and I found myself significantly more productive in Unix > environments. I like the command-line environment and I like piping > stuff from one program to another using shell scripts, etc. I won't > claim this is superior intrinsically to the Windows approach, but I > will claim that it's an extremely productive environment for those who > are accustomed to it. > > http://www.paulgraham.com/gh.html (section: more than money) > > Jonas Koekler's post here > > http://www.linuxquestions.org/questions/programming-9/advantages-of-being-a-linux-programer-instead-of-programing-in-windows-455895/ > > is also insightful > > Obviously these are not simple issues since there are smart, > experienced, insightful people arguing both sides of the dichotomy. > For OpenCog we had to make a definite choice and we made one. Sorry > you don't agree w/ it. > > > -- Ben > > > > ---------- > From: Mark Waser <[EMAIL PROTECTED]> > Date: Sun, May 25, 2008 at 7:15 PM > To: agi@v2.listbox.com > Cc: Linas Vepstas <[EMAIL PROTECTED]> > > > It is a good blog post. Now, how many of Dave Brownell's features are you > actually using? How easy are they for other developers to use? How much of > a problem is it and how long does it take to run problems down? So, get him > to argue. Citing his name is merely an argument from authority. Does he > have actual experience in anything else? For a real-time contrl system that > involves complex algorithms using large amounts of memory in complex > patterns C should be used over C++ every time. > ---------- > From: Mark Waser <[EMAIL PROTECTED]> > Date: Sun, May 25, 2008 at 7:36 PM > To: agi@v2.listbox.com > Cc: Linas Vepstas <[EMAIL PROTECTED]> > > > Continuing on from a mistaken send . . . Boost is not particularly powerful. > Using Boost involves a *lot* of work because the interfaces are not > particularly good. Of course, the real question is -- why are you arguing > any of this when you could be also using C++ and Boost from .Net? Not that > I would since previous e-mails on the OpenCog list haven't been hapy with > Boost . . . . > > So . . . I'm glad you believe that you're aware .Net has evolved. How has > it evolved? Why do you keep bringing up this old dead horse? I keep > deliberately removing it since it is as you say "an individual preference > thing" -- except in terms of what is available under it and all sorts of > market share arguments (which I actually deliberately removed from MY last > e-mail so as not to cloud the issue with random facts like you're doing). > There are people arguing both sides of the global warming issue as well. > Can't we argue this from REASONS instead of authority? 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. > > I've seen a lot of speculation on the OpenCog list about using this or that > or the other thing and I've seen *a lot* of stuff dismissed and virtually > nothing embraced. I mainly mention this because I'm actually surprised at > how little seems to be reusable (i.e. less than I would have guessed). > > So . . . . how about it? Real reasons or more random sidetracks and > insults? > ---------- > From: Ben Goertzel <[EMAIL PROTECTED]> > Date: Sun, May 25, 2008 at 8:26 PM > To: agi@v2.listbox.com > Cc: Linas Vepstas <[EMAIL PROTECTED]> > > > Mark, > 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 > > > > > --~--~---------~--~----~------------~-------~--~----~ > 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 > -~----------~----~----~----~------~----~------~--~--- > > -- Ben Goertzel, PhD CEO, Novamente LLC and Biomind LLC Director of Research, SIAI [EMAIL PROTECTED] "If men cease to believe that they will one day become gods then they will surely become worms." -- Henry Miller ------------------------------------------- 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=8660244&id_secret=103754539-40ed26 Powered by Listbox: http://www.listbox.com