1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193]
helo=mx.sourceforge.net)
by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
(envelope-from <pete@petertodd.org>) id 1VZ47v-0003GX-EY
for bitcoin-development@lists.sourceforge.net;
Wed, 23 Oct 2013 19:29:55 +0000
Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of petertodd.org
designates 62.13.149.77 as permitted sender)
client-ip=62.13.149.77; envelope-from=pete@petertodd.org;
helo=outmail149077.authsmtp.com;
Received: from outmail149077.authsmtp.com ([62.13.149.77])
by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76)
id 1VZ47u-00045T-8l for bitcoin-development@lists.sourceforge.net;
Wed, 23 Oct 2013 19:29:55 +0000
Received: from mail-c237.authsmtp.com (mail-c237.authsmtp.com [62.13.128.237])
by punt7.authsmtp.com (8.14.2/8.14.2) with ESMTP id r9NJTmMs019313;
Wed, 23 Oct 2013 20:29:48 +0100 (BST)
Received: from petertodd.org (petertodd.org [174.129.28.249])
(authenticated bits=128)
by mail.authsmtp.com (8.14.2/8.14.2/) with ESMTP id r9NJTeGD025612
(version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO);
Wed, 23 Oct 2013 20:29:43 +0100 (BST)
Date: Wed, 23 Oct 2013 15:29:40 -0400
From: Peter Todd <pete@petertodd.org>
To: Ron <rdwnj@yahoo.com>
Message-ID: <20131023192940.GA31497@petertodd.org>
References: <mailman.282267.1382513922.4583.bitcoin-development@lists.sourceforge.net>
<1382540527.4044.YahooMailNeo@web124501.mail.ne1.yahoo.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha256;
protocol="application/pgp-signature"; boundary="k1lZvvs/B4yU6o8G"
Content-Disposition: inline
In-Reply-To: <1382540527.4044.YahooMailNeo@web124501.mail.ne1.yahoo.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Server-Quench: 7810ccc2-3c19-11e3-94fa-002590a135d3
X-AuthReport-Spam: If SPAM / abuse - report it at:
http://www.authsmtp.com/abuse
X-AuthRoute: OCd2Yg0TA1ZNQRgX IjsJECJaVQIpKltL GxAVKBZePFsRUQkR
aAdMdAEUF1YAAgsB AmUbWVReUlR7XWA7 ag1VcwRfa1RMVxto
VEFWR1pVCwQmQxV/ fHpLJW1ydQBAeXw+ ZERmXHMVW0x7dRUu
EUxJFj4HbHphaTUc TUlcIVJJcANIexZF O1F8UScOLwdSbGoL
NQ4vNDcwO3BTJTpY RgYVKF8UXXNDVBQ9 WxsFHDNnFkoJSi86
NBFuK0VUFU0NL0w2 NUppQ18RNxsDaEVF HkRVBCIRLl8NDzAm BA9TV0oTVnc1
X-Authentic-SMTP: 61633532353630.1024:706
X-AuthFastPath: 0 (Was 255)
X-AuthSMTP-Origin: 174.129.28.249/587
X-AuthVirus-Status: No virus detected - but ensure you scan with your own
anti-virus system.
X-Spam-Score: -1.5 (-)
X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
See http://spamassassin.org/tag/ for more details.
-1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
sender-domain
-0.0 SPF_PASS SPF: sender matches SPF record
0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked.
See
http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
for more information. [URIs: petertodd.org]
X-Headers-End: 1VZ47u-00045T-8l
Cc: "bitcoin-development@lists.sourceforge.net"
<bitcoin-development@lists.sourceforge.net>
Subject: Re: [Bitcoin-development] "Bitcoin codebase is actually really
simple and readable."
X-BeenThere: bitcoin-development@lists.sourceforge.net
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: <bitcoin-development.lists.sourceforge.net>
List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
<mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
X-List-Received-Date: Wed, 23 Oct 2013 19:29:55 -0000
--k1lZvvs/B4yU6o8G
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Wed, Oct 23, 2013 at 08:02:07AM -0700, Ron wrote:
> I feel that I must respond to the statements that=20
> 1.
> the Bitcoin codebase is actually really
> simple and readable.=20
>=20
> 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.
>=20
> On point one: if it was/is so readable, why hasn't it been documented bet=
ter, if at all?=20
> Why haven't the obscure names of important items been globally searched a=
nd replaced?
> Why are there still mixed formatting "styles" still in the code. I think =
it is the fear that C++=20
> 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 t=
he opposite:
> that he knew what he wanted but that C++ hindered him in expressing and i=
mplementing it.
> I think that if anything, C++ was what Satoshi "didn't understand all tha=
t well".
>=20
> But then who does understand C++, really? See
> https://groups.google.com/forum/#!msg/comp.lang.lisp/7xCvdzijzgU/4xCFzLc3=
d5EJ=20
> and the quote:
> Whenever I solve a difficult problem with C++, I feel like I=E2=80=99ve w=
on a bar fight. =E2=80=94 Michael Fogus
>=20
> I don't think readability is attainable easily in C++. It requires intent=
ionally writing so that=20
> others may understand your code. How many programmers have ever done that=
? And this=20
> is like swimming upstream in C++, where things are designed to be hidden!=
=20
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.
--=20
'peter'[:-1]@petertodd.org
0000000000000000c9e44ec3cb95d6ea51b7e8d29901be451ce3a2bd7b0ed8ae
--k1lZvvs/B4yU6o8G
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAEBCAAGBQJSaCOkAAoJEBmcgzuo5/CFqJwIALZJ9YPmlps7ipTqSYvKOAGm
BCYiWKG918RKmZbexI3bhkisO4Vd1WtsGVTMljza5MlqpoYweVRXtOweEMxEaez3
sNyeUBRJytoJ7mnz06JeYa4l0wtgQMPCuNbfwxh0d18i6TVQRXpGKnCAbi3YVez2
pgGpGJupRLlsYwLHL5yjYfhXITVdSdthOoxGeTXQ7GrhPxBaTQqiSZCNAQEFMZVy
faSlFlM9vGikEv73LTKFd5jntZWR0xUYUZWjR0c0p3Q0rnsW4S9zqYOdoNF7CVcW
Yuh8Tq8Y3gdhjAfIxlsPmP5bll5vXbwCSzHRWA8GHgqBGLLN9D08kUv7FOx1wwE=
=NG+T
-----END PGP SIGNATURE-----
--k1lZvvs/B4yU6o8G--
|