| Short answer: it is Hell. Long answers: - "linking libraries" between FE and blockchains are constantly broken, have _a_lot_ of undefined behaviours, and their error codes are few and totally opaque to what's really happening. Bonus part: they also change fast, a lot, and mostly with breaking changes. See web3.js and ether.js issues if you wanna cry - you mostly will have to use third party services like infura or web browser plugins like metamask to get a working user experience but it will be an extremely poor user experience. We currently use metamask and we had a lot of problems with it, and also it randomly fails making ofc the whole app unresponsive if you don't code defensively of this behaviour. Did I also said they frequently update it deprecating methods and behaviours they suggested just some releases ago? Yeah, enjoy. - solidity is the standard language to write contracts and it is literally the worst language I ever used, with a lot of undefined behaviours I encounter daily. I cannot count the times I had to spend a dozen of hours to find information in obscure blogposts or issues about "hey don't use this language construct with this evm version while passing this type of parameter or the compiler will put a sort-of-nop instead of what you really want". You better create an internal wiki or you'll lose track of what you have to know to avoid to shoot yourself in the foot constantly. - The tools around solidity (Eg the whole Truffle suite) are full of major and minor bugs, will fail on you without explicitly telling why and the documentation is basically not existent. The remix ide is barely passable but you have to use a bunch of disconnected plugins to get something useful. The plugins for common ides (webstorm) or text editor (vscode) are useless at the moment of writing. I'll be honest, I am still working on these dapps just because I believe in the team I am in. If it was for the current state of the technology and the relative constant feeling of burnout I am accumulating, I would have RUN away months ago and moved to a corp job in a super ""boring"" stack (currently thinking about going the .netcore route). |
I already develop Mamba (https://mamba.black). It's like Truffle but for Python instead of JavaScript.
We'll see how it goes.