[racket] Is racket suitable for such a project?
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_rola at bigfoot.com **