The obvious fly in the ointment is that a lot of technical work is
done on Unix, so an AI project really wants to keep that option open
if at all possible. Is Mono ready for prime time yet?

No. Unfortunately not. But I would argue that most work done on *nix is not easily accessible to or usable by other work.

Why do you say that? Python code is concise and very readable, both of
which are positive attributes for extensibility and maintenance.

Yes, but not markedly more so than most other choices.

The problem is that Python does not enforce, promote, or even facilitate any number of practices and procedures that are necessary to make large complex project extensible and maintainable. A person who knew all of these practices and procedures could laboriously follow and/or re-implement them but in many ways it's like trying to program in assembly language. Quick and dirty (and simple) is always a trade-off for complex and lasting and extensible.

I always hate discussion about languages because to me the most advanced versions of Basic, Pascal, Object-Oriented C (whether ObjectiveC, C++, or C#), Java, etc. are basically the same language with slightly different syntax from case to case. The *real* difference between the languages is the infrastructure/functionality that is immediately available. I sneered at C++ in an earlier message not because of it's syntax but because you are *always* burdened with memory management, garbage collection, etc. This makes C++ code much more expensive (and slow) to develop, maintain, and extend. Python does not have much of the rich infrastructure that other languages frequently have and all the really creative Python work seems to be migrating on to Ruby . . . .

As you say, I really don't want to choose either language or platform. What I want is the most flexibility so that I can get access to the widest variety of already created and tested infrastructure. Language is far more splintered than platform and each language has a rational place (i.e. a set of trade-offs) where it is best. .Net is a great platform because it provides the foundations for all languages to co-exist, work together, and even intermingle. It's even better because it's building up more and more and more useful infrastructure while *nix development continues to fragment into the flavor of the month. Take a look, for example, at an the lambda closure and LINQ stuff that is now part of the platform and available to *all* of the supported languages. Now look at all the people who are re-implementing all that stuff in their project.

The bad point of .Net is that it is now an absolute, stone-cold b*tch to learn because there is so much infrastructure available and it's not always clear what is most effective when . . . . but once you start using it, you'll find that due to the available infrastructure you'll need an order of magnitude less code (literally) to produce the same functionality.

But I'm going to quit here. Language is politics and I find myself tiring easily of that these days :-)

</language *opinion*>


----- Original Message ----- From: "Russell Wallace" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Friday, October 24, 2008 12:56 PM
Subject: **SPAM** Re: [agi] On programming languages


On Fri, Oct 24, 2008 at 5:37 PM, Mark Waser <[EMAIL PROTECTED]> wrote:
Instead of arguing language, why don't you argue platform?

Platform is certainly an interesting question. I take the view that
Common Lisp has the advantage of allowing me to defer the choice of
platform. You take the view that .Net has the advantage of allowing
you to defer the choice of language, which is not unreasonable. As far
as I know, there isn't a version of Common Lisp for .Net, but there is
a Scheme, which would be suitable for writing things that the AI needs
to understand, and still allow interoperability with other chunks of
code written in C# or whatever.

The obvious fly in the ointment is that a lot of technical work is
done on Unix, so an AI project really wants to keep that option open
if at all possible. Is Mono ready for prime time yet?

And as for Python? Great for getting reasonably small projects up quickly
and easily.  The cost is trade-offs on extensibility and maintenance --
which means that, for a large, complex system, some day you're either going to rewrite and replace it (not necessarily a bad thing) or you're going to
rue the day that you used it.

Why do you say that? Python code is concise and very readable, both of
which are positive attributes for extensibility and maintenance.


-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: https://www.listbox.com/member/?&;
Powered by Listbox: http://www.listbox.com





-------------------------------------------
agi
Archives: https://www.listbox.com/member/archive/303/=now
RSS Feed: https://www.listbox.com/member/archive/rss/303/
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=8660244&id_secret=117534816-b15a34
Powered by Listbox: http://www.listbox.com

Reply via email to