Your choice of language for server emulator development?
Please don't turn this into "X is better than Y!" flame war. This question came up when I began to plan actual development of an emulator of mine.
What programming language would you use if you began writing a server emulator?
Why? Do you know it better than any other language or does something make it more suitable for the job? Other reasons?
I would most likely use either C++ or Go.
Although Go is a young language, it's stable enough. The quick compile time is very noticeable in the long run because building an emulator can often be trial and error. Concurrency makes handling multiple clients a breeze. Also there already are many useful libraries for server applications.
C++ is my other choice because I'm familiar with it and for some odd reason I like it. Templates, hooking and other stuff is pretty nice to have in some cases. Placing whole encryption routine in an __asm block with only few modifications is hilarious too.
// Edit:
Forgot one important thing. Cross-platform programming is a great thing. C++ requires a bit of extra work and carefulness to be cross-platform though.
Re: Your choice of language for server emulator development?
For server-side only, I recommend Java or C++.
Re: Your choice of language for server emulator development?
If I knew it I'd go for C++, but I don't so I shouldn't probably shut my mouth o_O. Right now I'd work with Java, simply cause it's the only language I know.
But in your case I'd go with C++ (perhaps if you want to form a team it's more likely to find people knowing C++ then Go). Just my 2 cents o_O.
Re: Your choice of language for server emulator development?
Quote:
Originally Posted by
timebomb
For server-side only, I recommend Java or C++.
Any particular reasons?
Quote:
Originally Posted by
Lapje
If I knew it I'd go for C++, but I don't so I shouldn't probably shut my mouth o_O. Right now I'd work with Java, simply cause it's the only language I know.
But in your case I'd go with C++ (perhaps if you want to form a team it's more likely to find people knowing C++ then Go). Just my 2 cents o_O.
Correct, there aren't many Go programmers in emulation scene but as a C++ programmer I have to say it's pretty damn easy to program in Go. There are only few things that take a while to get used to.
Lack of competent IDE is pretty much the only downside I can think of.
I haven't encountered any performance issues with Go compared to C++. Sure C++ should be faster in general but the difference is so small it doesn't matter. It's easier and faster (development-wise) to scale horizontally with Go which is a great thing for any serious server application.
Re: Your choice of language for server emulator development?
The main reason I would not go for Go is because that technical support (if you have any issues) is far better with Java or C++. On top of that, Go can not match the amount of 3rd party libraries both Java and C++ have.
I have seen several different game emulators use Java. It is cross platform, and has great, and in a way, somewhat 'simplistic'[possibly not the best use of terminology] networking capabilities. It is great for networking and servers.
C++ is obviously one of my top choices because it is C++. As someone recently said to someone else (who was mocking C++ and in favor of C#) in an IRC channel... it claims to do everything because it does.
Re: Your choice of language for server emulator development?
Quote:
Originally Posted by
timebomb
The main reason I would notgo for Go is because that technical support (if you have any issues) is far better with Java or C++. On top of that, Go can not match the amount of 3rd party libraries both Java and C++ have.
I have seen several different game emulators use Java. It is cross platform, and has great, and in a way, somewhat 'simplistic'[possibly not the best use of terminology] networking capabilities. It is great for networking and servers.
C++ is obviously one of my top choices because it is C++. As someone recently said to someone else (who was mocking C++ and in favor of C#) in an IRC channel... it claims to do everything because it does.
Note that Go is designed with server applications in mind. I seriously can't think of any library one could need in average server that isn't either in standard libraries or very easily available.
I just started prototyping my server with Go and possibly porting to C++ or something later.
Re: Your choice of language for server emulator development?
it seems pretty clear that you want to program in Go, I have no knowledge or experience in Go, but you have made it apparent that you like that language.
If you want to do it in go that badly, maybe you should just Go with it (pun intended)
#ontopic in the real world C++ or C# are probably the most practical choices.
Re: Your choice of language for server emulator development?
By far, because it shares many general ideas between many languages.. its easy to pick up on (Although can get complicated in certain networking programs). And finding support is much easier.. many forums out there dedicated to helping people out.
If you want to use Go feel more then welcome, good luck getting support on it though.
Re: Your choice of language for server emulator development?
For the server I'd use Java because that's the only programming language I've ever bothered to learn decently. I tried C++ for a couple of weeks, definitely not my thing, so Cplusplus is excluded.
For the client, heck idk. Perhaps python.
Re: Your choice of language for server emulator development?
C++ today, tomorrow, and forever
Re: Your choice of language for server emulator development?
Re: Your choice of language for server emulator development?
I was developing one in C# for a while, simply because I love C#. If I had to choose now, though, I'd pick Vala. It's a higher-level language like C# (and the syntax is very similar), doesn't rely on a framework or VM (so is cross-platform), is compiled to native code via C (provides a performance boost over interpreted languages), and has access to a huge collection of pre-existing C libraries (provided that you write a very simple mapping file).
@anyone that suggests Java: You are out of your bloody mind. The Java VM, compiler, and language are terrible, terrible things.
Re: Your choice of language for server emulator development?
Re: Your choice of language for server emulator development?
Quote:
Originally Posted by
Miggs
I would use Ruby :D
Ruby is an awesome language, but the overhead would be unbearable for something like a game server :P You probably already know that, though...