AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Chatbot Computer Programming Languages
 
 

I’ve programmed in assembler, basic, visual basic, SQL, C and C++. Object oriented languages, like C++, highly reflect the world is organized and that appealed to me. Still a newbie in php, javascript, html and css. But I find my way out and in most of the case in rely on Arthur. It seems to me however that ‘new’ languages can’t get that level of objectorientation anymore. And I’m actually waiting for the first object oriented database language (replacing SQL).

And my first computer was a Commodore 64 (after a year of programming Tandy TRS80 at school). Peek, poke, everyting!

 

 
  [ # 1 ]

Oh I love “my first programming language was” type of conversations, I love when they occur at work lol . . .My first was back in 1985 . .. I learned “AppleSoft Basic” on my Apple ][+ - then, believe it or not, I jumped right into assembly !!  Then it was C, then Pascal, then C++, then assembly, Perl, Java, SQL, pretty much in that order.

Now me being an A.I. fanatic like obviously everyone involved in this website, you would think I would have learned Lisp—except I really don’t believe that kind of strict logic will be what it takes to win a Turing test with a program.  It must be much more flexible.  For example, in propositional logic, boolean ‘variable’ cannot be both true and false at the same time.  But in language we do thinks like that “Is fire a good thing or a bad thing?” , “Well, it’s both good and bad”,  “What??!!”,  “Well, good to keep you warm, bad if it destroys your house”.  I believe a system must handle a statement being both true and false simultaneously - and through later discussion, deduce and understand and learn to differentiate why, in some cases, the statement is true, and sometimes false.

 

 
  [ # 2 ]

programmed Pascal as well, but not able to write any statement anymore, and learned LISP from a book on university, but I can’t remember I ever used it.

 

 
  [ # 3 ]

Victor said, ‘I highly recommend learning C.  As a friend of mine says, “Write your programs in C, the way God intended.”’

I attended a Microsoft event for Windows 7 and I asked the question, “Has Microsoft learned its lesson, not to base Windows 7 on .NET as it did Vista?” and that question caused a fight or flight brain response from the Microsoft presenter who answered, “Windows is NOT programmed in .NET at all… It is programmed in C with very little C++”  which surprised me so I followed up by asking the presenter, “How do you know that?” and he answered, “I asked the development team.”

 

 
  [ # 4 ]

While I love this discourse regarding various programming languages, I can’t help but feel that we’re hijacking Chuck’s thread (where IS Chuck, anyway?). Unfortunately, I don’t see any sort of “Off Topic” forum section, so I have no clue as to where we might move this part of the discussion. Hey, Erwin! Got any ideas? smile

(and yes, I know that I’m as guilty as anyone else of thread hijacking)

 

 
  [ # 5 ]

Hey Dave,

You just had a great idea.  How about, “Chatbot Computer Programming Languages” ?

Whenever anybody asks me, “How do I make a chatbot?” my first question to them is,
Which Computer Programming Language?

Chuck has my full attention on topic.  I just thought Victor’s comment was really cool !

 

 
  [ # 6 ]

Thanks 8PLA.  Has anyone done any chatbot engine development in Python?  I hear a lot about it, and also there is a free NLP toolkit written in python.  I’ve never used it, and I was just wondering, does anyone know both Perl and Python that has any comments on which they prefer?  But I can’t imagine that there is a better scripting (dynamic) language than Perl!  As for “strictly typed” languages, yeah, I still hold to C !

 

 
  [ # 7 ]

It’s nice to see this “thread” finally finding a home.

As to my “firsts”,  I was “lucky” enough to be able to get a Heathkit version of the Altair computer, but I could never get it to work. I’d like to blame faulty parts, but more likely it was a faulty technician. wink My first REAL computer (real, in that it actually worked) was a TRS80. I had plans to fit it into my 1963 Ford T-bird (my first car), to collect various data and to display such things as vehicle speed, engine RPM and fuel mileage. Unfortunately, I never got around to building the vehicle interface. I had a test box that had 2 potentiometers to simulate engine RPM and vehicle speed, and the display did a fair approximation of fuel economy, just based on the two variables, though to make it more accurate I would need a pressure transducer to measure engine vacuum. Sometimes I think about the things that I used to do for fun and I want to kick myself for not following up on them.

Anyway, the programming languages I’ve learned over the years are BASIC (TRS80, Atari BASIC, MS BASIC), 6502 Assembly, FORTRAN (though I don’t remember a lick of that one), Visual BASIC 6 and VB2008. Web languages include HTML, CSS, PHP, PERL (I hate PERL) and Javascript.

 

 
  [ # 8 ]

Hi,
I’ve written very simple chat programs (4 to 20 hours of work) in the following languages:

* QBasic - simple language…great for learning to do this
* VB6     - easy Windows interface for chatting
* Excel(VBA) - easy flat database using worksheets, VBA forms for nice Windows interface
* C++ - nothing is easy…but I hear it’s powerful. =)

I’m writing Walter in C++. I would just as well program in Excel but I’m trying to further my C++ skills so I can make better designed video games.

For robotics and interface, I’ve built an optical isolation circuit to connect a LPT parallel port on a PC to communicate with a PLC (programmable logic controller). The PLC was then programmed to control a training robot arm. It was a bit overkill but the interface was fun to design and build with my classes. I taught an industrial electrician apprenticeship program for seven years.

Regards,
Chuck

 

 
  [ # 9 ]

I’ve seen those types of projects done on various computer platforms, and it looked like a lot of fun to do, but never did tackle that. I even saw one that hooked an Apple IIe to a Radio Shack robotic arm, and could play chess. That was pretty awesome. smile The operator would type in the move into the screen (e.g. Knight 2 to Queen’s Bishop 3 - Can’t remember the shorthand used), and the arm would move the piece in the correct manner. The program remembered where each piece was, and could warn if the move was an illegal one. One of my professors had built the interface, and wrote the program, and would show it off every time there was a lesson that corresponded to a function it used.

 

 
  [ # 10 ]

Ya, that *IS* pretty amazing Dave, I would LOVE to have a robotic arm to play chess since I love chess . . and love robotics. 

May I ask a question however.    Does everyone here say “I’m writing my chatbot <name> in <language>” ?

For example, Chuck said he is writing Walter in C++.

My *first* chat bot *personality* is going to be called “Emma” - and she will be “written” in a huge set of CLUES rules.

CLUES being my chatbot engine itself - with it’s own syntax of rules.

Is everyone just writing there chatbot directly in a language ?  Or is anyone doing what I am doing. . . that is, making a very distinct separation between the ENGINE and a “personality”  or “instantiation” of that engine.

 

 
  [ # 11 ]

Victor, I have VERY good news. Today, really today, 3 hours ago, I’ve shot a video of two robots playing chess. One robots was autonomous, the other was copying the movements of a human. They we’re playing against each other.

I’ve first have dinner, than I’ll post it to the website. It was sooooo cool!

 

 
  [ # 12 ]
Victor Shulist - Jul 14, 2010:

... Does everyone here say “I’m writing my chatbot <name> in <language>” ?

For example, Chuck said he is writing Walter in C++.

...

I’m not 100% certain what the others are referring to when they say that, but here’s what I mean:

Morti is a complex bot program consisting of many levels of code. The interface, or “front end”, is what the user interacts with, and that’s written in PHP.

Below that, there’s the database language used to interact with the storage engine and to store and retrieve information. That’s written in generic SQL, and interacts with a mySQL database.

At the root of the entire structure is Morti’s response tables, and that’s written in AIML.

So when I say that I’ve programmed Morti in PHP, what I’m REALLY saying is that I’ve written him in PHP, with mySQL and AIML in support. But I’m too lazy, so I just refer to the interface.

I’d imagine that the others here are doing the same, more or less, but I’m not certain. smile

 

 
  [ # 13 ]

Hi,
To be a bit more specific I could write the following.

The application (in C++) that I am creating is called “Carolina”.  Carolina is an program that simulates a virtual world and contains a virtual main character ‘Walter’.  Multiple threads are used to manage the world, Walter, and chatting.

Walters personality, physical and emotional attributes, experience, education, etc. is determined by a collection of data files.  Walter is constrained by his world via files that contain various heuristics . At present the file formats are simple CSV files.

The world editor is currently a Visual Basic program that allows me to generate various world features. It will grow as needed to support world development. (similar to my game editors)

Graphics is simply a DOS console (with various colors). In the future I hope to employ DirectX to present the human user a 2D top-down perspective of Walters world.

Walter (the concept) will be unique in several ways. My plan is quite lofty and most likely ‘unobtainable’...but it represents my long-term objectives.

* Abstract symbolism.  All actions and objects may be reduced to abstract meanings. E.g. a stick, sword, bat, arm are used to ‘contact’ something [A contacts B].  This will allow Walter to ‘improvise’ in the field…such as fending off a bear attack with whatever might be lying about.
* Walter believes he is actually a human. In fact he has vital signs that vary based upon his health and activities. He thinks and acts independent of chatting.
* Walter can relate to the ‘real’ world (data feeds from the outside via internet).
* Walter will travel ‘virtually’ from NC to the site of a future Turing test - I hope one day! =)
* Primary communication will be via ‘text messaging’ on a virtual cell phone or computer terminal (Walter’s perspective).
* Human (myself) will be able to interact with Walters environment in order to study his behavior. E.g. introducing dangerous lightning, annoying flies, heavy rain, etc.  Cruel maybe…but I can always erase his memory. =)

Regards,
Chuck

 

 
  [ # 14 ]

I don’t know that I would erase Walter’s memory, Chuck. We, as human beings, are often more positively shaped by adversity, than any other circumstance. None of us here would be who we are, if not for the trials and challenges in our lives. I, personally, have suffered some pretty tragic things in my life, but they have helped to mold me into the person I am today, and thus, wouldn’t give those experiences up. Would I want to re-live them? H**L no! But They are part of who I am, so…

 

 
  [ # 15 ]

Dave,

I can think of scenarious I wish to subject Walter in order to test and tweak his responses and design. So, if I introduce 5 hungry lions into the state park…and he survives…then I would expect there to be some negative impact.  Other scenarios I’ve thought about are tornados, forest fires, loss of a close pet or friend, gun shot wounds or broken bones, angry militants, zombies, killer bees, ghosts, angry girlfriends, etc. =)

I’m going to let Walter ‘forget’ about some of these…at least during the early design and development phase.  I’m not that evil…or am I? =)

Regards,
Chuck

 

 1 2 > 
1 of 2
 
  login or register to react