Hacker News new | ask | show | jobs
by p2p_astroturf 1656 days ago
well the article is certainly bullshit. but someone there wrote a useful and accurate comment:

> people who claim to be working on web3 and crypto desperately try to fit their technology to user problems. none of them seems to be working on the fundamental issues or the foundation needed to solve the existing problems.

> Most of them are half baked product/ marketing guys

> pretty much they create glittering websites and post tweets threads like "here is why web3 is a big thing" and nothing else they do

web3 can be proven bullshit the moment you realize all the implementations require web browsers instead of coming up with a solid foundation. this has caused major issues in ethereum (such as realizing their shit is completely broken and replacing it with metamask which is still bullshit). this on top of the fact that it's all MVP half working crap. almost all cryptocoin applications (and basically 100% of things titled "web3") require a web browser, which means you are trusting google/mozilla with all your money, on the web which is the most insecure, error-prone possible way to develop an application.

even from a layman perspective it's crap. you get something competing to be a standard web app, with all the same bugs and slowness, instead of a properly developed "native" GUI. example:

last time i tried to do something with metamask (a browser plugin), it didn't work on firefox. oh yeah, this was a top 10 (i.e, multi billion dollar market cap) cryptocoin's main use case which requires you to run code from a webpage on the internet that interfaces with metamask and you have to trust both of course as well as CA infra which is the opposite of decentralized. so i went with chrome. it tries to be a popup menu you're meant to just open and click one button in and close. if you open another window (like a text editor), it closes and you have to reopen it. so when i tried to open it to do some stuff and cross reference some number, i had to repeatedly: reopen metamask and press a bunch of buttons to bring me back to the same screen within metamask.

let's also look at the standard web3 "onboarding" user experience:

    - they assume you're a giant moron (and are correct)
    - they make you setup a password to encrypt your private key and not tell you this will be used as an encryption key (do they really believe I as a giant moron will come up with a password with sufficient entropy to be used as an encryption key for the 5th application today that asked me to make a password?)
    - next, they display the seed used to generate your password in the form of 20 or so words and ask you to write it down
    - next, they force you to input the words to "prove" you wrote it down, typically with some hack to disable copy/paste
    - at this point you may have lasers and spaceships flying around your screen as well as animated 3D polygons, to emphasize how cool it is to go through this step (and lessen the chance the user understands what is going on)
    - they do not provide an option to skip any of the above (typically, you may need to go read undocumented internal API)
let's look at web3.js

    - it's terribly documented
    - it's js
    - a language that does not support numbers
    - go-ethereum ships with a version that is several years old, i don't remember the numbers, but it's on an order of magnitude like 0.4.0 vs 2.3.4
    - in go-ethereum, there is no real way to find documentation for the web3 JS APIs you can use from its shell. but that's fine since the web3 JS API largely is an incoherent mess anyway
    - it's full of quirky shit (largely for the sake of snakeoil) like: every time you use a function in the "personal" namespace, like personal.listAccounts, it erases that line from your shell history
    - in fact, they dont want you to use the shell, they want you to be a mindless consumer and use premade web applications (hosted behind web pages "secured" by CAs) to do everything
    - i never used it outside go-ethereum, because why would i want to use js. may as well just use the node API at that point
    - all these are a multi billion dollar companies that could easily have allocated resources to these problems
let's look at how web3 wallets work:

    - it's a web app in electron, that takes between 4 seconds (eternity) and several minutes to display the main GUI
    - on most coins, there is no official wallet. not CLI. not GUI. so it is indeed an electron app by a 3rd party
    - the text "undefined" is written everywhere
    - menus mysteriously fail to open on certain occasions
    - it has several hundred thousand lines of code to do animations like lasers flying around the screen, yet the program literally has no features aside from "transfer in" and "transfer out", and "recover from seed"
    - the code is written by a mix of teenaged script kiddies, dot com boomers, and silicon valley startup hipsters (actually this applies everywhere in blockchain stuff, not just GUI wallets)
    - they do not tell you how you are synchronizing to coin #35. is it using an internal server owned by the wallet vendor? is it doing light sync?
    - they do not provide you with an option of *how* to connect to the coin's network, it "just works"
tl;dr web3 is not real software