Behind the code: Language designers, scripting the 21st century developer playbook
Developers often wear their chosen coding language like an identity badge – Java developer, Python developer – but the advent of blockchain means it’s time to start changing how we think about development and how typical roles are changing, overlapping and becoming more fluid.
Code—the language rewriting and bending new systems—now underwrites a new standard of literacy in a digital age. While the existing plethora of programming languages has divided opinion within the developer community, with many adopting their choice of language as a badge of identity, as in Java developer versus Python developer, this loyalty is fundamentally derived from the starting point of what a developer aims to achieve with the language at hand.
The inherent functionalities of different language frameworks, in turn, have given rise to a new generation of developers earmarked by their proficiency and richness of knowledge in specific domains. As the title of developer spins off in various directions, the talent community has found their way across a decidedly different landscape, landing in verticals carved out by the arrival of new and innovative technologies. Blockchain, the poster child of disruption in the turn of the century, is one such example reflecting the breadth of talent in an increasingly sophisticated tech ecosystem.
Blockchain: code as a fluid concept
Built out from established academic fields such as cryptography, distributed systems, and application development, blockchain’s exuberance has since given way to more pragmatic sensibilities, measured against its value rather than its potential. In speeding up the innovation curve, blockchain developers will by necessity welcome talent from varied backgrounds and disciplines to join its ranks.
The subtle distinctions between differing levels and orientation of technical expertise, demonstrated in a spectrum of roles ranging from full-stack developer to language designer, in turn reveals code as a dynamic, fluid concept. Such an engagement extends beyond an oft-explored infrastructural narrative of consensus algorithms and protocols, shining the spotlight on compiler engineers as they design, develop and test programming languages for smart contracts across different platforms—as in the case of Solidity, the de facto language associated with Ethereum, or Simplicity, the low level made-for-blockchain language aimed at Bitcoin.
Combing through the perspective of compiler engineers will offer a rare glimpse into the action behind the scenes, as the actual language weaving the technological fabric becomes understood as more than just code.
Language design: experimentation and education
Today, projects are actively adopting a variety of programming languages for different intents and purposes. Ethereum for instance, relies on Solidity, an object-oriented Turing-complete language, to implement and deploy smart contracts, while Zilliqa focuses on Scilla, a non-Turing complete principled language that borrows from functional programming principles to enable formal verification, where developers apply mathematical proofs to satisfy security conditions.
While interest is often cited as an entry point for aspiring developers looking to join the industry, the rigor of language design demands more formal and institutionalized learning, with compiler engineers coming from a background of computer science, often at a graduate or postgraduate level. As compiler engineers, this requires an intimate understanding of high-level programming languages to translate the semantics of code structure to a desired new language. A fine balance between ensuring the efficiency of input/output and exercising autonomy over the editorial process, the implementation and processing of language is a constant work of optimization.
While a knowledge store on data structures and algorithm concepts is certainly helpful, the majority of developers are also lifelong learners, with over 90% having self-taught new languages, frameworks or tools outside of school. In much the same way, compiler engineers constantly think on their feet as they propose and counter existing technical problems; research becomes a natural course of action as they consider alternatives solutions sitting outside of the usual paradigm.
Interestingly, the myriad of roles within the burgeoning blockchain industry points to the overlapping expertise within the space, and knowledge sharing has become a necessary benefit driving developers as a collective force.
Now showing on the screen
While each position in an organization holds meaning in the work they do and deliver, compiler engineers ,in particular, have to appreciate their role as a cog within a larger, interconnected system, gesturing to the possibilities of their work in engineering change. As blockchain projects race to fulfill the vision of a decentralized, trustless economy, traditionally-trained developers will have the opportunity to add on to the pages written by decades of academic literature, bringing to fruition use cases that hold real world context and impact.
The nascency of blockchain is in itself a unique opportunity for developers to trial and experiment their thoughts in an unprecedented white space, as they take their chance at drawing up the resource board and establishing best practices and standards for the future of the technology. With the growing emphasis on developer’s intent, coding has once more come to the foreground, illustrating not only the ever-shifting technological landscape, but a new path for programming opportunities.