[racket] Is racket suitable for such a project?

From: Tomasz Rola (rtomek at ceti.pl)
Date: Tue Feb 18 11:44:36 EST 2014

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.

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_rola at bigfoot.com             **

Posted on the users mailing list.