Last updated 2 months ago
Cardano needs comprehensive and intuitive developer tooling to enhance learning and productivity in Haskell/Nix development, increase skilled talent and maintain commitment to functional programming.
This is the total amount allocated to Jambhala Suite: Haskell Dev Nirvana. 0 out of 3 milestones are completed.
1/3
jambhala-tx v1.0 & jambhalaiken MVP
Cost: ₳ 17,100
Delivery: Month 3 - Jun 2024
2/3
jambhalarch MVP & jambhala-tx lite
Cost: ₳ 17,100
Delivery: Month 6 - Sep 2024
3/3
jambhalucid & project closure
Cost: ₳ 22,800
Delivery: Month 7 - Oct 2024
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
Jambhala frameworks offer end-to-end solutions for developers of all skill levels, guiding through Haskell/Cardano fundamentals, Plutus scripting/testing, and prod-ready Plutarch development.
No dependencies.
All components of the project are released under an MIT License strictly for the benefit of the Cardano community, and no aspect of the project will be commercialized.
Support for a diverse range of languages and approaches is healthy for the growth of the Cardano community; nevertheless, Haskell is the mother-tongue of Cardano and PlutusTx its foundational scripting language. The long-term success of Cardano requires skilled Haskell programmers equipped not only to produce optimized contracts but also make open-source contributions to the protocol and third-party projects written in Haskell.
Cardano's commitment to rigorous functional programming principles and avoidance of a "success at all costs" mentality are unique strengths that are vital to its success, and should continue to be preserved moving forward. However, these objectives continue to be obstructed by the challenging user experience of the Haskell/Nix-based Cardano toolchain, combined with the prevalence of tribal knowledge and fragmented, outdated documentation over clear, unified and up-to-date learning materials.
This proposal holds that the benefits of pure functional technologies like Haskell and Nix should be made accessible to a wider base of developers, rather than relegating them to power users and steering new entrants to more mainstream replacements. If not, we risk contributing to a widening knowledge gap that threatens continued innovation and development in the ecosystem writ large.
Jambhala responds to this challenge with a full-featured environment for learning and developing on Cardano in Haskell, emphasizing opinionation, automation and abstraction to ease user burden. The project's mission is two-fold:
Jambhala works on all Unix-like systems, leveraging the power of Nix while reducing its complexity through automation.
A fully usable Jambhala MVP is already available and has been received enthusiastically by the EMURGO Academy community, where it has been used successfully to teach several cohorts of EMURGO Academy's Cardano Developer Professional Program, and has incorporated many improvements based on student feedback and contributions.
Jambhala's core features, implemented over a period of 9 months, include the following:
Funds requested will be used to advance the core project toward a stable 1.0 release accompanied by a professional website and support community, as well as the following:
The project will bring value to the Cardano community by increasing the talent pool of developers programming in Haskell, PlutusTx and Plutarch, and providing existing developers a unified framework for pain-free development in these technologies. More broadly, it will contribute to maintaining a presence of Cardano's core technologies within the wider developer community beyond the protocol level.
Project impact will be measured with the following:
I will share outputs and opportunities by soliciting testimonials from users of Jambhala and its companion projects, showcasing how the technology has contributed to positive outcomes in their learning and career journeys. Testimonials will be presented on the Jambhala website, and user stories will also be incorporated in a community webinar at project completion.
As lead developer, my capabilities include:
My unique, user-centered approach to development comes from my own journey as a self-taught functional programmer and web developer, my experience as an instructor and developer at EMURGO Academy, and my participation in ongoing dialogue with a diverse community of new developers about their needs and challenges.
I deferred seeking Catalyst funding in Fund 10, so as to first present a high quality MVP and solicit sufficient user feedback. Given Jambhala's already successful MVP and its highly modularized architecture (which includes multiple reusable components structured as Git submodules), I can provide high assurance of feasibility within the proposed timeline. The project's approach allows easy iteration on its base design to swiftly implement variations like Jambhalarch and Jambhala Lite without requiring extensive reimplementation of core features.
My position as a prominent faculty member of EMURGO Academy and my reputation and goodwill within the Academy community will ensure a high level of accountability. I will also draw on my extensive non-developer experience in the NGO sector to provide a thorough project report, including a transparent, itemized financial statement detailing the project's use of funds.
The project's first milestone prepares the core Jambhala project for full public (v1.0) release, and will include the following:
Outputs for this milestone will support the success of subsequent phases: Jambhalucid will serve as a submodule in all frameworks; contract walkthroughs will be reused/repurposed in Jambhalarch/Jambhala Lite; website and Discord will be used to promote and onboard users to all subsequent products.
During this phase, solutions will also be explored to permit the export of parameterized scripts without applied arguments (to allow dynamic application with Lucid).
The second milestone will center on a new "Jambhalarch" framework (Plutarch variant of Jambhala). It will coincide with a release of an MVP with comparable user experience to Jambhala. Compatible modules from Jambhala will be reused, with the addition of:
Following this milestone, the integration of Jambhalarch as a learning technology for EMURGO Academy's Cardano Solutions Architect course will be explored (as Jambhala has been used in the Cardano Developer Professional course). This would simplify the transition for EMURGO learners from PlutusTx to Plutarch, and provide an initial user base for feedback and open source contributions.
Utilizing lessons learned during the Jambhalarch development phase, the third and final milestone will center on the production of "Jambhala Lite" and closure of project deliverables.
Jambhala Lite will preserve core components of Jambhala but decouple the framework from plutus-apps to minimize its dependency footprint and bring the project up to date with more recent versions of GHC and core Cardano libraries.
To achieve this the Jambhala emulator will be replaced with a new unit-testing utility based on the one developed in Phase 2 for Jambhalarch. Custom Nix tooling developed during Phase 2 will also replace the Haskell.nix/cabal.project-based setup currently employed by Jambhala.
Jambhala Lite may eventually supplant the original Jambhala framework as a 2.0 release (depending on parity of features and UX) or else be maintained in parallel as a lightweight alternative.
The project's final milestone will also include the following deliverables:
Project lead/lead developer: Ian Burzynski, Haskell/Plutus developer and instructor (https://www.linkedin.com/in/ian-burzynski)
Designer/video producer: Salam Qumsiyeh, professional photographer, designer, video editor and producer (https://www.linkedin.com/in/salam-qumsiyeh)
If an additional developer is contracted, they will be selected from certified EMURGO Academy learners demonstrating aptitude with some combination of the following:
Academy learners will be preferenced as they are most representative of the project's target user base, have familiarity with Jambhala from their coursework, and have firsthand insight into the challenges faced by Cardano newcomers.
Milestone 1: Jambhala 1.0
Milestone 2: Jambhalarch MVP
Final Milestone: Jambhala Lite MVP & Presentation
As well as development of milestone-specific outputs, compensated developer time during all three phases will cover routine maintenance, improvements and bug fixes.
While difficult to quantify precisely, the project should provide significant economic value to the Cardano ecosystem relative to the investment, by increasing the number of proficient Haskell developers building Cardano projects and accelerating the process of developers attaining productivity.
The proposed budget includes fair compensation for me (a self-employed individual living in the United States) to focus on development of the project on a part-time basis. If additional developer support is required to meet the project milestones, another developer will be contracted on a part-time basis and compensated based on a fair wage in their country of residence. Graphic and video production work will be contracted to my wife Salam and compensated at a fair market rate for the USA.