I was wondering if I should invest my time in learning AI using Prolog. The decision is simple. If it will have any kind of benefit in my career as an iPhone developer, I would do so. Otherwise, I'll skip it.
So, is there any benefit in learning AI using Prolog for an iPhone developer? (especially for building games)
And, if so, ho开发者_如何学Gow???
Thanks!
There are two questions here:
- Should I learn AI by using Prolog?
- Would Prolog be useful to me as an AI language for iPhone?
I don't know about the second. I am not familiar with iPhone development. My guess is that it would be hard to find an efficient Prolog compiler for iPhone.
As for the first: Prolog is generally considered an AI language because it provides an easy way to write search routines. Prolog's native control flow is a depth-first search. It's cool, but AI does not begin and ends with a simple search loop. I would recommend that you learn AI techniques in a language-independent way, and then decide if Prolog will help you for your specific needs. It fits like a glove for some things, and does not fit at all for other things.
I'm a big fan of Prolog and I've done a good deal of Prolog hacking. However, Prolog is not a silver bullet for AI problems. It's simply a language in which writing search routines is simpler, that's all.
The very short answer here is no, the two issues are totally unrelated. There is no benefit at all to your career..
it's that simple.
The excellent answer from Bobby Tables gives you lots of info.
I really don't see any evidence that "Prolog" is central to the ongoing quest for AI in computing devices. If you said, in general (completely forget about the iPhone issue), "I want to be an AI researcher" I don't particularly see that you would rush to learn Prolog.
I can think of a number of well-known iPhone apps that use some form of lite AI (as the phrase is often used in the "AI-in-games" sense). In each of those apps, there is utterly no connection whatsoever to Prolog. in any way, at all.
FWIW (not much) I spend a few days a month "writing AI on the iPhone/Mac" and I for example have never been a Prolog programmer and have no connection to it at all.
it's worth noting that
- Saying "AI" is an impossibly broad field. Could you be more specific about what you want to do?
Who's your A.I. hero? Rod Brookes? What sort of "AI" interests you?
Hope it helps! The simple answer here is "no", you're on the wrong track.
The Prolog variation of Greenspun's 10th rule answers your question. A question which is broad enough to receive both "Yes it will benefit you as an iPhone developer" and "No it will not". The truth of the matter is that as you dive into Prolog (or any other new to you programming paradigm) you will benefit as a programmer, but the way you will benefit out from it is not predictable neither by you or by anybody else.
I have no experience concerning iPhone development.
I don't think that you will be able to employ Prolog when developing for iPhone. But since Prolog is declarative logic programming you will learn to think differently and this will be a benefit to you as a programmer in general.
Edit
Using Prolog is a completely different from of programming than the usual procedural way. It's similar to how functional programming (which seems to be somehow hip currently) is different, too.
By solving problems in a different way (or by being forced to solve them in differently) you get a better understanding of what programming/solving problems is about. You'll write better Objective C code after learning Prolog or Lisp.
Concerning academic AI: I suggest learning a functional language instead of Prolog, since Prolog is kind of a niche programming language suited for very special problems. The functional languages are a bit more all-round.
精彩评论