On Mon, 10 Feb 2014, Yuhao Dong wrote: > Hi, > > I'm trying to decide between Racket and Go on writing my onion-routing > system inspired by Tor. Basically, a network server, involving lots of > long-lived connections that often pass large amounts of data. The thing > needs to be super scalable; I often find that these servers, although > network servers, often become CPU-bound doing encryption and > encapsulation of protocols, so I do have experience that this is not > "premature optimization"! >
[... many faults of Go-choice ...] [... many faults of Racket-choice ...] > Are there solutions to these problems? These aren't showstoppers by any > means, but could finally end my endless dilemma between the two langs :) For the reasons you wrote above, I wouldn't choose any of them. If you know C and or C++ very well, you could do this project in them. However, since this is networked code, there is a lot of stuff to remember, or you may later find many embarrasing security holes in your code. Besides, using certain C++ constructs (incorrectly or maybe even correctly sometimes) may lower your performance a lot. Of other languages mentioned by others, Erlang is perhaps a good choice but I don't know it at all, so I cannot comment. Ada doesn't look bad but I understand you may have either to go opensource or pay for Windows-capable compiler. In exchange you can proudly use "military-grade" language :-). Myself, I would also consider OCaml, mostly because I learn it myself and it may be the right middle ground - good compiler, high level, can do prototypes (AFAIK). I'm not sure how good it is wrt security holes in generated code. Java is out of the picture for me, because I know it well enough to dislike. Python is out, because while it looks good, I want to replace it with OCaml, so I wouldn't have a reason to write excess code. Haskell is out, because it feels too much like putting strangely shaped shoe on straight foot (and is not easy to optimize). All of the above is just MHO, so if you feel otherwise, don't bother about me, I am very subjective when it comes to choosing a language. Regards, Tomasz Rola -- ** A C programmer asked whether computer had Buddha's nature. ** ** As the answer, master did "rm -rif" on the programmer's home ** ** directory. And then the C programmer became enlightened... ** ** ** ** Tomasz Rola mailto:tomasz_r...@bigfoot.com ** ____________________ Racket Users list: http://lists.racket-lang.org/users