Which Language & Why For A Multithreaded Bot?

I'm no programmer but my dad has run software companies over the years and has employed a fair few programmers and little bits have sunk in :p I didn't think C++ was object oriented and thought it has object oriented features and this is why people call it an intermediate language because it is easier than C but harder than object orientated languages like php, VB.net, Java etc.

Like i said, i am no programmer but I have heard loads of these discussions before and the general consensus normally is that if it needs to be fast, build it in C or C++. If it doesn't then build it in a simple object orientated language like VB.Net. An object orientated program is far less buggy and the programmers are cheaper and easier to come by as it is easier. Not a huge problem if the program is small but for longer programs if you are not careful, you spend more time fixing bugs than building the program.

C++ isn't OOP as it was described and envisioned by Alan Kay, Look at Smalltalk which is a truer OOP lang, C++ definitely has some OO elements though.
 
To contribute something new...

You might also consider Go, though I'm not sure how easy it would be for you to find someone with Go experience.

To summarize from the wikipedia page and the Go website (I'm not allowed to post links), Go is a compiled, garbage-collected, concurrent language developed by Google. The Go website claims that Go makes it easy to build simple, reliable, and efficient software. Check out some of the demos on their homepage. Some of them use concurrency.

Go has been getting a lot of hype on all of the nerd sites :) ... I'm a web developer (php), and have been wanting to try out Go for a while, but I haven't had a project to try it out on. If I was about to start work on your project, I'd Go for it :p

My advice would be to skip Go for the time being. Don't get me wrong; Go is an insanely great language with a bright future, but it is still too young.

I'm currently developing a prototype where I run with about 500 simultaneous "goroutines" (think of them as lightweight threads) each creating a HTTP request to a remote server. The entire program handles ~1000 connections/second while using no more than 128MB memory. And I haven't even started optimizing it yet.

However, because it is such a young language, common libraries have yet to be written. There is no ORM to help you with your persistence layer, and HTML parsing is nearly impossible. Also, not a lot of delopers know of the language, which will make difficult and expensive to find support.

Java or C# would probably be the safest bet, with great libraries and an abundance of cheap developers.
 
Back
Top