Recent Posts
Archives

Posts Tagged ‘MikeHearn’

PostHeaderIcon [KotlinConf2017] Cords & Gumballs

Lecturer

Mike Hearn is the lead platform engineer at R3, a consortium of leading financial institutions developing Corda, a blockchain-inspired distributed ledger platform implemented in Kotlin. With nearly eight years at Google as a senior software engineer and five years as a Bitcoin developer, Mike brings extensive experience in JVM-based development and distributed systems. His early adoption of Kotlin, 18 months before its 1.0 release, and his work on the open-source BitcoinJ library, used in products with millions of users, highlight his expertise in high-performance, scalable software solutions.

Abstract

Kotlin’s versatility enables both large-scale enterprise projects and lightweight command-line tools. This article analyzes Mike Hearn’s presentation at KotlinConf 2017, which explores two contrasting projects: Corda, a blockchain-inspired platform for financial institutions, and Gumballs, a tool for generating standalone native binaries from Kotlin/JVM code. The analysis examines the context of Kotlin’s adoption in enterprise and lightweight applications, the methodologies behind Corda and Gumballs, their technical innovations, and their implications for software development. Mike’s insights highlight Kotlin’s ability to address diverse use cases, from secure financial systems to efficient command-line utilities.

Context of Kotlin in Enterprise and Lightweight Applications

At KotlinConf 2017, Mike Hearn presented two distinct projects showcasing Kotlin’s flexibility. Corda, developed by R3, is a large-scale enterprise platform inspired by blockchain technology, designed to streamline financial transactions among banks. Implemented entirely in Kotlin, Corda leverages the language’s concise syntax and JVM compatibility to handle complex business logic securely. In contrast, Gumballs is a side project that compiles Kotlin/JVM code into standalone native binaries, competing with Go’s efficiency for command-line tools. This dual focus reflects Kotlin’s ability to cater to both enterprise-scale systems and lightweight, performance-critical applications.

The context of Corda’s development highlights Kotlin’s appeal for enterprise use. Mike, an early Kotlin adopter, chose the language for its compatibility with the JVM, which is well-suited for high-level business logic in financial systems. The decision to avoid web technologies like TornadoFX, due to security concerns, underscores Corda’s emphasis on robust, desktop-based applications. Gumballs, conversely, addresses the need for efficient, standalone tools, demonstrating Kotlin’s potential to rival Go in scenarios requiring minimal dependencies and fast execution.

Methodology of Corda and Gumballs

Corda’s methodology centers on leveraging Kotlin’s features to build a secure, scalable distributed ledger. Mike explained that Corda uses Kotlin’s type safety and concise syntax to implement complex financial workflows, such as peer-to-peer real-time gross settlement systems. The platform employs cryptographic identities for nodes, ensuring stronger security than traditional systems reliant on identifiers like social security numbers. Kotlin’s interoperability with the JVM allows Corda to integrate with existing financial infrastructure, while its open-source nature, with tutorials and sample apps, encourages developer adoption.

Gumballs, in contrast, focuses on generating ahead-of-time compiled native binaries from Kotlin/JVM code. Mike demonstrated how Gumballs produces lightweight executables, similar to Go’s output, by compiling Kotlin code into native binaries that run without a JVM. This approach minimizes dependencies, making it ideal for command-line utilities requiring fast startup and execution. The methodology leverages Kotlin’s compiler capabilities, showcasing its flexibility beyond traditional JVM applications and highlighting its potential for cross-platform, performance-critical tasks.

Technical Innovations and Challenges

Corda’s technical innovations include its use of Kotlin to manage complex state and transaction logic in a distributed environment. Mike highlighted how Kotlin’s concise syntax reduces boilerplate, enabling developers to focus on business logic rather than infrastructure. The platform’s participation in a competition with the Central Bank of Singapore to develop a settlement system demonstrated its ability to handle real-world financial challenges. However, challenges like ensuring security in distributed systems required banning less secure web technologies, favoring managed desktop apps for structural integrity.

Gumballs introduces a novel approach to Kotlin compilation, producing standalone binaries that compete with Go’s efficiency. This innovation addresses the need for lightweight tools in scenarios where JVM overhead is impractical. Challenges included optimizing the compilation process to minimize binary size and ensure compatibility across platforms. Mike’s presentation emphasized the experimental nature of Gumballs, inviting community feedback to refine its capabilities, reflecting the iterative approach to developing new Kotlin tools.

Implications for Software Development

Corda and Gumballs demonstrate Kotlin’s versatility across the spectrum of software development. Corda’s adoption by a consortium of banks underscores Kotlin’s suitability for enterprise applications requiring security, scalability, and interoperability. Its open-source model, supported by tutorials and sample apps, lowers the barrier to entry for developers building financial systems. Gumballs, meanwhile, expands Kotlin’s reach into lightweight, performance-critical applications, offering an alternative to languages like Go for command-line tools and utilities.

For developers, these projects highlight Kotlin’s ability to unify diverse development needs within a single language. Corda’s success in enterprise settings encourages adoption in industries requiring robust, secure systems, while Gumballs appeals to developers seeking efficient, standalone solutions. The broader implication is Kotlin’s potential to challenge established languages in both enterprise and niche domains, fostering a more cohesive development ecosystem. Mike’s call for community contributions via Corda’s open-source platform and Gumballs’ experimental development further amplifies Kotlin’s collaborative potential.

Conclusion

Mike Hearn’s presentation at KotlinConf 2017 showcased Kotlin’s remarkable adaptability through Corda and Gumballs. Corda’s enterprise-grade blockchain platform demonstrates Kotlin’s strength in handling complex, secure financial systems, while Gumballs highlights its potential for lightweight, high-performance tools. By leveraging Kotlin’s type safety, JVM compatibility, and concise syntax, both projects address distinct challenges, from distributed ledgers to native binaries. As Kotlin continues to evolve, Mike’s insights underscore its transformative role in software development, inspiring developers to explore its capabilities across diverse domains.

Links