To grow the APL community, we need to make it easier for people outside the current community to become involved.
Over the last few years we have been increasing the number of our tools and libraries that are maintained as open source projects. Open source refers to software whose design and source code are publicly accessible, allowing anyone to study, modify, and share it – this fosters collaboration, transparency, and wider community participation in building and improving technology. By making more of our tools available as open source projects, we hope more people will feel able to contribute, innovate, and help shape the future of APL.
We are now inviting developers, students, and enthusiasts to contribute to the evolution and development of some of these tools and libraries, and are able to offer mentorship around some specific projects that we have identified as being of the most benefit to the wider APL community.
Why Contribute?
This is not just about publishing code, but cultivating real collaboration. APL is a powerful language, but its community is relatively small and your contributions have a visible impact. Whether you’re curious about APL or just want to contribute to a fascinating part of the programming world, this is your chance.
Explore the Projects
Open Source Software Projects introduces the projects that we have identified as being of the most benefit to the wider APL community. In addition to the project aims and description, each one includes information on the estimated workload and difficulty level. From beginner-friendly tasks to more complex challenges, there’s something for everyone. For example:
Make the TryAPL Front End Mobile-Friendly
Enhance the TryAPL web interface to provide a seamless experience on mobile devices. This involves refactoring the input system to prevent the device’s native keyboard from appearing and implementing an on-screen keyboard for APL symbols.
- Skills Required: JavaScript, HTML, CSS, and an interest in APL.
- Estimated Workload: Medium (175 hours)
- Difficulty Level: Medium
Dyalog Jupyter Kernel New Features
Expand the capabilities of the Dyalog Jupyter kernel. This involves implementing new features, such as Dyalog Magics, to enhance the interactive computing experience.
- Skills Required: Python, APL, and familiarity with Jupyter notebooks.
- Estimated Workload: Medium (175 hours).
- Difficulty Level: Medium
Implement a New Language Backend for Co-dfns
Develop a new backend for the Co-dfns APL compiler, targeting a language of your choice (e.g., JavaScript, Python, Rust). This project offers flexibility and the opportunity to delve deep into compiler architecture.
- Skills Required: APL, C, and proficiency in the chosen target language.
- Estimated Workload: Long (350 hours)
- Difficulty Level: Hard
The Dyalog OSS-Projects GitHub repository includes information on how to submit your suggestions for projects, whether it’s something you would like to work on or not.
Get Involved
We encourage contributors at all levels to participate – whether you’re a seasoned developer or new to open source, you are very welcome and there is a place for you. The community is active on GitHub Discussions and there are also many other places where you can chat with people, ask questions, share ideas, and collaborate with mentors and peers (for example, the APL Orchard).
Our open source initiative is more than just a list of projects; it’s an invitation to be part of a vibrant community pushing the boundaries of what’s possible with APL. Whether you’re looking to contribute to existing tools, explore the depths of compiler design, or simply learn a new language, there’s an opportunity waiting for you.
Ready to get started? Explore the projects and start contributing today!