Although this is my first post on this blog, many people probably already know me as the person behind Solidity. I recently took over the leadership of the C++ team and would like to share my vision for future development.
Ethereum is a free software project that anyone can use and improve for free. From what we’ve seen at our conferences and meetings, there are a lot of people working on projects on top of Ethereum, but we only have a small team working on the actual platform. Ethereum should be an open project that invites anyone to propose improvements, actually implement them, and accept them.
As the leader of the new C++ team, I will do my best to reduce the barrier to entry as low as possible not only for users (dapp developers) but also for developers (platform developers). This is a necessary step, and I am convinced that this is the way software should be developed, especially software that aims to be useful to all of humanity.
Of course, the community can only support us, and we can’t ask anyone to develop an important feature with a deadline in their spare time. That’s why the core team will focus on the main software components and many other things will be optional. We will drop any duplicate work between the Go and C++ teams unless it is necessary to find compatibility bugs and we will work hard to remove the invisible “language barrier” and bring the teams closer together to work as one cohesive team.
This means that our priorities will be Solidity and Mix (IDE and smart contract debugger), while the C++ implementation for ethereum/web3 (“eth”) will align its interface with the Go Geth implementation, so existing front-ends like Mist, the Ethereum wallet, can For Geth console and other tools attached to both backends without changes.
On the other hand, this means that we cannot support the development of AlethZero’s C++ UI into a full DApp browser and we would be happy to see its unique features (essentially a blockchain explorer) being integrated as a DApp in Mist.
On the more technical side, our current roadmap is as follows, while most ethics-related elements depend on our capacity and perhaps on the amount of help we get from external contributors.
If you want help, please read our Contributors Guide Or contact us on network.
hardness:
The general idea is to make Solidity more flexible and allow the implementation of generic data types.
Specific planned features:
- Anonymous functions are used for internal callbacks to functions such as map, reduce, sort, etc., but also for asynchronous callbacks across contracts (or across the chain)
- Type templates, especially for libraries to allow reusable data structures
- Built-in assembly
We hope that inline grouping and writing templates together will speed up the implementation of other features.
mix up:
A unique feature of Mix is the source-level Solidity debugger. We plan to expand it so that you can also debug existing contracts. Furthermore, we want to integrate and test existing package management solutions (spotted, truffle, embark, …).
Special specifications:
- Correct previous transactions in life or test series
- Run JavaScript unit tests directly from the IDE
- GitHub integration (upload from/save to repository, load libraries directly from GitHub)
- Why 3 (formal verification) integration
Ethics:
We will make eth more flexible and interoperable with other components of the Ethereum ecosystem. This allows us to remove features that have already been implemented elsewhere, so that ethics are easier to create and maintain. Moreover, we can easily target different embedded devices and platforms. We also want to make the just-in-time compiler available to other applications.
- Reduce external dependencies if possible, and improve the build process
- Replace eth console with node implementation (will remove v8 as a dependency) or “attach geth”
- Fast sync
- Optimize the just-in-time compiler on small numbers
- The state is trying to prune
- Light client
- Merge flu executable from private/consortium series into regular executable (depending on capacity)

.jpg)

