public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Peter Todd <pete@petertodd•org>
To: Ron <rdwnj@yahoo•com>
Cc: "bitcoin-development@lists•sourceforge.net"
	<bitcoin-development@lists•sourceforge.net>
Subject: Re: [Bitcoin-development] "Bitcoin codebase is actually really simple and readable."
Date: Wed, 23 Oct 2013 15:29:40 -0400	[thread overview]
Message-ID: <20131023192940.GA31497@petertodd.org> (raw)
In-Reply-To: <1382540527.4044.YahooMailNeo@web124501.mail.ne1.yahoo.com>

[-- Attachment #1: Type: text/plain, Size: 2599 bytes --]

On Wed, Oct 23, 2013 at 08:02:07AM -0700, Ron wrote:
> I feel that I must respond to the statements that 
> 1.
> the Bitcoin codebase is actually really
> simple and readable. 
> 
> 2.
> However remember that the implications of that
> codebase are anything but simple; there's lots of reasons to think
> Satoshi himself didn't understand Bitcoin all that well, even by the
> time he left the project.
> 
> On point one: if it was/is so readable, why hasn't it been documented better, if at all? 
> Why haven't the obscure names of important items been globally searched and replaced?
> Why are there still mixed formatting "styles" still in the code. I think it is the fear that C++ 
> is so brittle, that one change may bring the whole house of cards down.

The nature of Bitcoin is that in any language one change could
accidentally bring the whole house of cards down.

Also the time and effort it takes to review changes for maliciously or
accidentally added exploits.

> I feel that it is the language (C++) that is hindering the expression of ideas in the code.
> This goes to your point two about Satoshi's understanding. I think just the opposite:
> that he knew what he wanted but that C++ hindered him in expressing and implementing it.
> I think that if anything, C++ was what Satoshi "didn't understand all that well".
> 
> But then who does understand C++, really? See
> https://groups.google.com/forum/#!msg/comp.lang.lisp/7xCvdzijzgU/4xCFzLc3d5EJ 
> and the quote:
> Whenever I solve a difficult problem with C++, I feel like I’ve won a bar fight. — Michael Fogus
> 
> I don't think readability is attainable easily in C++. It requires intentionally writing so that 
> others may understand your code. How many programmers have ever done that? And this 
> is like swimming upstream in C++, where things are designed to be hidden! 

I'm making the statement that "the Bitcoin codebase is actually really
simple and readable." based on personal experience: for what the
reference client does - solve a previously thought unsolvable problem in
cryptography - the code is simple and readable. (try reading the OpenSSL
source-code sometime as a comparison) My experience has consistently
been that understanding what the code does is by far the easiest part of
understanding Bitcoin; understanding what the effect of what the code
does in terms of the system as a whole is at least another one or two
orders of magnitude more difficult.

-- 
'peter'[:-1]@petertodd.org
0000000000000000c9e44ec3cb95d6ea51b7e8d29901be451ce3a2bd7b0ed8ae

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 490 bytes --]

      reply	other threads:[~2013-10-23 19:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <mailman.282267.1382513922.4583.bitcoin-development@lists.sourceforge.net>
2013-10-23 15:02 ` Ron
2013-10-23 19:29   ` Peter Todd [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131023192940.GA31497@petertodd.org \
    --to=pete@petertodd$(echo .)org \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    --cc=rdwnj@yahoo$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox