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

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

Reply via email to