In early March, we put a call-out for side projects created out of sheer passion – with a splash of bloody-mindedness and determination. We want to award innovative change-makers and offer them the financial support to help push their business forward.
And now we have our winners! One of those is Otterkit, a free and open-source COBOL compiler, enabling developers to use its newest features.
So let’s go and learn a little more about who Otterkit are, what they’re doing, and how the Tyk Side Project Fund will help them grow.
Tyk: Hey, Otterkit! Tell us about your background and what inspired your side project fund idea?
Otterkit: It all started as a fascination with a language known for its reputation, COBOL.
Little did we know that a treasure trove of modern features lay beneath an outdated facade. We discovered its utility and uniqueness as we delved into the COBOL standard, boasting newer language constructs and exciting capabilities.
While most of the COBOL ecosystem remains stuck on COBOL 85, limited to a subset of the 2002 standard, we couldn’t help but question why such a versatile language wouldn’t embrace newer standards and their innovative features. Especially when considering the extensive use of COBOL in banking systems today.
This confusion ignited a spark in us, leading to the development of a free and open-source Standard COBOL compiler under the permissive Apache-2.0 licence. Our mission is to breathe new life into the COBOL ecosystem, enabling developers to harness its latest functionalities.
Tyk: What are the key features or innovations that differentiate your project from existing solutions in the same domain?
Otterkit: We’re breaking barriers by supporting the latest COBOL standard (ISO/IEC 1989:2023). While the market is dominated by vendors focusing on COBOL 85, an almost 40-year-old standard, we’re bringing innovation and modernity.
Our cutting-edge approach involves building Otterkit on top of the .NET runtime. We compile COBOL source code into C# text, which is then transformed into a bytecode or a native build using the .NET nativeAOT compilation option. This seamless integration promises a whole new level of performance and efficiency.
While there are other COBOL compilers for .NET and the JVM, they often come with hefty price tags and restrictive licensing fees. Otterkit, on the other hand, is free and open source, making it accessible to developers worldwide.
Tyk: What stage is your project at, and where do you see it going long-term?
Otterkit: Currently, we’re at the final stage of parsing, focusing on name resolution and type checking. Ensuring seamless support for UTF-8 encoding in identifiers and strings is also a top priority as COBOL embraces Unicode.
We view Otterkit as a long-term commitment to enhance the COBOL ecosystem and propel the language into modern development environments and systems. Our team is dedicated to pushing the boundaries and witnessing COBOL’s evolution and wider adoption.
In our vision for the future, we aim to introduce a package manager for COBOL. This addition will streamline importing and managing dependencies, bridging a gap currently absent in the ecosystem.
Tyk: What key values drive and motivate you to work on the project?
Otterkit: Embracing hope and fueled by our love for COBOL, we’re on a mission to challenge its outdated reputation. Contrary to common misconceptions, COBOL is far more modern than people realise; its latest standard was just published a few months ago.
COBOL deserves more appreciation, and with a bit of love and attention, it can become a fantastic language once again. The ecosystem could greatly benefit from critical elements like teaching resources for modern COBOL, compiler support for newer features, and robust IDE/code editor support.
Through our dedication and hard work, we aim to prove to the broader software development community that COBOL has tremendous potential and relevance in today’s technological landscape.
Tyk: Could you share some insights into the development process and any obstacles you encountered?
Otterkit: We encountered two significant obstacles: parsing COBOL source code and implementing Unicode support for strings.
We took a unique approach to tackle the parsing issue by forgoing the traditional Abstract Syntax Tree (AST). With over 400 keywords and a complex language structure, building an AST proved to be quite daunting. Instead, we opted for a flat list of tokens, which surprisingly proved to be a perfect fit for COBOL’s readability and maintainability.
As for Unicode support, we’re still in the process of finding the ideal solution. Currently, we’re experimenting with a static compressed trie data structure for UTF-8 case mappings. The task involves supporting the lower and upper casing of UTF-8 strings, which can be challenging considering the vast number of codepoints in the Unicode database. However, we’re optimistic that the trie approach will prove successful.
Tyk: How will the Tyk side project fund help your project grow?
Otterkit: With the fund’s support, we’ll purchase two full copies of the COBOL standard, upgrading from the draft version we’ve been using.
One of the copies will be for our newest project members, helping them quickly get up to speed with the latest standards. The second copy will be a valuable resource to compare any differences between the full published version and our draft version.
By having the published version of the standard, we’ll have the confidence that Otterkit is being implemented and tested in strict adherence to the rules defined by the standard. This ensures that Otterkit is a standard-conforming and robust implementation, taking our project to new heights.
Tyk: How do you avoid burnout when working full-time and managing a side project?
Otterkit: Taking breaks is essential for maintaining productivity and preventing burnout during a side project. Remember, stepping back when you feel overwhelmed is okay, as pushing yourself too hard could jeopardise your project in the long run.
Taking a few days off to recharge and engage in other activities can do wonders. Returning with a fresh and clear mind can lead to newfound solutions and insights, especially when dealing with code issues.
I’ve experienced this firsthand, taking short breaks after grappling with complex problems. Surprisingly, the breakthroughs often came unexpectedly, like when making a sandwich. It shows that giving your mind a breather can lead to creative problem-solving.
Tyk: How do you envision your project positively impacting the developer community or the wider technology industry?
Otterkit: At Otterkit, we’re trying to drive COBOL towards modernisation without replacing it entirely. COBOL has thrived for over 60 years, and it holds immense potential. We can elevate the language to new heights with some love and dedicated compiler and tooling support.
Our vision for Otterkit goes beyond just a project; we aim to transform the COBOL ecosystem. By providing a free and open-source platform, we empower developers to learn and work in modern Standard COBOL without the burden of expensive licensing fees.
With Otterkit, we envision a future where COBOL not only endures but flourishes in modern development environments.
Tyk: What tips would you offer someone looking to start their own side project?
Otterkit: Discovering your passion and then carving a niche within it can lead to incredible opportunities for growth and improvement. Look for areas where you notice the potential for enhancement or where the community has overlooked valuable aspects.
It could be a widely used software that still needs fixing or a neglected project that you believe holds untapped potential for growth and improvement.
In these niches, you might uncover opportunities for innovative solutions yet to be created. I’ve observed numerous instances in software development where specific problems have limited solutions that only partially address the issue.
If you choose to build a solution for these overlooked corners, don’t hesitate to share your creation with the world and showcase its unique features. Your creation could be the missing piece many have been waiting for, and by sharing it, you open the door for others to contribute and collaborate.