Greetings, many of you may already know me as the person behind Solidity. I am now the head of the C++ Team and I would like to share my plans for the advancements of Ethereum.
Ethereum is a type of open-source software that anyone can use. We have seen numerous people working on projects outside of the platform at conferences and meetings. We have a small team that works on the platform, but we should make it an open-ended project where anyone can suggest new ideas, develop them, and get approval.
As the head of the C++ Team, I will be doing my best to reduce the challenges of entry for both users and DApp developers. This is a very important step.
The community can be of great help, but we cannot expect them to build important features in their free time. The core team will be focussing on the essential components of the software, while many other aspects will be left to the members. We will not be doing any duplicate work between Go and C++ teams, unless it is necessary to find consensus bugs. We want to bridge the language barrier and work together as a team.
This means that our main priorities will be Solidity and Mix (the smart-contract IDE and debugger). The C++ implementation of Ethereum/Web3 (“eth”) will be designed to work with the Go Geth implementation of interfaces. These tools include Mist, the Ethereum wallet, Geth console, and other tools that can be connected to both backends.
With this in mind, AlethZero cannot turn into a full DApp Browser, though we would love to see its features integrated in Mist.
Technically speaking, our roadmap is as follows. Most of the items will rely on how much help we get from outside contributors.
If you need to know more, please refer to our contributor guide or contact us on Gitter.
Solidity:
The overall plan is to make Solidity more flexible and incorporate generic data types.
Particular features:
- Anonymous functions can be used for internal callbacks, like map/reduce, ordering, etc., and also for cross-contract (or cross-chain) and asynchronous callbacks
- Templates can be used to create reusable data structures, primarily in libraries
- Inline assembly
Type templates and inline assembly can be joined together for faster implementation of extra features.
Mix:
Mix has the special source-level Solidity debugger. We want to expand it to be able to debug existing contracts. Additionally, we are looking to integrate existing solutions for package management and testing (Dapple, Truffle, Boarding, etc.)
Particular characteristics:
- Debugging of past transactions can be done in real-time or in a testing sequence
- Run Javascript unit testing directly from the IDE
- Integration with Github (upload/save repository, upload libraries directly through Github)
- Why3 integration (formal verification)
eth:
We want to make eth more adaptable and interoperable with other elements of the Ethereum ecosystem. This way, we can remove features that have been implemented elsewhere, making it simpler to construct and maintain eth. Furthermore, this will allow us to target embedded devices and other platforms more conveniently