In brief
- A new Ethereum smart contract language called Fe has been announced.
- Using Vyper as a foundation, Fe developers aim to improve its safety.
- While novel, Fe will look familiar to developers that have used Python.
Christoph Burgdorf, a software engineer at the Ethereum Foundation, has announced a new smart contract programming language, dubbed Fe, that is currently in development.
“The majority of applications deployed on the Ethereum network these days are written in Solidity. We believe the Solidity team is doing a great job and are clearly doing a lot of things right to maintain their current market share. However, we also believe that more choices for developers will be a net positive for the ecosystem,” Burgdorf wrote yesterday.
Named after iron—or Ferrum on the periodic table—Fe was originally conceived as a spin-off of Vyper, an Ethereum compiler written in Rust language. However, Fe developers decided to address some of Vyper’s security flaws that Ethereum-focused studio ConsenSys (that funds an editorially independent Decrypt) highlighted last year.
“While the initial goal was to have an alternative Vyper compiler, eventually the languages started to diverge in their syntax and it was decided to make a clean cut with a new name. Fe was born,” Burgdorf explained.
Thus, the project inherited some features of Vyper—such as Python’s easy-to-use syntax and the emphasis on language safety—simultaneously remaining readable and familiar to developers that used Python.
“At this early stage in development the differences between Fe and Vyper are still limited. For now, one will notice that Fe borrows a few syntactic properties from Rust. It’s likely that Fe will begin to more closely resemble Rust as we continue to add new features,” added Burgdorf.
Currently, the developers of Fe are working on a comprehensive specification for the language that would be used to demonstrate and prove the compiler’s correctness—an ability to “proofread” the produced code and detect various bugs prior to its actual deployment.
Additionally, Fe aims to separate components of the compiler into distinct libraries that follow standard guidelines, noted Burgdorf. The language is also planned to use Yul—a project developed by the Solidity team—as an “intermediate representation.”
“[Yul] is intended to be a common denominator between multiple low level platforms, meaning that we do not need to write separate backends for EVM 1.0, EVM 1.5, and eWASM, Burgdorf explained, adding, ”For the time being, we are just using the Solidity backend for Yul compilation. This has saved us a significant amount of time.”
While no clear release date or milestones were disclosed in the announcement, Burgdorf noted that Fe’s development “has ramped up significantly” in the past month. Some of its code has even been discovered “in the wild” already.
“We are optimistic about adding support for all features used in an ERC20 contract and be able to compile one before the end of 2020,” said Burgdorf, adding, “To be clear, the compiler will in no way be a suitable choice for a production ERC20 by that time, but we look forward to demonstrating the capabilities of Fe with such a well understood working example.”
Anything that makes smart contracts easier to code will surely be appreciated.