Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
But perhaps all this talk about which language suits better is complete nonsense and one should program in that language he feels most comfortable with. Perhaps - as Ive even read somewhere at perlmonks - the language itself is not so important as the libraries it comes with. And most probably the used language for a given task is not half as important as the skills of the person using it.

I think these points are the most relevant, for while I do not know much about AI programming (and certainly know less about Perl than tilly1), I believe that computer languages are just tools. The most important thing is learning to use them well.

Personally, I try to avoid "which language is better for whatever" (especially ones that show up here). Frequently, such discussions devolve into flame wars. While it's educational to learn what others think of a language and how they use it, each of us has different preferences and find different things appealing. Thus, such discussions will inevitably require a certain amount of "agreement to disagree" about various points. (I think it's safe to assume that most of us know how easy it is to find that flexibility on the other site you mentioned.)

I do think that certain languages are more suited for certain tasks. For example, I probably wouldn't use a Perl CGI script to play Solitaire. It could be done, but that's not my point. Most tasks can be distilled into things that each major language does decently, if not well. Specifically, you have data that needs to be stored, processed, and reported on. Frequently, the challenge is determining how best to assemble the language's syntactic tools into a workable solution for the task at hand. Once you know how to build certain things in one, you can certainly build similar things in others. The trick is learning each language's strengths for doing so.

For example, it's trivial to build database applications in many languages, however, nearly all such applications require certain skills, such as normalization2 and/or SQL of some form. Thus, time spent learning these skills is well invested, even if you plan to eventually replace your original implementation with another written in a different language.

Since AI programming is, at its heart, the art of automated decision making, perhaps it would be best to use the language you're most comfortable with to prototype a rule-processing core that works for the project you have in mind. I know I'd love to see something where I could define a series of conditions, add in some "fudge factor" that lets the software do more than I originally envisioned, and then let it loose on various annoyances. For example, I'd love to see something I could run against my mailboxes that would automatically--and intelligently--separate the SPAM from the real messages.3

Having said all that, Prolog was once touted as good AI development tool. Perhaps that's worth a look.


1 - Questions regarding a monk's personal details should be directed to the monk in question, either via email or private /msg. Personally, I don't see how a monk's gender is germane to the discussion. The information is not going to be more valid if they're male, female, or whatever. Not trying to be too militant about this, but it's something I'm sensitive to. Some monks consider such details private and I don't believe it's up to the others to second-guess those choices. Besides, we've already lost members over similar discussions and I'd rather not see that recur.

2 - Ever notice how few people seem to know how to normalize databases? Or, for that matter, how to separate business rules from presentation? Yet, these two skill sets can be applied to most projects developed for business use.

3 - I actually have this on my personal project "to do" list, along with a dozen other things that I plan to get to "soon." (Yes, I know there are things out there already, but I keep hoping that someone will come up with the definitive version before I end up teaching myself the idiosyncracies of all the cruft I get in my daily dose.)

In reply to Re: How good is Perl for AI? by footpad
in thread How good is Perl for AI? by PetaMem

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and all is quiet...

    How do I use this? | Other CB clients
    Other Users?
    Others making s'mores by the fire in the courtyard of the Monastery: (4)
    As of 2018-05-25 21:18 GMT
    Find Nodes?
      Voting Booth?