Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: AverageGlabella on June 04, 2018, 08:04:49 PM



Title: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on June 04, 2018, 08:04:49 PM
I've been reading some old posts of some prolific members here on the forum and here's a quote from DeathAndTaxes to seek your teeth into:


This.  The first time I learned about Bitcoin, I took a look at the whitepaper and code I found all kinds of "flaws".  It wasn't until hours (days?) of reading and researching that the elegance of the solution became visible (like a Polaroid appearing from the black).  It is humbling when you realize that you are looking at the product of someone far above your own capabilities and they have created what you previously considered impossible.  In a hundred years in a hundred parallel worlds I wouldn't have come up with the concept of Bitcoin, it was simply too alien.  It goes beyond just intelligence, the idea was simply outside my frame of reference.  The problem wasn't even one I considered that a solution existed.  

Now Satoshi's coding (nuts and bolts)?  Blech that is another story but nobody complains that Einstein's notes are hard to read because he had bad handwriting.

DeathAndTaxes is pretty famous around here for his ideas and intelligence. Even though he admits earlier in his statement that the idea of Bitcoin was completely out of his scope of intelligence he then goes on to slightly criticize Satoshi's coding ability.

I'm curious if this is the general view point of the community and also if it is true was there any major adaptions to the code following Gavin and other developers contributing to the project?

I'm trying to go through his other posts in an attempt to find any explanation of this as I've not found anything from some quick searches.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: mdayonliner on June 04, 2018, 08:10:37 PM
Who cares about his/her coding style. This is all to explain:

Einstein's notes are hard to read because he had bad handwriting.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on June 04, 2018, 09:04:53 PM
Who cares about his/her coding style. This is all to explain:

Einstein's notes are hard to read because he had bad handwriting.

I think you are misunderstanding. I'm not looking to ridicule or say that everything Satoshi has done is discredited because of his coding but I'm interested if there's any truth to what DeathAndTaxes claimed and if so what was some of the major changes when new developers such as Gavin Andersen entered the scene.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Carlton Banks on June 04, 2018, 09:19:17 PM
It's consensus opinion among programmers that Satoshi knew alot about cryptography, but was not an expert programmer. I seem to remember that Bitcoin 0.1.0 was just a bunch of functions and a main function, no classes (and that version was of course all Satoshi's work). It's not impossible that Satoshi was a good programmer, but deliberately chose to obscure any stylistic fingerprints by trying to appear to be amateurish. But there's no evidence for that, it's just a possibility.

Re: changes, IIRC the developing team are even today still untangling some of the messy dependencies introduced early on in the project, but who's responsible for those I don't know.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on June 04, 2018, 09:30:23 PM
It's consensus opinion among programmers that Satoshi knew alot about cryptography, but was not an expert programmer. I seem to remember that Bitcoin 0.1.0 was just a bunch of functions and a main function, no classes (and that version was of course all Satoshi's work). It's not impossible that Satoshi was a good programmer, but deliberately chose to obscure any stylistic fingerprints by trying to appear to be amateurish. But there's no evidence for that, it's just a possibility.

Re: changes, IIRC the developing team are even today still untangling some of the messy dependencies introduced early on in the project, but who's responsible for those I don't know.

You bring up some interesting points. My angle when proposing my question was to bring up the fact that Satoshi could of potentially tried to avoid fingerprinted by using generic code. Although this is purely speculation it's something which you would have to consider.

I wasn't aware that the development team are still working on fixing some of the initial issues.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Carlton Banks on June 04, 2018, 09:45:00 PM
I wasn't aware that the development team are still working on fixing some of the initial issues.

It's only circular dependency issues, not bugs or design issues. Which are only a problem when trying to restructure the code AFAIU (there's been a long-term mission to remove circular dependency between the wallet class and the server class, which I think blocks any attempt to separate the wallet code into a separate process from the node code)


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Spendulus on June 04, 2018, 10:52:04 PM
I've been reading some old posts of some prolific members here on the forum and here's a quote from DeathAndTaxes to seek your teeth into:


This.  The first time I learned about Bitcoin, I took a look at the whitepaper and code I found all kinds of "flaws".  It wasn't until hours (days?) of reading and researching that the elegance of the solution became visible (like a Polaroid appearing from the black).  It is humbling when you realize that you are looking at the product of someone far above your own capabilities and they have created what you previously considered impossible.  In a hundred years in a hundred parallel worlds I wouldn't have come up with the concept of Bitcoin, it was simply too alien.  It goes beyond just intelligence, the idea was simply outside my frame of reference.  The problem wasn't even one I considered that a solution existed.  

Now Satoshi's coding (nuts and bolts)?  Blech that is another story but nobody complains that Einstein's notes are hard to read because he had bad handwriting.

DeathAndTaxes is pretty famous around here for his ideas and intelligence. Even though he admits earlier in his statement that the idea of Bitcoin was completely out of his scope of intelligence he then goes on to slightly criticize Satoshi's coding ability.

I'm curious if this is the general view point of the community and also if it is true was there any major adaptions to the code following Gavin and other developers contributing to the project?

I'm trying to go through his other posts in an attempt to find any explanation of this as I've not found anything from some quick searches.

Just start reading the code....

https://bitcointalk.org/index.php?topic=382374.0

https://github.com/trottier/original-bitcoin


Title: Re: Was Satoshi's coding ability considered bad?
Post by: mr-anonymous on June 05, 2018, 01:21:20 AM
Nothing is perfect.

Espacially digital products, must keep developing it lifetime withut succeed the perfection.

Look at Facebook, Google, Microsoft and others, they are are prehistoric and they have been around for ages ... but from time to time someone find a bug (Notice in addition of that they are closed source projects), compared to open source project as Bitcoin where everyone can read clairely where a bug lies (If there one).

Purhapse he is right about the code, but for the first launch, if the product work well and idea realized then the goal is reached, after that community do the rest.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: theymos on June 05, 2018, 06:26:29 AM
It was pretty good: I'd give it a grade of B+. The worst problem was that there were only a few, huge files, but if you ignored that then it made a lot of sense. It was written in (then-)modern C++, clearly with a lot of care. It was clearly not written in a stream-of-consciousness manner. There were very few bugs that you could blame on lack of programming skill.

My personal suspicion in this area is that Satoshi was never (or not recently) a full-time programmer, but he was pretty familiar with computer science (maybe a student or academic?), and he'd read some comprehensive C++ book just before starting on Bitcoin, so he made full and correct usage of C++ features in a slightly messy way.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: andrew1carlssin on June 05, 2018, 09:01:50 AM
I've been reading some old posts of some prolific members here on the forum and here's a quote from DeathAndTaxes to seek your teeth into:


This.  The first time I learned about Bitcoin, I took a look at the whitepaper and code I found all kinds of "flaws".  It wasn't until hours (days?) of reading and researching that the elegance of the solution became visible (like a Polaroid appearing from the black).  It is humbling when you realize that you are looking at the product of someone far above your own capabilities and they have created what you previously considered impossible.  In a hundred years in a hundred parallel worlds I wouldn't have come up with the concept of Bitcoin, it was simply too alien.  It goes beyond just intelligence, the idea was simply outside my frame of reference.  The problem wasn't even one I considered that a solution existed.  

Now Satoshi's coding (nuts and bolts)?  Blech that is another story but nobody complains that Einstein's notes are hard to read because he had bad handwriting.

DeathAndTaxes is pretty famous around here for his ideas and intelligence. Even though he admits earlier in his statement that the idea of Bitcoin was completely out of his scope of intelligence he then goes on to slightly criticize Satoshi's coding ability.

I'm curious if this is the general view point of the community and also if it is true was there any major adaptions to the code following Gavin and other developers contributing to the project?

I'm trying to go through his other posts in an attempt to find any explanation of this as I've not found anything from some quick searches.

Just start reading the code....

https://bitcointalk.org/index.php?topic=382374.0

https://github.com/trottier/original-bitcoin

Thanks for the link ( last time I saw any code was at sourceforge host )

Today on my breakfast while trying to read the commentaries (Yes I love commentaries, the part of the code ignored by the compiler) because some are funny, others just mess with the coder mind state ) it somehow led[1] me the following path

Quote
Quote from: Mike Hearn on December 23, 2013, 08:30:45 PM
OP_CODESEPARATOR was in the first released version too. It was part of his broken method of running scripts via concatenation.

In the Bitcoin v0.1 release OP_CODESEPARATOR was always inserted between the scriptSig and scriptPubKey prior to calling EvalScript() This pre-release sourcecode implies that was not automatically done, which allows for scripts to take advantage of that after the fact to delegate signing authority after the fact. (though to fully take advantage of the idea you need the notion of a OP_CODESEPARATOR "stack")

The idea is "broken" only in that OP_RETURN originally could cause a script to return valid prematurely; now that OP_RETURN only fails a script prematurely an explicit OP_CODESEPARATOR design would work fine.

The concatenation thing reminds the post I read few days ago about shell script on unix systems ...
It let me thinking about RISC and CISC instruction sets and pipelining,

From the textbook

Reduced instruction set computing (RISC) refers to a system in which the
processor can execute a relatively small number of distinct fundamental,
highly optimised instructions, each consisting of a single operation. By
comparison, in complex instruction set computing (CISC), the processor
can execute many more distinct instructions, with each potentially consisting
of many operations.
To give you a flavour of the difference, consider two approaches to
multiplying two integers.
Use the existing circuit that adds two integers and use software to
repeatedly execute an ADD instruction to add the first integer to itself the
right number of times.
2 Build a circuit that multiplies two integers[2] and use a MULTIPLY
instruction to activate it.
The first approach is in the spirit of RISC (although, in fact, RISC processors
do have a multiply operation) – a more complex task is achieved by using
software to combine several more fundamental instructions.
The second approach is more aligned to a CISC approach – the emphasis is
put on building complex instructions directly into the hardware.
There are some other important differences between the RISC and CISC
approaches.
.
.
Each instruction executed on a RISC processor is fundamental enough
that it can be executed in a single clock cycle, whereas the more complex
CISC instruction to do the same job may take multiple clock cycles.
However, because a task generally takes many more instructions in RISC
than in CISC, the overall time is usually similar in each system.
Each instruction in a RISC processor can be represented in the same
number of bits because when data is moved to and from memory, only
one memory location is involved. However, CISC instructions are more
likely to need variable numbers of bits because a single instruction might
need to access multiple memory locations. This also means that as well as
taking more clock cycles, a CISC instruction takes a variable number of
clock cycles to complete, whereas a RISC instruction consistently takes
one.
So which approach is better? Certainly the general trend has been away from
CISC towards RISC, and except for some highly specialised computers, most
processors now take a RISC approach. This is partly because early computers
were born out of a world of switches and relays, so hardware solutions came
more naturally than software solutions for early computer pioneers. It was
also the case that RISC architectures relied on more main memory being
available (because there are many more instructions to be stored), and main
memory was very expensive in the early days. As software developed and
main memory became much cheaper, RISC moved into the ascendancy.
However, perhaps the most important advantage that RISC architectures have
is the predictability of the representation of an instruction, and the time it
takes to execute (one clock cycle) lends itself to pipelining, which is the
process of speeding up a task by splitting it into steps that can be executed in
parallel.





[1] CodersLed as the past tense of the verb lead, not the blood Diode ( https://en.wikipedia.org/wiki/Light-emitting_diode ) Makers
[2] In this case I was thinking about the the multiplication of the static const int64 COIN = 1000000; static const int64 CENT = 10000;


Title: Re: Was Satoshi's coding ability considered bad?
Post by: vit05 on June 05, 2018, 03:10:10 PM
It was pretty good: I'd give it a grade of B+. The worst problem was that there were only a few, huge files, but if you ignored that then it made a lot of sense. It was written in (then-)modern C++, clearly with a lot of care. It was clearly not written in a stream-of-consciousness manner. There were very few bugs that you could blame on lack of programming skill.

My personal suspicion in this area is that Satoshi was never (or not recently) a full-time programmer, but he was pretty familiar with computer science (maybe a student or academic?), and he'd read some comprehensive C++ book just before starting on Bitcoin, so he made full and correct usage of C++ features in a slightly messy way.

Is there any indication that he would be more familiar with another language, but chose to study and use C ++ because of its efficiency in memory usage compared to other languages? Since he believed that the easier it was to mine and maintain a node, the more widespread the network would be. And for that, the consumption of memory could not be high since many would hardly leave a computer exclusive to Bitcoin in the beginning.

Is it possible that he started the project using another language and started over again using C ++?


Title: Re: Was Satoshi's coding ability considered bad?
Post by: mapkowsky on June 06, 2018, 12:43:55 AM
Why does it even matter?
I mean did you wonder if De Lorean from "Back to the future" had high fuel consumption?


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Philopolymath on June 06, 2018, 02:19:03 AM
Einstein was a complete FRAUD thief plagiarist idiot who could not possibly have written the work he is credited for..
Was not competent enough to even understand it..
Did not even know the speed of sound when asked by Thomas Edison
FAILED his university entrance exam and never attended a single physics class.
The Nobel Prize in Physics has LONG been a REWARD for IDIOT SYCOPHANTS for their contribution in sustaining the fraud and increasing the level of confusion and obfuscation.

The legacy of Einstein's genius is a MEGA fallacy grotesquely ill deserved but a TESTAMENT to the overwhelming power and influence and control of ZIONIST propaganda over the media and Academia. He HIMSELF complained of being made a false idol.

His EX-wife SUCCESSFULLY SUED him for the prize money from the Nobel work on the PHOTO-ELECTRIC effect. And for divorce for adultery.
She was a very competent mathematician.

Special relativity and General Relativity are crimes against science and reason....
They have been fraudulently supported and proven idiotic complete nonsense many times over by REAL empirical observation and have absolutely NOT a single occasion of evidenciary support or relation to ACTUAL real world Physics/science and engineering.

These are the true KNOWN Immutable facts pertaining to the person that idiots use as a benchmark of genius.

Are you sure you want to compare that asshole to Satoshi?
We KNOW NOTHING about Satoshi...we can't even know if he wrote any of the code or if he was even a real singular person.
Odds are far greater that he was a front, a vehicle, a tool, a weapon. Of a collaborative effort, a scheme.
The product of a stratagem.








Title: Re: Was Satoshi's coding ability considered bad?
Post by: Coin-1 on June 06, 2018, 03:20:31 AM
My personal suspicion in this area is that Satoshi was never (or not recently) a full-time programmer, but he was pretty familiar with computer science (maybe a student or academic?), and he'd read some comprehensive C++ book just before starting on Bitcoin, so he made full and correct usage of C++ features in a slightly messy way.
Agree with you. It seems that Satoshi's code was pretty sloppy. Moreover, obviously he was a Windows guy.

Readme.txt from Bitcoin 0.01 ALPHA:
Code:
Operating Systems
-----------------
Windows NT/2000/XP (and probably Vista)

Vista hasn't been tested yet.  All the libraries used are cross-platform, so
there's nothing preventing future Linux and Mac builds.

Anyway, it doesn't matter if Satoshi Nakamoto was a full-time programmer or not. Although there were some bugs, the software worked fine.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: drm on June 06, 2018, 11:38:24 AM
Who cares about his/her coding style.

My personal suspicion in this area is that Satoshi was never (or not recently) a full-time programmer, but he was pretty familiar with computer science (maybe a student or academic?), and he'd read some comprehensive C++ book just before starting on Bitcoin, so he made full and correct usage of C++ features in a slightly messy way.
Agree with you. It seems that Satoshi's code was pretty sloppy. Moreover, obviously he was a Windows guy.

Readme.txt from Bitcoin 0.01 ALPHA:
Code:
Operating Systems
-----------------
Windows NT/2000/XP (and probably Vista)

Vista hasn't been tested yet.  All the libraries used are cross-platform, so
there's nothing preventing future Linux and Mac builds.

Anyway, it doesn't matter if Satoshi Nakamoto was a full-time programmer or not. Although there were some bugs, the software worked fine.

OP is not saying it matters or that it forms an issue in any way, just trying to find out more.
And if we shouldn't discuss things that don't matter we can scrap more than half of the threads on this board.  ;)


Title: Re: Was Satoshi's coding ability considered bad?
Post by: buwaytress on June 06, 2018, 01:04:00 PM
Most observations I can recall reading seem to agree that Satoshi was/were pretty decent at coding, stopping short of criticizing the work. Criticisms seem to have arrived much later. The same actually happened even with Satoshi's language. Those who paid attention noted the impeccable grammar and structure, others criticised (again, much later) the inconsistencies even with spelling.

As Carlton Banks points out, these could all be deliberate attempts at concealing identity, or simply a result of the multiple hands behind Satoshi.

It's hard to be a genius and not have people analyse every item connected to your personality.

But Satoshi's coding considered bad? I don't think anyone, not even DeathAndTaxes, would come close to thinking that.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Traxo on June 06, 2018, 04:21:46 PM
The same actually happened even with Satoshi's language. Those who paid attention noted the impeccable grammar and structure, others criticised (again, much later) the inconsistencies even with spelling.

The same happened with the analysis of the analysis of 9/11 also. Even the Mossad aren’t able to fool God.

(trying to stay on topic here with the implied reason that others want to analyze if Satoshi was an amateur hobbiest Japanese teenage hacker sleeping on his mother’s futon next their family kabota)


Title: Re: Was Satoshi's coding ability considered bad?
Post by: ir.hn on June 09, 2018, 03:42:08 AM
What I gleaned from reading up on the beginnings of bitcoin was that his style was outdated and windows based.  Like he was an old hand, probably a software engineer that didn't typically get his hands too dirty in writing his own code and worked for UNIX and then later windows based corporate entities for many years.

And ahem...if you want to learn more about the man, you may want to look up a fellow named Dorian...  " I AM NOT DORIAN NAKAMOTO"


Title: Re: Was Satoshi's coding ability considered bad?
Post by: CryptAssist on June 09, 2018, 12:39:00 PM
If his technology is the leading digital currency next to digital fiat, then I'd say he, or they had a pretty good idea of what they were doing. DOS for example was a pretty good operating system as flawed as it may be. It is the foundation for an operating system that millions use to this day. It needed allot more upgrades than bitcoin. I'd say brilliant but then I'm no coder so take it with a pinch of salt.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on June 10, 2018, 08:39:28 PM
If his technology is the leading digital currency next to digital fiat, then I'd say he, or they had a pretty good idea of what they were doing. DOS for example was a pretty good operating system as flawed as it may be. It is the foundation for an operating system that millions use to this day. It needed allot more upgrades than bitcoin. I'd say brilliant but then I'm no coder so take it with a pinch of salt.

One can have brilliant ideas and do the basic legwork but has since been backed up by multiple people that his code wasn't perfect. I think a lot of people hold Satoshi in high regard and think he's perfect. It's always good to point this out to people and say he isn't perfect.

Yes he made Bitcoin and the revolutionary technology behind it and I'm sure we all thank him for loosening the chains of regulation for us but it was no where near a perfect implementation.This is expected though.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: nc50lc on June 11, 2018, 07:20:40 AM
Yes a Peer-to-peer decentralized digital currency was a great idea to be able to trade "everything" wordwide.
That's why "Satoshi's" "small project" became this big.
My guess is: Satoshi didn't expect this to be famous in just a short time, Bitcoin grew beyond his control that developing it with himself exposed was "too scary" for him.

-snip-
Whoa whoa, I take it as an insult to Einstein and the media, that's rude.
But really, "genius" is a state of mind and Einstein had lost it, stubbornly implied his theories even though he was not sure of it himself.
He even died without completing a "materialistic" reasoning to the theory of everything.

Speaking of frauds and Thieves, ask the one who "discovered" the DNA double Helix.
There's only one man that I know who's a Stable Genius: Donald Trump, Einstein and Satoshi are idiotic sometimes.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: ir.hn on June 12, 2018, 04:17:39 AM
Quote
The sudden ALS (a one-in-a-million terminal health defect) of Hal Finney after being a vigorous runner is quite an anomaly. What’s the odds that the one public guy who was closest to Satoshi (a one-in-a-billion circumstance) and who might have had information which would blow this discussion wide open, was suddenly erased from life. I have no information about whether it’s possible to induce ALS in a person. I’ve seen some vague implications that the CIA had a way to induce cancer. I’m not drawing any conclusions from this at all. Not weighing it at all in my thought process. Just noting it.

And when you realize that ALS is caused by Lyme disease and Lyme has been weaponized by the CDC...Ya you realize the C*A was probably involved.

http://als-cure.com/als-lyme/als-patients-infected-with-lyme-bacteria-borrelia-spirochetes/

http://truthstreammedia.com/2017/09/09/officially-ignored-connection-lyme-disease-plum-island/


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Wind_FURY on June 12, 2018, 06:25:57 AM
It's consensus opinion among programmers that Satoshi knew alot about cryptography, but was not an expert programmer. I seem to remember that Bitcoin 0.1.0 was just a bunch of functions and a main function, no classes (and that version was of course all Satoshi's work). It's not impossible that Satoshi was a good programmer, but deliberately chose to obscure any stylistic fingerprints by trying to appear to be amateurish. But there's no evidence for that, it's just a possibility.

Re: changes, IIRC the developing team are even today still untangling some of the messy dependencies introduced early on in the project, but who's responsible for those I don't know.

I read a quote somewhere that John Nash learned programming late in his life during the 1990's. He also had his own theory of what money should be called Ideal Money, https://en.wikipedia.org/wiki/Ideal_money#What_is_Ideal_Money?

He is mathematician and a cryptographer. Which also showed what Satoshi mainly was.

Besides Hal Finny and Nick Szabo, my top two for "Satoshi", could John Nash be a possible candidate?


Title: Re: Was Satoshi's coding ability considered bad?
Post by: monkeydominicorobin on June 13, 2018, 01:46:18 AM
I've been reading some old posts of some prolific members here on the forum and here's a quote from DeathAndTaxes to seek your teeth into:


This.  The first time I learned about Bitcoin, I took a look at the whitepaper and code I found all kinds of "flaws".  It wasn't until hours (days?) of reading and researching that the elegance of the solution became visible (like a Polaroid appearing from the black).  It is humbling when you realize that you are looking at the product of someone far above your own capabilities and they have created what you previously considered impossible.  In a hundred years in a hundred parallel worlds I wouldn't have come up with the concept of Bitcoin, it was simply too alien.  It goes beyond just intelligence, the idea was simply outside my frame of reference.  The problem wasn't even one I considered that a solution existed.  

Now Satoshi's coding (nuts and bolts)?  Blech that is another story but nobody complains that Einstein's notes are hard to read because he had bad handwriting.

DeathAndTaxes is pretty famous around here for his ideas and intelligence. Even though he admits earlier in his statement that the idea of Bitcoin was completely out of his scope of intelligence he then goes on to slightly criticize Satoshi's coding ability.

I'm curious if this is the general view point of the community and also if it is true was there any major adaptions to the code following Gavin and other developers contributing to the project?

I'm trying to go through his other posts in an attempt to find any explanation of this as I've not found anything from some quick searches.

Criticizing a source code of another programmer is purely subjective. If Satoshi Nakamoto is truly inferior in terms of coding then he should not have made his source code open to the public. I cannot say the same to Microsoft Windows Operating System.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Slavyanskiy on June 13, 2018, 08:58:35 AM
When creating a new product, it is absolutely normal when it is not perfect.
Initially there were mistakes well, so what? They have already been corrected.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on June 16, 2018, 08:19:14 AM
Criticizing a source code of another programmer is purely subjective. If Satoshi Nakamoto is truly inferior in terms of coding then he should not have made his source code open to the public. I cannot say the same to Microsoft Windows Operating System.
Some of it might be purely subjective and as long as it works it works but laying down a good foundation for others that read the code is considered good programming.

Open source actually brings in the possibility of improving the existing code by having input from others so its not a bad idea to make it open source. Plus he was limited by his own standards and unless he wanted to dedicate more time in learning effective code Bitcoin would of been delayed. Nothing can be made perfect and I was not calling out Satoshi for having bad coding practices I was merely interested after stumbling upon a quote from D&T.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: chrisvl on June 16, 2018, 05:55:07 PM
Was perfect, not bad. Satoshi first was a human and then was a programmer, in coding bugs are unavoidable because programmers are humans, the only way to avoid bugs is one Not Code..


Title: Re: Was Satoshi's coding ability considered bad?
Post by: hiphoptrail on June 17, 2018, 05:08:55 AM
It was pretty good: I'd give it a grade of B+. The worst problem was that there were only a few, huge files, but if you ignored that then it made a lot of sense. It was written in (then-)modern C++, clearly with a lot of care. It was clearly not written in a stream-of-consciousness manner. There were very few bugs that you could blame on lack of programming skill.

My personal suspicion in this area is that Satoshi was never (or not recently) a full-time programmer, but he was pretty familiar with computer science (maybe a student or academic?), and he'd read some comprehensive C++ book just before starting on Bitcoin, so he made full and correct usage of C++ features in a slightly messy way.


Agree.

Another important fact to consider is that satoshi never meant to roll out the code in 2009. His/her/they chose correctly to take advantage of the 2007/2008 US led monetary crash which caused the highest level of distrust in government to enter at that date and move forward perfecting the code.

just my 2 satoshis


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Kakmakr on June 17, 2018, 04:06:24 PM
I think Gavin said at one point that most of Satoshi's original code was replaced or tweaked and that very little of his original code is still in the protocol. I do not care if his code was sloppy or not, the basic concept worked and people all over the world started using it. All developers will criticize other people's work in hindsight, but looking back at that time, Satoshi delivered a working concept and a skeleton that needed some flesh.  ;)

As some people said, this might just be a ploy to hide his real identity.  ;D



Title: Re: Was Satoshi's coding ability considered bad?
Post by: Traxo on July 13, 2018, 03:01:37 PM
Every post from @anunymint apparently was deleted.

Some of this thread was archived here (http://archive.is/https://bitcointalk.org/index.php?topic=4418987.0;all) and here (https://web.archive.org/web/*/https://bitcointalk.org/index.php?topic=4418987.0;all).


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on September 29, 2018, 09:46:21 AM
I think Gavin said at one point that most of Satoshi's original code was replaced or tweaked and that very little of his original code is still in the protocol. I do not care if his code was sloppy or not, the basic concept worked and people all over the world started using it. All developers will criticize other people's work in hindsight, but looking back at that time, Satoshi delivered a working concept and a skeleton that needed some flesh.  ;)

As some people said, this might just be a ploy to hide his real identity.  ;D



Yes my original point wasnt to rubbish Satoshi even in the slightest. What he came up with has changed the world for the better. But in a technical stand point of view I wanted to know whether his coding was considered "bad". Hes obviously got a very capable mind and seemed to just learn a little coding to bring out his project rather than dedicating his life to coding.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Cøbra on October 03, 2018, 02:57:04 AM
Only professional programmers would consider his code 'bad' or 'sloppy'. But professional programmers have a tendency to over-complicate everything behind twenty layers of abstraction and object-orientated garbage, so they see anything that doesn't do the same as bad code.

The bigger problem is that he used Windows, which is an unforgivable sin.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: aliashraf on October 03, 2018, 04:31:03 AM
Only professional programmers would consider his code 'bad' or 'sloppy'. But professional programmers have a tendency to over-complicate everything behind twenty layers of abstraction and object-orientated garbage, so they see anything that doesn't do the same as bad code.

Object/garbage oriented programming is not considered a professional technique. Ironically the more obsessed a programmer is with OOP, less he knows about it.
It is primarily about encapsulation (a genius idea) rather than inheritance, the most naive modelling technique ever. Such programmers have the tendency you mentioned here and always fall into useless abstractions, it is done in the name of re-usability and they do it like a teenager who is excessively addicted to masterbation.

Thanks god, bitcoin code is not poisoned by such garbages and navigating through it you are not lost in abstract ridiculous classes. Very limited and smart use of inheritance and more emphasis on encapsulation. I think it is due to Satoshi's neat approach to the first implementation, his legacy.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: cellard on October 05, 2018, 08:02:30 PM
Only professional programmers would consider his code 'bad' or 'sloppy'. But professional programmers have a tendency to over-complicate everything behind twenty layers of abstraction and object-orientated garbage, so they see anything that doesn't do the same as bad code.

The bigger problem is that he used Windows, which is an unforgivable sin.

I've always wondered why he used Windows instead of Linux, if he wanted to developed an open source currency. I guess that's what he was most used to, and that's all. Some people learn to do things one way and keep doing it the same way. He probably learned how to code in Windows and couldn't be arsed to switch to Linux.
At the end of the day we got open source code which is all that maters.

I wonder if someone here in the forums or somewhere else asked him why he was a Windows guy.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: seoincorporation on October 06, 2018, 01:22:12 PM
I think all codes on the first versions are 'gruyère cheese' with all those holes and things to fix, i think is the same scenario like when linux comes to live. Linus Torvalds isn't a bad coder, but he know that with a community the project could grow really fast. And i think was the same with bitcoin, maybe satoshi wasn't the best coder but he code bitcoin, what more do you whant from him? and he know with a community this could grow fast and big.

Other theory is that satoshi changes his coding style to avoid getting chased by his style, just like when you want to do a fake letter and try to change your letter format.  :P


Title: Re: Was Satoshi's coding ability considered bad?
Post by: eSurge on October 08, 2018, 09:13:40 PM
Only professional programmers would consider his code 'bad' or 'sloppy'. But professional programmers have a tendency to over-complicate everything behind twenty layers of abstraction and object-orientated garbage, so they see anything that doesn't do the same as bad code.

Object/garbage oriented programming is not considered a professional technique. Ironically the more obsessed a programmer is with OOP, less he knows about it.
It is primarily about encapsulation (a genius idea) rather than inheritance, the most naive modelling technique ever. Such programmers have the tendency you mentioned here and always fall into useless abstractions, it is done in the name of re-usability and they do it like a teenager who is excessively addicted to masterbation.

Thanks god, bitcoin code is not poisoned by such garbages and navigating through it you are not lost in abstract ridiculous classes. Very limited and smart use of inheritance and more emphasis on encapsulation. I think it is due to Satoshi's neat approach to the first implementation, his legacy.


Guess it's also worth to mention loose coupling here, as an integral principle of encapsulation. Although, an initial bitcoin's source code release seems to look way tightly coupled from this standpoint.

As Satoshi is believed to be Mr. Szabo IRL, nothing here *in terms of coding style* seem to be contradicting.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: Initscri on October 17, 2018, 05:01:19 AM
Only professional programmers would consider his code 'bad' or 'sloppy'. But professional programmers have a tendency to over-complicate everything behind twenty layers of abstraction and object-orientated garbage, so they see anything that doesn't do the same as bad code.

The bigger problem is that he used Windows, which is an unforgivable sin.

You make a good point. In most open source projects there are many layers, and code is often developed w/ specific guidelines/structures in mind, etc. It could be argued that the way Satoshi developed the first release of BTC gave somewhat of an easier learning curve for other developers to pickup the project & provide aid; putting that structure & those guidelines into place.

When software is 100% fully developed, it:
1. Takes longer to build, MVP is quicker.
2. Doesn't attract open source developers quite as quickly (if everything is completed, why would developers pick it up). It's these developers which spearhead the project going forward.

Whether this was intentional or not is TBD.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: RodeoX on October 17, 2018, 05:00:55 PM
Sato's basic mathematical idea about distributing time-stamped data on a chain of blocks was the breakthrough. Not the code itself. None of the code was really new, just the novel way it was cobbled together. Dare I say it was a little script-kitty like.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: gmaxwell on October 19, 2018, 04:48:08 AM
Dare I say it was a little script-kitty like.

This is nonsense.  A lot of people like to throw crap at other people's work because they think it makes them sound superior.

The original Bitcoin software was unusually high quality. It was clean, minimal, relatively modern for its time, and largely (but not completely) free of defects.

Anyone who says otherwise is either uncritically repeating rumours they heard elsewhere or is trying to make themselves look better.  Those who know better don't usually bother saying anything since his work stands on its own, but it makes me a bit sad to see since Satoshi isn't here to defend himself, and .. well XKCD386.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: itod on October 22, 2018, 11:19:51 AM
The original Bitcoin software was unusually high quality. It was clean, minimal, relatively modern for its time, and largely (but not completely) free of defects.

Exactly. I always wonder if people who criticize his programming abilities ever stop to ponder the wast functionality that software had to have. Do they ask them selves: if they had Whitepaper in front of them, would they be able to produce Bitcoin 0.1.0 code, and how much time it would take them? I think majority of critics would not be able to do it if they life depends on it.

As far as I've read historic quotations he wrote that code in 1 1/2 years. It's decent speed even if you do only that in your life, if he had other activities like teaching or regular job it's amazing speed for a side project.

I believe he was active coder at least for some part of his life, probably using programming in his academic work, if he was an academic. People who never actively programmed have no chance of producing that 0.1.0 code.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: hatshepsut93 on October 22, 2018, 02:46:16 PM
Why not download the code written by Satoshi and see it yourself? https://satoshi.nakamotoinstitute.org/code/

I'm not very experienced with C++, but IMO the code is pretty good, it's not messy and there are decent comments.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: AverageGlabella on November 11, 2018, 09:57:33 AM
Why not download the code written by Satoshi and see it yourself? https://satoshi.nakamotoinstitute.org/code/

I'm not very experienced with C++, but IMO the code is pretty good, it's not messy and there are decent comments.

I'm not experienced enough and wanted the opinions of some of the experts in this forum. I think I got some insight comments.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: YarkoL on November 13, 2018, 02:20:23 PM
The implementation of transaction states (UTXO) and Bitcoin Script, to
name just two aspects of the total system, indicate a remarkable mind at
work. If it originated from just one person, I would have no reservation using
the word genius.

Also, some more mundane programming constructs like the serialization
routines tell me that the author was well-versed in software design.

I think that the slightly odd choices in the presentation of the original source code
- the fact that it is a Visual Studio project, and the unfinished foundations
of a p2p market - are there because the author(s) wanted it to be easily
adopted by developers while also hinting at the possibilities.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: alexrosenb on November 20, 2018, 12:37:27 AM
Looking at the code I think it's likely Satoshi wasn't a salaried developer. What people in the tech industry call good programmers usually has more to do with team play than sheer technical ability. It's hard to work with somebody else's mess. There's this breed of developers who will take pride at using the latest technologies, having 100% test coverage, elaborate CI setups but completely disregard the actual purpose of the software.

When you're a lone wolf it doesn't really matter.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: CryptoSpark on November 22, 2018, 05:43:16 PM
I think it's fair to say it wasn't engineered code.
Great insights that got the codebase started but it wasn't written by a professional software engineer. It doesn't take anything away from the accomplishment though.


Title: Re: Was Satoshi's coding ability considered bad?
Post by: aliashraf on November 22, 2018, 07:14:21 PM
I think it's fair to say it wasn't engineered code.
Great insights that got the codebase started but it wasn't written by a professional software engineer. It doesn't take anything away from the accomplishment though.
I denounce your claim as far as it is about textbooks and established science and not corporate invented fake engineering practices that involve a lot of generalization and abstraction layers and pointless application of void OOP ideas that have ended to software bloat and disasters like Windows.



Title: Re: Was Satoshi's coding ability considered bad?
Post by: RodeoX on November 23, 2018, 03:18:05 PM
Dare I say it was a little script-kitty like.

This is nonsense.  ...
Okay, okay "script kitty" is too strong.