public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Ron <rdwnj@yahoo•com>
To: "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 08:02:07 -0700 (PDT)	[thread overview]
Message-ID: <1382540527.4044.YahooMailNeo@web124501.mail.ne1.yahoo.com> (raw)
In-Reply-To: <mailman.282267.1382513922.4583.bitcoin-development@lists.sourceforge.net>

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





________________________________
 From: "bitcoin-development-request@lists•sourceforge.net" <bitcoin-development-request@lists•sourceforge.net>
To: bitcoin-development@lists•sourceforge.net 
Sent: Wednesday, October 23, 2013 3:38 AM
Subject: Bitcoin-development Digest, Vol 29, Issue 20
 

Send Bitcoin-development mailing list submissions to
    bitcoin-development@lists•sourceforge.net
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Bitcoin-development digest..."
Today's Topics:
   2. Re: Revisiting the BIPS process, a proposal (Peter Todd)
----------------------------------------------------------------------
....

On Tue, Oct 22, 2013 at 09:34:57AM +0200, Martin Sustrik wrote:
> On 22/10/13 09:03, Gregory Maxwell wrote:
> > On Mon, Oct 21, 2013 at 11:59 PM, Jean-Paul Kogelman
> > <jeanpaulkogelman@me•com> wrote:
> >> Have you seen: https://en.bitcoin.it/wiki/Protocol_specification ?
> >
> > Take care, the information in the wiki is woefully incomplete.
> 
> Imagine myself, with no prior knowledge of Bitcoin looking at the 
> document. It starts with "Hashes". What hashes? No idea what's going on. 
> Etc.
> 
> Now compare that to a well written RFC. It starts with introduction, 
> description of the problem, explains the conceptual model of the 
> solution, then dives into the details. There's also Security 
> Considerations part in every RFC that is pretty relevant for Bitcoin.
> 
> As I said, I am willing to help with writing such document, it would be 
> a nice way of learning the stuff, however, help from core devs, such as 
> answering question that may arise in the process, or reviewing the 
> document would be needed.

Writing such RFCs is dangerous due to the consensus nature of Bitcoin -
it makes people think the standard is the RFC, rather than the code.

I hear one of the better intros to Bitcoin is the Khan academy videos,
but I've never watched them myself. Once you understand how it works,
start reading source code - the Bitcoin codebase is actually really
simple and readable. 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.

-- 
'peter'[:-1]@petertodd.org
000000000000000f155e7a648e84a83589048ae1cacb0c60bfce2437553b6af4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 685 bytes
Desc: Digital signature

------------------------------
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.
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! 

Ron

[-- Attachment #2: Type: text/html, Size: 5491 bytes --]

       reply	other threads:[~2013-10-23 15:02 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 [this message]
2013-10-23 19:29   ` Peter Todd

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=1382540527.4044.YahooMailNeo@web124501.mail.ne1.yahoo.com \
    --to=rdwnj@yahoo$(echo .)com \
    --cc=bitcoin-development@lists$(echo .)sourceforge.net \
    /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