Congratulations to your “move”, even though I don’t understand all your tech decisions, I highly appreciate Libra, Move and the initial setup, there obviously is a lot traction behind it.
Having said this, as a “long term” Ethereum dev, it is obvious to me that the dev experience (not the user experience!) in Ethereum is light years ahead, though it started with the a comparable state Libra and Move are in now.
Therefore, I’d like to help devs by pointing out what’s missing for a decent dev experience. I am assuming here that a majority of devs interested in Libra and Move will have substantial experience in Ethereum development. If that’s not the case, this list must be adjusted.
Core development (Howtos, Tutorials and Guides)
- Setup a testnet (one or several nodes) in a private network
- Create faucets for private networks or deactivate “gas” usage
- Step-by-Step Guide for development in a common IDE like VSCode/Atom/Vim
- Step-by-Step Guide for deployment of contracts and transaction scripts in local network
- Tooling: Truffle and Ganache for Move
- Bootstrapping: Create UI-templates from contract descriptions
- Provide a CSS starter set for UI/UX based on Bootstrap
- Provide Docker versions of all Libra components
- Create Dev Environments like Truffle, Embark, Populus for different Dev Environments
No-Client-Installation Web development
- Adapt Remix IDE or some other no-installation IDE for Move testing and in-memory chain deployments
- Create an Infura-clone for Libra to enable developers using several testnets without local nodes
- Provide a stable Explorer version (like https://librabrowser.io/)
- Enable event listening and query support with local storage
- Enterprise Usage: Integration with legacy Systems (Java/.NET)
- Tutorials for different languages
** How to create simple transactions and transaction scripts?
** How to deploy smart contracts in language X/Y/Z?
- Best practices & Patterns to avoid (known) bugs
- Static Code Analysis with Security Checks for Move
Patterns and Concepts Comparison
- Main Conceptual Differences between Ethereum/EVM and Move/Libra
- Side-by-Side Implementation Comparison for most important EIPs
** Fungible and Non-Fungible Tokens (eg. ERC-20 and ERC-721)
** Signatures and Signature Validation (EIP-712)
Patterns and Best Practices for Wallet Creators
- How does MetaMask for Libra look like?
- UX/UI Best Practices (Reorg Handling? Gas estimation? Async Transaction Feedback?)
A very good list to use as inspiration for further topics is this: https://github.com/ConsenSys/ethereum-developer-tools-list
Just to make sure: this should not be seen as a demand for the Libra team, but more a start of a collection of missing items to help new devs.
It might make sense to create GH-issues for these items. There is more learning from Ethereum than just technical stuff, eg. Libra could create Bounties for those topics, use Gitcoin for incentivization, etc.