[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [GNUnet-developers] Why old-school C?

From: Christian Grothoff
Subject: Re: [GNUnet-developers] Why old-school C?
Date: Wed, 08 Jul 2015 21:50:29 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0


Just to cut this short: We have gnunet-java, gnunet-python (admittedly
not much there yet), some people started gnunet-ruby and gnunet-rust.
GNUnet is a multi-process system, so each service can be written (or
re-written) in any language.  You fancy Go or Haskell or OCAML instead,
go for it.

Just make sure that:

1) if you re-write an existing service or client library, you provide /
   use the same IPC API on the TCP / Unix domain socket port and use the
   same protocol between peers. That way, you can replace any (or all)
   components with alternatives in any language you fancy.
2) if you re-write general APIs (util) or libraries, we advice that you
   try to keep similar names for equivalent operations, so that it is
   easy for developers to switch between the different language
   bindings.  gnunet-java is a good example for how to do this.
3) don't expect C hackers to switch to Haskell, or Java developers to
   Go, the resulting loss of personal productivity is unlikely to work
   out in anybody's favor.

What you can expect is that if you produce a useful subsystem in any
(libre) language in a way that fits with the rest of the architecture,
we'll be happy to take it.

Furthermore, if you re-write any existing subsystem in a way that is
clearly superior, we'll simply swap one binary for another and everybody
will be happy.  GNUnet is primarily a (large) set of protocols ---
between peers and between processes, and I don't care too much about
which (libre) language the components are written in, as long as they
are written well (and perform reasonably well).

So please, go ahead, make it safer (even though I personally think the
choice of language is not the most critical security issue today, I do
think that we must facilitate contributions from hackers that are not
versed in C or just have a different preference. So I would encourage
this to broaden the contributor base more than for security reasons.
Still, the result is the same ;-).

Happy hacking!


On 07/08/2015 09:16 PM, Ed Baskerville wrote:
> My question: why is GNUnet development being done in traditional C style, 
> with raw pointers to structs, dereferencing, manual memory copying, etc.?
> A related question: how hard would it be to make it safer?

Attachment: signature.asc
Description: OpenPGP digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]