Corda Developer Experience Updates
As the head of developer relations for R3, I get to talk with many developers about their experience building CorDapps — applications built on Corda — and learn what is working well, and what needs to be improved.
Based on this feedback we’ve worked on a number of developer experience improvement releases which we’ve shared at our annual flagship conference CordaCon, and I’m thrilled to be able to share with you here.
These new tools cover something for everyone—from beginner to experienced developers. We’ve particularly focused on improving the ‘getting started’ experience by providing new developer tools, and working with some of the most popular blockchain ecosystem tools to add support for Corda.
Corda extension for Visual Studio Code
Visual Studio Code has seen massive adoption in the market, with over 50% of the developers polled in the yearly stack overflow survey naming it as their tool of choice. So it comes as no surprise that we’re seeing new developers using this as their IDE of choice to build CorDapps.
We’ve built a Corda Extension that allows you to perform all the build & run actions inside of VS Code terminals using the command pallet, and included a Transaction Explorer that gives you a real time view of local transactions, and a Query Explorer that allows you to query the Vault.
We’ve also added VS Code configuration files in our starter projects, so they’ll work with Visual Studio Code perfectly out of the box.
With these new tools building an app and understanding the interaction between nodes is now simpler than ever before.
You can download the extension from inside your IDE, or download it from:
Visual Studio Code powered Web IDE allows you to explore new features without the hassle
We liked the Visual Studio Code experience so much, we’ve giving it a permanent home on our servers so that you can explore building CorDapps without having to install or configure anything locally.
We’re also adding links to our documentation and new feature releases that will open the WebIDE with the relevant starter projects, allowing you to try them out with one click and zero effort.
You can try the web hosted IDE out at: http://ide.corda.net/
Every CorDapp developer has experienced that moment where you got your basic app running, but now you have to figure out how to connect it to your other systems. Previously, the recommended solution was to either build a custom REST API server using the RPC Client, or connect using the RPC Client directly.
Thanks to the new OpenAPI connector, this is now a thing of the past.
OpenAPI is a widely adopted and popular standard for developing APIs, and using its tools, client libraries for APIs can be automatically generated for over 40 different languages.
Braid, the service that generates the OpenAPI server templates does all the heavy lifting and makes every CorDapp flow and type available through OpenAPI.
Making all of this work is as simple as downloading and running Braid, pointing it to where your node and CorDapp jars live, and generating a client library for your language of choice.
At CordaCon, we also announced that our work in progress for Corda 4.4 includes support for Java 11.
With the end of life for Java 8 this has become a highly requested feature, and we’ve worked hard on making Corda work better on Java 11 than ever before and in our first experiments we’re seeing an up to 20% performance increase.
We’ve worked closely with Azul as we’ve found an issue in Zulu Java that was causing issues, and that fix will be included in their end of Oct / early Nov release of Azul Zulu Java.
If you want to start exploring Java 11 support, you can build on Corda from our 4.4 development branch:
Web3 and Truffle are two of the most popular tools in the Ethereum world, and many developers will have had their first getting started experience using these tools.
We’ve worked closely with both Web3 and Truffle to bring their great developer experiences to Corda.
Web3 is a lightweight, highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with blockchains. It allows you to work with the multiple blockchains, without the additional overhead of having to write your own integration code for the platform.
You can check out Web3Corda by visiting https://www.web3labs.com/web3j.
Truffle Ganache is a tool that allows you to easily configure and run a local network, allowing you to mirror what production will eventually look like, and explore and debug transactions as they happen on the network, making the getting started experience visual, transparent and simple to use.
During CordaCon, Truffle announced its plans to expand its managed developer suite to support Corda. ‘A Truffle Flavored Ganache’ will allow Ethereum developers to use the same tools mentioned above to build applications on Corda.
To be notified of their release later this year at: https://trfl.co/corda
Thank you for reading and being part of this journey!
We’d love to hear about your experiences and answer any questions you have in our public slack channel: http://slack.corda.net/