[Computer-go] CGOS future

Darren Cook darren at dcook.org
Fri Apr 3 02:36:27 PDT 2015


> BTW I am a Linux guy true and true since 1994.  But I am DAMN tempted
> to write it in C#.

I use mono on linux [1], and c# is an OK language for this kind of
thing. RestSharp is an interesting library for web service *clients*,
but of course you are writing a server.

Lots of C++ programmers on this list, and C++11 is now quite a safe and
productive language. But socket support sucks. Asio is the best choice,
and it is not at all easy to use or debug; I feel I might just go for
low-level BSD sockets next time. At least then there is a huge body of
working code.

If it was me, personally, I'd hack together a first version in PHP,
using mysql as a DB. You would not believe how many
"hacked-together-first-versions" in PHP are still running 5 or 10 years
later, because it is good enough.

But node.js might be a better choice. It handles multiple
connections/threads better than PHP, it has ready to go web server
modules and tons of example code, it is fashionable, and there are lots
of jobs for people who can show they've worked on a node.js
server/client project.

> My goal is to move away from interpreted languages and release SOLID
> .exe or bin for unices.

Are you talking about servers or clients there?

Always go for a well-known interpreted language for a server-side
application, unless you are CPU or memory bound. (And if you are you,
you've done something very wrong: Facebook reached half a billion active
users running a PHP back-end; Wikipedia too...)

And using a clearly defined http web server protocol, probably built
around json, and then the clients will take care of themselves: all
modern languages, except C/C++, come with a good web client library, and
a good json library. Just hand out a helper C library, perhaps with a
C++ wrapper API.

Darren

[1]: I then With MonoDevelop, which is actually rather good, but with a
few minor irritating bugs that it seems will never get fixed.




More information about the Computer-go mailing list