Innovating Julia: Full STEAM Ahead in Open Source Development
Written on
Chapter 1: The Journey Begins
This year commenced with an ambitious goal to consolidate my demo code into functional projects as I prepare for the launch of my most significant open-source initiative to date — a collaborative programming website tailored for the Julia language. This endeavor was initially detailed in the Chifi Update I published earlier this year.
In that update, I laid out my vision for a multi-layered ecosystem dedicated to web development and data science through Julia. Fast forward a few months, and we are on the brink of introducing a new version of Olive — the notebook editor — built upon an enhanced Toolips, our web development framework. Additionally, the Gattino data visualization library has celebrated its initial release.
While substantial progress has been made, there remains a considerable amount of work ahead. As old objectives phase out, new opportunities emerge, and the next steps in advancing my extensive ecosystem are just as thrilling as the previous ones. Today, I want to share my current endeavors and how they impact the larger ecosystem.
Section 1.1: ChifiDocs Development
At this moment, my primary focus is on ChifiDocs. Although I've developed some useful software, much of it was created as a means to build other tools — for example, Toolips was developed to support the creation of Olive. My focus has recently shifted towards crafting a dedicated documentation website for Chifi packages, which I find incredibly exciting. I believe that packages such as Gattino and Toolips will greatly benefit users. This initiative will also help streamline issues and enhance user experiences with the packages overall.
The website is currently a work in progress, but I plan to deploy it soon. This project marks a pivotal milestone for my open-source software journey, transitioning from Toolips and Gattino into the realm of Olive. During this transitional phase, I intend to release new extensions for both Toolips and Olive.
Subsection 1.1.1: Toolips Ecosystem Enhancements
One of the major updates in Toolips 0.3 is the integration of various features into the core package. Previously, functionalities such as ToolipsMarkdown and ToolipsDefaults existed as separate packages; now, they are included within Toolips. This consolidation has resulted in a more streamlined ecosystem, offering a clearer selection of functionalities that logically belong as extensions rather than separate entities.
Currently, Toolips 0.3 supports only two extensions: ToolipsSession and ToolipsSVG. While this is more limited than the previous version, it includes the essential tools for web development.
The next release in the Chifi series will be ToolipsUDP, which is nearing documentation completion and will soon be compatible with Toolips 0.3. Additionally, I am working on transferring the multi-threading functionality from Toolips, ensuring continued progress on ChiNS.
Section 1.2: Gattino Ecosystem Challenges
The Gattino ecosystem is in a more precarious state compared to Toolips. Registered on Pkg for only a brief period, its current functionality is largely constrained to the base package and its dependencies. However, this will soon change with the upcoming GattinoPleths release. This package will introduce clorepleths to Gattino, and while I have made significant progress, a substantial amount of work remains to reach a fully functional state.
Developing these packages presents a series of challenges. For GattinoInteractive, I need to create an interactivity system based on ClientModifier. Gattino3D requires the use of triangles for proper data projection in three dimensions, while GattinoStats aims to support statistical visualizations, including distribution and box plots. GattinoSpace will also require significant effort to adjust the Context for automatic continuous value representation.
Despite these complexities, I remain focused on my overarching goal: Olive.
Chapter 2: Olive - The Pinnacle Project
Olive, my flagship project, needs no introduction. This extensible notebook editor for Julia is poised for a significant upgrade with the launch of Toolips 0.3. While Olive 0.0.93 serves as a solid representation of the package's potential, my next goal is to transition into Olive 0.1 beta and truly refine its capabilities.
The initial step involves restructuring and establishing dependencies. The syntax highlighters initially sourced from ToolipsMarkdown have now been relocated to OliveHighlighters. I am also implementing improvements to IPyCells, enhancing functionalities like preventing line splits in non-Olive notebooks and optimizing memory usage in individual cells.
These enhancements, along with upgrades to other dependencies and the Toolips framework, position Olive 0.1 as an exciting upcoming beta release. Following this, Olive will continue to grow with new extensions, alongside my web project plans, particularly OliveCreator. The journey has been long, yet we are making substantial strides through a comprehensive six-step ecosystem, with no signs of slowing down.
Closing Thoughts
Development is ongoing. While the releases of Gattino and Toolips are significant achievements that will propel my future software initiatives, there remains much to accomplish. My commitment to this work is unwavering, and it's thrilling to witness the results of that dedication. With continued effort, I hope to see this software gain more traction and further enhancements.
As we return to the classic themes of Chifi and Olive, I appreciate your support and interest in my projects. Wishing you all a wonderful day!