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

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?

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.

So, get him to argue. Citing his name is merely an argument from authority. Does he have actual experience in anything else?

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.

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.

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

On Sun, May 25, 2008 at 5:59 PM, Mark Waser <[EMAIL PROTECTED]> wrote:
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...
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.



----- Original Message -----
From: "Ben Goertzel" <[EMAIL PROTECTED]>
To: <agi@v2.listbox.com>
Sent: Sunday, May 25, 2008 4:26 PM
Subject: Re: [agi] More Info Please
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.

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


-------------------------------------------
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 | Modify Your Subscription



--
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/?&;
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=8660244&id_secret=103754539-40ed26
Powered by Listbox: http://www.listbox.com

Reply via email to