Pages:
Author

Topic: Was Satoshi's coding ability considered bad? (Read 1702 times)

legendary
Activity: 3066
Merit: 1147
The revolution will be monetized!
November 23, 2018, 10:18:05 AM
#47
Dare I say it was a little script-kitty like.

This is nonsense.  ...
Okay, okay "script kitty" is too strong.
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
November 22, 2018, 02:14:21 PM
#46
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.

newbie
Activity: 63
Merit: 0
November 22, 2018, 12:43:16 PM
#45
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.
newbie
Activity: 10
Merit: 0
November 19, 2018, 07:37:27 PM
#44
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.
legendary
Activity: 996
Merit: 1013
November 13, 2018, 09:20:23 AM
#43
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.
legendary
Activity: 1232
Merit: 1080
November 11, 2018, 04:57:33 AM
#42
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.
legendary
Activity: 3024
Merit: 2148
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.
legendary
Activity: 1974
Merit: 1077
^ Will code for Bitcoins
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.
staff
Activity: 4242
Merit: 8672
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.
legendary
Activity: 3066
Merit: 1147
The revolution will be monetized!
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.
hero member
Activity: 1582
Merit: 759
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.
newbie
Activity: 18
Merit: 0
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.
legendary
Activity: 3332
Merit: 3116
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.  Tongue
legendary
Activity: 1372
Merit: 1252
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.
legendary
Activity: 1456
Merit: 1175
Always remember the cause!
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.
full member
Activity: 123
Merit: 474
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.
legendary
Activity: 1232
Merit: 1080
September 29, 2018, 04:46:21 AM
#31
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.  Wink

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



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.
hero member
Activity: 568
Merit: 703
Every post from @anunymint apparently was deleted.

Some of this thread was archived here and here.
legendary
Activity: 3514
Merit: 1963
Leading Crypto Sports Betting & Casino Platform
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.  Wink

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

jr. member
Activity: 462
Merit: 2
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
Pages:
Jump to: