Any tech stack will work. That being said, I'd optimize for something that has enough power for NLP, but still makes it easy to work with sometimes unreliable chat services. Javascript and Python are both common options, Go and Elixir would be newer more experimental choices.<p>There is nothing about a chatbot like framework that precludes any given technology.
There are quite a few good options out there. I've used two and they were both good. If you want to use the same bot for multiple platforms (Facebook, Slack, embedding on a page), I suggest Microsoft's Botbuilder Framework. The only caveat is that the ability to connect to multiple platforms requires you connect to Microsoft's (free) bot framework service.<p>The Bot Framework SDK comes in several flavors and is fairly robust: <a href="https://dev.botframework.com/" rel="nofollow">https://dev.botframework.com/</a><p>Sample code: <a href="https://github.com/Microsoft/BotBuilder-Samples" rel="nofollow">https://github.com/Microsoft/BotBuilder-Samples</a>
You can use any stack you want. But people mostly prefer node because of api.ai's documentation in node and online help from forum,stackoverflow questions of api.ai using node.js