It is with great excitement that we’re announcing that all the XModules in the Open edX platform have recently been converted into XBlocks.
What are XModules?
XModule was the original framework for course components in edx-platform, and the predecessor of the XBlock framework. When the XBlock framework was introduced into edx-platform in 2013, because of the numerous XModules in use, a compatibility layer was written to allow an incremental transition to the new framework. This compatibility layer allowed the XModule infrastructure to run XBlocks and for XBlocks to see the XModule infrastructure as the XBlock Runtime.
XModules and XBlocks had different life-cycle properties and in some cases different APIs for the same features. This transition state was dubbed “peak confusion” by the edX engineering team to express the idea that it would be an extremely confusing time for the courseware internals, but that we could eventually come down from that complexity once XModules were removed.
When the Blockstore project was started, the decision was made that it would only support XBlocks and a new XBlock Runtime was written for it. As part of the work, the Video, HTML and Problem XModules were converted to XBlocks.
The remaining fifteen XModules have been converted to XBlocks through a months-long blended development effort by OpenCraft and the edX T&L team.
Why is this important?
With the system now only hosting XBlocks and not constrained by having to maintain backward compatibility with the old framework, it becomes possible to significantly simplify the courseware internals. This will make the system a lot more approachable for developers and significantly reduce the complexity of big jumps in capabilities of courseware.
We are looking forward to seeing these developments in the future!